gpt4 book ai didi

c++ - CUFFT 的比例因子

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:03 24 4
gpt4 key购买 nike

我编写了一个简单的测试程序,我在其中执行 Complex to Complex FT,我只是生成了一些数据 1..50 并将其插入数组的每个索引的实部和虚部。

当我做这样的操作时 IFFT(FFT(A)) = A

为了测试它们,我得到了每个库的不同结果。

FFTW,我必须将输出除以 len(A) 才能得到原来的 A

但是,使用 CUFFT 进行正向然后反向 FFT,看起来我必须除以 (sqrt(2)*50) 才能返回原始数据。

这个额外的平方根因子从何而来?

根据 CUFFT 文档:CUFFT 执行非标准化的 FFT;也就是说,执行前向对输入数据集进行 FFT,然后对结果进行逆 FFTset 产生的数据等于按数量缩放的输入元素。通过大小的倒数缩放任一变换数据集留给用户按合适的方式执行。

提前致谢

最佳答案

CUFFT 与 FFTW 具有相同的行为,它计算非标准化的 FFT。 IFFT(FFT(A))=n A 其中 n 是 vector 的长度。长度 n 是样本数(不是 float 或字节数)。 FFTW 和 CUFFT 与 C2R 和 R2C 之间存在一些填充差异,这可能会破坏简单的比较,但对于 C2C 则不然。我会仔细检查您的数据设置和长度计算,并在 FFTW 和 CUFFT 中验证您的计划。

关于c++ - CUFFT 的比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com