当前位置: 代码迷 >> 多核软件开发 >> 怎么C++编程实现任意个数的FFT
  详细解决方案

怎么C++编程实现任意个数的FFT

热度:2071   发布时间:2013-02-26 00:00:00.0
【求助】如何C++编程实现任意个数的FFT
编了很久都不会,请大家能帮助的帮一下,不胜感激!
要求数组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,可以实现任意点数,见楼上的链接。
  相关解决方案