.DFT的计算工作量
两者的差别仅在指数的符号和因子1/N. 通常x(n)和 都是复数,所以计算一个
X(k)的值需要N次复数乘法运算,和 次
复数加法运算.那么,所有的X(k)就要N2次复
数乘法运算,N(N-1)次复数加法运算.当N很
大时,运算量将是惊人的,如N=1024,则要完
成1048576 次(一百多万次)运算.这样,难以做到实时处理.
二.改进的途径
1. 的对称性和周期性
利用上述特性,可以将有些项合并,并
将DFT分解为短序列,从而降低运算次数,提
高运算速度.1965年,库利(cooley)和图基
(Tukey)首先提出FFT算法.对于N点DFT,仅需
(N/2)log2N 次复数乘法运算.例如N=1024=210 时,
需要(1024/2)log2 210 =512*10=5120次。
5120/1048576=4.88% ,速度提高20倍
按时间抽取(DIT)的FFT算法 —库利-图基算法
一.算法原理(基2FFT)
(一)N/2点DFT
1.先将 按n的奇偶分为两组作DFT,设N=2L ,不足时,可补些零。这样有:
n为偶数时:
n为奇数时:由于:
所以,上式可表示为:
其中,
2.两点结论:
(1) X (k),X (k)均为N/2点的DFT。
(2) X(k)=X (k)+W X (k)只能确定出
X(k)的k= 个;
即前一半的结果。
3.X(k)的后一半的确定
同理,
这就是说,X1(k),X2(k)的后一半,分别
等于其前一半的值。
可见,X(k)的后一半,也完全由X1(k), X2 (k)的前一半所确定。
*N点的DFT可由两个N/2点的DFT来计算。
实现上式运算的流图称作蝶形运算
(1)N/2点的DFT运算量:复乘次数:
复加次数:
(2)两个N/2点的DFT运算量:复乘次数:
复加次数:
(3)N/2个蝶形运算的运算量:复乘次数:
复加次数:
例如 N=8 时的DFT,可以分解为两个
N/2=4点的DFT.具体方法如下:
(1)n为偶数时,即
分别记作:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !