FFTW库的安装及使用见链接:
https://blog.youkuaiyun.com/kissgoodbye2012/article/details/98037800
我的程序:(需要注意的是IFFT后的数值需要/N)
int FFT(int mode,COMPLEX *data, int N)
{
fftwf_plan p;
if (mode == 1)
{
p = fftwf_plan_dft_1d(N, (fftwf_complex *)data, (fftwf_complex *)data, FFTW_FORWARD, FFTW_ESTIMATE);
fftwf_execute(p); fftwf_destroy_plan(p);
}
else if (mode == -1)
{
p = fftwf_plan_dft_1d(N, (fftwf_complex *)data, (fftwf_complex *)data, FFTW_BACKWARD, FFTW_ESTIMATE);
fftwf_execute(p); fftwf_destroy_plan(p);
for (int i = 0; i < N; i++)
{
data[i].imag = data[i].imag / N;
data[i].real = data[i].real / N;
}
}
return 0;
}