ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:213.68KB ,
资源ID:232723      下载积分:5 金币
已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于dsp的fft频谱分析方法研究分析 电子信息工程专业.docx)为本站会员(peixunshi0)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(发送邮件至doc331@126.com或直接QQ联系客服),我们立即给予删除!

基于dsp的fft频谱分析方法研究分析 电子信息工程专业.docx

1、基于dsp的fft频谱分析方法研究摘要:计算机科学和微电子技术在当今社会飞速发展并扮演了重要的角色,基于数字信号处理的频谱分析几乎涉及到所有的工程技术领域并且发挥着极其重要的作用。DSP的稳定性、可大规模集成性、可重复性,特别是可编程性高和处理速度快等特点,给频谱分析技术的发展和应用带来了巨大的机遇。数字信号处理基本上从两个方面来解决信号的处理问题,一个是数字滤波,另一个是频谱分析。本文主要研究基于DSP用FFT变换实现对信号的频谱分析,通过对DFT以及FFT算法进行研究,从基础深入研究和学习,掌握FFT频谱分析方法的关键。通过对DSP芯片工作原理以及开发环境的学习,掌握CCS和MATLAB的

2、简单调试和软件仿真,验证了FFT算法的正确性,完成基于DSP对信号的实时频谱分析。关键词:DFT、FFT、频谱分析、DSPResearchonFFTSpectrumAnalysismethodbasedonDSPAbstract:Computerscienceandmicroelectronicstechnologyplayanimportantroleintherapiddevelopmentofmodernsociety.Spectrumanalysisbasedondigitalsignalprocessinginvolvesalmostallengineeringfieldsandpl

3、aysanextremelyimportantrole.Researchonspectrumanalysisisoneofthemaindevelopmentdirections.Digitalsignalprocessingbasicallysolvestheproblemofsignalprocessingfromtwoaspects,oneisdigitalfiltering,theotherisspectrumanalysis.ThispapermainlystudiesthespectrumanalysisofsignalbasedonDSPandFFTtransform.Throu

4、ghtheresearchofDFTandFFTalgorithm,thekeyofFFTspectrumanalysismethodisgraspedfromthebasicresearchandstudy.ThestabilityofDSPandthelarge-scaleintegrationofDSParediscussed.Repeatability,especiallyhighprogrammabilityandhighprocessingspeed,bringsgreatopportunitiestothedevelopmentandapplicationofspectruman

5、alysistechnology.ThroughthestudyoftheworkingprincipleanddevelopmentenvironmentofDSPchip,thesimpledebuggingandsoftwaresimulationofCCSandmatlabaremastered,andthereal-timespectrumanalysisofsignalbasedondspiscompleted.Keywords:DFT,FFT,spectrumanalysis,DSP目录1绪论1.1 引言数字技术与计算机技术在这个时代迅猛的发展,数字信号处理(DSP)技术已深入渗

6、透到各个学科和领域。近些年来,数字信号处理技术有了突飞猛进的发展。在数字信号处理中,离散傅里叶变换(DiSCrete.TimeFourierTransform,DFT)是非常常用的变换方法。由离散傅里叶变换发现频率离散化,可以直接用来分析信号的频谱、计数滤波器的频率响应,以及实现信号通过线系统的卷积运算等,因而在信号的频谱分析方面有非常重要的作用。而由于DFT的运算量相当之大,即使是采用计算机运算也很难对问题进行实时的处理,所以专家学者便研究出通用的快速傅里叶变换(FFT)e目前,FFT己广泛地应用在语音识别、频谱分析、无线保密通讯、数字通信、匹配滤波、雷达处理、图像处理、地质勘探和遥感遥测等

7、众多的领域。在不同的应用场景下,就需要不同性能要求的FFT处理器。在很多的应用领域都要求FFT处理器具有高精度、高速度、实时处理和大容量的性能。因此,如何更灵、更活快速地实现FFT变得越发的重要。数字信号处理器(DSP)是一种高性能的可编程处理器。它不仅仅的是一种适用于数字信号处理,而且在通信、语音处理、图像处理等众多的领域得到广泛而深刻应用。DSP处理器中集成有高速的乘法硬件,能快速的进行大量的加法乘法运算。1.2 频谱分析的技术发展频谱分析在科学研究和生产实践中获得日益广泛的应用。例如,对轮船、汽车、汽轮机、飞机等各类旋转机械、机床、电机等机器的部件或主体进行实际运行状态下的分析,可以提供

