您的位置:首页 > 其它

FFTW程序Demo

2016-04-28 16:14 375 查看
#include<stdio.h>
#include<stdlib.h>
#include <fftw3.h>
#include<string.h>
#include <complex.h>
int main()
{

fftw_complex *in, *out;

fftw_plan p;

int N=3;
in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);

out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);

for(int i=0;i<N;i++)
{
in[i][0]=i+1;
in[i][1]=0;
}
memset(out,0,sizeof(out));

p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(p);
for(int i=0;i<N;i++)
{
printf("%f %f i \n",out[i][0],out[i][1]);
}
p = fftw_plan_dft_1d(N, out, in, FFTW_BACKWARD, FFTW_ESTIMATE);
fftw_execute(p);
//...
for(int i=0;i<N;i++)
{
printf("%f %f i \n",in[i][0],in[i][1]);
}

fftw_destroy_plan(p);

fftw_free(in);
fftw_free(out);
return 0;

}


当n=3的时候结果为:

6.000000 0.000000 i
-1.500000 0.866025 i
-1.500000 -0.866025 i
3.000000 0.000000 i
6.000000 0.000000 i
9.000000 0.000000 i

当n=4的时候结果为:

10.000000 0.000000 i
-2.000000 2.000000 i
-2.000000 0.000000 i
-2.000000 -2.000000 i
4.000000 0.000000 i
8.000000 0.000000 i
12.000000 0.000000 i
16.000000 0.000000 i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: