书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型第五章-快速傅立叶变换(FFT)课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4610620
  • 上传时间:2022-12-25
  • 格式:PPT
  • 页数:43
  • 大小:938KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第五章-快速傅立叶变换(FFT)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第五 快速 傅立叶 变换 FFT 课件
    资源描述:

    1、第五章第五章 快速傅立叶变换快速傅立叶变换(FFT)5.1 引言引言5.2 直接计算直接计算DFT的特点及减少运算量的基本途径的特点及减少运算量的基本途径5.3 基基2FFT算法算法5.1 引言引言影响数字信号处理发展的最主要因素之一是处理速度。DFT使计算机在频域处理信号成为可能,但是当N很大时,直接计算N点DFT的计算量非常大。快速傅立叶变换(FFT:Fast Fourier Transform)可使实现DFT的运算量下降几个数量级,从而使数字信号处理的速度大大提高。自从1965年第一篇DFT快速算法的论文发表以来,人们已经研究出多种FFT算法,它们的复杂度和运算效率各不相同。本章主要介绍

    2、最基本的基2FFT算法及其编程方法。5.2 直接计算直接计算DFT的特点及减少运算量的基本途径的特点及减少运算量的基本途径长度为N的序列x(n)的N点DFT为 的周期性:10)()()(NnknNnWnxnxDFTkX点k=0,1,N-1mNmNjlNmNjlNmNWeeW2)(2(5.2.1)mNW 的对称性:(5.2.2)(5.2.3)mNNmNWW2mNWmNmNNWW*222222NNjNjNWeeW5.3 基基2FFT算法算法5.3.1 DIT-FFT算法序列x(n)的N(N=2M)点DFT为knNNnNWnxnxDFTkX10)()()(点k=0,1,N-1将上面的和式按n的奇偶性

    3、分解为令x1(l)=x(2l),x2(l)=x(2l+1)。因为W2klN=WklN/2,所以上式可写成)12(12/0212/0)12()2()()()(lkNNllkNNlknNnknNnWlxWlxWnxWnxkX奇数偶数klNNlkNklNNlWlxWWlxkX2/12022/12/01)()()(5.3.1)(5.3.1)式说明,按n的奇偶性将x(n)分解为两个N/2长的序列x1(l)和x2(l),则N点DFT可分解为两个N/2点DFT来计算。用X1(k)和X2(k)分别表示将以上两式代入(5.3.1)式,并利用 和X1(k)、X2(k)的隐含周期性可得到:)3.3.5(,12,.,

    4、1,0,)()()()2.3.5(,12,.,1,0,)()()(12/02/22/2212/02/12/11NkWlxlxDFTkXNkWlxlxDFTkXNlklNNNlklNN点点kNNkNWW2这样,就将N点DFT的计算分解为计算两个N/2点离散傅立叶变换X1(k)和X2(k)。为了将如上分解过程用运算流图表示,以便估计其运算量,观察运算规律,总结编程方法,先介绍一种表示上式的蝶形图。蝶形图及其运算功能如图5.3.1所示。12,.1,0)()()2()()()(2121NkkXWkXNkXkXWkXkXkNkN图5.3.1 蝶形运算图ABCA CBA CB 根据图5.3.2可以求得第一

    5、次分解后的运算量。图5.3.2包括两个N/2点DFT和N/2个蝶形,每个 点DFT需要 次复数乘法和 次复数加法运算,每个蝶形只有一次复数乘法运算和两次复数加法运算。所以,总的复数乘法次数为总的复数加法次数为2N2)2(N2)12(NN2|)1(222)2(212NNNNNN22222)12(2NNNN图 5.3.2 8点DFT一次时域抽取分解运算流图N/2点DFTWN0N/2点DFTWN1WN2WN3x(0)X1(0)x(2)x(4)x(6)x(1)x(3)x(5)x(7)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、(6)X(7)N=8点DIT-FFT的运算流图如图5.3.3(a)所示。根据WkN/m=WkmN,将图5.3.3(a)转换成如图5.3.3(b)所示的标准形式的运算流图。(a)图5.3.3 8点DIT-FFT运算流图04NWx(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)

    7、A(7)04NW04NW04NW12NW02NW12NW02NW0NW1NW2NW3NWx(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)0NW1NW2NW3NW2NW0NW2NW0NW0NW0NW0NW0NW(b)图5.3.3 8点DIT-FFT运算流图5.3.2

    8、 DIT-FFT的运算效率DIT-FFT的运算效率指直接计算DFT的运算量与DIT-FFT的运算量之比。由图5.3.3可见,N=2M时,其DIT-FFT运算流图由M级蝶形构成,每级有N/2个蝶形。因此,每级需要N/2次复数乘法运算和N次复数加法运算,M级形共需复数乘法次数CM(2)和复数加法次数CA(2)分别为 (5.3.5)(5.3.6)NNMNCM2log22)2(NNMNCA2log)2(直接计算N点DFT的复数乘法次数为N2,复数加法次数为(N-1)。当N1时,N2/CM(2)1,所以N越大,DIT-FFT运算效率越高。DIT-FFT算法与DFT所需乘法次数与N的关系曲线如图5.3.4

    9、所示。例如,N=210=1024时,DIT-FFT的运算效率为而当N=211=2048时,8.20410210241024)2(22MCNFFTDITDFT的乘法次数的乘法次数37.372112048222)2(22MNMNNCNM图5.3.4 DIT-FFT与DFT所需乘法次数比较曲线N(取 样 点 数)1024512256128640直 接 计 算 DFTDIT-FFT算 法64128 2565121024乘 法 次 数(1000)5.3.3 DIT-FFT的运算规律及编程思想1.原位计算 由图5.3.3可以看出,DIT-FFT的运算过程很有规律。2.旋转因子的变化规律观察图5.3.3(a

    10、)不难发现,第L级共有2L-1个不同的旋转因子。N=23=8时的各级旋转因子表示如下:L=1时,J=0L=2时,J=0,1L=3时,J=0,1,2,3JJNpNLWWW24JJNpNLWWW22JJNpNLWWW2对N=2M的一般情况,第L级的旋转因子为 J=0,1,2,2L-1-1由于 2L=2M2L-M=N2L-M所以 J=0,1,2,2L-1-1,(5.3.7)(5.3.8)这样,就可按(5.3.7)式和(5.3.8)式确定第L级运算的旋转因子(实际编程序时,L为最外层循环变量)。JpNLWW2LMMLJNJNpNWWW22LMJp23.蝶形运算规律设序列x(n)经时域抽选(倒序)后,存

    11、入数组X中。如果蝶形运算的两个输入数据相距B个点,应用原位计算,则蝶形运算可表示成如下形式:XL(J)XL-1(J)+XL-1(J+B)WpN XL(J+B)XL-1(J)-XL-1(J+B)WpN式中 p=J2M-L;J=0,1,2L-1-1;L=1,2,M设式中,下标R表示取实部,I表示取虚部,)()()(11JXjJXJXRLIIIRRRIIIRRRIRLRIIIRRTJXBJXTJXBJXTJXJXTJXJXJjXJXJXpNBJXpNBJXTpNBJXpNBJXT)()()()()()()()()()()(2sin)(2cos)(2sin)(2cos)(IRpNLjTTWBJXT)(

    12、14.编程思想及程序框图仔细观察图 5.3.3,还可归纳出一些编程序有用的运算规律:第L级中,每个蝶形的两个输入数据相距B=2L-1个点;同一旋转因子对应着间隔为2L点的2M-L个蝶形。总结上述运算规律,便可采用下述运算方法。先从输入端(第1级)开始,逐级进行,共进行M级运算。当进行第L级运算时,依次求出2L-1个不同的旋转因子,每求出一个旋转因子,就计算完它对应的所有2M-L个蝶形。这样,我们可用三重循环程序实现DIT-FFT运算,程序框图如图 5.3.5 所示。图5.3.5 DIT-FFT运算和程序框图开 始送入 x(n),MN2 M倒 序L1,MJ0,B 1P2 M LJk J,N1,2

    13、LTkXWBkXkXBkXWBkXkXTpNpN)()()()()()(输 出结 束12LB5.序列的倒序DIT-FFT算法的输入序列的排序看起来似乎很乱,但仔细分析就会发现这种倒序是很有规律的。由于N=2M,因此顺序数可用M位二进制数(nM-1 nM-2n1n0)表示。M次偶奇时域抽选过程如图5.3.6所示。第一次按最低位n0的0和1将x(n)分解为偶奇两组,第二次又按次低位n1的0、1值分别对偶奇组分解;依次类推,第M次按nM-1位分解,最后所得二进制倒序数如图5.3.6所示。表5.3.1列出了N=8时以二进制数表示的顺序数和倒序数。图5.3.6 形成例序的树状图(N=23)0101010

    14、1010101(n2n1n0)200004261537100010110001101011111表 5.3.1 顺序和倒序二进制数对照表 形成倒序J后,将原存储器中存放的输入序列重新按倒序排列。设原输入序列x(n)先按自然顺序存入数组A中。例如,对N=8,A(0),A(1),A(2),A(7)中依次存放着x(0),x(1),x(7)。对x(n)的重新排序(倒序)规律如图5.3.7所示。倒序的程序框图如图5.3.8所示,图5.3.8中的虚线框内是完成计算倒序值的运算流程图。图 5.3.7 倒序规律x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)A(0)A(1)A(2)A(3)A(

    15、4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)x(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)图 5.3.8 倒序程序框图221NNLHJNLHI1,N1I J?T)J(A)J(X)I(A)I(XTJ K?LHK KJJ2KKKJJYNNY5.3.4 DIF-FFT在基2快速算法中,频域抽取法FFT也是一种常用的快速算法,简称DIF-FFT。设序列x(n)长度为N=2M,首先将x(n)前后对半分开,得到两个子序列,其DFT可表示为如下形式:12/012/02/12/0)2/(12/012/12/010)2()()2()()()()(

    16、)()(NnknNNnkNNNnNnkNNnknNNNnknNNnknNNnknNWNnxWnxWNnxWnxWnxWnxWnxnxDFTkX式中 WkN/2N=(-1)k=将X(k)分解成偶数组与奇数组,当k取偶数(k=2r,r=0,1,N/2-1)时,1 k=偶数-1 k=奇数rnNNnrnNNnWNnxnxWNnxnxrX22/12/0212/0)2()()2()()2(5.3.9)当k取奇数(k=2r+1,r=0,1,N/2-1)时令nrNnNNnrnNNnWWNnxnxWNnxnxrX2/212/0)12(12/0)2()()2()()12(5.3.10)12/,.2,1,0)2()

    17、()()2()()(221NnWNnxnxnxNnxnxnxnN将x1(n)和x2(n)分别代入(5.3.9)式和(5.3.10)式,可得 x1(n)、x2(n)和x(n)的关系也可用图5.3.9所示的蝶形运算流图符号表示。图5.3.10表示N=8时一次分解的运算流图。rnNNnrnNNnWnxrXWnxrX2/12/022/12/01)()12()()2(5.3.11)图 5.3.9 DIF-FFT蝶形运算流图符号x(n)2(Nnx)2()()(1NnxnxnxnNWNnxnxnx)2()()(2nNW图5.3.10 DIF-FFT一次分解运算流图(N=8)N/2点DFTWN0N/2点DFT

    18、WN1WN2WN3X(0)x1(0)X(2)X(4)X(6)X(1)X(3)X(5)X(7)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)图5.3.11示出了N=8时二次分解运算流图。这样继续分解下去,经过M-1次分解,最后分解为2M-1个2点DFT,2点DFT就是一个基本蝶形运算流图。当N=8时,经两次分解,便分解为四个2点DFT,如图5.3.11所示。N=8的完整DIF-FFT运算流图如图5.3.12所示。图5.3.11 DIF-FFT二次分解运算流图(N=8)N/4点DFTWN0WN1WN2WN3x(

    19、0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)X(0)X(4)X(2)X(6)X(1)X(5)X(3)X(7)WN0WN2WN0WN2N/4点DFTN/4点DFTN/4点DFT图5.3.12 DIF-FFT运算流图(N=8)WN0WN1WN2WN3WN0WN2WN0WN2WN0WN0WN0WN0X(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)5.3.5 IDFT的高效算法上述FFT算法流图也可以用于离散傅立叶逆变换(IDFT:Inverse Discrete Fourier Transform)。比较

    20、DFT和IDFT的运算公式:由DIF-FFT运算流图改成的DIT-IFFT运算流图如图5.3.13所示。rnNNkrnNNnWkXNnxIDEFnxWnxnxDEFkX1012/0)(1)()()()()(图 5.3.13 DIT-IFFT运算流图WN0WN1WN2WN3WN0WN0N1x(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)WN2WN2N1N1N1N1N1N1N1在实际中,有时为了防止运算过程中发生溢出,将1/N分配到每一级蝶形运算中。由于1/N=(1/2)M,因此每级的每个蝶形输出支路均有一相乘因子1/

    21、2,这种运算的蝶形流图如图5.3.14所示。由图可知,乘法次数比图5.3.13增加了(N/2)(M-1)次。图5.3.14 DIT-IFFT运算流图(防止溢出)WN02121x(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)212121WN121WN221WN3212121WN021WN2212121WN021WN22121WN02121WN0212121WN021WN021如果希望直接调用FFT子程序计算IFFT,则可用下面的方法:对上式两边同时取共轭,得knNNkknNNkWkXNnxWkXNnx1010)(1)()(1)(由于 因此*)(1)(1)(*10kXDFTNWkXNnxknNNk

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第五章-快速傅立叶变换(FFT)课件.ppt
    链接地址:https://www.163wenku.com/p-4610620.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库