Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
3年前关闭。
Improve this question
我想生成一个mp3音频文件的音频频谱(如this video所示)。基本上,此问题需要计算音频信号的fft。如何在C/C++中对此进行编程?
我看过几个开源库,例如FFTW,但我真的不知道如何使用它们解决我的问题。任何帮助将不胜感激。提前致谢! 将音频数据转换为FFT所需的格式(例如int-> float,独立的L/R channel ) 应用适当的window function(例如Hann aka Hanning window) 应用FFT(注意:如果使用典型的复数到复数FFT,则将输入数组的虚部设置为零) 计算前N/2个FFT输出仓的大小( (可选)将幅度转换为dB(对数)标度( 图N/2(对数)幅度值
请注意,虽然FFTW是一种非常好且非常快速的FFT,但对于初学者来说可能有点不知所措-如果要将其包含在商业产品中,这也非常昂贵-我建议改用KissFFT开始。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
3年前关闭。
Improve this question
我想生成一个mp3音频文件的音频频谱(如this video所示)。基本上,此问题需要计算音频信号的fft。如何在C/C++中对此进行编程?
我看过几个开源库,例如FFTW,但我真的不知道如何使用它们解决我的问题。任何帮助将不胜感激。提前致谢!
最佳答案
关于SO的问题已经有很多类似/相关的问题,非常值得一读,因为答案中包含许多有用的信息和建议,但从本质上讲,您需要这样做:
sqrt(re*re + im*im)
)20 * log10(magnitude)
)请注意,虽然FFTW是一种非常好且非常快速的FFT,但对于初学者来说可能有点不知所措-如果要将其包含在商业产品中,这也非常昂贵-我建议改用KissFFT开始。
关于c++ - 如何在C++中使用fft生成音频频谱? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4675457/
10-13 08:58