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