为初学者实现实时频谱

时间:2011-06-02 15:39:06

标签: c++ signal-processing fft frequency-analysis

我想开发一个将音频(.wav)作为输入并显示其实时同步频谱的应用程序。从我对这个主题的看法来看,这需要对波进行傅里叶变换。有人可以建议我应该从哪里开始吗?可能的参考和书籍。我想学习实时频率语音实现的细节,而不是我非常熟悉的GUI开发(在C#和C ++中)。

4 个答案:

答案 0 :(得分:3)

已经有很多库可以为你做FFT。没有理由重新发明轮子。 DirectX有一个implementation,但它可能只是最新版本。 Here's一个开源C库。

如果您想了解其背后的数学,here's a simple explanationhere's a complicated explanation

答案 1 :(得分:1)

您应该首先打开wav文件,提取音频流并对其进行解码。有第三方库可以帮助完成此操作。

答案 2 :(得分:1)

看看FFTW

就书籍而言,关于信号处理的经典教科书是Oppenheim和Schafer的数字信号处理。它的大学水平,但它是完全通过。你确实需要一些关于微积分的知识。

答案 3 :(得分:1)

在开始实施应用程序以显示某些内容之前,应该先理解一下理论。这里有一些关于数字信号处理的免费在线资源,这是理解FFT和频谱的基础,也许是如何不滥用它们。

http://www.dspguide.com/pdfbook.htm

http://www.bores.com/courses/intro/index.htm

http://ccrma.stanford.edu/courses/320/Welcome.html

http://yehar.com/blog/?p=121/