




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 快速傅里叶变换快速傅里叶变换(FFT)(FFT)4.1 4.1 引言引言直接计算DFT的计算量与变换区间长度N的平方成正比,当N较大时,计算量太大,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。自从1965年库利(T. W. Cooley)和图基(J. W. Tuky)在计算数学杂志上发表了著名的机器计算傅里叶级数的一种算法论文,就形成现在的快速傅里叶变换(FFT)。FFT使DFT的运算效率提高了1 2个数量级,为数字信号处理技术应用于各种信号的实时处理创造了条件,大大推动了数字信号处理技术的发展。问题问题解决方法解决方法结果结果4.2 4.2 基基2FFT2FFT算
2、法算法 4.2.1 直接计算直接计算DFT的特点及减少运算量的基本途径的特点及减少运算量的基本途径 有限长序列x(n)的N点DFT10110 )()(NnknNNkWnxkX,ajbcjdacbdj adcb计算量计算量 4.2.1 直接计算直接计算DFT的特点及减少运算量的基本途径的特点及减少运算量的基本途径 改善途径改善途径利用旋转因子的周期性、对称性、可约性mNmNlNmNlNmNWW2j)(2jee周期性对称性可约性*()()( )nknkN n kn N kNNNNWWWWNknkNNWWnNnkNNWWmNNmNWWmNmNNWW*mNNmNWW2/nknk mNN mWWnkmn
3、kNmNWW特殊点/21NNW kNNkNWW2/NjNeW2并不是一种新的变换形式,只是DFT的一种快速算法并且根据序列的分解和选取方法的不同而产生了FFT的多种算法。不断地把长序列的DFT分解成几个短序列的DFT,并利用旋转因子的周期性和对称性来减少DFT的运算次数。 4.2.1 直接计算直接计算DFT的特点及减少运算量的基本途径的特点及减少运算量的基本途径 FFT:FFT算法思想FFT应用:在离散傅里叶反变换、线性卷积、线性相关等方面 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理时域抽取法FFT(DecimationIn Time FFT,简称DITFFT ) 频域抽取法
4、FFT (Decimation In Frequency FFT,简称DIFFFT)长度N满足N=2M(M为整数),若不满足将序列补零延长,使其满足长度要求FFT算法分类基2FFT算法本节主要介绍2、时域与频域抽取的基2FFT算法3、FFT程序实现1、FFT的基本思想按抽取方式按基数分基2-FFT算法、基4-FFT算法、混合基FFT算法、分裂基FFT算法 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理1、基2 DITFFT算法基本原理设序列x(n)的长度为N,且满足N=2M,M为自然数。按n的奇偶把x(n)分解为两个N/2点的子序列1( )(2 )x rxr( )( )( )偶数
5、奇数knknNNnnX kx n Wx n W2( )(21)x rxr12/,.,1 ,0Nr则/2 120(2 )NkrNrxr W/2 1(21)0(21)NkrNrxrW/2 1210( )NkrNrx r W/2 1220( )NkkrNNrWx r W22jj222/2eekrkrkrkrNNNNWW/2 1/2 11/22/200( )( )( ) NNkrkkrNNNrrX kx r WWx r W 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理/2 111/2120( )( )DFT( )NkrNNrXkx r Wx r/2 122/2220( )( )DFT(
6、 )NkrNNrXkx r Wx rkNNkNWW2由于X1(k)和X2(k)均以N/2为周期1210)()()2(21NkkXWkXNkXkN,12( )( ) 0,1,2,-1 kNX kW XkkN/2 1/2 1221200( )( )( )NNkrkkrNNNrrX kx r WWx r W1210)()()(21NkkXWkXkXkN, 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理将N点DFT分解为两个N/2点DFT1210)()()2(21NkkXWkXNkXkN,CABA BCA BCX1(k)X2(k)X1(k)+ WNkX2(k)X1(k)WNkX2(k)W
7、Nk图:蝶形运算符号上式运算可用蝶形运算符号表示完成一个蝶形运算需要一次复数乘和两次复数加法运算1210)()()(21NkkXWkXkXkN,图4.2.2 8点DFT一次时域抽取分解运算流图 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理基2 DITFFT算法基本原理分解后运算量:复数乘法复数加法一个N/2点DFT (N/2)2N/2 (N/2 1)两个N/2点DFT N2/2N (N/2 1)一个蝶形12N/2个蝶形N/2N总计22/2/2/2NNN2/2 1/2N NNN运算量减少运算量减少了近一半了近一半 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理N=2
8、M, N/2仍然是偶数,故可以对N/2点DFT再作进一步分解将x1(r)按奇偶分解成两个N/4点的子序列x3(l)和x4(l),即3141( )(2 )0, 1,14( )(21)x lxlNlx lxl1210)()()()() 12()2()(42/314/04/42/14/04/314/0)12(2/114/022/11NkkXWkXWlxWWlxWlxWlxkXkNNlklNkNNlklNNllkNNlklN,/4 133/4340( )( )DFT( )NklNNlXkx l Wx l/4 144/4440( )( )DFT( )NklNNlXkx l Wx l 4.2.2 时域抽取
9、法基时域抽取法基2FFT基本原理基本原理kNNkNWW2/4/2/14/10)()()4/()()()(42/3142/31NkkXWkXNkXkXWkXkXkNkN,1410 )()(4)()()(62/5262/52NkkXWkXNkXkXWkXkXkNkN,/4 155/4540/4 166/4640( )( )DFT( )( )( )DFT( )NklNNlNklNNlXkx l Wx lXkx l Wx l5262( )(2 )0,1,/ 4 1( )(21)x lxllNx lxl 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理用同样的方法 4.2.2 时域抽取法基时
10、域抽取法基2FFT基本原理基本原理第二次分解后,将N/2点DFT分解2个N/4点DFT和N/4个蝶形运算依次类推,经过M次分解,最后将N点DFT分解成2点DFT和M级蝶形运算,而1点DFT就是时域序列本身图4.2.3 8点DFT二次时域抽取分解运算流图 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理 4.2.2 时域抽取法基时域抽取法基2FFT基本原理基本原理 4.2.3 DIT-FFT 算法与直接计算算法与直接计算DFT运算量的比较运算量的比较直接计算DFT的计算量DIT-FFT算法比直接计算DFT的运算次数大大减少。例如,N=210=1024时8 .2045120576 04
11、8 1lb22NNN图4.2.5 DIT-FFT算法与直接计算DFT所需复数乘法次数的比较曲线 4.2.3 DIT-FFT 算法与直接计算算法与直接计算DFT运算量的比较运算量的比较 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想1、原位计算DIT-FFT的运算过程很有规律。N=2M点的FFT共进行M级运算,每级由N/2个蝶形运算组成经过M级运算后,原来存放输入序列数据的N个存储单元(数组A)中便依次存放X(k)的N个值原位计算可节省大量内存,从而使设备成本降低2、旋转因子的变化规律但各级的旋转因子和循环方式都有所不同,L表示从左到右的运算级数(L=1,2,M)L级共有2
12、L1个不同的旋转因子N点DIT-FFT运算流图中,每级都有N/2个蝶形。每个蝶形都要乘以因子,称其为旋转因子,p为旋转因子的指数pNW旋转因子与运算级数的关系:pNW 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想12, 2, 1, 0122LJNJNpNJWWWLMMLLMJp2L-12,0,1,2,21LpJNWWJMLMLMLN22223, 2, 1, 0 31, 0 20 1222/24/JWWWLJWWWLJWWWLJJNpNJJNpNJJNpNLLL时时时 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想如果蝶形运算的两个输入数据相距B个点
13、,应用原位计算,则蝶形运算可表示成如下形式11( )( )()pLLLNA JAJAJB W11()( )()pLLLNAJBAJAJB W12 0,1,21; 1,2,MLLpJJLM第L级中,每个蝶形的两个输入数据相距B=2L1个点;每级有B个不同的旋转因子;同一旋转因子对应着2ML个蝶形3、蝶形运算规律 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想 先从输入端(第1级)开始,逐级进行,共进行M级运算。在进行第L级运算时,依次求出B个不同的旋转因子,每求出一个旋转因子,就计算完它对应的所有2ML个蝶形。 这样,我们可用三重循环程序实现DIT-FFT运算图4.2.6
14、DIT-FFT运算和程序框图4、编程思想及程序框图 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想5、序列的倒序DIT-FFT算法的输入序列的排序看起来似乎很乱,但仔细分析就会发现这种倒序是很有规律的由于N=2M,因此顺序数可用M位二进制数(nM1nM2n1n0)表示。M次偶奇时域抽选过程图4.2.7 形成例序的树状图(N=23) 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想显而易见,只要将顺序数(n2n1n0)的二进制位倒置,则得对应的二进制倒序值(n0n1n2) 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想倒序数则是在M
15、位二进制数最高位加1,逢2向低位进位图4.2.9 倒序程序框图 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想用J表示当前倒序数的十进制数值。 对于N=2M,M位二进制数最高位十进制权值为N/2,且从左向右二进制位的权值依次为N/4,N/8,2,1。因此,最高为加1相当于十进制运算J+N/2 如果最高位是0(JN/2),则直接由J+N/2得下一个倒序值;如最高位是1(JN/2), 则先将最高位变成0(JJN/2),然后次高位加1(J+N/4)。 但次高位加1时,同样要判断0、1值,如果为0(JN/4),则直接加1(JJ+N/4), 否则将次高位变成0(JJN/4),再判断
16、下一位; 依此类推,直到完成最高位加1,逢2向右进位的运算。图4.2.8 倒序规律设原输入序列x(I)先按自然顺序存入数组A中。 4.2.4 DIT-FFT 的运算规律及编程思想的运算规律及编程思想第一个序列值x(0)和最后一个序列值x(N1)不需要重排, 每计算出一个倒序值J,便与循环语句自动生成的顺序I比较,当I=J时,不需要交换,当IJ时, A(I)与A(J)交换数据。 另外,为了避免再次调换前面已调换过的一对数据,框图中只对IJ的情况调换A(I)和A(J)的内容图4.2.9 倒序程序框图X(k)进行奇偶抽取分解的结果,所以称之为频域抽取法FFT 4.2.5 DIT-FFT 与与DIF-
17、FFT的异同的异同蝶形运算略有不同,DIT-FFT蝶形先乘后加(减),而DIF-FFT蝶形先加(减)后相乘 4.2.5 DIT-FFT 与与DIF-FFT的异同的异同DIF-FFT算法与DIT-FFT算法类似,可以原位计算,共有M级运算,每级共有N/2个蝶形运算,所以两种算法的运算次数亦相同不同的是DIF-FFT算法输入序列为自然顺序,而输出为倒序排列MATLAB函数fft是一计算DFT的智能程序,如果计算点数N=2M,则自动按DIT-FFT快速算法计算,否则直接计算DFT。所以,调用该函数计算DFT时,最好选取N=2M,使处理速度大大提高。比较DFT和IDFT的运算公式:1010( )DFT
18、 ( )( )1( )IDFT ( )( )NknNnNknNkX kx nx n Wx nx nX k WN 4.2.6 IDFT的高效算法的高效算法1:nknkNNFFTWWIFFTN112LN101( )( )NknNkx nXk WN1011( )( )( )NknNkx nXk WDFT XkNN共轭共轭FFT共轭共轭乘乘1/ N( )X k*( )Xk( )x n直接调用FFT子程序计算IFFT的方法:4.3 4.3 进一步减少运算量的措施进一步减少运算量的措施后三种运算称为多类碟形单元运算。显然,碟形单元类型越多,编程就越复杂,但当N较大时,乘法运算的减少量是相当可观的。例如,N
19、=4096时,三类碟形单元运算的乘法次数为一类碟形单元运算的75%。4.3.1 多类蝶形单元运算一类蝶形单元运算在基2FFT程序中,包含了所有旋转因子二类蝶形单元运算三类蝶形单元运算若再判断处理四类蝶形单元运算旋转因子若去掉的旋转因子1mNW 若再去掉 的旋转因子jWrN(1j) 2 /2mNW4.3.2 旋转因子的生成一种方法是在每级运算中直接产生;另一种方法是在FFT程序开始前预先计算出,m = 0,1,N/21, 存放在数组中,作为旋转因子表,在程序执行过程中直接查表得到所需旋转因子值,不再计算。这样使运算速度大大提高,其不足之处是占用内存较多。mNW4.3.3 实序列的FFT算法处理该问题的方法有三种 第一种方法是用一个N点FFT计算两个N点实序列的FFT,一个实序列作为x(n)的实部,另一个作为虚部,计算完FFT后,根据DFT的共轭对称性,用例3.2.2 所述的方法由输出X(k)分别得到两个实序列的N点D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大数据产业园区场地厂房租赁与数据分析服务合同
- 会计师事务所合伙人聘用合同
- 餐饮品牌连锁店区域经营权转让合同
- 彩钢房加工、定制、安装、售后一站式服务合同
- 股权投资财务担保服务合同
- 拆除工程现场保护协议书
- 餐饮股东合作协议范本:股权激励与员工持股计划
- 百货商场商品退货换货服务合同范本
- 白细胞减少症诊疗规范
- 发热护理说课
- 高层火灾疏散逃生应急预案
- 地球科学概论知到智慧树章节测试课后答案2024年秋中国石油大学(华东)
- 【MOOC】环境资源法学-西南政法大学 中国大学慕课MOOC答案
- 2024新能源风电场消防系统检修规程
- TGXAS-成人急性中毒患者洗胃操作技术规范
- 2024海南省海口市中考化学试题卷(含答案解析)+2023年中考化学试卷及答案
- 澳大利亚建筑规范
- 2024年紫金矿业集团股份限公司校园招聘历年高频500题难、易错点模拟试题附带答案详解
- 太阳能光伏发电设备采购合同
- 2024年江苏省劳动合同条例
- 江苏省常州市教育学会2023-2024学年下学期八年级数学考试卷
评论
0/150
提交评论