《基于dsp的fft频谱分析方法研究分析电子信息工程管理专业.docx》由会员分享,可在线阅读,更多相关《基于dsp的fft频谱分析方法研究分析电子信息工程管理专业.docx(33页珍藏版)》请在课桌文档上搜索。
1、基于dsp的千代频谱分析方法研究摘要:现代社会科学技术发展速度极快,微电子技术以及计算机科学进展速度尤为显著,对于促进社会的发展发挥了关键性作用。频谱分析的基础是信号处理,现阶段己经在大部分工程技术领域当中有所应用,并在行业中占据着极为重要的地位。DSP性质可以细化为几个层面,分别为集成性、稳定性以及可重复性。同时,处理速率极高,可编程,为频谱分析基础的优化和更新创造了广阔的空间。信号处理中诸多问题的解决需要借助于数字信号处理,这一技术可以细化为数字滤波和频谱分析两个不同的层面。本文所研究的频谱分析主要是基于DSP的FFT变换,借助于细致研就FFT以及DFT,可以完成对这方面知识细致梳理,在学
2、习中,要重点完成对FFT的研究和理解。在明确DSP芯片基本理论知识和开发环境的前提下,学习软件仿真以及CCS、MATLAB的调试办法,进一步对FFT算法的正确性进行验证,实现DSP信号的频谱分析,保证分析结果的实时性。关键词:DFT、FFTs频谱分析、DSPResearchonFFTSpectrumAnalysismethodbasedonDSPAbstract:Thedevelopmentofmodemsocialscienceandtechnologyisextremelyfast,andtheprogressofmicroelectronicstechnologyandcomputers
3、cienceisparticularlyremarkable,whichplaysakeyroleinpromotingsocialdevelopment.Thebasisofspectrumanalysisissignalprocessing.Atpresent,ithasbeenappliedinmostengineeringtechnologyfieldsandplaysanextremelyimportantroleintheindustry.ThenatureofDSPcanberefinedintoseverallayers,namelyintegration,stabilitya
4、ndrepeatability.Atthesametime,theprocessingrateisextremelyhighandprogrammable,creatingavastspaceforoptimizationandupdatingofthespectrumanalysisbasis.Thesolutiontomanyproblemsinsignalprocessingrequiresdigitalsignalprocessing,whichcanberefinedintotwodifferentlayersofdigitalfilteringandspectralanalysis
5、.ThespectrumanalysisstudiedinthispaperismainlybasedontheFFTtransformationofDSP.WithcarefulstudyofFFTandDFT,theknowledgeofthisaspectcanbecarefullycombed.Inthestudy,theresearchandunderstandingofFFTshouldbecompleted.LJnderthepremiseofclarifyingthebasictheoreticalknowledgeanddevelopmentenvironmentofDSPc
6、hip,learningsoftwaresimulationanddebuggingmethodsofCCSandMATLAB,furtherverifythecorrectnessofFFTalgorithm,realizespectrumanalysisofDSPsignal,andensurethereal-timeperformanceofanalysisresults.Keywords:DFT,FFT,spectrumanalysis,DSP目录1绪论1.1 引言这个时代是互联网飞速发展的时代,对于数字信号处理技术而言,在很多的领域都有涉及。目前,发展迅速。DSP技术有了突飞猛进的发
7、展。离散时间傅立叶变换(DFT)是数字信号处理中十分常见的变换方式之一。离散傅立叶变换发现的频率离散化可以对响应计数漉波器的频率、分析信号的频谱、信号通过线路系统的卷积运算能够直接运用,由此可见,对于分析信号的频谱中起到的作用至关重要。因为经过DFT的运算的过程中做法十分复杂,即便对计算机运算方法进行处理问题难度也很大,由此可见,对于一种通用的快速傅立叶变换,专家学者们对此进行开发。对于当前情况而言,在语音识别、雷达处理、地质勘探等多个种类的技术当中,FFT被广泛运用到里面去。应用场景的不一样,FFT处理器的能力要求的标准也不一致。高效率、精细、及时处理的FFT处理器和大容量进行多种要求。所以
8、,对于快速傅立叶变换的实施而言,灵活程度较强,反应及时、迅速是一项极为关键性的内容。数字信号处理器是一类可以实现程序编辑的处理器,具有较高性能。一方面对于数字信号处理十分适合,而且大部分渗透于通信、语音、图像编辑等工作当中。借助于应用DSP集成的做法,出现了速度极快的乘法硬件,再借助于这一办法完成加法和乘法能够快捷高效地得出结果。1.2 频谱分析的技术发展从科研层面和实际的生产层面进行分析,发现在多个领域以及环境当中都可以很好的应用频谱。这些领域涵盖了汽车、汽轮机、轮船以及电动机、飞机、机床等各种主体进行合理的运算分析,得出结论。一方面可以得到所需要的设计数据和测试效果,另一方面也可以用来对振
9、动源进行查找,确保安全运行设备,诊断故障。当处于海平面上的时候,为了搜索船只或潜艇,需要借用声纳系统。频谱分析噪音信号,为判断船舶的速度、方向、位置和尺寸提供用必要的帮助。所以说,频谱分析方法的研究引起了广泛的关注和重视,当前先进信号处理技术中,是备受关注的课题之一。1 .3本论文主要研究的内容本文主要在信号频谱分析中,根据实现DSP的FFT变换的进行具体阐释。将离散傅立叶变换和傅里叶变换的关键性理论进行分析和,离散型的和快速傅里叶变化的原理和理论基础极为相似,基本是一致的。离散傅立叶变换的奇、偶、虚、实等多种性质,很大程度的改善了离散傅立叶变换的方法。快速傅立叶变换(FFT)的方法被用于到了
10、很多的方面之中。本文主要解决的问题就是如何对信号的频谱进行研究,使FFT在科学研究中运用到更加广泛。2 FFT算法原理及其DSP实现2.1 离散傅里叶变换(DFT)将一个长度为M序列设成X(n),在N点采用变换分析,x(n)7V-X(k)=OFTLx(11)J=ZxO)w”,k=O,1,JN-I1/7=0X(k)的逆变换为:x(n)=IDFTX(k)=1TV-Ix(n)=IDFTLX(k)J=一Xa)WK”,k=0,1,.JM-1Nj2r在WA,=e中,存在N2M。2.2 离散傅里叶变换基本的性质2. 2.1线性性质若定义XM)和5)为两个有限长度的序列,那么其长度分别设为M和N?,并且y(n
11、)=ax(n)+hx2(n)此式中,a、b是常数,设N2maxN,N2,那么y(Q的N点通过DFr运算得到:Y(Z)=O皿y(叽=必(k)+成而owkN-1(3)此式中,*于乂2伏)依次是M)和工2()在N点对应的DFT。2.2.2循环移位性(1)序列的循环移位某序列为长度为有限制,将长度数值设置为M,其具体为(n),并且M不大于N,与X(n)的循环移位相对而言,定义为如)二%(+加),出()(4)(2)时域循环移位定理有限x(n)序列长度为M,x(n)的循环移位为其y(n),即y()=%(+M)NRN()则j()=QFTl),(叫N=叱/X(Q(5)其中X(k)=Dx(叫o9NT(3)频域循
12、环移位定理如果X(k)=DFTx(矶V0kN-1Y(Q=MG+/)NRN(八)则y()=IDFTY(k)N=W(6)2.2.3循环卷积定理对于序列M)和2()是有限长的,M和“2是二者的长度,N大于等于maxM,M,而与N点而言,以及与()循环卷积是:N-I1(叫响=冢加尔(-()在N点,x(n)快速傅立叶变换得到的结果为:X()=DF11x(=X1()X2()f72. 2.4共轨对称性共辑对称性是X(k)的一类性质,可以细化为两个种类,分别为共趣对称以及反对称。基于x(n)的上述两种不同的性质,所获取DFT的结果分别为X(k)的实部虚部和3j相乘序列x(n)的DFT当设为X(k)时,那么x(
13、n)(包括j)的实虚部将被DFT分开。2.1 快速傅里叶变换对于离散形的傅里叶变换,快速变换则为一类速度较快的算法,这类算法体现出几个显著地特点,分别为:虚、实、奇和偶。进而可以实现对傅里叶变换的极大更改。就离散型变量来说,在以前已经有过较多的发现。通过下面对离散傅立叶进行变换,获得相应的有限长序列x(n)及其频域X(k)0kN-l(8)NTx(k)=DF11x(n)=Zm)MA=0IAf-Ix(n)=IDFTX(k)=-gQkN_l由此得到叱T=J歹。除此之外,式(8)式(9)分别为两类离散傅立叶变换形式,分别为正变换以及逆变换,变换的构成成分为为X(n)与X(k)。那么就会进行的复数乘法和
14、加法分别有N次、NT次,如果要对全部的X(k)(0kN7)进行计算得到结果,进行的复数乘法和加法分别需要N?和N(NT)次。四次实数乘法和两次实数加法才能得到1次复数乘法,两次实数加法才能得到1次相应的复数加法,所以说,通过42次实数乘法和2N(2N-1)次实数加法,才能够获取所有的X(k)。对处理实时信号而言,如果N数值较大时,这就对处理器计算能力要求很高,所以当前最为关键的是将计算离散傅里叶变换运算量的难题得以解决为了降低计算复杂度,计算效率得到提升,有必要对算法进行完善和改动。在DFT过程中,要完成的运算的系数存在着许多的对称性。对对称性进行调查分析,从而使得计算过程得以简化,计算DFT
15、消耗的时间大大缩短。综上所述,N点通过DFT,得到N2。分析发现,完成DFT转化以后,N点长度有所缩短,极大地减少了减法程序。此外,周期性和对称性是旋转因子W具备的特征,它的周期公式是:WhN=/帝)=J券=其对称性具体如下表达为:在FFT算法中,可以将DFT进行分解,使之成为长度较短的几个序列,充分利用其对称性以及周期性,实现运算次数的减小。具有如下特性:(IM的周期性:WWL=W常的对称性V=(附h=Wy*)WT的可约性:%=WM=限而且,Hr=TM片=_黑。根据卬,一定的运算规则,将X(n)或X(k)序列分解众多的较短序列,大量的重复运算问题得以解决,从而更加高效地运算DFT相关计算。算
16、法种类繁多,FFT可以细化为两个大类,分别为时间抽取(DlT)以及频率抽取(DlF)。3. 2基-2FFT算法序列X(n)的长度的准确值为N=2、只有M取整数值时才可以成立(也可以通过人工添加零点的方式实现)。通过在时域中抽取奇数和偶数,将离散傅立叶变换分解为短序列,让离散傅立叶变换的最小单位为2点。在快速傅立叶变换操作中,最小的离散傅立叶变换单元通常被叫做基,所以基-2时间抽取快速傅立叶变换(DIT-FFT)算法4也是该算法的另外一种称呼。对于数列来说,由于n的奇数和偶数不同,可以得到不同的序列,n=2r时,取偶数值,n=2r+l时,取奇数值;由此可以得出Nx(2r)=X(r),x(2r+1
17、)=xr),r=O,.,12(10)则通过DFT运算可以被写成X(Q=SX(2r)心戊+双23网2小r=Or=0=Sx阅於+Sw(r)吆2,r=0r=0%=)+42r+Mr=Or=O=X1()+X2()(11)与、2伏)相同,都可以作为七和A式)的DFT,同时,规定了k值和r值的适用范围,需要处于0,1,N2T的范围内。X(k)可以和N点相互对应,式(11)可以对X(k)的前N/2的值完成计算。由对于W和XT(Ie)的DFT特点发现X(k)的后N/2具体的值:NNklNX(A+)=X伏+彳)+%2X2(y)=()+2()(12)在以上两式中可以清楚地看到,若能得到在2个N/2点的DFTWQ与超
18、(女),在完成处理和分析以后,可以获取全部N点的X(k)。基于N=2”,sN2=2*计算结果为偶数,可以完成多次分解,最终的停止点为2点DFTXm(P)和X(q)分别是输入值,儿+/P)和X用是输出值,%,为旋转因子,由于2DIT-FFT算法,完成蝶形计算采用下述公式X*i(P)=XnJ(P)+Xq)W(IXm+=XWI(P)-X姑M见图L上结点为Xm(P),下结点为Xm(q)XQHI(P)Xm(P)XnXq)图1时间抽取蝶形计算单元上述算法应用于8点的FFT,得到N=8的基-2DIT-FFT的运算过程:图2当N=8时,其DlT-FFT运算流程图综上所述,结合运算基本原理以及流程图,能够全面获
19、取基-2DIT-FFT的点,详细见下述分析:(1)级数分解:当N=2W时。可以进一步被分解为M级,各级都有N/2个蝶N-N、xrM=XIog9N形计算单元,需要完成蝶形计算数量的的计算公式为22。(2)运算量估计:每一次复数乘法和两次复数加(减)法就可以得到一次蝶形dloN计算,N点FFT所需复数乘法和复数加(减)法分别为5g2次,Nxl%N次。换句话说,个别蝶形计算不再要求复乘。(3)原位运算:当数据在存储器中输入时,在每次蝶形操作之后,在同一存储器组中所获取的成果仍然存储于相同的地方,在最终输出之前不需要额外的存储单元。(4)位码倒序:根据图2能够清楚看出,经过FFT计算后输出的X(k)的
20、顺序正好按照X(O),X(1),和X(7)的顺序排列,在存储单元中,X(n)是X(O),X(4),-X(7)以倒序形式输入,并且存储,也就是所谓的正序和倒序的输入办法。尽管这种输入的规则程度不高,呈现出显著的混乱状态,但是仍然有一定的规律,实际上就是位码反转规则。(5)旋转因子的确定:进行了FFT的8点重复运算得出了的相关变化。第一次迭代的结果是单一形式的蝶形计算叫,进行蝶形计算时两个数据相差1;二级迭代的蝶形计算系数有两种卬;和两个数据点差2;三级迭代中,出现了四种数据类型叫、阳、喏、嗯。这四个数据点相差4.所以,每进行一次蝶形计算,得出的类型就会增长为原来的2倍,与之相对的差距也是原来的2
21、倍。最后所完成的迭代操作所获取的类型种类数值最高,他们的数据点间距也是最大的,间距是N/2。4. MATLAB仿真5. 1.l相关的MATLAB功能函数简介(1)图像显示函数:Plot,X轴和y轴均为线性刻度。(2)图形生成函数:figure,生成图形窗口。(3)FFT函数:fft(s),变量S是完成加窗处理和运算的帧信号结果。在进行FFT运算时,其实施信号的领域结果也是中心对称的,所以最后得出的结果也是根据前半部分所产生的。(4)复数取共施函数:Conj(Z)函数,函数中的Z是进行fft运算得出的结果。这个结果可以运用在X(m,k)的幅度使用上。(5)randn:产生正态分布的随机数或矩阵的
22、函数。4.L2用Matlab实现快速傅立叶变换FFT算法可以实现让傅里叶变换的速率更高,并且可以把信号转换成频域。由于数据中的信号很多时候不好分辨他们的特点,可是在进行转化频域之后,得到特征的过程就十分简单。所以进行信号分析时经常运用FFT变换。并且FFT方法可以进行信号频谱的提取,这种方式经常使用于频谱的分析。现在大多数人己经熟练掌握了FFT的分析方法和用法,可是对于得出的数据结果和进行FFT运算时该使用多少点很疑惑。就目前而言,我们根据实践经验对FFT结果的实际物理含义进行讨论。当采集完ADC的样本之后,模拟信号就向数字信号逐步转换。痛过对采样定理的使用,采样获得的频率达到两倍,甚至高于两
23、倍。经过采样之后,数字信号由此获得,并且可以转换成FFT。通过FFT的相关计算,可以得到N个采样点的快速傅立叶变换结果。为了使得傅立叶变换的运算更为高效,n一般取2的整次赛。若将采样频率、信号频率、采样的次数,分别设为FS,F,N,经过FFT计算后得到的结果,是n点的一个复数。每个点和频点相互一一对照。该频率值下,该点的模量也就等于振幅特性。它与原始信号的振幅存在的关联又是怎样的呢,如果将A设为初始信号的最高点,则经过FFT计算之后,其得到的每个点都十分细致的模的计算公式为A乘以N/2,除了起始的直流分量。直流分量作为最初的点,它对应的模等于其本身的N倍。在当前频率下,信号相位和每个点以此对应
24、。起始点象征着频率为。赫兹的直流分量,除此之外,终止点与N相对应,其下一个点(该点事实上不存在,这里是假设点N+L换句话说是把起始点分成两部分,将另一半平移到最后)代表采样频率FS,NT个点在这其中被分成N个相等的部分。中间每个点的频率是逐步递增的。如果通过FFT进行对2秒的信号进行采样,对于结果分析,可以提高到0.5赫兹。如果想要使得频率分辨率提高,必须对采样点增加数量,使得采样时长与频率分辨率成反比。例如进行了FFT运算得出的点n可以用复数a+bi显示,它的模可以用An=根号a*a+b*b来进行表示,那么它的相位结果就是Pn=atan2(b,a)通过这个运算,n(n=l,而且n=N2)点的
25、信号表达公式就是An(N2)*cos(2*pi*Fn*t+Pn),就是2*AnN*cos(2*pi*Fn*t+Pn)。而n=l是一种直流分量,他的幅度是Al/No但是在进行FFT运算时他的运算结果是对称的,所以我们在进行运算时只是用一般结果即可,所以这种方式的结果小于采样的频率。在进行运算时,采集的样本频率是Fs,采集的点数量定为N,并且在进行了FFT的运算之后,其中的点n(n=l)其频率是:Fn=(n-l)*FsN;对这个点进行相应的除模运算,将其除以N/2,这个运算就是这个频率上的信号幅度;这个信号的相位就是这个点的相位。对于相位进行计算时可以运功atan2(b,a)进行。这个函数是对(a
26、,b)坐标的角度进行求解,求解的范围是-Pi-Pi。如果需要对于这个数值进行精确,并且知道xHz,就需要对于1/x(s)的信号进行采集,最后在进行FFT的运算。如果需要提升对于高频率的分辨率,就必须对于采样数据进行细致的采点,这种方式使用在实际中是很困难的,因为需要在短时间进行这个工作。如果需要解决这个问题可以使用频率分析法,这个方法比较复杂,但是有更加简便的方法就是对于时间段的信号进行采集,采集完后在数据后进行很多0的补充,让采集到的时间信号的长度达到要求,在进行FFT的运算,这种方法就可以提升频率的分辨力。4.2.3检验使用MATLAB应用进行FFT变换频谱分析这里,为了明确FFT算法是否
27、正确,需要做如下验证。由=50Hz,&=20OHZ构成的)=sin(2%)+Sin将一个干扰记载在信号中,这一干扰是噪音干扰。在采样时,可以选择IooOHZ的频率来完成,将FFE分析在N=2048点进行,进而借助于编程仿真,获取信号的谱分析曲线以及时域波形,分别见图4和图3.频率/Hn图3时域波形N=204812001000800*:匕600400200000200400600频率/Hz图4FFT谱分析结果图4中显示,进行运算时有信号的只有和人,如果运用FFT,在领域上完成序列,尽管干扰会作用于信号值,要想获取清晰的原信号,可以对频谱进行细致的分析,由此可以得出,FFT算法是正确的。为了更加好
28、的更加严谨验证FFT算法的正确性,接下来用ccs分析。4.2CCS分析4.2.1DSP芯片和编程工具CCS2.0的简介(l)TMS320C5402简介TI企业励志于建立低功耗、高性能的软件功能所创新出来的DSP定点芯片TMS320C5402,有着高速的运算速度,速度高达IonS的运算周期;CPU进一步完善,它的CPU内升级了四十位的算数逻辑单元1个、以及17乘17的乘法器一个、四十位的累加器和加法器各有两个,各为4条和两个内部总线。现将上面研究的结果引入数字系统中,完成所需要的就算以及相关的信息处理,发现运行的效率更加的高。他的串行口和分复用(TDM)串行口更加的标准,其中非常重要的还有HPl
29、外部处理器通信主机接口,能够和外部处理设备相连。(2)CCS20简介CCS是一类我国新近研究得到的DSP编程工具,相关的IT公司想要他们公司在这个行业有着稳固的地位所指定的相关编程工具。这种集成开发程序让在进行DSP代码进行编程和调试的过程中的所有过程都可以在一个主要环境下完成,在这个过程中的各个功能都进行了相关的优化和提高,对于开发难度有了一定的降低,CCS的功能主要是下面多个种类工具的集成体:(DDSP代码产生工具。运行CCS程序的时候,可以使用汇编和高级语言多种语言,高级语言和汇编语言的结合语言也可以使用到当中去,对于开发和编写代码的技术要求大程度的降低。(2)软件模拟器。在完成所有软件
30、的研发和试验以后,系统整体满足确定的运行要求,而且在均匀中具有更高的安全性;(3)实时基础软件。要想实现主机和DSP/BIOS参数的交换,可以借助于RTDX来实现,借助于这一工具可以使目标系统获取一个临时窗口,使原始数据的得打合理的显示,再进一步完成数据处理。但是原始的主机中的调试功能在调试的过程中需要在当前程序中加入断点,使运行中的程序被中止,只有停止以后,才能开始数据交换,尽管这种操作相对复杂,获得的数据准确程度较低,获取的数据仅仅是一些为程序运行中的数据,主要用于侧面描述,这种方式在进行检验故障和检查系统的性能时非常的麻烦。而如今的RTDX功能可以完成不终止正在运行的程序的基础上进行主机
31、和目标机之间的数据转换,而且利用RTDX进行数据交换时运用的结构是其内部的仿真逻辑和JTAG的借口,这种方式对于DSP的串口以及总线等资源无法使用,对于DSP系统来说,这类方式的影响相对较低。4.2.2利用DSP中的FFT函数进行频谱分析打开CCS2.0,用ProjectZOpen9开启ExpFFTAD5(lpjt;双击expFFTAD5Qpjt、SOUrCe可以获取不同的源程序信息;JTJFexpFFTAD50.ot;进行核心程序的设置时,对于K+进行断点的设置;开始运行程序时对“Run”进行单击,改程序结束时的位置是在断点处,如图5。操作View/GraPh/Time/FreqUenCy可
32、以成功创建图形窗口。再设置与窗口相关的不同参数以及变量,如图6。,运用双向路径进行探索查究的启动地址是0x300OH与0x3080H,它的总长度是在128的单元里的数字的变化,该数字的形态是具有相关符号的整数型变量中是占为16位的数字,在进行了A/D的过程转变成了语音信号和进行了FFT变换后的数据储存在了这两个单元里。QKI1HnPI图6参数设置运行程度可以通过点击FlO和Animate来实现,实现窗口的位置以及大小,进而可以获取输入信号的信息以及完成FFT变换得到的数据。实现暂停可以通过点击HaIt来完成,完成操作以后,可以获取语音信号的时域波形,和语音信号相对应,也可以获取完成FFT分析的
33、图形,同样与语音信号相对应。见图7、8.UiT ca raAJaIAniKZJ |加lE4tXimlrjctm吃E加*EJ,aQaimnsiPlo1.ICtLfilProJW启b/E.jt1YoXJBMCfHlrrt QjSwcJBQQlEinxt*(Linking)JBuildCcmpletQr0Errors.0Warnings,0Renarks.IIIRa图7频谱分析结果(一)U3L*r1eVc、Mv,UFa图8频谱分析结果(二)上面图7、图8分别为不同的语音频率信号时,所得到的结果。可见,信息不同,所得到的结果也并不一致。位于上面的波形是时域波形,与语音信号一一对应。下面波形为经过FFT
34、变换得到的谱分析值,与信号一一对应。基于上述分析,我们发现,要实现信号的实时分析,可以借助于数字处理技术,可以实现对不同信息的及时掌握和了解,这就是应用这一技术的主要优势,使信号处理可以极好的应用于人们的生产领域以及实际生活当中。3结语本研究主要是对快速傅里叶变换(FFT)和离散傅里叶变换(DFT)的关键性算法进行了深入的分析探索,并且研究的核心是时间抽取法基-2FFT算法。并且在信号分析频谱的分析是在DSP基础的FFT变化方法。在DSP芯片中引入FFT算法就是一个很好的体现。我国将快速傅里叶变换的频谱分析应用于DSP方向,使FFT在DSP芯片上的实行成为了现实,并且可以让我们对于出现的信息可
35、以更加及时的接受,可以协助我们更容易进行科学研究。近几年来,快速傅里叶变化(FFT)在研究领域被提出以后,极大地促进了国内与频谱分析方面先关技术的发展和进步,并逐渐融入了普通人的日常生活当中。和我们的联系愈加紧密。逐渐进入到医疗设备以及器械领域和通信领域当中。但是,我国的很多研究人员在这方面的研究仍然处于基础阶段,深入程度还不够,在频谱领域的研究仅停留在表层,没有进行深层次的挖掘,在未来,必将会有更大的发展,这一领域的研究仍然具有较大的可提升空间。经过几个月的努力,论文终于得以完成。在半年的不断发掘中,将已经学习的基础理论知识做了全面的整理,使自己的理论基础更加扎实,进而使科研水平也有所提升,
36、对于今后开展科研工作具有积极地促进作用,在本文的研究阶段,我进步速度很快,已经满足了学院对学生的要求,我对学院衷心感谢。同时,对我的指导教师王荣姝尤其感谢,谢谢您对我的关系和引导,您循循善诱,引导和帮助我解决了论文研究中的一个有一个难题。从论文最初的选题开始,一直到研究和结题,论文修改都对我严格要求,关怀备至,给予我较大的帮助,进而顺利的完成论文的各项工作。在今后的工作中,我会继续保持一颗爱学习的心,利用科学的分析方法研究、解决工作中的难题。参考文献1方勇.数字信号处理一原理与实践M.北京,清华大学出版社.2006.2丁康,张晓飞.频谱校正理论的发展J振动工程学报,20003高西全,丁玉美.数
37、字信号处理IM.西安,西安电子科技大学出版社.20084孙仲康,快速傅里叶变换及其应用M.北京,人民邮电出版社,1982.5郑阿奇.MATLAB实用教程M,北京,电子工业出版社.2009.6郭仕剑,王宝顺,贺志国,杨可心.MATLAB7.X数字信号处理M。北京,中国邮电出版社.20067赵桂芳等,基于DSP的快速傅立叶变换的实现J,黄石理工学院学报,20078乔瑞萍,崔涛,张芳娟.TMS32054xDSP原理及应用M.西安,西安电子科技大学出版社.2005,9杨宇,叶宇风,王洪.基于DSP的实时信号频谱分析模块设计J.电子测量技术.2006年4月第二期10汪安民.TMS320C54xDSP实用
38、技术M.清华大学出版社,2002附录EXPFFTAD50.CexternvoidInitC5402(void);externvoidOpenMcBSP(Void);externvoidCloseMcBSP(Void);externvoidREADAD50(void);externvoidWRITEAD50(void);*MainFunctionProgram#includestdio.h,#includemath.hvoidkfft(pr)Pi,n,k,frm,l,il)intn,k,l,il;doublepr,pi,fr,fi;intitzmziszizjznv,IO;doublep,qzs
39、zv7vizpodd:poddi;for(it=O;it=n-l;it+)m=it;is=O;for(i=0;i=k-l;i+)j=m2;is=2*is+(m-2*j);m=j;frit=pris;fiit=piis;pr0=1.0;piO=O.O;p=6.283185306(1.0*n);prl=cos(p);pil=-sin(p);if(!=O)pil=-pil;for(i=2;i=n-l;i+)p=pri-l*prl;q=pii-l*pil;s=(pri-l+pii-l)*(prlpil);pri=p-q;pii=s-p-q;)for(it=O;it=O;IO-)m=m2;nv=2*nv
40、;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=fri(1.0*n);fii=fii(1.0*n);)i
41、f(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)inti,n,k=O;double128zpr128,pi128,fr128zfi128,mo128;intxm,zm;int*px=(int*)03000;int*pz=(int*)03080;n=128;InitC5402();*initializeC5402DSP*/OpenMcBSP();for(;)READ
42、AD50();px=(int*)03000;for(i=O;i=n-l;i+)xm=*px;i=xm32768.0;pr11=i;Pi=O;p+;)kfft(p卬i,128,7,;fi,0,l);pz=(int*)0x3080;for(i=O;i=n-l;i+)moi=sqrt(fri*fri+fii*fii);zm=(int)(moi*1000.0);*pz=zm;pz+;)k+;*EndofFileExpFFTAD50.c*/Cmd文件*求*/*/*/1.INKERcommandfileforLEAD3memorymap*/*/MEMORYPAGE0:SPRAM:origin=OOOOOc
43、Oh,length=0000040hVECS:origin=OOOOl00h,length=OOOOlOOhDARAMO:origin=0000200h,length=0003E00hDARAM1:origin=0004000h,length=0004000hDARAM2:origin=0008000h,length=0004000hDARAM3:origin=OOOcOOOh,length=0004000hSARAMO:origin=OOl0000h,length=0004000hSARAM1:origin=OOI4000h,length=0004000hSARAM2:origin=0018
44、000h,length=0004000hSARAM3:origin=OOIcOOOh,length=0004000hSARAM4:origin=0020000h,length=0004000hSARAM5:origin=0024000h,length=0004000hSARAM6:origin=0028000h,length=0004000hSARAM7:origin=002c(X)0h,length=0004(X)0hSARAM8:origin=0030000h,length=0004000hSARAM9:origin=0034000h,length=0004000hSARAMI0:origin=0038000h,length=0004000hSARAM11:origin=003c000h,length=0004000hSARAM12:origin=0040000h,length=0004000hSARAM13:origin=0044000h,length=0004000hSARAM14:origin=0048000h,length=0004000h