数字信号处理程佩青件快速傅里叶变换PPT课件_第1页
数字信号处理程佩青件快速傅里叶变换PPT课件_第2页
数字信号处理程佩青件快速傅里叶变换PPT课件_第3页
数字信号处理程佩青件快速傅里叶变换PPT课件_第4页
数字信号处理程佩青件快速傅里叶变换PPT课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容DIT-FFT算法 DIF-FFT算法IFFT算法Chirp-FFT算法线性卷积的FFT算法第1页/共63页4.1 引言 FFT: Fast Fourier Transform 1965年,Cooley-Turky 发表文章机器计算傅里叶级数的一种算法,提出FFT算法,解决DFT运算量太大,在实际使用中受限制的问题。 FFT的应用。频谱分析、滤波器实现、实时信号处理等。 DSP芯片实现。TI公司的TMS 320c30,10MHz时钟,基2-FFT1024点FFT时间15ms。第2页/共63页 典型应用:信号频谱计算、系统分析等)()(kXnxDFT )()()(nynhnxFFTnhn

2、yIFFTFFTnx)()()( 系统分析系统分析 频谱分析与功率谱计算频谱分析与功率谱计算第3页/共63页4.2 直接计算DFT的问题及改进途径10)()(NnknNWnxkX10)(1)(NkknNWkXNnx1、 DFT与与IDFT( )Nx n点有限长序列第4页/共63页2、DFT与与IDFT运算特点运算特点复数乘法复数乘法复数加法复数加法一个一个X(k)NN 1N个个X(k)(N点点DFT)N 2N (N 1)10( )NnkNnx n Wajbcjdacbdj adcb同理:同理:IDFT运算量与运算量与DFT相同。相同。实数乘法实数乘法实数加法实数加法一次复乘一次复乘42一次复加

3、一次复加2一个一个X (k) 4N2N+2 (N 1)=2 (2N 1)N个个X (k)(N点点DFT)4N 22N (2N 1)第5页/共63页3、降低DFT运算量的考虑nkNW 的特性*()() ()nknkN n kn N kNNNNWWWW对称性()() nkN n kn N kNNNWWW周期性 nkmnkNmNWW可约性/nknk mNN mWW0/2(/2) 11Nk NkNNNNWWWW 特殊点:2jnknkNNWeNknkNNWWnNnkNNWW2jmnkmNe221NjjNee 第6页/共63页FFT算法分类算法分类:q 时间抽选法时间抽选法DIT: Decimation-

4、In-Timeq 频率抽选法频率抽选法DIF: Decimation-In-FrequencyFFTDFTDFTDFTDFT算法的基本思想: 利用系数的特性,合并运算中的某些项, 把长序列短序列,从而减少其运算量。第7页/共63页4.3 按时间抽取(DIT)的FFT算法12/.210) 12()()2()(21Nrrxrxrxrx,(Decimation In Time)1、算法原理设序列点数 N = 2L,L 为整数。 若不满足,则补零将序列将序列x(n)按按n的奇偶分成两组:的奇偶分成两组:N为为2的整数幂的的整数幂的FFT算法称算法称基基-2FFT算法算法。第8页/共63页将N点DFT定

5、义式分解为两个长度为N/2的DFT10)()()(NnknNWnxnxDFTkXkrNnNrrkNnNrWrxWrx)12(12/0212/0) 12()2( 为奇为偶 )(12/02/2)(2/12/0121)()(kXNrrkNkNkXrkNNrWrxWWrx)()()(21kXWkXkXkN记:记: (1 1)rkNrkNWW2/2(这一步利用:(这一步利用: ),0,1,./2 1r kN第9页/共63页再利用周期性求再利用周期性求X(k)的后半部分的后半部分/22NkNkkNNNNWWWW 又)(2)()()(222112/02/112/0)2/(2/11kXkNXkXWrxWrxk

6、NXNrrkNNrkNrNrkNkNrNWW2/)2/(2/)2()2()2()2(12/,.2 , 1 , 0)()()(2)2/(121kNXWkNXkNXNkkXWkXkXkNNkN,12/,.2 , 1 , 0)()(21NkkXWkXkN,第10页/共63页将上式表达的运算用一个专用“蝶形”信流图表示。)(1kX)(2kX)()(21kXWkXkN)()(21kXWkXkNkNW1212( )( )( )()( )( )2kNkNX kX kW XkNX kX kW Xk0,1,.,/21kN注:注:a. 上支路为加法,下支路为减法;上支路为加法,下支路为减法; b. 乘法运算的支路

7、标箭头和系数。乘法运算的支路标箭头和系数。第11页/共63页用“蝶形结”表示上面运算的分解: 328N)0(x)1 (x)2(x)3(x)4(x)5(x)6(x)7(x)0(X) 1 (X)2(X)3(X)4(X)5(X)6(X)7(X1NW0NW2NW3NW)0(1X)1 (1X)2(1X)3(1X)0(2X)1 (2X(3)2X)2(2XDFTN点2DFTN点2第12页/共63页分解后的运算量:分解后的运算量:复数乘法复数乘法复数加法复数加法一个一个N/2点点DFT(N/2)2N/2 (N/2 1)两个两个N/2点点DFTN2/2N (N/2 1)一个蝶形一个蝶形12N/2个蝶形个蝶形N/

8、2N总计总计22/2/2/2NNN2/2 1/2N NNN运算量减少了近一半运算量减少了近一半第13页/共63页进一步分解进一步分解MN2122MN2N4N由于由于 , 仍为偶数,因此,两个仍为偶数,因此,两个 点点DFTDFT又可同样进一步分解为又可同样进一步分解为4 4个个 点的点的DFTDFT。1314(2 )( )(21)( )xlx lxlx l0,1,.,/4 1lN13/2413/24( )( )( )()( )( )4kNkNX kXkWXkNX kXkWXk0,1,.,14Nk 第14页/共63页02/NW12/NW)(3lx)(4lx)2(x)4(x)6(x)0(x)0(1

9、X) 1 (1X)2(1X) 3(1X) 0(3X) 1 (3X)0(4X) 1 (4XDFTN点4DFTN点4“蝶形蝶形”信流图表示信流图表示 第15页/共63页N点DFT分解为四个N/4点的DFTDFTN点4DFTN点4DFTN点4DFTN点4)2(x)4( x)6( x)0( x) 1 ( x) 3 ( x)5(x)7( x0NW2NW0NW2NW1NW0NW2NW3NW)0(X) 1 (X)2(X) 3(X)4(X) 5(X)6(X)7(X)(.kX)(.nx第16页/共63页类似的分解一直继续下去,直到分解为最后的两类蝶形运算为止(2点DFT).如上述N=8=23,N/4=2点中:

10、类似进一步分解1点DFTx(0)1点DFTx(4)X3(0)X3(1)02W第17页/共63页进一步简化为蝶形流图:进一步简化为蝶形流图:0NWX3(0)X3(1)x(0)x(4)4()0()4()0()0(004/3xWxxWxXNN)4()0()4()0() 1 (014/3xWxxWxXNN因此因此8 8点点FFTFFT时间抽取方法的信流图如下时间抽取方法的信流图如下第18页/共63页)2(x)4(x)6(x)0(x) 1 ( x) 3 ( x)5(x)7(x0NW0NW0NW0NW第一级.0NW2NW0NW2NW 第二级.)(0kX1m)(1kX)(2kX)(3kX2m3m1NW0NW

11、2NW3NW)0(X) 1 (X)2(X)3(X)4(X)5(X)6(X)7(X 第三级.第19页/共63页FFT运算量与运算特点 1 N=2L时,共有L=log2N级运算;每一级有N/2个蝶形结。2每一级有N个数据中间数据),且每级只用到本级的转入中间数据,适合于迭代运算。3计算量: 每级N/2次复乘法,N次复加。(每蝶形只乘一次,加减各一次)。共有L*N/2=N/2log2N 次复乘法;复加法L*N=Nlog2N 次。与直接DFT定义式运算量相比(倍数) N2/(Nlog2N) 。当 N大时,此倍数很大。第20页/共63页222()2()loglog2FFmDFTNNNmFFTNN比较比较

12、DFT 参考P150 表4-1 图4-6可以直观看出,当点数N越大时,FFT的优点更突出。第21页/共63页按时间抽取FFT蝶形运算特点 1、关于FFT运算的混序与顺序处理(位倒序处理) 由于输入序列按时间序位的奇偶抽取,故输入序列是混序的,为此需要先进行混序处理。混序规律: x(n)按n位置进行码位(二进制)倒置规律输入,而非自然排序,即得到混序排列。所以称为位倒序处理。位倒序实现:(1)DSP实现采用位倒序寻址(2)通用计算机实现可以有两个方法:一是严格按照位倒序含义进行;二是倒进位的加N/2。第22页/共63页倒位序倒位序自然序自然序000000001004100101022010110

13、63011001141001015510101136110111771112 102( )()x nnn n n倒位序倒位序第23页/共63页第24页/共63页例计算 , 。计算 点FFT。用时间抽取输入倒序算法,问倒序前寄存器的数 和倒序后 的数据值?2)(nnx31.2 , 1 , 0n32N)13( x)13( x16913)13(2x5232 N210)01101()13(102)22()10110(48422)13(2x解:倒序前解:倒序前 倒序倒序 倒序为倒序为 倒序后倒序后 第25页/共63页DIT FFT中最主要的蝶形运算实现(1)参与蝶形运算的两类结点(信号)间“距离”(码地

14、址)与其所处的第几级蝶形有关;第m级的“结距离”为 (即原位计算迭代)(2)每级迭形结构为,12m)2(,.2 , 1LNLmrNmmmmmrNmmmmWkXkXkXWkXkXkX)2()()2()2()()(1111111第26页/共63页q 蝶形运算两节点的第一个节点为蝶形运算两节点的第一个节点为k值,表值,表示成示成L位二进制数,左移位二进制数,左移L m位,把右边位,把右边空出的位置补零,结果为空出的位置补零,结果为r的二进制数。的二进制数。2( )2L mrk(3) 的确定:的确定: 第第m级的级的r取值:取值:rNWkNW第27页/共63页DIT算法的其他形式流图 输入倒位序输出自

15、然序 输入自然序输出倒位序 输入输出均自然序 相同几何形状 输入倒位序输出自然序 输入自然序输出倒位序参考P154-155第28页/共63页时间抽取、时间抽取、 输入自然顺序、输入自然顺序、 输出倒位序的输出倒位序的FFTFFT流图流图 0NW0NW0NW2NW1110NW10NW2NW1111X(0)x(0)X(4)x(1)X(2)x(2)X(6)x(3)X(1)x(4)X(5)x(5)X(3)x(6)X(7)x(7)110NW0NW2NW1NW3NW11第29页/共63页 例 用FFT算法处理一幅NN点的二维图像,如用每秒可做10万次复数乘法的计算机,当N=1024时,问需要多少时间(不考

16、虑加法运算时间)? 解 当N=1024点时,FFT算法处理一幅二维图像所需复数乘法约为 次,仅为直接计算DFT所需时间的10万分之一。 即原需要3000小时,现在只需要2 分钟。 722210log2NN第30页/共63页4.4 按频率抽取(DIF)的FFT算法 与DIT-FFT算法类似分解,但是抽取的是X(k)。即分解X(k)成奇数与偶数序号的两个序列。 设: N = 2L,L 为整数。将X(k)按k的奇偶分组前,先将输入x(n)按n的顺序分成前后两半:(Decimation In Frequency)一、算法原理一、算法原理第31页/共63页12/12/0)()()(NNnnkNNnnkN

17、WnxWnxkX12/0)(212/02)()(NnknNNNnnkNNWnxWnx12/022/)()(NnnkNNkNNWnxWnxkNkNW) 1(2/2 10( )( 1)2NknkNnNx nx nW 0,1,.,1kN第32页/共63页下面讨论:的)(12,2kXrrk12/02/212/022) 1 ()()()()()2(NnnrNNNnrnNNWnxnxWnxnxrX12/02/212/0)12(2)2()()()()() 12(NnnrNnNNNnnrNNWWnxnxWnxnxrX按按k k的奇偶将的奇偶将X(k)X(k)分成两部分:分成两部分:显然:显然:。点的对应两个D

18、FTNrXrX2/) 12(),2(第33页/共63页nNNNWnxnxnxnxnxnx)()()()()()(2221)()(2NnxnxnNNNWnxnxnxnx)()()()(22nNW令:令:用蝶型结构图表示为:用蝶型结构图表示为:第34页/共63页x1(0)x1(1)-1x1(2)x1(3)-1x2(0)x2(1)-1x2(2)x2(3)-1N/2点DFTN/2点DFTx(0)x(7)x(1)x(2)x(3)x(4)x(5)x(6)X1(0)=X(0)X2(0)=X(1)X1(1)=X(2)X1(2)=X(4)X1(3)=X(6)X2(1)=X(3)X2(2)=X(5)X2(3)=X

19、(7)1NW0NW2NW3NW第35页/共63页311411/2( )( )(/4)( )( )(/4)nNx nx nx nNx nx nx nNW0,1,.,14Nn 313414( )(2 )( )( )(21)( )X kXkDFT x nXkXkDFT x n0,1,.,14Nk N/2仍为偶数,进一步分解:仍为偶数,进一步分解:N/2 N/4第36页/共63页x3(0)x3(1)-1-1x4(0)x4(1)N/4点DFTN/4点DFTx1(0)x1(1)x1(2)x1(3)X3(0)=X1(0)=X(0)X4(0)=X1(1)=X(2)X3(1)=X1(2)=X(4)X4(1)=X

20、1(3)=X(6)0/2NW1/2NWq 按照以上思路继续分解,即一个按照以上思路继续分解,即一个N/2的的DFT分解成两个分解成两个N/4点点DFT,直到只计算,直到只计算2点的点的DFT,这就是,这就是DIF-FFT算法。算法。第37页/共63页2个个1点的点的DFT蝶形流图蝶形流图 进一步简化为蝶形流图:1点DFTx3(0)1点DFTx3(1)X(0)X(4)02W02WX(0)X(4)x3(0)x3(1)第38页/共63页)2(x)4(x)6(x)0(x)1(x)3(x)5(x)7(x)0(X)1(X)2(X)3(X)4(X)5(X)6(X)7(X0NW0NW1NW2NW3NW0NW0

21、NW0NW2NW0NW2NW0NW1m第一级: 2m第二级:3m第三级:第39页/共63页二、按频率抽取FFT蝶形运算特点1)原位计算1111( )( )( )( )( )( )mmmrmmmNXkXkXjXjXkXj WrNW1( )mXk1( )mXj( )mXk( )mXj-1L级蝶形运算,每级级蝶形运算,每级N/2个蝶形,每个蝶形结构:个蝶形,每个蝶形结构:m表示第表示第m级迭代,级迭代,k,j表示数据所在的行数表示数据所在的行数第40页/共63页2)蝶形运算)蝶形运算对对N=2L点点FFT,输入自然序,输出倒位序,输入自然序,输出倒位序,两节点距离:两节点距离:2L-m=N / 2m

