【问题标题】:FFTW libray: how to properly plot an output?FFTW 库:如何正确绘制输出?
【发布时间】:2018-07-22 12:25:57
【问题描述】:

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

代码如下(我用的是C):

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

【问题讨论】:

标签: c math signal-processing fft fftw


【解决方案1】:

问题不在于您所做的计算,而在于您对数据的解释。重要的是要考虑您通过的高斯以及它相对于原点是如何分阶段的。如果你也通过了一个以原点为中心的高斯,你可以期待一个真正的高斯 ONLY。你得到一个高斯乘以exp(i*phase*omega),因为原始数据很可能不是以原点为中心的。如果您检查虚值,您会发现它们相对于实部也在振荡和相位差M_PI*0.25。零中心实函数的数据应该从N/2N-1 用于负值(以N 方式的补充),然后从0N/2-1 用于正样本。很可能您将高斯集中在样本 N/2 周围(我刚刚检查过,并且您确实做到了这一点:)),这在您的输出中产生了复指数乘法。

此外,原点位于元素0,因此它可以正确反映在原点。只需将您的输入高斯集中到同一点,看看它如何不显示这种振荡结果。

【讨论】:

  • 谢谢你,在你的帮助下我解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 2018-04-29
  • 2023-04-02
  • 2022-01-20
相关资源
最近更新 更多