最新四章快速傅立叶变换FastFourierTransformP幻灯片.ppt
《最新四章快速傅立叶变换FastFourierTransformP幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新四章快速傅立叶变换FastFourierTransformP幻灯片.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一节第一节 直接计算直接计算DFTDFT的问题及改进途径的问题及改进途径1、问题的提出、问题的提出 设有限长序列设有限长序列x(n),非零值长度为非零值长度为N,若若对对x(n)进行一次进行一次DFT运算,共需运算,共需多大的运算多大的运算工作量工作量?计算成本计算成本?计算速度计算速度?()() nkN n kn N kNNNWWW周期性 nkmnkNmNWW可约性/nknk mNN mWW2jmnkmNe221NjjNee 0/2(/2) 11Nk NkNNNNWWWW 特殊点:nkNW 的特性2jnknkNNWe*()() ()nknkN n kn N kNNNNWWWW对称性Nknk
2、NNWWnNnkNNWW2、将长序列、将长序列DFT利用对称性和周期性分解为短利用对称性和周期性分解为短 序列序列DFT的的思路思路 因为因为DFT的运算量与的运算量与N2成正比的,如果一个成正比的,如果一个大大点数点数N的的DFT能分解为能分解为若干小点数若干小点数DFT的组合的组合,则,则显然可以达到显然可以达到减少运算工作量减少运算工作量的效果。的效果。N点点DFTN/2点点DFTN/2点点DFTN/4点点DFTN/4点点DFTN/4点点DFTN/4点点DFT.复乘:复乘:2N2222 NN22N22224444 NNNN42N FFT算法的基本思想:算法的基本思想: 利用利用DFT系数
3、的特性,合并系数的特性,合并DFT运算中的某些项运算中的某些项 把长序列把长序列DFT短序列短序列DFT,从而减少运算量。从而减少运算量。FFT算法分类算法分类:时间抽选法时间抽选法 DIT: Decimation-In-Time频率抽选法频率抽选法 DIF: Decimation-In-Frequency第三节第三节 按时间抽选的基按时间抽选的基2-FFT算法算法1、算法原理、算法原理 设输入序列长度为设输入序列长度为N=2M(M为正整数,将该序列为正整数,将该序列按时间顺序的奇偶分解按时间顺序的奇偶分解为越来越短的子序列,称为为越来越短的子序列,称为基基2按时间抽取的按时间抽取的FFT算法
4、。也称为算法。也称为Coolkey-Tukey算法。算法。 其中其中基基2表示:表示:N=2M,M为整数为整数.若不满足这个若不满足这个条件,可以人为地加上若干零值(条件,可以人为地加上若干零值(加零补长加零补长)使其)使其达到达到 N=2M。先将先将x(n)按按n的奇偶分为两组,作变量置换的奇偶分为两组,作变量置换: 当当n=偶数时,令偶数时,令n=2r; 当当n=奇数时,令奇数时,令n=2r+1; 分组,变量置换分组,变量置换2、算法步骤、算法步骤10)()()(10 NkWnxnxDFTkXNnnkN得到:得到:1,.,0)() 12()()2(221 Nrrxrxrxrx 带入带入DF
5、T中中 10)()()(NnnkNWnxnxDFTkX 12/0)12(12/02)12()2(NrkrNNrrkNWrxWrx 1010)()(NnnkNNnnkNnnWnxWnx为为奇奇数数为为偶偶数数 12/02212/021)()(NrrkNkNNrrkNWrxWWrx所以所以 12/02212/021)()()(NrrkNkNNrrkNWrxWWrxkX由于由于nNnNjnNjnNWeeW2/2/2222 12/02/212/02/1)()(NrrkNkNNrrkNWrxWWrx)()(21kXWkXkN 1, 1 , 02 Nk1, 1 , 0 Nk? ?1, 1 , 02 Nk
6、X1(k)、X2(k)只有只有N/2个点,以个点,以N/2为周期;而为周期;而X (k)却有却有N个点,以个点,以N为周期。要用为周期。要用X1(k)、X2(k)表达全部的表达全部的X (k) 值,还必须利用值,还必须利用WN系数的系数的周期特性周期特性。rkNkNrNWW2/)2/(2/ 12/02/112/0)2/(2/11)()()2/(NrrkNNrkNrNWrxWrxkNX )()2/()()2/(2211kXkNXkXkNX后半部分后半部分前半部分前半部分又考虑到又考虑到 的对称性:的对称性:kNWkNkNNNkNNWWWW 2/)2/()2/()2/()2/(2)2/(1kNXW
7、kNXkNXkNN 有:有:1, 1 , 0)()()(221 NkNkkXWkXkX1, 1 , 0)()(221 NkNkkXWkX后半部分后半部分前半部分前半部分)()()2/(21kXWkXkNXkN )()()(21kXWkXkXkN 1, 1 , 02 Nk)(1kX)(2kXkNW)()(21kXWkXkN )()(21kXWkXkN 蝶形运算流图符号蝶形运算流图符号说明:说明: (1) 左边两路为输入左边两路为输入 (2) 右边两路为输出右边两路为输出 (3) 中间以一个小圆表示加、中间以一个小圆表示加、 减运算(右上路为相加减运算(右上路为相加 输出、右下路为相减输输出、右下
8、路为相减输 出出)1个蝶形运算需要个蝶形运算需要1次复乘,次复乘,2次复加次复加复数乘法复数乘法复数加法复数加法一个一个N 点点DFTN 2N (N1)一个一个N / 2点点DFT(N / 2)2N / 2 (N / 2 1)两个两个N / 2点点DFTN 2 / 2N (N / 2 1)一个蝶形一个蝶形12N / 2个蝶形个蝶形N / 2N总计总计N2/2 + N/2 N2/2N(N/2-1) + N N2/2运算量减少了近一半运算量减少了近一半 分解后的运算量:分解后的运算量:)()()2/()()()(2121kXWkXNkXkXWkXkXkNkN 12/, 0 Nk先将先将N=8点的点
9、的DFT分解成分解成2个个4点点DFT:可知:可知:时域上:时域上:x(0),x(2),x(4),x(6)为偶子序列为偶子序列 x(1),x(3),x(5),x(7)为奇子序列为奇子序列 频域上:频域上:X(0)X(3),由,由X(k)给出给出 X(4)X(7),由,由X(k+N/2)给出给出例子:求例子:求 N=23=8点点FFT变换变换 按按N=8N/2=4,做做4点的点的DFT: N=8点的直接点的直接DFT的计算量为:的计算量为: 复乘:复乘:N2次次 = 64次次 复加:复加:N(N-1)次次 = 87=56次次)()()2/()()()(2121kXWkXNkXkXWkXkXkNk
10、N 12/, 0 Nk 此外,还有此外,还有4个蝶形结,每个蝶形结需要个蝶形结,每个蝶形结需要1次复乘,次复乘,2次复加。次复加。一共是:复乘一共是:复乘4次,复加次,复加8次。次。得到得到X1(k)和和X2(k)需要:需要: 复乘:复乘:(N/2)2+ (N/2)2次次 = 32次次 复加:复加:N/2(N/2-1)+N/2(N/2-1) =12+12 =24次次用分解的方法得到用分解的方法得到X (k)需要:需要: 复乘:复乘:32+4 = 36次次 复加:复加:24+8 = 32次次N点点DFT的一次时域抽取分解图的一次时域抽取分解图(N=8) 4点点DFT4点点DFTx(0)x(2)x
11、(4)x(6)x(1)x(3)x(5)x(7)X1(0)X1(1)X1(2)X1(3)X2(0)X2(1)X2(2)X2(3)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)38W28W18W08W 奇奇序序列列、偶偶序序列列、)6()2()4()0(: )(1xxxxrx 奇奇序序列列、偶偶序序列列、同同理理:)7()3()5() 1 (: )(2xxxxrx因为因为4点点DFT还是比较麻烦,所以再继续分解。还是比较麻烦,所以再继续分解。 若将若将N/2(4点点)子序列按奇子序列按奇/偶分解成两个偶分解成两个N/4点点(2点点)子子序列。即对将序列。即对将x1(r)和和x2(
12、r)分解成奇、偶两个分解成奇、偶两个N/4点点(2点点)点的子序列。点的子序列。1 , 0) 1.0()() 12()()2(44131 lllxlxlxlxN此此处处,奇奇序序列列偶偶序序列列设设:1 , 0) 1.0()() 12()()2(46252 lllxlxlxlxN此此处处,奇奇序序列列偶偶序序列列设设:那么,那么,X1(k)又可表示为又可表示为 14/0)12(2/114/022/11)12()2()(NlklNNllkNWlxWlxkX 14/04/42/14/04/3)()(NllkNkNNllkNWlxWWlx)()(42/3kXWkXKN 1,.1 , 0)()()()
13、()()(442/34142/31 NkNNkNkkXWkXkXkXWkXkX 14/0)12(2/214/022/22)21()2()(NlklNNllkNWlxWlxkX 14/04/62/14/04/5)()(NllkNkNNllkNWlxWWlx1,.1 , 0)()()()()()(462/54262/52 NkNNkNkkXWkXkXkXWkXkXX2(k)也可以进行相同的分解:也可以进行相同的分解: 注意:通常我们会把注意:通常我们会把 写成写成 。kNW2/kNW2)()(62/5kXWkXKN N点点DFT的第二次时域抽取分解图的第二次时域抽取分解图(N=8) 2点点DFT2
14、点点DFT2点点DFT2点点DFTx(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)X3(0)X3(1)X4(0)X4(1)X5(0)X5(1)X6(0)X6(1)08W28W08W28WX1(0)X1(1)X1(2)X1(3)X2(0)X2(1)X2(2)X2(3)38W28W18W08WX(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)4点点DFT4点点DFTx(0)x(2)x(4)x(6)x(1)x(3)x(5)x(7)X1(0)X1(1)X1(2)X1(3)X2(0)X2(1)X2(2)X2(3)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7
15、)38W28W18W08W)1()0()()()(32314/04/333xWxWlxlxDFTkXkNlklN )1()0()1()0()1()1()0()0(30233123330233xWxxWxXxWxX 8808WX3(0)X3(1)x(0)=x3(0)x(4)=x3(1)N点点DITFFT运算流图运算流图(N=8) x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) X(0) X(1) X(2) X(3) X(4) X(5) X(6) X(7) 0NW0NW0NW0NW0NW2NW0NW2NW0NW2NW1NW3NW3、DITFFT算法与直接计算算法与直
16、接计算DFT运算量的比较运算量的比较22log2NNN 1)、N=2M的的DFT运算可分成运算可分成M级,每一级有级,每一级有N/2个蝶形个蝶形 ,每个蝶形有一次复乘两次复加。,每个蝶形有一次复乘两次复加。NN2log2NN2log2)、所以、所以M级共有级共有 次复乘和次复乘和 次复加。次复加。3)、若直接计算、若直接计算DFT,需需N2次复乘和次复乘和N(N-1)次复加。次复加。显然,当显然,当N较大时,有:较大时,有:例如,例如,N=210=1024时时221048576204.8(/2)log5120NNNFFT算法与直接计算算法与直接计算DFT所需乘法次数的比较曲线所需乘法次数的比较
17、曲线4、DITFFT的运算规律及编程思想的运算规律及编程思想 FFT的每级(列)计算都是由的每级(列)计算都是由N个复数数据(输入)两个复数数据(输入)两两构成一个蝶型(共两构成一个蝶型(共N/2个蝶形)运算而得到另外个蝶形)运算而得到另外N个复数个复数数据(输出)。数据(输出)。 当数据输入到存储器以后,每一组运算的结果,当数据输入到存储器以后,每一组运算的结果,仍然存仍然存放在这同一组存储器中放在这同一组存储器中直到最后输出。直到最后输出。例:将例:将x(0)放在单元放在单元A(0)中,将中,将x(4)放在单元放在单元A(1)中,中,W80 放在一个暂存器中。放在一个暂存器中。将将x(0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 快速 傅立叶 变换 FastFourierTransformP 幻灯片
限制150内