- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章5快速傅里叶变换(fft)
第03章 离散傅里叶变换及其快速算法 邹江 zoujiang@public.wh.hb.cn * * 3. 5 快速傅里叶变换(FFT) 3.5.1 DFT的计算量 离散傅里叶变换在实际应用中是非常重要的,利用它可以计算信号的频谱、功率谱和线性卷积等。但是,如果使用定义式(3.20)来直接计算DFT,当N很大时,即使使用高速计算机,所花的时间也太多。因此,如何提高计算DFT的速度,便成了重要的研究课题。1965年库利 (Cooley)和图基(Tukey)在前人的研究成果的基础上提出了快速计算DFT的算法,之后,又出现了各种各样快速计算DFT的方法,这些方法统称为快速傅里叶变换(Fast?Fourier Transform),简称为FFT。FFT的出现,使计算DFT的计算量减少了两个数量级,从而成为数字信号处理强有力的工具。 快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法。它是DSP领域中的一项重大突破,它考虑了计算机和数字硬件实现的约束条件、研究了有利于机器操作的运算结构,使DFT的计算时间缩短了1~2个数量级,还有效地减少了计算所需的存储容量,FFT技术的应用极大地推动了DSP的理论和技术的发展。 DFT的定义 在导出FFT算法之前,首先来估计一下直接计算DFT所需的计算量。 其中 将DFT定义式展开成方程组 将方程组写成矩阵形式 用向量表示 从矩阵形式表示可以看出,由于计算一个X(k)值需要N次复乘法和(N-1)次复数加法,因而计算N个X(k)值,共需N2次复乘法和N(N-1)次复加法。每次复乘法包括4次实数乘法和2次实数加法,每次复加法包括2次实数加法,因此计算N点的DFT共需要4N2次实数乘法和(2N2+2N·(N-1))次实数加法。当N很大时,这是一个非常大的计算量。 FFT算法主要利用了WNk的两个性质: (1)对称性,即 (2)周期性,即 用复数表示: r为任意整数。 FFT算法是基于可以将一个长度为N的序列的离散傅里叶变换逐次分解为较短的离散傅里叶变换来计算这一基本原理的。这一原理产生了许多不同的算法,但它们在计算速度上均取得了大致相当的改善。 在本章中我们集中讨论两类基本的FFT算法。 第一类 称为按时间抽取(Decimation-in-Time)的基2FFT算法,它的命名来自如下事实:在把原计算安排成较短变换的过程中,序列x(n)(通常看作是一个时间序列)可逐次分解为较短的子序列。 第二类称为按频率抽取(Decimation-in-Frequency)的基2FFT算法,在这类算法中是将离散傅里叶变换系数序列X(k)分解为较短的子序列。 前面两种算法特别适用于N等于2的幂的情况。 对于N为合数的情况,本章也将介绍两种处理方法。 3. 5. 2??时间抽选基2FFT算法(库里—图基算法) 这种算法简称为时间抽选FFT算法,其基本出发点是,利用旋转因子WNk的对称性和周期性,将一个大的DFT分解成一些逐次变小的DFT来计算。 分解过程遵循两条规则: ①对时间进行偶奇分解; ②对频率进行前后分解。 设N=2M,M为正整数。为了推导方便,取N=23=8,即离散时间信号为 按照规则(1),将序列x(n)分为奇偶两组,一组序号为偶数,另一组序号为奇数,即 分别表示为: 根据DFT的定义 因为 WN2=WN/21,所以上式变为 上式中的G(k)和H(k)都是N/2点的DFT。 (3.64) 按照规则(2),将X(k)分成前后两组,即 由(3.64)表示的是N/2点DFT,前4个k值的DFT可表示为 后4个k值的X(k)表示为: 因为 所以 (3.66) (3.65) 按照式(3.65)和式(3.66)可画出图3.15所示的信号流程图。 式(3.65)和式(3.66)把原来N点DFT的计算分解成两个N/2点DFT的计算。照此可进一 步把每个N/2点DFT的计算再各分解成两个N/4点DFT的计算。具体说来,是把{x(0),x(2),x(4),x(6)}和{x(1),x(3),x(5),x(7)}分为{x(0),x(4) | x(2),x(6)}和{x(1),x(5) | x(3),x(7)}。这样,原信号序列被分成{x(0),x(4) | x(2),x(6) I x(1),x(5) I x(3),x(7)}4个2项信号。G(k)和H(k)分别计算如下: (3.67) (3.68) (3.69) (3.70) 这样,用式(3.67)~(3.70)4个公式就可计算图3.15中的两组N/2点DFT。图3.16所示的是其中一组G(k)的计算。 将图3.1
文档评论(0)