gpt4 book ai didi

c++ - FFTW:只对真实结果感兴趣

转载 作者:行者123 更新时间:2023-11-30 17:50:08 24 4
gpt4 key购买 nike

我正在使用 FFTW 来计算二维复数数据的逆 DFT。默认设置(复数到复数)的输出是复数,虚部不为零。但是,我只对结果的实部感兴趣,而不对复数部分感兴趣。 FFTW 的交错实数复数输出对我来说并不理想,因为我想通过 SSE 对(真实)输出进行后处理。有没有办法从 FFTW 获取纯实数数组?从复杂到真实的计划似乎不起作用,因为输出不是真实的。

最佳答案

[时间|频率]域中的真实数据意味着conjugate symmetry在另一个域中大约为零。通过强制共轭对称(添加自身的共轭翻转版本),您可以有效地丢弃另一个域中的虚部。这应该允许您在 FFTW 中使用真正的 ifft,获得大约 2 倍的加速。请注意,您仅将 nfft/2+1 bin 用于 FFTW 真实 ifft。

这是一个一维示例来说明这一点:

X = randn(8,1)+j*randn(8,1);
Xsym = .5*(X + conj(X([1 8:-1:2]'))); % force the symmetric condition
err = real(ifft(X)) - ifft(Xsym);

对于 2D IFFT,最好通过 2 次 1d ifft 执行 2d ifft as described in another answer

关于c++ - FFTW:只对真实结果感兴趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17444936/

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