- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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,W NN/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的运算量要小。
快速傅里叶变换算法正是基于这样的基本思想而发展起来的。 它的算法形式有很多种,但基本上可以分成两大类,即
文档评论(0)