FFTW3向后对我不起作用

时间:2013-02-25 20:23:43

标签: c fftw

首先,我为我糟糕的英语道歉...

所以这是我的问题。我正在测试FFTW3库,带有一个简单的输入信号,一个连续的信号。然后我计算FFT并获得良好的结果:只是频率为0的信号,其他一切都为0。

然后我想用反向FFT返回我的输入,但它不起作用。这是我的代码:

fftw_complex* imgIn;
fftw_complex* imgIn2;
fftw_complex* imgOut;
fftw_plan plan;

int taille = 100;
int i;

 //Allocation des entrées et sorties
imgIn = fftw_malloc(sizeof(fftw_complex)*taille);
imgIn2 = fftw_malloc(sizeof(fftw_complex)*taille);
imgOut = fftw_malloc(sizeof(fftw_complex)*taille);

//Remplissage des données d'entrées pour le calcul de la FFT
for(i = 0 ; i < taille ; i++){
    imgIn[i][0] = 1.0;
    imgIn[i][1] = 0.0;
}

//Plan d'execution
plan = fftw_plan_dft_2d(taille/10, taille/10, imgIn, imgOut, FFTW_FORWARD, FFTW_ESTIMATE);

//Execute la FFT
fftw_execute(plan);

//Inverse
plan = fftw_plan_dft_2d(taille/10, taille/10, imgOut, imgIn2, FFTW_BACKWARD, FFTW_ESTIMATE);

for(i = 0 ; i < taille ; i++){
    printf("%d : %g\n%d : %g\n", i, imgIn2[i][0], i, imgIn2[i][1]);
}

如您所见,我只是尝试执行正常的FFT,然后将其反转。问题是我的输出imgIn2只是0,而不是1和0 ...

我的代码出了什么问题?

谢谢:)

1 个答案:

答案 0 :(得分:2)

您的代码未执行第二个计划。