8、设计数据和检验设计效果,或者寻找振源和诊断故障,保证设备的安全运行等;在声纳系统中,为了寻找海洋水面船只或潜艇,需要对噪声信号进行谱分析,以提供有用信息,判断舰艇运动速度、方向、位置、大小等。因此对谱分析方法的研究,受到普遍注意和重视,是当前信号处理技术中一个十分活跃的课题。1.3 本论文主要研究的内容本文主要介绍基于DSP用FFT变换实现对信号的频谱分析。研究离散傅里叶变换以及快速傅里叶变换的原理及算法。快速傅里叶变换和离散傅里叶变换的基本理论是一样的,它根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换进行了改进。在计算机系统或者数字系统中广泛应用者快速傅里叶变换,这是一个巨大的进

9、步。本文主要解决的问题就是如何对信号的频谱进行研究,使FFT更广泛的应用于科学研究。2FFT算法原理及其DSP实现2.1 离散傅里叶变换(DFT)设X(II)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:TV-I(心叱X(k)=DFTx(n)=Z=O,k=0,l,.,N-l(1)X(k)的离散傅里叶逆变换为:1TV-Ix(n)=IDFTX(k)=Nn=G,k=0,1,.,N-1(2),2r式中,WV=e,N称为DFT变换区间长度,NMo2.2离散傅里叶变换基本的性质2.2.1线性性质如果()和王()是两个有限长序列,长度分别为乂和N?,且y(n)=axi(n)+bx2(n)O式

10、中,a、b为常数,取NmaxN,ML则y(n)的N点DFT为:Y(k)=DFTy(n)N=aXSk)+bX2(k)0kN-l(3其中,Xl(八)和乂2(灯分别为西()和“2()的N点DFT。2.2.2循环移位性(1)序列的循环移位设X(II)为有限长序列,长度为M,MN,则x(n)的循环移位定义为),()=M5+M)NRNS)(4(2)时域循环移位定理设x(n)是长度为M(MN)的有限长序列,y(n)为x(n)的循环移位,即),()=M(+m)NRn()则y(k)=DFTy(n)N=W-1hX(k)(5其中X(八)=OFnM叽OWkWNT(3)频域循环移位定理如果X (k) = DFTx(n)

11、0kN-1y)=M伏+/)NRN(八)则y(n)=IDFTY(k)N=叱()2.2.3循环卷积定理有限长序列Xs)和马()的长度分别为M和Nz,N2maxM,%,占和修()的N点循环卷积为:N-IE)r%M叽5硒(-)NRNS)则x(n)的N点DFT为:X(八)=OF71x()N=X(QX2(公(7)2. 2.4共扼对称性别为X(k)的共趣对称分量和共扼反对称分量;而x(n)的共扰对称分量和反共机对称分量的DFT分别为X(k)的实部和虚部乘以3j如果序列x(n)的DFT为X(k),则x(n)的实部和虚部(包括j)的DFT分2.1 快速傅里叶变换(FFT)快速傅里叶变换(FFT)是离散傅里叶变换

12、的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的,它对离散傅里叶变换并没有新的发现。有限长序列x(n)及其领域表示X(k)可由以下离散傅立叶变换得出,v-0kN-(8)x(k)=DF11x(n)=Zm)MA=01.v-x(n)=IDF11X(k)=77X(&)W/(9)N气OV-1k-jHk其中W;=e。式(8)称为离散傅立叶正变换,式(9)称为离散傅立叶逆变换,x(n)与X(k)构成了离散傅立叶变换对。根据上述公式,计算一个X(k),需要N次复数乘法和NT次复数加法,而计算全部X(k)(kNT),共需要N2次复数乘法和N(NT)次复数加法。实现一

13、次复数乘法需要四次实数乘法和两次实数加法,一次复数加法需要两次实数加法,因此直接计算全部X(k)共需要482次实数乘法和2N(2NT)次实数加法。当N较大时,对实时信号处理来说,对处理器计算速度有十分苛刻的要求,于是如何减少计算离散傅里叶变换运算量的问题变得至关重要。为减少运算量,提高运算速度,就必须改进算法。计算DFT过程中需要完成的运算的系数里,存在相当多的对称性。通过研究这种对称性,可以简化计算过程中的运算,从而减少计算DFT所需的时间。如前所述,N点的DFT的复乘次数等于N、显然,把N点的DFT分解为几个较短的DFT,可是乘法的次数大大减少。另外,旋转因子具有明显的周期性和对称性,其周

14、期为:WTJe-帝)=J苧=用其对称性表现为:Wy=W片或WQ丁二KFFT算法就是不断地把长序列的DFT分解成几个短序列的DFT,并利用叱:的周期性和对称性来减少DFT的运算次数。W的特性是:M”的周期性:W=W=W/W的对称性:%J(印”=卬严,WS的可约性:W;=MV=町而且,M-=TW产一眠:利用卬的上述特性,将X(n)或X(k)序列按一定规律分解成短序列进行运算,这样可以避免大量的重复运算,提高计算DFT的运算速度。算法形式有很多种,但基本上可以分为两大类,即按时间抽取(DeCilnationInTime,Drr)FFT算法和按频率抽取(DeCimationInFrequency,DI

15、F)FFT算法。3. 2基-2FFT算法如果序列x(n)的长度N=2,其中M是整数(如果不满足此条件,可以人为地增补零值点来达到),在时域上按奇偶抽取分解成短序列的DFT,使最小DFT运算单元为2点。通常将FFT运算中最小DFT运算单元称为基(radix),因而把这种算法称为基-2时间抽取FFT(DIT-FFT)算法4。将X(n)按n为奇偶分解成两个子序列,当n为偶数时,令n=2r;当n为奇数时,令n=2r+l;可得到Nx(2r)=xl(r),x(2r+l)=x(r),r=0,.,12(10)则其DFT可写成丝T,X(k)=x(2r)W+x(2r+l)W;2ir0r=0%4=SQ)W伊+SwW