22、1111( )( )2( )22mmmmrmmmNmmNXkXkXkNNXkXkXkW第第m级运算:级运算:第41页/共63页q 蝶形运算两节点的第一个节点为蝶形运算两节点的第一个节点为k值,表示成值,表示成L位二进制数,左移位二进制数,左移m-1位,把右边空出的位位,把右边空出的位置补零,结果为置补零,结果为r的二进制数。的二进制数。rNW 的确定12( )2mrk存储单元存储单元输入序列输入序列x(n) : N个存储单元个存储单元rNW系数系数 :N / 2个存储单元个存储单元第42页/共63页三、三、DIT与与DIF的异同的异同q 基本蝶形不同基本蝶形不同2log2FNmN2logFaN

23、Nq DIT: 先复乘后加减先复乘后加减q DIF: 先减后复乘先减后复乘q 运算量相同运算量相同q 都可原位运算都可原位运算q DIT和和DIF的基本蝶形互为转置的基本蝶形互为转置第43页/共63页4.5 IDFT的FFT算法(FFT应用一) 一、从定义比较分析knNNkWkXNkXIDFTnx10)(1)()(10)()()(NnknNWnxnxDFTkX与与DFT的比较:的比较: 1)、旋转因子)、旋转因子WN-kn 的不同;的不同; 2)、结果还要乘)、结果还要乘 1/N。第44页/共63页 )(10*10*)(1)(1)()(kXDFTknNNkknNNkWkXNWkXNkXIDFT

24、nx二、实现算法二、实现算法直接使用直接使用FFT程序的算法程序的算法*)(1)(kXDFTNnx共轭FFT共轭乘1/ N( )X k*( )Xk( )x n直接调用FFT子程序计算IFFT的方法:第45页/共63页4.6 线性调频Z变换(Chirp-Z变换)算法 (FFT应用二)单位圆与非单位圆采样(a) 沿单位圆采样; (b) 沿AB弧采样 ooooABX(ej)RezRezjImzjImzAB(a)(b)X(ej)第46页/共63页 螺线采样螺线采样 0jImzRezo0A01.0zM1A0W01z0(M I)0zk=AW-k k=0, 1, , M-1 0000jjeWWeAA第47页

25、/共63页Chirp-Z变换的线性系统表示 x(n)2/ 2 )(nWnh2/ 2nnWAg(n)h(n)1 / h(n)X(zn)由于系统的单位脉冲响应由于系统的单位脉冲响应 可以想象为频率可以想象为频率随时间随时间(n)(n)呈线性增长的复指数序列。在雷达系统中呈线性增长的复指数序列。在雷达系统中, ,这这种信号称为种信号称为线性调频信号(线性调频信号(Chirp SignalChirp Signal),因此,这,因此,这里的变换称为里的变换称为线性调频线性调频Z Z变换变换。22)(nWnh第48页/共63页一、基本算法思路一、基本算法思路10)()()()()(Mmmnxmhnhnxn

26、yLMMd)1()(nMhnh2/LMmd4.7 线性卷积的FFT算法(FFT应用三)若若L点点x(n),M点点h(n),则直接计算其线性卷积则直接计算其线性卷积y(n)需运算量:需运算量:若系统满足线性相位,即:若系统满足线性相位,即:则需运算量:则需运算量:第49页/共63页FFT法:以圆周卷积代替线性卷积法:以圆周卷积代替线性卷积21mNML令 ( )01( )01x nnLx nLnN( )01( )01h nnMh nMnNN( )( )* ( )( ) ( )y nx nh nx nh n则 NN2log2NN2log2)()() 1nhFFTkH)()()2nxFFTkX)()(

27、)()3kXkHkY)()()4kYIFFTnyN总运算量:总运算量: 次乘法次乘法NNNmF2log23第50页/共63页比较直接计算和比较直接计算和FFT法计算的运算量法计算的运算量22(1 3/2*log)dmFmMLKmNN22241 3/2*(1log)106logmMMKMMM223logmMKL讨论:讨论:ML12NMLM 则1)当)当1NMLL 则2)当)当mLK 需采用分段卷积重叠相加法重叠保留法ML 第51页/共63页 x(n)长度很长时,将长度很长时,将x(n)分为分为L长的若干长的若干小的片段,小的片段,L与与M可比拟。可比拟。nLiniLnxnxi,其它,01) 1(

28、)()(iinxnx)()()()()(nhnxnyiinhnx)()(1 1、重叠相加法、重叠相加法iiny)( 则:则: 输出:输出:第52页/共63页)()()(nhnxnyii1MLN其中:其中:可以用圆周卷积计算:可以用圆周卷积计算:MN2 选选 ,上面圆周卷积可用,上面圆周卷积可用FFTFFT计算。计算。 )()()(nhnxnyiiN 由于由于yi(n)长度为长度为N,而,而xi(n)长度长度L ,必有,必有M-1点重叠,点重叠, yi(n)应相加才能构成最后应相加才能构成最后y(n)的。的。iinyny)()(第53页/共63页h(n)0N 1M 1x(n)0L2L3Lnnnn

29、nL 10 x0(n)N 10 x1(n)L2L 1LN 13L 10 x2(n)2L2LN 1重叠相加法图形重叠相加法图形第54页/共63页nnnN 10y0(n)x0(n) h (n)N2L2L N 100L N 1Ly1(n)x1(n) h (n)Ny2(n)x2(n) h (n)N第55页/共63页和上面的讨论一样, 用FFT法实现重叠相加法的步骤如下: 计算N点FFT, H(k)=DFTh(n); 计算N点FFT,Xi(k)=DFTxi(n); 相乘,Yi(k)=Xi(k)H(k); 计算N点IFFT,yi(n)=IDFTYi(k); 将各段yi(n)(包括重叠部分)相加, 。重叠相加的名称是由于各输出段的重叠部分相加而得名的。 )()(0nynyii第56页/共63页例例 已知序列已知序列xn=n+2,0 n 12, hn=1,2,1试试利用重叠相加法计算线性卷积利用重叠相加法计算线性卷积, 取取L=5 。yn=2, 7, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 41, 14解解: 重叠相加法重叠相加法x1n=2, 3, 4, 5, 6x2n=7,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论