我一直在寻找一个样本快速傅里叶变换实现/教程(最好)C#.
但是,我发现的每一个人都很难解释发生了什么,和/或评论不佳; 或者他们假设您已经知道FFT算法,或者他们是关于如何使用FFT的教程.
有人知道好的样本/教程吗?
抱歉没有超链接,我没有权限添加它们 :(
你在这里要求两件事
1)FFT的解释
非常简短:
如果要获得信号的频域表示,请使用傅立叶变换,这是一种数学变换,可将信号从时域变换到频域.当对数字信号进行操作时,我们有一组离散样本,因此我们必须使用离散傅里叶变换或DFT.然而,这是一个相当慢的操作并且易于优化,因此我们使用快速傅里叶变换算法或FFT.
这是一个大型的信号处理主题,所以我建议你寻找一个信号处理书作为参考.我建议"数字信号处理:一种实用的方法".当然还有无处不在的维基百科文章.
2)FFT的实现
由于FFT平台的高度优化性质和语言通常具有特定的实现,因此如果它包含在标准库中,则应检查标题和文档(通常可在"音频"部分中找到).
如果你想自己实现这个算法我建议你找一个数字配方的副本,这里包含了关于FFT的整个章节,以及关于"傅里叶和光谱应用"的章节.有很好的文档伪代码,应该很容易转录成任何语言.
对于第三方解决方案,流行的选择是FFTW,即C库.我谷歌搜索"FFT库"将为您提供一些替代方案.