基于AVR单片机的快速付立叶变换系统设计.doc

基于AVR单片机的快速付立叶变换系统设计.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AVR单片机的快速付立叶变换系统设计

引言 随着信息学科和计算机学科的高速发展,数字信号处理(Digital Signal Processing)迅速发展成为一门新兴学科。它把信号变换成数字或者符号表示的序列,通过计算机或专用的数字硬件,用数值计算的方法来进行处理,可以实现对信号的频谱分析、滤波、变换、压缩、增强、估计、识别等,以获取有用的信息,便于实际应用。有限长序列的离散付立叶变换(DFT, Discrete Fourier Transform)不仅在离散时间信号的频谱分析中,而且在离散时间信号处理算法和系统分析、设计和实现中都起着非常重要的作用。但是,当信号的采样点数N很大时,DFT的运算量太大,几时采用计算机也难以对问题进行实时处理,所以在相当长的时间里,DFT并没有得到真正的应用。而快速付立叶变换(FFT, Fast Fourier Transform)是为了减少DFT计算次数的一种快速有效的算法,并不是与离散付立叶变换不同的另一种变换,且它们都是为了将信号变换到频域并进行相应的频谱分析。 由于单片机的性价比高,因此在数据采集及频谱分析系统中往往取代DSP芯片而被广泛使用。本系统利用FFT算法原理,通过AVR单片机实现快速傅里叶变换。因为AVR单片机ATmega64具有采集功能,可以直接对输入信号进行采集;利用型号为TG12864的LCD对输入信号进行显示,用C语言编程实现快速傅里叶变换,并对经过FFT变换后的信号进行频谱显示。 1 绪论 1.1 离散付立叶变换的高效计算思路 从分析直接计算DFT的问题入手,讨论离散付立叶变换高效算法的基本思路。 设x(n)为N点有限长序列,其DFT正变换为 (1-1) 逆变换(IDFT)为 (1-2) 二者的差别仅仅在于W的指数符号相反,以及相差一个常数乘因子1/N。可以认为式(1-1)和式(1-2)的运算量是相同的,因此我们只讨论正变换(1-1)式的运算量。 一般来说,x(n)为复序列,W为复数,X(k)也为复数,因此,每计算一个X(k) 值,需要进行N次复数乘法运算(x(n)与W相乘)和N-1次复数加法运算(N个相乘项累加)。而X(k)共有N个点(即k从0到N-1),所以完成整个DFT运算需要进行N次复数乘法和N(N-1)次复数加法运算。我们知道复数运算实际上是通过实数运算完成的。因此,也可以统计出用实数运算完成DFT的运算量。(1-1)式也可以写为 (1-3) 式(1-3)表明,一次复数乘法需要用到4次实数乘法和2次实数加法;一次复数加法则需要2次实数加法。因此,每计算一个X(k),需要用到4N次实数乘法和2N+2(N-1)=4N-2 次实数加法。所以,整个DFT运算共需要用4N次实数乘法和(4N-2)N次实数加法。当然,运算过程中包含W=1,W=-1及W=-j等不需进行乘法运算的项,但这毕竟只是少数几项,特别是当N很大时,这种特例占得比重就更小了,因此,一般都不考虑这些特殊情况,而把W都看成是复数。 由以上分析可知,直接计算N点DFT的乘法和加法运算均与N成正比,当N很大时,运算量是相当可观的。例如,当N=8时,做DFT需要进行64次复数乘法运算;而当N=1024时,则需要进行1048576次复数乘法运算,即一百多万次复数乘法,这对实时性很强的信号处理来说,可满足其要求的运算速度就太高了。所以,必须在DFT的计算方法上寻求改进,使其运算次数大大减少,从而得到DFT的高效算法。 仔细观察DFT的运算发现,利用系数的对称性、周期性和可约性,就可以减小DFT的运算量。 (1)的周期性== (2)的对称性= (3)的可约性=,= 由此可以得出 ==,=-1,=- 利用的这些特性,使DFT运算中有些项可以合并,并且可以将长序列的DFT分解为几个短序列的DFT,从而大大减少DFT的运算次数。从前面的分析我们已经知道,DFT的运算量是与N成正比的,因此,N越小越有利,小点数序列的DFT比大点数序列的DFT得运算量要小得多。 离散付立叶变换的高效算法正是基于这样的基本思路发展起来的,所有的这类算法被称为快速付立叶变换算法。FFT算法基本上可以分为两大类,即按时间抽取(Decimation-In-Time,DIT)法和按频率抽取(Decimation-In-Frequency,DIF)法。 1.2

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档