16、r=0,=0=Xx(2r)V2+Xx(2rl)2r=0r=O=X1()+X2()(11)和X及)均分别是N/2点序列和马5)的DFT,而且r与k的取值满足0,1,N2-lo而X(k)是一个N点的DFT,因此式(ID只计算了X(k)的前N/2的值。由DFT和用的性及伏)质可得到X(k)的后N/2的值为:X(A:+y)=X1(y)+X2a+y)=XT(jfc)MX式6(12)式(11)和式(12)表明,只要计算出两个N/2点的DFT再的和超(公,经过线性组合,即可求出全部N点的X(k)。由于N=2,N2=2”仍为偶数,因而这样的分解可以继续进行下去,直到最后的单元只需要做2点DFT为止。若Xm(

17、P)和Xm(q)为输入数据,、桁冢P)和4向为输出数据,W,为旋转因子,则对于基HDIT-FFT算法,蝶形运算的基本公式为XnM=Xm(PHXKq)WgXrn+l(q)=Xfn(PAXrn(qM其图形表示如图1所示,称Xm(P)为上结点,Xm(q)为下结点。XnuP)xH.(q)图1时间抽取蝶形运算单元对于一个8点的FFT,根据上述算法可以得到一个完整的N=8的基-2DIT-FFT的运算流图,如图2所示。X(O)X(O)图2N=8DIT-FFT运算流图根据上述算法原理及运算流图,可以得出基-2DIT-FFT的基本特点,特点如下。(1)级数分解:对于N=2。共分了M级,每级包含N/2个蝶形运算单

18、NN1XM=log0N元,总共所需蝶形运算个数为22-o(2)运算量估计:每个蝶形运算需要一次复数乘法和两次复数加(减)法,NNlN点FFT共需要5次复数乘法,NXbgzN次复数加(减)法。实际上有些蝶形运算不需要做复乘。(3)原位运算:当数据输入到存储器以后,每一组蝶形运算后,结果仍然存放在这同一组存储器中的同一位置,不需要另辟存储单元,直到最后输出。(4)位码倒序:由图2可以看到,FFT输出的X(k)的次序正好是顺序排列的,即X(O),X(I),X,而输入X(II)是按x(0),X(4),X(7)的倒序存入存储单元,即为倒序输入,正序输出。这种顺序看起来相当杂乱,然而它是有规律的,即位码倒

19、序规则。(5)旋转因子的确定:由8点FFT的三次迭代运算可以看出印;的变化。在第一级迭代中,只有一种类型的蝶形运算系数,即峻,参加蝶形运算的两个数据点间隔为1;在第二级迭代中,有两种类型的蝶形运算系数,分别是川和心,参加蝶形运算的两个数据点间隔为2;在第三级迭代中,有四种类型的蝶形运算系数,分别是“,啜,必,网二参加蝶形运算的两个数据点间隔4。可见,每次迭代的蝶形类型比前一迭代增加一倍,间隔也增大一倍。最后一次迭代的蝶形类型最多,参加蝶形运算的两个数据点的间隔也最大,为N2,4.1MATLAB仿真4.1.1相关的MATLAB功能函数简介(1)图像显示函数:plot,X轴和y轴均为线性刻度。(2

20、)图形生成函数:figure,生成图形窗口。(3)FFT函数:fft(三),其中S为加窗后的一个帧信号。因为实时信号FFT的频域样值关于中点(即采样频率的1/2)对称,所以fft(三)给出的矩阵数据只有前半部分有用。(4)复数取共扼函数:Conj(Z),其中Z是fft的结果。该函数在求X(m,k)(是个复数)的幅度时是有用的。(5)randn:产生正态分布的随机数或矩阵的函数。4.L2用Matlab实现快速傅立叶变换FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因

21、另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。现在就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍。采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一

22、个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即OHZ),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被NT个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-l)*FsNo由上面的公式可以看出,Fn所能

