第四章快速傅里叶变换(FFT)_第1页
第四章快速傅里叶变换(FFT)_第2页
第四章快速傅里叶变换(FFT)_第3页
第四章快速傅里叶变换(FFT)_第4页
第四章快速傅里叶变换(FFT)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章快速傅里叶变换快速傅里叶变换(FFT)主要内容主要内容qDIT-FFT算法算法 qDIF-FFT算法算法qIFFT算法算法q线性卷积的线性卷积的FFT算法算法4.1 引言引言q FFT: Fast Fourier Transformq 1965年,年,Cooley-Turky 发表文章发表文章机器计算傅机器计算傅里叶级数的一种算法里叶级数的一种算法,提,提出出FFT算法,解决算法,解决DFT运算量太大,在实际使用中受限制的问题。运算量太大,在实际使用中受限制的问题。q FFT的应用。频谱分析、滤波器实现、实时信的应用。频谱分析、滤波器实现、实时信号处理等。号处理等。q DSP芯片实

2、现。芯片实现。q 典型应用:信号频谱计算、系统分析等典型应用:信号频谱计算、系统分析等)()(kXnxDFT )()()(nynhnxFFTnhnyIFFTFFTnx)()()( 系统分析系统分析 频谱分析与功率谱计算频谱分析与功率谱计算4.2 直接计算直接计算DFT的问题及改进途径的问题及改进途径10)()(NnknNWnxkX10)(1)(NkknNWkXNnx1、 DFT与与IDFT( )Nx n点有限长序列2、DFT与与IDFT运算特点运算特点复数乘法复数乘法复数加法复数加法一个一个X(k)NN 1N个个X(k)(N点点DFT)N 2N (N 1)10( )NnkNnx n Wajbc

3、jdacbdj adcb同理:同理:IDFT运算量与运算量与DFT相同。相同。实数乘法实数乘法实数加法实数加法一次复乘一次复乘42一次复加一次复加2一个一个X (k) 4N2N+2 (N 1)=2 (2N 1)N个个X (k)(N点点DFT)4N 22N (2N 1)3、降低、降低DFT运算量的考虑运算量的考虑nkNW 的特性*()() ()nknkN n kn N kNNNNWWWW对称性()() nkN n kn N kNNNWWW周期性 nkmnkNmNWW可约性/nknk mNN mWW0/2(/2) 11NkNkNNNNWWWW 特殊点:2jnknkNNWeNknkNNWWnNnkN

4、NWW2jmnkmNe221NjjNee FFT算法分类算法分类:q 时间抽选法时间抽选法DIT: Decimation-In-Timeq 频率抽选法频率抽选法DIF: Decimation-In-FrequencyFFTDFTDFTDFTDFT算法的基本思想: 利用系数的特性,合并运算中的某些项, 把长序列短序列,从而减少其运算量。4.3 按时间抽取(按时间抽取(DIT)的)的FFT算法算法12/.210) 12()()2()(21Nrrxrxrxrx,(Decimation In Time)1、算法原理、算法原理设序列点数设序列点数 N = 2L,L 为整数。为整数。 若不满足,则补零若不

5、满足,则补零将序列将序列x(n)按按n的奇偶分成两组:的奇偶分成两组:N为为2的整数幂的的整数幂的FFT算法称算法称基基-2FFT算法算法。将将N点点DFT定义式分解为两个长度为定义式分解为两个长度为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再利用周期性求再利

6、用周期性求X(k)的后半部分的后半部分/22NkNkkNNNNWWWW 又)(2)()()(222112/02/112/0)2/(2/11kXkNXkXWrxWrxkNXNrrkNNrkNrNrkNkNrNWW2/)2/(2/)2()2()2()2(12/,.2 , 1 , 0)()()(2)2/(121kNXWkNXkNXNkkXWkXkXkNNkN,12/,.2 , 1 , 0)()(21NkkXWkXkN,将上式表达的运算用一个专用将上式表达的运算用一个专用“蝶形蝶形”表示。表示。1212( )( )( )()( )( )2kNkNX kX kW XkNX kX kW Xk0,1,.,/

7、2 1kN蝶形结的另外一种表示方法蝶形结的另外一种表示方法)(1kX)(2kX)()(21kXWkXkN)()(21kXWkXkNkNW注:注:a. 上支路为加法,下支路为减法;上支路为加法,下支路为减法; b. 乘法运算的支路标箭头和系数。乘法运算的支路标箭头和系数。用用“蝶形结蝶形结”表示上面运算的分解:表示上面运算的分解: 328N分解后的运算量:分解后的运算量:复数乘法复数乘法复数加法复数加法一个一个N/2点点DFT(N/2)2N/2 (N/2 1)两个两个N/2点点DFTN2/2N (N/2 1)一个蝶形一个蝶形12N/2个蝶形个蝶形N/2N总计总计22/2/2/2NNN2/2 1/

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

9、(4XDFTN点4DFTN点4“蝶形蝶形”信流图表示信流图表示 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)(.nxq 类似的分解一直继续下去,直到分解为最类似的分解一直继续下去,直到分解为最后的两类蝶形运算为止后的两类蝶形运算为止(2点点DFT).q 如上述如上述N=8=23,N/4=2点中:点中: 类似进一步分解类似进

10、一步分解1点点DFTx(0)1点点DFTx(4)X3(0)X3(1)02W进一步简化为蝶形流图:进一步简化为蝶形流图: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时间抽取方法的信流图如下时间抽取方法的信流图如下)2(x)4(x)6(x)0(x) 1 ( x) 3 ( x)5(x)7(x0NW0NW0NW0NW第一级.0NW2NW0NW2NW 第二级.)(0kX1m)(1kX)(2kX)(3kX2m3m1NW0NW2NW3NW)0(X) 1 (X)2(

11、X)3(X)4(X)5(X)6(X)7(X 第三级.FFT运算量与运算特点运算量与运算特点 1 N=2L时,共有时,共有L=log2N级运算;每一级有级运算;每一级有N/2个蝶形结。个蝶形结。2每一级有每一级有N个数据个数据(中间数据中间数据),且每级只用到本级,且每级只用到本级的转入中间数据,适合于迭代运算。的转入中间数据,适合于迭代运算。3计算量:计算量: 每级每级N/2次复乘法,次复乘法,N次复加。(每蝶形只乘一次,次复加。(每蝶形只乘一次,加减各一次)。共有加减各一次)。共有L*N/2=N/2log2N 次复乘法;次复乘法;复加法复加法L*N=Nlog2N 次。与直接次。与直接DFT定

12、义式运算定义式运算量相比量相比(倍数倍数) N2/(Nlog2N) 。当。当 N大时,此倍数大时,此倍数很大。很大。222()2()loglog2FFmDFTNNNmFFTNN比较比较DFT 参考参考P150 表表4-1 图图4-6可以直观看出,当点数可以直观看出,当点数N越大时,越大时,FFT的优点更突出。的优点更突出。 例例 用用FFT算法处理一幅算法处理一幅NN点的二维图像,如用每秒可点的二维图像,如用每秒可做做10万次复数乘法的计算机,当万次复数乘法的计算机,当N=1024时,问需要多少时间时,问需要多少时间(不考虑加法运算时间)?(不考虑加法运算时间)? 解解 当当N=1024点时,

13、点时,FFT算法处理一幅二维图像所需复数乘算法处理一幅二维图像所需复数乘法约为法约为 次,仅为直接计算次,仅为直接计算DFT所需时间的所需时间的10万万分之一。分之一。 即原需要即原需要3000小时,现在只需要小时,现在只需要2 分钟。分钟。 722210log2NN4.4 按频率抽取(按频率抽取(DIF)的)的FFT算法算法q 与与DIT-FFT算法类似分解,但是抽取的是算法类似分解,但是抽取的是X(k)。即分解即分解X(k)成奇数与偶数序号的两个序列。成奇数与偶数序号的两个序列。q 设:设: N = 2L,L 为整数。将为整数。将X(k)按按k的奇偶分的奇偶分组前,先将输入组前,先将输入x

14、(n)按按n的顺序分成前后两半:的顺序分成前后两半:(Decimation In Frequency)一、算法原理一、算法原理12/12/0)()()(NNnnkNNnnkNWnxWnxkX12/0)(212/02)()(NnknNNNnnkNNWnxWnx12/022/)()(NnnkNNkNNWnxWnxkNkNW) 1(2/2 10( )( 1)2NknkNnNx nx nW 0,1,.,1kN下面讨论下面讨论:的)(12,2kXrrk12/02/212/022) 1 ()()()()()2(NnnrNNNnrnNNWnxnxWnxnxrX12/02/212/0)12(2)2()()()

15、()() 12(NnnrNnNNNnnrNNWWnxnxWnxnxrX按按k k的奇偶将的奇偶将X(k)X(k)分成两部分:分成两部分:显然:显然:。点的对应两个DFTNrXrX2/) 12(),2(nNNNWnxnxnxnxnxnx)()()()()()(2221)()(2NnxnxnNNNWnxnxnxnx)()()()(22nNW令:令:用蝶型结构图表示为:用蝶型结构图表示为: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(

16、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(7)1NW0NW2NW3NW311411/2( )( )(/4)( ) ( )(/4)nNx nx nx nNx nx nx nNW0,1,.,14Nn 313414( )(2 ) ( )( )(21)( )X kXkDFT x nX kXkDFT x n0,1,.,14Nk N/2仍为偶数,进一步分解:仍为偶数,进一步分解:N/2 N/4x3(0)x3(1)-1-1x4(0)x4(1)N/4点DFTN/4点DFTx1(0)x1(1)x1(2)x1(3)X3(0)=

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

18、)2(X)3(X)4(X)5(X)6(X)7(X0NW0NW1NW2NW3NW0NW0NW0NW2NW0NW2NW0NW1m第一级: 2m第二级:3m第三级:DIT与与DIF的异同的异同q 基本蝶形不同基本蝶形不同2log2FNmN2logFaNNq DIT: 先复乘后加减先复乘后加减q DIF: 先减后复乘先减后复乘q 运算量相同运算量相同q DIT和和DIF的基本蝶形互为转置的基本蝶形互为转置4.5 IDFT的的FFT算法算法(FFT应用)应用) 一、从定义比较分析一、从定义比较分析knNNkWkXNkXIDFTnx10)(1)()(10)()()(NnknNWnxnxDFTkX与与DFT

19、的比较:的比较: 1)、旋转因子)、旋转因子WN-kn 的不同;的不同; 2)、结果还要乘)、结果还要乘 1/N。 )(10*10*)(1)(1)()(kXDFTknNNkknNNkWkXNWkXNkXIDFTnx二、实现算法二、实现算法直接使用直接使用FFT程序的算法程序的算法*)(1)(kXDFTNnx共轭共轭FFT共轭共轭乘乘1/ N( )X k*( )Xk( )x n直接调用直接调用FFT子程序计算子程序计算IFFT的方法:的方法:一、基本算法思路一、基本算法思路10)()()()()(MmmnxmhnhnxnyLMMd)1()(nMhnh2/LMmd4.7 线性卷积的线性卷积的FFT

20、算法算法(FFT应用)应用)若若L点点x(n),M点点h(n),则直接计算其线性卷积则直接计算其线性卷积y(n)需运算量:需运算量:若系统满足线性相位,即:若系统满足线性相位,即:则需运算量:则需运算量:FFT法:以圆周卷积代替线性卷积法:以圆周卷积代替线性卷积21mNML令 ( )01( )01x nnLx nLnN( )01( )01h nnMh nMnNN( )( )* ( )( ) ( )y nx nh nx nh n则 NN2log2NN2log2NN2log2)()() 1nhFFTkH)()()2nxFFTkX)()()()3kXkHkY)()()4kYIFFTnyN总运算量:总

