第四章 离散傅里叶变换精选文档.ppt
《第四章 离散傅里叶变换精选文档.ppt》由会员分享,可在线阅读,更多相关《第四章 离散傅里叶变换精选文档.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 离散傅里叶变离散傅里叶变换换本讲稿第一页,共七十一页本章目录本章目录4.1 引言24.34.3进一步减少运算量的措施进一步减少运算量的措施4.4其他快速算法的简介其他快速算法的简介4.2 4.2 基2FFT算法(重点)本讲稿第二页,共七十一页4.1 引言引言 DFTDFT在实际应用中很重要在实际应用中很重要:可以计算信号的频谱、可以计算信号的频谱、功率谱和线性卷积等。功率谱和线性卷积等。直接按直接按DFTDFT变换进行计算,当序列长度变换进行计算,当序列长度N N很大时,计算量很大时,计算量非常大,所需时间会很长。非常大,所需时间会很长。FFTFFT并不是一种与并不是一种与DFT
2、DFT不同的变换,而是不同的变换,而是DFTDFT的一种的一种快速计算的算法。快速计算的算法。3本讲稿第三页,共七十一页4.2 基基2FFT算法n n按时间抽取时间抽取时间抽取时间抽取的基2-FFT算法(DIT)n n按频率抽取频率抽取的基2-FFT算法(DIFDIF)n n快速快速傅里叶傅里叶逆逆变换变换(IFFT)直接计算DFT的问题及改进途径本讲稿第四页,共七十一页直接计算直接计算DFTDFT的问题及改进途径的问题及改进途径1、问题的提出、问题的提出 设有限长序列设有限长序列x(n),非零值长度为非零值长度为N,若对若对x(n)进行一次进行一次DFT运算,共需运算,共需多大的运算工作量多
3、大的运算工作量?计算成本计算成本?计算速度计算速度?本讲稿第五页,共七十一页2.DFT的运算量的运算量 回忆回忆DFT和和IDFT的变换式:的变换式:1)x(n)为为复数复数,也为也为复数复数。2)DFT与与IDFT的的计算量相当。计算量相当。注意:注意:本讲稿第六页,共七十一页计算机运算时(编程实现):计算机运算时(编程实现):N N次复乘,次复乘,次复乘,次复乘,N-1N-1次复加次复加次复加次复加 N N个点个点个点个点 以以DFT为例:为例:本讲稿第七页,共七十一页复数乘法复数乘法复数加法复数加法一个一个X(k)NN 1N个个X(k)(N点点DFT)N 2N(N 1)实数乘法实数乘法实
4、数加法实数加法一次复乘一次复乘42一次复加一次复加2一个一个X(k)4N2N+2(N 1)=2(2N 1)N个个X(k)(N点点DFT)4N 22N(2N 1)运算量运算量(a+jb)(c+jd)=(ac-bd)+j(bc+ad)本讲稿第八页,共七十一页例:计算一个例:计算一个 N点点DFT,共需共需N2次复乘次复乘。以做一次。以做一次 复乘复乘1s计,若计,若N=4096,所需时间为所需时间为例:石油勘探,有例:石油勘探,有24个通道的记录,每通道波形记个通道的记录,每通道波形记 录长度为录长度为5秒,若每秒抽样秒,若每秒抽样500点点/秒,秒,1)每道总抽样点数:)每道总抽样点数:500*
5、5=2500点点 2)24道总抽样点数:道总抽样点数:24*2500=6万点万点 3)DFT复乘运算时间:复乘运算时间:N2=(60000)2=36*108次次本讲稿第九页,共七十一页 由于计算量大,且要求由于计算量大,且要求相当大的内存相当大的内存,难以实现实时处理难以实现实时处理,限制了限制了DFT的应用。长期以来,人们一直在寻求一种能的应用。长期以来,人们一直在寻求一种能提高提高DFT运算速度运算速度的方法。的方法。FFT便是便是 Cooley&Tukey 在在1965 年提出的的快速算法,年提出的的快速算法,它可以使运算速度提高几百倍,从而使数字信号处理学科成为它可以使运算速度提高几百
6、倍,从而使数字信号处理学科成为一个新兴的应用学科。一个新兴的应用学科。本讲稿第十页,共七十一页改善改善DFTDFT运算效率的基本途径运算效率的基本途径 1、利用、利用DFT运算的系数运算的系数 的固有对称性和周期的固有对称性和周期 性,改善性,改善DFT的运算效率。的运算效率。1)对称性)对称性 2)周期性)周期性 3)可约性)可约性本讲稿第十一页,共七十一页本讲稿第十二页,共七十一页2、将长序列、将长序列DFT利用对称性和周期性分解为短利用对称性和周期性分解为短 序列序列DFT的的思路思路 因为因为DFT的运算量与的运算量与N2成正比的,如果一个成正比的,如果一个大点大点数数N的的DFT能分
7、解为能分解为若干小点数若干小点数DFT的组合的组合,则显然可以,则显然可以达到达到减少运算工作量减少运算工作量的效果。的效果。本讲稿第十三页,共七十一页N点点DFTN/2点点DFTN/2点点DFTN/4点点DFTN/4点点DFTN/4点点DFTN/4点点DFT.复乘:复乘:本讲稿第十四页,共七十一页 FFT算法的基本思想:算法的基本思想:n 利用利用DFT系数的特性,合并系数的特性,合并DFT运算中的某些项运算中的某些项n 把长序列把长序列DFT短序列短序列DFT,从而减少运算量。从而减少运算量。FFT算法分类算法分类:时间抽选法时间抽选法 DIT:Decimation-In-Time频率抽选
8、法频率抽选法 DIF:Decimation-In-Frequency本讲稿第十五页,共七十一页按时间抽选的基按时间抽选的基2-FFT算法算法1、算法原理、算法原理 设输入序列长度为设输入序列长度为N=2M(M为正整数,将该序列为正整数,将该序列按时按时间顺序的奇偶分解间顺序的奇偶分解为越来越短的子序列,称为基为越来越短的子序列,称为基2按时间抽按时间抽取的取的FFT算法。也称为算法。也称为Coolkey-Tukey算法。算法。其中其中基基2表示:表示:N=2M,M为整数为整数.若不满足这个条件,若不满足这个条件,可以人为地加上若干零值(可以人为地加上若干零值(加零补长加零补长)使其达到)使其达
9、到 N=2M。本讲稿第十六页,共七十一页先将先将x(n)按按n的奇偶分为两组,作变量置换的奇偶分为两组,作变量置换:当当n=偶数时,令偶数时,令n=2r;当当n=奇数时,令奇数时,令n=2r+1;n 分组,变量置换分组,变量置换2、算法步骤、算法步骤得到:得到:本讲稿第十七页,共七十一页n 带入带入DFT中中本讲稿第十八页,共七十一页所以所以 由于由于?本讲稿第十九页,共七十一页 X1(k)、X2(k)只有只有N/2个点,以个点,以N/2为周期;而为周期;而X(k)却有却有N个点,以个点,以N为周期。要用为周期。要用X1(k)、X2(k)表达全部的表达全部的X(k)值,还值,还必须利用必须利用
10、WN系数的系数的周期特性周期特性。本讲稿第二十页,共七十一页后半部分后半部分前半部分前半部分又考虑到又考虑到 的对称性:的对称性:有:有:本讲稿第二十一页,共七十一页后半部分后半部分前半部分前半部分蝶形运算流图符号蝶形运算流图符号说明:说明:(1)左边两路为输入左边两路为输入(2)右边两路为输出右边两路为输出(3)中间以一个小圆表示加、中间以一个小圆表示加、减运算(右上路为相加减运算(右上路为相加 输出、右下路为相减输输出、右下路为相减输 出出)1个蝶形运算需要个蝶形运算需要1次复乘,次复乘,2次复加次复加本讲稿第二十二页,共七十一页复数乘法复数乘法复数加法复数加法一个一个N 点点DFTN 2
11、N(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运算量减少了近一半运算量减少了近一半n 分解后的运算量:分解后的运算量:本讲稿第二十三页,共七十一页先将先将N=8点的点的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)
12、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次次 此外,还有此外,还有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-
13、1)=12+12=24次次用分解的方法得到用分解的方法得到X(k)需要:需要:复乘:复乘:32+4=36次次 复加:复加:24+8=32次次本讲稿第二十五页,共七十一页N点点DFT的一次时域抽取分解图的一次时域抽取分解图(N=8)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)本讲稿第二十六页,共七十一页因为因为4点点DFT还是比较麻烦,所以再继续分解。还是比较麻烦,所以再继续分解。若将若将N/2(4点点)子序列
14、按奇子序列按奇/偶分解成两个偶分解成两个N/4点点(2点点)子序子序列。即对将列。即对将x1(r)和和x2(r)分解成奇、偶两个分解成奇、偶两个N/4点点(2点点)点的子点的子序列。序列。本讲稿第二十七页,共七十一页那么,那么,X1(k)又可表示为又可表示为 本讲稿第二十八页,共七十一页X2(k)也可以进行相同的分解:也可以进行相同的分解:注意:通常我们会把注意:通常我们会把 写成写成 。本讲稿第二十九页,共七十一页N点点DFT的第二次时域抽取分解图的第二次时域抽取分解图(N=8)2点点DFT2点点DFT2点点DFT2点点DFTx(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)X
15、3(0)X3(1)X4(0)X4(1)X5(0)X5(1)X6(0)X6(1)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)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)本讲稿第三十页,共七十一页88X3(0)X3(1)x(0)=x3(0)x(4)=x3(1)本讲稿第三十一页,共七十一页N点点DITFFT运算流图运
16、算流图(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)本讲稿第三十二页,共七十一页3、DITFFT算法与直接计算算法与直接计算DFT运算量的比较运算量的比较1)、N=2M的的DFT运算可分成运算可分成M级,每一级有级,每一级有N/2个蝶形个蝶形 ,每个蝶形有一次复乘两次复加。,每个蝶形有一次复乘两次复加。2)、所以、所以M级共有级共有 次复乘和次复乘和 次复加。次复加。3)、若直接计算、若直接计算DFT,需需N2次复乘和次复乘和N(N-1)次复加。次复加。显然,当显然,当N较大时,有:较大时,有:例如,例
17、如,N=210=1024时时本讲稿第三十三页,共七十一页FFT算法与直接计算算法与直接计算DFT所需乘法次数的比较曲线所需乘法次数的比较曲线本讲稿第三十四页,共七十一页4、DITFFT的运算规律及编程思想的运算规律及编程思想 FFT的每级(列)计算都是由的每级(列)计算都是由N个复数数据(输入)两两构成个复数数据(输入)两两构成一个蝶型(共一个蝶型(共N/2个蝶形)运算而得到另外个蝶形)运算而得到另外N个复数数据(输出)。个复数数据(输出)。当数据输入到存储器以后,每一组运算的结果,当数据输入到存储器以后,每一组运算的结果,仍然存放在这仍然存放在这同一组存储器中同一组存储器中直到最后输出。直到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 离散傅里叶变换精选文档 第四 离散 傅里叶变换 精选 文档
限制150内