算法 FFT理论1

DFTFFT的运算量

  

 

 

N点DFT共需要N2次复数乘法和N(N-1)次复数加法,共4N2次实数乘法和(2N2+2N*(N-1))次实数加法。当N很大时,这是一个非常大的计算量。

利用FFT算法之后,任何一个N为2的整数幂(即N= 2M)的DFT,都可以通过M次分解,最后成为2点的DFT来计算。M次分解构成了从x(n)到X(k)的M级迭代计算,每级由N/2个蝶形运算组成。完成一个蝶形计算需一次乘法和两次复数加法。因此,完成N点的时间抽选FFT计算的总运算量为:

复数乘法次数:M*N/2=log2N*N/2

复数加法次数:M*2*N/2= log2N*N



大多数情况下复数乘法所花的时间最多,所以以复数乘法的计算次数来比较DFT与FFT的效率为:

DFT/FFT=2N/log2N。

 

 

 

 

posted @ 2010-11-13 19:55  MrYang  阅读(1125)  评论(1编辑  收藏  举报