J'essaie de faire ifft et fft sur un tableau à virgule flottante. Cependant, le résultat est le même pour les deux. Avez-vous une idée? Pourquoi les résultats sont-ils les mêmes, même si j'utilise FFTW_FORWARD pour un et FFTW_BACKWARD pour un autre?FFT et IFFT avec FFTW
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);
génial! Merci beaucoup! –