且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在哪里可以找到一个好的FFT样本实现/教程?

更新时间:2023-02-27 09:19:54

道歉缺乏超链接的,我没有权限进行添加的:(

您所要求的两件事情在这里

You are asking for two things here

1)FFT的解释

很简单:

如果你想获得你使用的信号的频域表示的的傅立叶变换的,这是一个数学变换,其将从时域到频域的信号。当数字信号操作,我们有一组离散的样本,所以我们必须使用的离散傅立叶变换的或DFT。然而,这是一个相当缓慢的操作,很容易优化,所以我们改为使用的快速傅立叶变换的算法或FFT。

If you want to obtain the frequency domain representation of a signal you use the fourier transform, this is a mathematical transform which transforms a signal from the time domain to the frequency domain. When operating on digital signals we have a set of discrete samples so we must use the Discrete Fourier Transform or DFT. However this is a rather slow operation and is easily optimised, so we instead use a Fast Fourier Transform algorithm or FFT.

这是一个大的信号处理的话题,所以我建议你找一个信号处理本书作为参考。我建议数字信号处理:一个实用的方法。当然还有无处不在***的文章也是如此。

This is a large signal processing topic so I suggest you look for a signal processing book to use as a reference. I suggest "Digital Signal Processing: A Practical Approach". There is of course the ubiquitous wikipedia article as well.

2)的FFT

由于的FFT平台和语言常常有具体的实现中,高度优化性质的,则应该在的情况下检查头和文档(通常它将在音频部分中找到)它被包括在标准库

Because of the highly optimised nature of the FFT platforms and languages often have specific implementations, you should check headers and documentation (typically it will be found in an 'audio' section) in case it is included in a standard library.

如果你想实现自己我建议找数值方法副本的算法,这包含了对傅立叶对FFT整整一章,还有一章和光谱应用。有据可查的伪代码应该是很容易抄写成任何语言。

If you want to implement the algorithm yourself I recommend finding a copy of Numerical Recipes, this contains an entire chapter on the FFT, as well as a chapter on "Fourier and Spectral Applications". There is well documented pseudocode which should be easy to transcribe into any language.

有关第三方解决方案,一个流行的选择是FFTW,C库。我谷歌搜索FFT库将为你提供一些替代品。

For a third party solution a popular choice is FFTW, a C library. I google search for "FFT Library" will provide you with some alternatives.