FFTW libray:如何正确绘制输出?

时间:2018-02-12 10:51:57

标签: c math signal-processing fft fftw

我在使用FFTW libray时遇到了一些问题,我正在用高斯测试快速傅立叶变换算法,因此我希望在进行变换时得到另一个高斯,这是我得到的:

Plot of the output

代码如下(我正在使用C):

Code

你能帮帮我,告诉我哪里错了吗?

1 个答案:

答案 0 :(得分:3)

问题不在于您所做的计算,而在于您对数据的解释。重要的是要考虑你已经通过的高斯分布以及它如何在原点上分阶段进行。如果你也传递了一个以原点为中心的高斯,你可以期待一个真正的高斯 ONLY 。你有一个高斯乘以exp(i*phase*omega)因为原始数据不太可能是以原点为中心的。如果你检查虚数值,你会发现它们相对于实部也是振荡和去相关的M_PI*0.25。零中心实数函数的数据应该从N/2变为N-1以获得负值(以N方式的补码),然后从0变为N/2-1阳性样本。很可能你把高斯围绕在样本N/2上(我刚检查过,你已经完成了这个:))这就产生了输出中复杂的指数乘法。

此外,原点位于元素0,因此它在原点处被正确反映。只需将输入高斯中心放在同一点上,看看它是如何不显示这样的振荡结果的。