




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
快速傅里叶变换(FFT)
快速傅里叶变换(FFT)是计算DFT的一种快速高效的算法。有限长序列在数字技术中占有很重要的地位,主要原因是由于其频谱可以离散化。有限长序列的DFT本身可以完全表达序列的频谱,所以DFT也可以直接对信号进行频谱分析。谱分析在通信技术、图象传输、语音压缩、生物医学等领域都得到应用。
虽然频谱分析和DFT运算很重要,但在很长一段时间里,由于DFT运算量太大,因此它并没有得到真正的运用,频谱分析也大多采用模拟信号滤波的方法解决。直到1965年美国IBM公司的库利和图基这两位科学家首次提出DFT运算的一种快速算法以后,情况才发生了根本变化,人们开始认识到DFT运算的一些内在规律,从而很快地发展和完善了一套高速有效的运算方法—快速付里叶变换(FFT)算法。FFT的出现,使DFT的运算大大简化,运算时间缩短1-2个数量级,FFT的问世使得DFT在实际中得到广泛应用。§6.1DFT运算的特点:
有限长序列x(n)进行一次DFT运算所需的运算量:一.DFT的运算量:
一般x(n)和都是复数,X(k)也是复数,所以计算一次DFT的运算量是:
在这些运算中,乘法比加法运算复杂,尤其是复数相乘,每个复数相乘包括4个实数相乘和2个实数相加,例:
又因每个复数相加包括2个实数相加,所以,每计算一个X(k)要进行4N次实数相乘和2N+2(N-1)=2(2N-1)次实数相加,因此,整个DFT运算需要4N2实数相乘和2N(2N-1)次实数相加。
计算一个X(k)值需:N次复数相乘和(N-1)次复数相加计算N点X(k)值需:次复数相乘和N(N-1)次复数相加
从上面的分析看到,在DFT计算中,不论是乘法和加法,运算量均与N2成正比。因此,N较大时,运算量十分可观。例:计算N=10点的DFT,需要100次复数相乘,而N=1024点时,需要1048576(一百多万)次复数乘法,如果要求实时处理,则要求有很高的计算速度才能完成上述计算量。反变换IDFT与DFT的运算结构相同,只是多乘一个常数1/N,所以二者的计算量相同。
考察DFT的运算特点发现,利用以下两个特性可减少运算量:1)系数是一个周期函数,利用它的周期性和对称性可改进运算,提高计算效率。二.DFT的运算特点周期性对称性
我们利用系数的周期性和对称性,考察它是如何简化DFT运算的过程。以N=4为例,的矩阵形式为:DFT的矩阵运算2)因为DFT的计算量正比于N2,N小计算量也就小。因此可以把长度为N点的大点数的DFT运算依次分解为若干个小点数的DFT来运算。
FFT算法正是基于以上两点基本思想来提高DFT的运算速度。FFT算法基本上可分为两大类:
按时间抽取FFT算法和按频率抽取FFT算法。结论:1)利用系数的周期性和对称性可以提高DFT的运算速度。上例中作一次DFT需N2=16次乘法运算,而FFT只需6次乘法运算。§6.2按时间抽取的FFT
为了保证N点DFT的运算分解,首先假设N是2的整幂次方,即N=2M
,M是正整数。
一.算法原理
(1)将序列按序号n的奇、偶分解为两个点子序列
DFT运算也相应分为两组:故:
显然,和都只含有N/2点DFT,所以X(k)也只包含k=0,1,…,N/2-1点的DFT,还必须利用系数的周期性和对称性,求出X(k)的后N/2点的DFT。(2)求:
可见,一个N点的DFT被分解为前后两个N/2点的DFT,这两个N/2点的DFT再合成为一个N点DFT。同理:再利用W系数的对称性:
以上两个表达式说明:只要我们计算出N/2个点的所有和的值,就等于求出N点的X(k)值,这使得DFT的运算量减少了约一半。上述两个公式的运算过程可用专用蝶形图表示:图(a)需要两次乘法、两次加减法,将图(a)简化成图(b),此时仅需一次乘法、两次加减法。按时间抽取的蝶形运算流图:
(3)和可以继续分解下去,可将N/2点的
子序列再按奇、偶项分解,一直到最后分解成
两两点的DFT为止。偶序列中的偶序列偶序列中的奇序列奇序列中的偶序列奇序列中的奇序列四个点DFT例:N=23=8按时间抽取的DFT分解过程
由于N/2仍是偶数,可以被2整除,因此可以对两个N/2点的DFT再分别作进一步的分解。将一个8点的DFT可以分解成四个2点的DFT,直到最后得到两两点的DFT为止。
由于这种方法每一步分解都是按输入序列是属于偶数还是奇数来抽取的,所以称为“按时间抽取的FFT算法”。N=8点按时间抽取的FFT运算流图第一级蝶形第二级蝶形第三级蝶形时间抽取法FFT的运算特点:(1)蝶形运算(2)原位运算结构(3)码位倒置变换(4)蝶形类型随迭代次数成倍增加(1)蝶形运算
对于N=2M,总可以通过M次分解最后分解成2点的DFT运算。这构成从x(n)到X(k)的M级运算过程。从上面流图可看到,每一级运算都由N/2个蝶形运算构成。因此每一级运算都需要N/2次复乘和N次复加,经过M级运算后总共需要的运算量为:复乘:复加:而直接进行DFT运算时则与N2成正比。算法的运算速度例:N=2048,N2=4194304,,显然,FFT要比直接DFT运算快得多。(2)原位运算结构(同址运算)FFT运算结构很有规律,它具有强烈的对称性,它的所有运算都可以由左下图所示的基本运算构成。由于运算结构规律,所以硬件实现起来简单,软件编程方便。
FFT的蝶形运算结构很经济,它可以采用原位运算。原位运算——
指当数据输入到存储器中以后,每一级运算的结果仍然储存在同一组存储器中,直到最后输出,中间无需其它任何存储器,称为原位运算。例如:输入数据A、B相应的存放在寄存器A(1)和A(2)中,当进行完蝶形运算后,输出和存放在A(1)中,输出差存放在A(2)中。下一级蝶形运算的输入数据又分别存放在A(1)和A(2)中,而把前一级输出的结果覆盖掉,直到最后输出,中间无需任何其它存储器。原位运算结构节省存储单元,可以降低设备成本,还可节省寻址的时间。(3)码位倒置变换对按时间抽取FFT的原位运算结构,如果输出按顺序输出,即顺序存放x(0),x(1),x(2),…,x(7),但它的输入x(n)却不是按自然顺序输入的,而是按x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7)存入,这种顺序看起来很杂乱,实际上它很有规律。当用二进制表示这个顺序时,它正好是“码位倒置”的顺序。例如:顺序输出码位倒置——指序号用二进制码形式表示,然后将二进制码的首尾颠倒。输入
在实际运算中,输入数据总是按自然顺序输入到存储单元,再通过变址运算将自然顺序转换成码位倒置顺序存储,然后再进行FFT的原位计算。目前有许多通用DSP芯片支持这种码位倒置的寻址功能。下表中以N=8为例给出码位倒置顺序IJ码位倒置的规律
(1)当I=J时,A(I)中存储的数不变,A(I)=A(J);(2)当I<J时,A(I)和A(J)的内容互换。即:
T=A(J);A(J)=A(I);A(I)=T(3)当I>J时,意味着A(I)和A(J)的内容已经互换过了,为了避免将已互换过的数据再次调换,所以A(I)和A(J)的内容不变。N=8点按时间抽取的FFT运算流图第一级蝶形第二级蝶形第三级蝶形观察N=23=8点FFT的蝶形系数:第一级:有一种类型的蝶形运算系数第二级:有二种类型的蝶形运算系数、第三级:有四种类型的蝶形运算系数、、、第L级:有种蝶形运算系数(4)蝶形图的系数将x(n)按n的顺序前后对半分开:§6.3按频率抽取的FFT频率抽取法是N=2M情况下的另外一种FFT算法按时间抽取FFT算法的基本思路按频率抽取FFT算法的基本思路x(n)按奇、偶一级级分开,X(k)按前一半、后一半一级级分开。X(k)按奇、偶一级级分开,x(n)按前后对半一次次分开。一.按频率抽取法的FFT算法原理按k的奇、偶把X(k)进一步分解为两部分:a)k为偶数,令k=2rb)k为奇数,令k=2r+1按频率抽取的蝶形运算流图:例:以N=8按频率抽取的FFT把8点DFT分解成两个4点的DFTK为偶数X(2r)K为奇数X(2r+1)将两个4点DFT再分解成四个2点DFT
由于N/2仍是偶数可以继续分解,直到分解为两两点的DFT为止。下图是N=8按频率抽取的FFT流图频率抽取法的分解过程:
(1)把输入序列前后对半分;(2)输出按k值的奇、偶将X(k)分解为奇数组和偶数组两部分;(3)输入如果按顺序输入,输出则是码位倒置形式。按频率抽取法FFT的运算特点:(1)蝶形运算的运算量其运算量与按时间抽取运算量相同。即:复乘:复加:(2)输入如果是自然顺序,输出则是码位倒置形式。如果要求输出为自然顺序,则需要进行变址运算。按频率抽取的FFT流图可以由按时域抽取的FFT流图转置而得到。转置指将流图中所有支路的方向反,并将输入变输出,输出变输入。
频率抽取法的基本蝶形图与时间抽取法的基本蝶形图有所不同。时间抽取法是先乘后加、减,频率抽取法是先加、减,再乘系数按频率抽取的蝶形运算流图按时间抽取的蝶形运算流图
按时间抽取的FFT算法以及按频率抽取的FFT算法是DFT的两种快速算法,这些算法同样可以用於IDFT,我们称为快速傅立叶反变换(IFFT)。我们把IDFT公式与DFT公式作以比较:(1)DFT中的系数(2)IDFT中要乘以常数§6.4IDFT的快速算法IFFT另外一种IFFT算法的实现
以上讨论的时间抽取或频率抽取的FFT运算均可直接用于IFFT运算。但需要将蝶形系数改为,每级乘以系数1/2。IFFT计算分为三步:①将X(k)取共轭(虚部乘以-1);
②对直接作FFT;③对FFT的结果取共轭并乘以1/N,就得到x(n)。
按上述方法求得的IFFT,完全不需要改动FFT程序,FFT和
IFFT可以共用一个程序。总结FFT和IFFT蝶形图的表示方法:按时间抽取的FFT变到IFFT时,对应的流图应该是按频率抽取的IFFT。因为:按时间抽取的FFT
输入变量是x(n)x(n)按奇、偶分解按频率抽取的IFFT
输入变量是X(k)X(k)按奇、偶分解同理,按频率抽取的FFT变到IFFT时,对应的流图应该是按时间抽取的IFFT。
(1)输入按奇、偶分解:
(2)输入按前、后分解:§6.5任意基数的FFT算法
前面讨论的FFT算法,序列的长度均满足N=2M,这种情况实际使用得最多,因为它程序简单,效率高,使用方便。如果不满足N=2M,处理方法有两种:①
补零:将x(n)补零,使N增加到临近的一个值,满足N=2M
。
例如:N=30,补上x(30)=x(31)=0两个零点,使得满足N=25=32,这样可直接调用以2为基数的FFT
运算。有限长序列补零后并不影响其频谱,补零只是频谱的采样点数增加了。②
如,如果要求N点DFT值,几乎要补一半0值(2044个0),显然用第一种方法处理很不经济,因此,如果要求求准确的N点DFT值,可采用任意基数的FFT算法,但其运算效率低于以2为基数的FFT算法。任意基数的FFT算法的基本思想首先要求N可以分解成因子乘积的形式,N不能是素数。任意基数的FFT算法的基本思想仍是把一个大N点的FFT尽量分解为小点数的FFT。首先将N分解为两个整数p与q的乘积,即:,其步骤为:(1)将序列x(n)分成p组p组r=0,1,…,q-1(2)将N点DFT分成p组q点的DFT来运算例:N=6
p=3q=2P组§6.6Chirp-z变换(简称CZT)
采用FFT可以算出全部N点DFT值,而DFT值是Z变换X(z)在Z平面单位圆上的等间隔取样值,但有些情况下不需要求出全部的DFT值。例如:①对于窄带信号,只需要对信号所在的一段频带进行谱分析,这时,希望频谱的采样集中在这一段频带内,以获得较高的分辨率,而频带以外部分可不考虑。②语音信号处理中,需要知道Z变换的极点所在的复频率位置,即共振峰的位置。如果极点位置离单位圆较远,则其单位圆上的频谱会很平滑,如果采样不是沿单位圆而是沿一条接近这些极点的弧线进行,则在极点所在的频率上将出现明显的尖峰,这些尖峰就是共振峰,它可较准确地测定极点对应的频率。
③当N是素数时,不能采用任意基数的FFT算法。鉴于以上三种情况,我们提出一种最有效的变换—螺线采样,或称为Chirp-z变换。螺线采样是FFT的另外一种快速算法,它是沿着一条螺旋线的采样。一.算法原理:首先对Z平面单位圆内的一段螺线作M等分采样。令采样点
zk=AW-k
,k=0,…,M-1,M为采样点数,A0表示起始取样点的半径长度,通常A0≤1θ0表示起始取样点的相角φ0表示两相邻点之间的等分角A、W为任意复数,其中:W0表示螺旋线的伸展率,则随K的增大螺线外伸,则螺线内缩(反时针),W0=1表示半径为A0的一段圆弧,若A0=1表示这段圆弧是单位圆的一部分。把代入zk=AW-k
,计算Z变换在采样点zk的值:
为了能够利用FFT运算,想办法把Z变换转换为线性卷积形式运算,从而可采用FFT进行,这样可大大提高计算速度。Z变换在采样点zk上的值为:zk=AW-k令:则
上式说明,如对信号x(n)先进行一次加权处理,加权系数为,然后通过一个单位脉冲响应为h(n)的线性系统,最后对该系统的前M点输出再作一次加权,就可得到全部M点的螺旋线采样值。系统的单位脉冲响应是具有二次相位的复指数信号,h(n)可以想象为频率随时间n成线性增长的复指数序列,它和雷达系统中的线性调频信号相似,因此称为Chirp-z变换。二.CZT的算法实现输入信号是有限长序列,长度为N,但是无限长序列,而计算0~M-1点卷积中h(n)取值只需要n=-(N-1)~M-1那一部分的值。因此,可以认为h(n)是一个有限长序列,其长度为L=N+M-1。所以,把Chirp-z变换可以看成两个有限长序列的线性卷积。可利用圆圈卷积通过FFT来实现。h(n)的主值序列可由h(n)作周期延拓后取0≤n≤L-1部分值获得,将与g(n)作圆周卷积后,其输出的前M个值就是Chirp-z变换的M个值。这个圆周卷积的过程可在频域用FFT实现。Chirp-z变换的计算步骤:
(1)求h(n)的主值序列
(2)求的L点的FFT:H(k)=FFT[](3)对x(n)加权并补零(4)G(k)=FFT[g(n)],L点(5)Y(k)=G(k)H(k),L点(6)y(n)=IFFT[Y(k)],L点(7),0≤k≤M-1
利用FFT计算Chirp-z变换Chirp-z变换的特点:1)输入序列长度N与输出序列长度M不需要相等;2)N及M不必是高度复合数,二者均可为素数;3)相邻采样点zk之间的角间隔φ0是任意的,即频率分辨率是任意的;4)围线是任意的,不必是Z平面上的圆;5)起始点z0可任意选定,即可从任意频率上开始对输入数据进行窄带高分辨率分析;6)若A=1,M=N,,可用Chirp-z变换计算
DFT(即使N为素数)。
§6.7线性卷积的FFT算法线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上。第二章中已讨论过,线性卷积可以用圆周卷积的方法替代,为了不产生混叠,序列长度将:
长度为N2的序列x(n)延长到L
,补L-N2个零,长度为N1的序列h(n)延长到L
,补L-N1个零,如果L≥N1+N2-1,则圆周卷积与线性卷积相等,此时,可用FFT运算替代线性卷积,方法如下:
a.计算X(k)=FFT[x(n)]b.求H(k)=FFT[h(n)]c.求Y(k)=H(k)X(k)k=0~L-1d.求y(n)=IFFT[Y(k)]n=0~L-1
可见,只要进行二次FFT,一次IFFT就可完成线性卷积计算。计算表明,L>32时,上述计算线性卷积的方法比直接计算线卷积有明显的优越性。因此,也称圆周卷积的方法为快速卷积法。
上述方法适用于x(n)、h(n)两序列长度比较接近或相等的情况。如果x(n)、h(n)长度相差较多,例如:h(n)为某滤波器的单位脉冲响应,长度有限,用来处理一个很长很长的输入信号x(n),按上述方法,h(n)要补许多零值后再进行计算,这降低了运算速度,发挥不出圆周卷积的优点。为了保持快速卷积法的优越性,可将x(n)分为许多段,每段的长度与h(n)接近,处理方法有两种:
(1)重叠相加法(2)重叠保留法(1)重叠相加法——由分段卷积的各段相加构
成总的卷积输出h(n)x(n)序列长度为序列长度为
假定表示x(n)序列的第i段:
则输入序列可表为:于是输出可分解为:
其中d.重叠部分相加构成最后的输出序列。重叠相加法计算步骤:a.
先对h(n)及补零,补到具有N点长度,
N=N1+N2-1,并且满足N=2M。b.用N点FFT计算c.用N点FFT计算
由于的长度为N,而的长度为N2,因此相邻两段序列必然有N-N2=N1-1点发生重叠,最后的输出应该是这些重叠部分相加起来,再和不重叠部分共同组成输出序列。重叠相加法对处理一个无限长的语音信号或地震信号都是十分有效的。有N1-1个点发生重叠(2)重叠保留法
这种方法和第一种方法稍有不同,即将上面分段序列中补零的部分不是补零,而是保留原来的输入序列值,如果利用FFT实现h(n)和xi(n)的圆周卷积,则每段卷积结果中有N1-1个点不等于线性卷积值需舍去。
重叠保留法与重叠相加法的计算量差不多,但省去了重叠相加法最后的相加运算。h(n)x(n)序列长度为序列长度为(1)重叠相加法(2)重叠保留法保留点的输入序列值FFT应用中的几个问题实数序列的FFT
以上讨论的FFT算法都是复数运算,包括序列x(n)也认为是复数,但大多数场合,信号是实数序列,任何实数都可看成虚部为零的复数。例如,求某实信号x(n)的复谱,可认为是实信号加上数值为零的虚部组成复信号(x(n)+j0),再用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急症抢救操作流程
- 针对复习的CFA试题及答案传授
- 2024年特许金融分析师考试必考试题及答案
- 《第十四章 整式的乘法与因式分解》专题复习与单元检测试卷
- 追随百岁老人探寻长寿秘诀
- 心肌梗死的主要护理诊断
- 2024年特许金融分析师考试考生心声分享试题及答案
- 山东省郯城第一中学2024-2025学年高三下学期第二次模拟考试地理试题(原卷版)
- 湖北省襄阳市第四中学2024-2025学年高一下学期2月月考地理试题(原卷版)
- 教学课件说明范文
- 希沃白板5考题及答案
- 青岛市2025年高三年级第一次适应性检测语文试题及参考答案
- 2025年药物制剂工(中级)考试题库(附答案)
- DB11∕T1481-2024生产经营单位生产安全事故应急预案评审规范
- 《电力系统及其组成部分》课件
- 《读读童谣和儿歌》(一-四测)阅读练习题
- 人力资源总监数据述职报告
- 2025年湖北国土资源职业学院单招职业技能测试题库及答案一套
- 七年级数学下册 第8章 单元测试卷(苏科版 2025年春)
- 2024年煤矿安全管理人员考试试题库(含答案)
- 上海市第一至十八届高一物理基础知识竞赛试题及答案
评论
0/150
提交评论