预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共39页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章离散傅里叶变换的计算 教学目的 1.了解直接计算DFT与序列长度N的关系,理解开发高效算法的的意义; 2.理解高效算法的原理与实现方法,掌握按时间和按频率抽取的FFT算法原理和实现; 3.掌握卷积实现DFT的方法; 4.掌握复合数N的FFT算法; 5.了解离散傅丽叶变换中有限寄存器长度的影响。 教学重点与难点 重点:本章是本课程的另一个重中这重。 1.高效算法的原理与实现方法,掌握按时间和按频率抽取的FFT算法原理和实现; 2.卷积实现DFT的方法.; 3.离散傅丽叶变换中有限寄存器长度的影响。 难点: 1.掌握按时间和按频率抽取的FFT算法原理和实现; 2.卷积实现DFT的方法。 9.0引言 离散傅里叶变换(DFT)有一种快速算法,我们平常称为快速傅里叶变换(FFT)。 由于有限长序列在其频域也可离散化为有限长序列(DFT),因此离散傅里叶变换(DFT)在数字信号处理中是非常有用的。例如,在信号的频谱分析、系统的分析、设计和实现中都会用到DFT的计算。但是,在相当长的时间里,由于DFT的计算量太大,即使采用计算机也很难对问题进行实时处理,所以并没有得到真正的运用。直到1965年首次发现了DFT运算的一种快速算法以后,情况才发生了根本的变化。人们开始认识到DFT运算的一些内在规律,从而很快地发展和完善了一套高速有效的运算方法,这就是现在人们普遍称之为快速傅里叶变换(FFT)的算法。FFT出现后使DFT的运算大大简化,运算时间一般可缩短一二个数量级之多,从而使DFT的运算在实际中真正得到了广泛的应用。 9.1离散傅里叶变换的高效计算 9.1.1直接计算DFT的运算量问题 设x(n)为N点有限长序列,其DFT为 k=0,1,…,N-1(9-1) 反变换(IDFT)为 n=0,1,…,N-1(9-2) 二者的差别只在于WN的指数符号不同,以及差一个常数乘因子1/N,所以IDFT与DFT具有相同的运算工作量。下面我们只讨论DFT的运算量。 一般来说,x(n)和WNnk都是复数,X(k)也是复数,因此每计算一个X(k)值,需要N次复数乘法和N-1次复数加法。而X(k)一共有N个点(k从0取到N-1),所以完成整个DFT运算总共需要N2次复数乘法及N(N-1)次复数加法。在这些运算中乘法运算要比加法运算复杂,需要的运算时间也多一些。因为复数运算实际上是由实数运算来完成的,这时DFT运算式可写成 由此可见,一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法需二次实数加法。因而每运算一个X(k)需4N次实数乘法和2N+2(N-1)=2(2N-1)次实数加法。所以,整个DFT运算总共需要4N2次实数乘法和2N(2N-1)次实数加法。 当然,上述统计与实际需要的运算次数稍有出入,因为某些WNnk可能是1或j,就不必相乘了,例如W0N=1,WNN/2=-1,WNN/4=-j等就不需乘法。但是为了便于和其他运算方法作比较,一般都不考虑这些特殊情况,而是把WNnk都看成复数,当N很大时,这种特例的影响很小。 从上面的统计可以看到,直接计算DFT,乘法次数和加法次数都是和N2成正比的,当N很大时,运算量是很可观的,有时是无法忍受的。 例9-1根据式(9-1),对一幅N×N点的二维图像进行DFT变换,如用每秒可做10万次复数乘法的计算机,当N=1024时,问需要多少时间(不考虑加法运算时间)? 解直接计算DFT所需复乘次数为(N2)2≈1012次,因此用每秒可做10万次复数乘法的计算机,则需要近3000小时。 这对实时性很强的信号处理来说,要么提高计算速度,而这样,对计算速度的要求太高了。另外,只能通过改进对DFT的计算方法,以大大减少运算次数。 9.1.2改善途径 能否减少运算量,从而缩短计算时间呢?仔细观察DFT的运算就可看出,利用系数WNnk的以下固有特性,就可减少运算量: (1)WNnk的对称性 2)WNnk的周期性 (3)WNnk的可约性 另外 这样,利用这些特性,使DFT运算中有些项可以合并,并能使DFT分解为更少点数的DFT运算。而前面已经说到,DFT的运算量是与N2成正比的,所以N越小越有利,因而小点数序列的DFT比大点数序列的DFT的运算量要小。 快速傅里叶变换算法正是基于这样的基本思想而发展起来的。它的算法形式有很多种,但基本上可以分成两大类,即按时间抽取(DecimationinTime,缩写为DIT)法和按频率抽取(DecimationinFrequency,缩写为DIF)法。 9.2按时间抽取(DIT)的FFT算法 9.2.1算法原理 设序列x(n)长度为N,且满足N=2M,M为正整数。按n的奇偶把x(n)分解为两个N/2点的子序列: (9-4) 则可将DF