为啥 cufft 的输入输出与传统 fft 有很大不同?
Posted
技术标签:
【中文标题】为啥 cufft 的输入输出与传统 fft 有很大不同?【英文标题】:Why does the input and output for cufft greatly differ from traditional fft?为什么 cufft 的输入输出与传统 fft 有很大不同? 【发布时间】:2019-04-09 20:46:54 【问题描述】:根据我对 fft 函数的理解(例如来自questions like this one)
假设一维 fft,给定 N 个实际数据点,我将得到一个长度为 N(但复数)+ 1 的双面 fft,频率为零。如果我采用相同的 fft 输出并在其上运行 ifft,我将得到 N 个实数值,在理想情况下,这将与 fft 的原始输入完全匹配。
在cufft 中,这似乎有很大不同。
根据 Nvidia 的说法,给出 N 个实数分量将导致 fft 的 N2 + 1 个复数分量,而 N2+1 个复数分量将导致 N 个实数分量。
参见here(R = 实数,C = 复数,2 = 到):
请注意,我认识到一半的复杂组件本质上是重复的(但共轭和反转),因此输入输出值不需要保留重建所需的所有日期,但是没有解释任何关于 Nvidia 声称 fft 的输入和输出数据长度应该是结构化的,袖带输入和输出长度与我在考虑这种情况时所期望的相反。
【问题讨论】:
您的浏览器出现渲染问题。链接页面显示floor(x/2)+1
(但使用数学符号),而不是x 2 + 1
。
这似乎是 Google Chrome 的问题。在 Chrome 中查看页面时,所有数学字段都是鲜红色且未格式化。在 Firefox 中查看页面时,数学字段的格式正确。
在问题中链接的 cufft 文档页面的最顶部,它说:“此文档包含数学方程式(以红色突出显示),最好使用 Firefox 4.0 或更高版本或其他 MathML 查看- 感知浏览器。此文档还有 PDF 版本。”
【参考方案1】:
您在这里看到的是您的浏览器无法正确呈现 MathML 内容。在 Firefox 66.0.2 中呈现的同一张表似乎显示了您的期望:
【讨论】:
以上是关于为啥 cufft 的输入输出与传统 fft 有很大不同?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 FFT 提供的可视化工具输出与 Windows Media Player 不同?