为什么cufft的输入和输出与传统的fft有很大不同?

whn*_*whn 2 c++ cuda fft complex-numbers cufft

从我对fft函数的理解(例如,从类似这样的问题开始

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

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

根据Nvidia的研究,给N个实数分量将导致fft的N2 +1个复杂分量,而N2 + 1个复杂分量将导致N个实数分量。

看到这里(R =实数,C =复数,2 =到):

在此处输入图片说明

请注意,我认识到一半的复杂成分实际上是重复的(但共轭并颠倒了),因此对于输入输出值保留重建所需的所有日期而言并不是必需的,但这并不能解释Nvidia如何声称fft的输入和输出数据长度应该结构化,cufft的输入和输出长度所做的事情与我对此情况的预期相反。

Mic*_*zel 5

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

在此处输入图片说明