23、分辨到频率为Fs/N,如果采样频率FS为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An二根号a*a+b*b,相位就是Pn=atan2(b,a)。根据以上的结果,就可以计算出n点(nl,且nUm 3db G U ,-1M H % ?m,jt- -31-3 , s x

24、 a r、以Wo0出口日回Ii*1Iq2”2JetLr1”-Jfroj4*i.rrrjt凶YOcMItBXCeCanfi4Ct-1S0Wannngs.0Rmorkft.二H2JiAa:_i 2IlMJu r ca 1 ma9图7频谱分析结果(一)Build Conplete,0 Errors 0 Wannng8 0 ReiMrks.-PPPhBiiMfAnMniK_IJIlUJ1Ia9T.ClIVW图8频谱分析结果(二)图7和图8分别为输入语音信号频率大小不同情况下的结果;其中中上面的波形为语音信号的时域波形,下面的波形为对该信号进行FFT变换后的谱分析结果。由此我们可以得出:数字信号处理(D

25、SP)能够对信号进行实时分析,以便我们对各种信息能够更及时的了解,这也是它的优越性所在,使得他在我们的生活生产中有着更广泛的应用。3结语本论文学习和研究了离散傅里叶变换(DFT)和快速傅里叶变换(FFT)的算法,把重点放在了时间抽取法基-2FFT算法上。以及在DSP基础上用FFT变换对信号进行频谱分析。明确了FFT在DSP芯片上的实现的关键。基于DSP的快速傅里叶变换频谱分析的研究使FFT能够有效的在DSP芯片上实现,有助于我们能够更及时的了解信息,对我们的生活生产以及科技研究有很大的帮助。自从快速傅里叶变换(FFT)出现以后,频谱分析技术便很快的发展起来,而且越来越贴近我们的生活生产,如医疗

26、器械,无线电通信等等。但是我们对频谱分析技术的研究并未达到最高的层次,未来发展具有很广阔的空间。经过几个月的努力,论文终于得以完成。在半年的不断发掘中,自己的理论知识得以巩固和提升,研究实践能力得到较好的发展,进步较大,达到学院的培养目标,并且由衷的感谢学院的培养。非常感谢我的论文指导教师王荣姝老师,对我的引导、鼓励、支持,从论文的选题切入、进程督促、稿件修改都给予我较大的帮助,进而顺利的完成论文的各项工作。在今后的工作中,我会继续保持一颗爱学习的心,利用科学的分析方法研究、解决工作中的难题。参考文献1方勇.数字信号处理一原理与实践M.北京,清华大学出版社.2006.2丁康,张晓飞.频谱校正理

27、论的发展J.振动工程学报,20003高西全,丁玉美.数字信号处理M.西安,西安也子科技大学出版社.20084孙仲康,快速傅里叶变换及其应用M.北京,人民邮电出版社,1982.5郑阿奇.MATLAB实用教程M.北京,电子工业出版社.2009.6郭仕剑,王宝顺,贺志国,杨可心.MATLAB7.X数字信号处理M。北京,中国邮电出版社.2006刀赵桂芳等,基于DSP的快速傅立叶变换的实现J,黄石理工学院学报,20078乔瑞萍,崔涛,张芳娟.TMS32054xDSP原理及应用M.西安,西安电子科技大学出版社.2005,9杨宇,叶宇风,王洪.基于DSP的实时信号频谱分析模块设计J.电子测量技术.2006年

28、4月第二期10汪安民.TMS320C54xDSP实用技术M.清华大学出版社,2002附录EXPFFTAD50.CexternvoidInitC5402(void);externvoidOpenMcBSP(Void);externvoidCloseMcBSP(Void);externvoidREADAD50(void);externvoidWRITEAD50(void);*MainFunctionProgram#includestdio.h#includemath.hvoidkfft(p;pi,n,k,ft;fi,i)intn,kzlzil;doubleprzpi,fr,fi;intit,m,i

29、s,i,j,nv,IO;doublepzq,szvcvizpoddr;poddi;for(it=0;it=n-l;it+)m=it;is=0;for(i=0;i=k-l;i+)j=m2;is=2*is+(m-2*j);m=j;frit=pris;fiit=piis;)prO=l.O;pi0=0.0;p=6.283185306(1.0*n);prl=cos(p);pil=-sin(p);if(11=O)pil=-pil;for(i=2;i=n-l;i+)p=pri-l*prl;q=pii-l*pil;s=(pri-l+pii-l)*(prl+pil);pr11=p-q;pii=s-p-q;)fo

