Je suis en train de faire un filtrage avec FFT. J'utilise le plan r2r_1d et je ne sais pas comment faire la transformation inverse ...Comment faire réel inverse FFT réelle dans la bibliothèque FFTW
void PerformFiltering(double* data, int n)
{
/* FFT */
double* spectrum = new double[n];
fftw_plan plan;
plan = fftw_plan_r2r_1d(n, data, spectrum, FFTW_REDFT00, FFTW_ESTIMATE);
fftw_execute(plan); // signal to spectrum
fftw_destroy_plan(plan);
/* some filtering here */
/* Inverse FFT */
plan = fftw_plan_r2r_1d(n, spectrum, data, FFTW_REDFT00, FFTW_ESTIMATE);
fftw_execute(plan); // spectrum to signal (inverse FFT)
fftw_destroy_plan(plan);
}
que je fais toutes les choses? Je suis confus parce que dans ce complexe FFTW DFT vous pouvez définir une direction par transform drapeau comme ceci:
p = fftw_plan_dft_1d (N, dedans, dehors, FFTW_FORWARD, FFTW_ESTIMATE);
ou p = fftw_plan_dft_1d (N, IN, OUT, FFTW_BACKWARD, FFTW_ESTIMATE);