逆复 FFTW 变换

信息处理 fft IFFT
2022-01-27 10:10:28

我一直在扫描所有 FFTW 文档,试图弄清楚如何对我的 FFT 频谱进行反演。

该文档仅提到如何使用相反的变换来逆 FFT 实数到复数的c2r变换。

任何地方都没有FFTW_INVERSE标志,但我怀疑FFTW_FORWARD/BACKWARD转换可能是我需要的。

即 FFT 的 FORWARD 和 IFFT 的 BACKWARD。文档谈到它翻转标志;我记得IFFT发生了类似的事情。

向后变换只是IFFT(用于前向变换)吗?如果没有,你如何实现IFFT?

2个回答

向后变换只是IFFT(用于前向变换)吗?

是的。

在此处比较“FFTW 实际计算的内容”

FFTW是一个不错的库。

真正的向前,真正的向后,复杂的向前,复杂的向后。

执行新计划时重新填充输入数组。对我有用,通过 MM 慷慨提供的链接查看文档以获取更多详细信息。

从工作代码中提取:

//--- 让 FFTW 通过 FFTW 计划进行 DFT

        fftw_plan 计划;

/*

//--- 真实 DFT

        thePlan = fftw_plan_dft_r2c_1d(theSignalN,        
                                        信号阵列,
                                        DftArray,
                                        FFTW_ESTIMATE );   

//--- 真实逆DFT

        thePlan = fftw_plan_dft_c2r_1d(theSignalN,
                                        DftArray,
                                        信号阵列,
                                        FFTW_ESTIMATE );

//--- 复数 DFT
                                        
        thePlan = fftw_plan_dft_1d(theSignalN,
                                    信号阵列,
                                    DftArray,
                                    FFTW_FORWARD,
                                    FFTW_ESTIMATE );
                                    
*/
//--- 完成逆 DFT

        thePlan = fftw_plan_dft_1d(theSignalN,
                                    DftArray,
                                    信号阵列,
                                    FFTW_BACKWARD,
                                    FFTW_ESTIMATE );

        fftw_execute(计划);
        fftw_destroy_plan(计划);