30、r(it=0;it=O;IO-)m=m2;nv=2*nv;for(it=0;it=(m-l)*nv;it=it+nv)for(j=0;j=(nv2)-l;j+)p=prm*j*frit+j+nv2;q=pim*j*fiit+j+nv2;s=prm*j+pim*j;s=s*(frit+j+nv2+fiit+j+nv2);poddr=p-q;poddi=s-p-q;frit+j+nv2=frit+j-poddr;fiit+j+nv2=fiit+j-poddi;frit+j=frit+j+poddr;fiit+j=fiit+j+poddi;)if(l!=0)for(i=0;i=n-l;i+)fri=

31、fri(1.0*n);fii=fii(1.0*n);)if(il!=0)for(i=0;i=n-l;i+)pri=sqrt(fri*fri+fii*fii);if(fabs(fri)O)pii=90.0;elsepii=-90.0;)elsepii=atan(fiifri)*360.06.283185306;)voidmain(void)intiznzk=0;doublex128zpr128zpi128zfr128zfi128zmo128;intmzzm;int*px=(int*)03000;int*pz=(int*)03080;n=128;InitC5402();*initializeC54

32、02DSP*/OpenMcBSP();for(;)(READAD50();px=(int*)03000;for(i=0;i=n-l;i+)(xm=*p;xi=xm32768.0;pri=11;pi11=O;px+;)kfft(p卬i,128,7,ft;fi,0,l);pz=(int*)03080;for(i=O;i=n-l;i+)moi=sqrt(fri*fri+fii*fii);zm=(int)(moi*1000.0);*pz=zm;pz+;)k+;*EndofFileExpFFTAD50.c*yclc;fs=lOOO;N=2048;n=0:N-l;t=nfs;x=sin(2*pi*50*t)+sin(2*pi*200*t)+rand(l,N);y=fft(xzN);mag=abs(y);f=n*fsN;SUbPlot(1,2,1),PIot(f,mag);XIabelC频率/Hz);ylabel(振幅);title(,N=2048);gridon;subplot(l,2,2),plot(f(l:N2)zmag(1:N2);XIabeIC频率/Hz);ylabel(振幅);title(N=2048);gridon;

宁ICP备18001539号-1