为什么 cufft 的输入和输出与传统的 fft 有很大不同?
Why does the input and output for cufft greatly differ from traditional fft?
根据我对 fft 函数的理解(例如来自 questions like this one)
假设 1D fft,给定 N 个实际数据点,我将得到长度为 N(但复数)+ 1 的双面 fft,用于第零频率。如果我采用相同的 fft 输出,并对其进行 运行 ifft,我将获得 N 个实数值,在理想情况下,这将与 fft 的原始输入完全匹配。
在 cufft 中,这似乎有很大不同。
根据 Nvidia 的说法,给出 N 个实数分量将为 fft 生成 N2 + 1 个复数分量,而 N2+1 个复数分量将生成 N 个实数分量。
参见 here(R = 实数,C = 复数,2 = 至):
请注意,我 认识到 一半的复杂组件基本上是重复的(但共轭和反转),因此输入输出值不需要保留所有必要的日期用于重建,但这并没有解释 Nvidia 如何声称 fft 的输入和输出数据长度应该是结构化的,cufft 输入和输出长度与我预期的相反这种情况。
您在这里看到的是您的浏览器无法正确呈现 MathML 内容。在 Firefox 66.0.2 中呈现的相同 table 似乎显示了您所期望的:
根据我对 fft 函数的理解(例如来自 questions like this one)
假设 1D fft,给定 N 个实际数据点,我将得到长度为 N(但复数)+ 1 的双面 fft,用于第零频率。如果我采用相同的 fft 输出,并对其进行 运行 ifft,我将获得 N 个实数值,在理想情况下,这将与 fft 的原始输入完全匹配。
在 cufft 中,这似乎有很大不同。
根据 Nvidia 的说法,给出 N 个实数分量将为 fft 生成 N2 + 1 个复数分量,而 N2+1 个复数分量将生成 N 个实数分量。
参见 here(R = 实数,C = 复数,2 = 至):
请注意,我 认识到 一半的复杂组件基本上是重复的(但共轭和反转),因此输入输出值不需要保留所有必要的日期用于重建,但这并没有解释 Nvidia 如何声称 fft 的输入和输出数据长度应该是结构化的,cufft 输入和输出长度与我预期的相反这种情况。
您在这里看到的是您的浏览器无法正确呈现 MathML 内容。在 Firefox 66.0.2 中呈现的相同 table 似乎显示了您所期望的: