我想生成一个 mp3 音频文件的音频频谱(如本视频所示)。基本上这个问题需要计算音频信号的fft。如何在 C/C++ 中进行编程?
我查看了几个开源库,例如FFTW,但我真的不知道如何使用它们来解决我的问题。任何帮助将不胜感激。提前致谢!
已经有很多关于 SO 的类似/相关问题非常值得一读,因为答案包含很多有用的信息和建议,但本质上你需要这样做:
sqrt(re*re + im*im)
)20 * log10(magnitude)
)请注意,虽然 FFTW 是一种非常好且非常快速的 FFT,但对于初学者来说可能有点难以承受 - 如果您想将其作为商业产品的一部分包含它也非常昂贵 - 我建议从KissFFT开始。