gpt4 book ai didi

c - 通过 C 中的 FFT 向 wav 文件添加 1000Hz 噪声

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:01 25 4
gpt4 key购买 nike

我有一个整数数组 (int_16),其中包含一个 Wav 文件的所有音频数据。现在我想获得它的“频域”表示并添加 1000Hz 噪声。

我已经阅读了很多数学知识,但我还没有在 C 中找到这个问题的真正实现。

我只想发现:

  • 哪个是合适的库(FFTW?)

  • 如何将 FFT 应用于我的数组(我可以使用哪个函数)

  • 我得到什么样的数据,它们代表什么

  • 如何添加 1000Hz 噪音并重建新的 Wav

谢谢!!

最佳答案

您不需要将信号转换到频域并再次转换回来 - 您只需在时域中添加一个 1 kHz 正弦波,例如

#include <stdint.h>
#include <limits.h>
#include <math.h>

const float kA = 0.1f; // amplitude = 10% of full scale (-20 dB)
const float kF = 1000.0f; // frequency = 1 kHz
const float kFS = 44100.0f; // sample rate = 44.1 kHz

for (int i = 0; i < N; ++i) // for each sample
{
samples[i] += (int16_t)(SHRT_MAX * kA * sinf(2.0f * M_PI * kF * i / kFS));
} // add sine wave to signal

关于c - 通过 C 中的 FFT 向 wav 文件添加 1000Hz 噪声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17062250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com