FFTW:只对真实的结果感兴趣
FFTW: Only interested in real result
我正在使用FFTW来计算二维复数数据的逆DFT。默认设置的输出(复数到复数)是复数,虚部不是零。然而,我只对结果的真实部分感兴趣,而对复杂部分不感兴趣。FFTW的交错实数复数输出对我来说并不理想,因为我想通过SSE对(实数)输出进行后处理。有没有办法从FFTW中获得唯一的实数数组?复杂到真实的计划似乎不起作用,因为输出不是真实的。
[时间|频率]域中的真实数据暗示了另一个域中关于零的共轭对称性。通过强制共轭对称(添加其自身的共轭翻转版本),可以有效地丢弃其他域中的虚部。这应该允许你在FFTW中使用真正的ifft,获得大约2倍的加速。请注意,FFTW实际ifft仅使用nfft/2+1个bin。
下面是一个1D示例来说明这一点:
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,如另一个答案
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- valgrind-hellgrind与泄漏检查的结果不同
- 用C++20 fmt限制结果的总大小
- 如何返回一个类的两个对象相加的结果
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 序列化,没有库的整数,得到奇怪的结果
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 在更改for循环的第三部分后,未使用for循环结果
- 使用二进制掩码 C++ ITK 获取感兴趣区域
- 使用感兴趣区域的等值线进行对象检测
- 自动矢量化感兴趣区域(作物)
- 设置感兴趣区域手
- 当我只对比较部分值感兴趣而不能假设另一部分的默认构造函数时,如何使用 std::lower_bound
- 视频文件中的感兴趣区域
- FFTW:只对真实的结果感兴趣
- 在Leptonica中获得Pix类型图像的感兴趣区域(ROI)
- 如何确定感兴趣的区域,然后使用opencvc++裁剪图像
- opencv MeanShift:这是感兴趣的区域