为什么袖口的输入和输出与传统的fft大不相同?

问题描述 投票:2回答:1

根据我对fft函数的理解(例如来自questions like this one

假设1D fft,给定N个实际数据点,我将得到一个长度为N(但复数)+ 1的双侧fft,用于第0个频率。如果我采用相同的fft输出,并在其上运行ifft,我将获得N个实数值,并且在理想情况下,这将完全匹配原始输入到fft。

cufft,这似乎有很大的不同。

根据Nvidia的说法,给出N个实数组件将为fft产生N2 + 1个复杂组件,而N2 + 1个复杂组件将产生N个实数组件。

请参阅here(R = real,C = complex,2 = to):

enter image description here

请注意,我认识到复杂组件的一半基本上是重复的(但是共轭和反转),因此输入输出值不需要保留重建所需的所有日期,但这并不能解释Nvidia如何声称重建fft的输入和输出数据长度应该是结构化的,袖口输入和输出长度与我在预期的情况下所做的相反。

c++ cuda fft complex-numbers cufft
1个回答
5
投票

您在这里看到的是您的浏览器无法正确呈现MathML内容。 Firefox 66.0.2中呈现的相同表格似乎显示了您的期望:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.