根据我对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 =实数,C =复数,2 =表示):
请注意,我认识到,一半的复杂成分本质上是重复的(但共轭并颠倒了),因此输入输出值不必保留重构所需的所有日期,但是没有说明Nvidia声称应如何构造fft的输入和输出数据长度, cufft的输入和输出长度所做的事情与我对此情况的预期相反。