【发布时间】:2016-04-28 11:31:16
【问题描述】:
我正在尝试在浮点数组上执行 ifft 和 fft。然而,两者的结果是相同的。你有什么主意吗? 为什么结果相同,即使我使用 FFTW_FORWARD 和 FFTW_BACKWARD 另一个?
int N=16;
fftwf_complex in[N], out[N];
fftwf_plan p1, q;
/* prepare a cosine wave */
for (i = 0; i < N; i++) {
in[i][0] = cos(3 * 2*M_PI*i/N);
in[i][1] = 0;
}
/* forward Fourier transform, save the result in 'out' */
p1 = fftwf_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftwf_execute(p1);
for (i = 0; i < N; i++)
cout << out[i][0] << endl;
fftwf_destroy_plan(p1);
printf("\nInverse transform:\n");
q = fftwf_plan_dft_1d(N, in, out, FFTW_BACKWARD, FFTW_ESTIMATE);
fftwf_execute(q);
for (i = 0; i < N; i++)
cout << out[i][0] << endl;
fftwf_destroy_plan(q);
【问题讨论】:
标签: c++ math signal-processing fft fftw