编了很久都不会,请大家能帮助的帮一下,不胜感激!
要求数组a[N]存储待变换数据的实部,b[N]存储待变换数据的虚部,调用函数double fft(double a[],double b[])即可实现fft变换,最终结果实部存在c[N]、虚部存在d[N]中。
如a[4]={1,2,3,4}; b[4]={0,0,0,0};调用函数fft(a[],b[])能够返回(即实现Matlab中fft([1 2 3 4]))的功能
结果返回c[4]={10,-2,-2,-2}, d[4]={0 2 0 -2};
即是matlab中的结果[10.0000 -2.0000+2.0000i -2.0000 -2.0000+2.0000i];
请会的高手不吝赐教!
------解决方案--------------------------------------------------------
dft不限点数,就是耗时受不了;fft看基多少的,一般基2的就得是2^n点。当然,比较常用的快速算法是fftw,可以实现任意点数,见楼上的链接。