21、运算量: 次乘法次乘法NNNmF2log23比较直接计算和比较直接计算和FFT法计算的运算量法计算的运算量22(13/2*log)dmFmMLKmNN222413/2*(1log)106logmMMKMMM223logmMKL讨论:讨论:ML12NMLM 则1)当)当1NMLL 则2)当)当mLK 需采用分段卷积重叠相加法重叠保留法ML x(n)长度很长时,将长度很长时,将x(n)分为分为L长的若干长的若干小的片段,小的片段,L与与M可比拟。可比拟。nLiniLnxnxi,其它,01) 1()()(iinxnx)()()()()(nhnxnyiinhnx)()(1 1、重叠相加法、重叠相加法i

22、iny)( 则:则: 输出:输出:)()()(nhnxnyii1MLN其中:其中:可以用圆周卷积计算:可以用圆周卷积计算:MN2 选选 ,上面圆周卷积可用,上面圆周卷积可用FFTFFT计算。计算。 )()()(nhnxnyiiN 由于由于yi(n)长度为长度为N,而,而xi(n)长度长度L ,必有,必有M-1点重叠,点重叠, yi(n)应相加才能构成最后应相加才能构成最后y(n)的。的。iinyny)()(h(n)0N 1M 1x(n)0L2L3LnnnnnL 10 x0(n)N 10 x1(n)L2L 1LN 13L 10 x2(n)2L2LN 1重叠相加法图形重叠相加法图形nnnN 10y

23、0(n)x0(n) h (n)N2L2L N 100L N 1Ly1(n)x1(n) h (n)Ny2(n)x2(n) h (n)N和上面的讨论一样,和上面的讨论一样, 用用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)(包括重叠部分)相加,(包括重叠部分)相加, .重叠相加的名称是由于各输出段的重叠部分相加而得名的。重叠相加的名称是由于各输出段的重

24、叠部分相加而得名的。 )()(0nynyii例例 已知序列已知序列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, 8, 9, 10, 11x3n=12,13, 14y1n=2, 7, 12, 16, 20, 17, 6y2n= 7, 22, 32, 36, 40, 32, 11y3n=12, 37, 52, 41, 142 2、重叠保存法、重叠保存法q 此方法与上述方法稍有不同。此方法与上述方法稍有不同。q 先将先将x(n)分段,每段分段,每段L=N-

温馨提示

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

评论

0/150

提交评论