您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 信号的频谱分析及DSP实现
《现代信号处理课程设计》课程设计报告设计题目信号的频谱分析及DSP实现目录第1章绪论..............................................11.1设计背景.............................................11.2设计要求.............................................31.3设计思路简介.........................................3第2章系统开发平台与环境.................................32.1CCS开发环境.........................................32.2SEED-DEC2812开发实验箱..............................3第3章频谱分析仪设计过程...............................43.1FFT算法实现........................................43.2频谱分析系统设计....................................83.3源程序代码........................................9第4章系统仿真…........................................144.1仿真设置...........................................144.2仿真图.............................................16第6章总结..............................................20参考文献.................................................201第1章绪论1.1设计背景随着数字技术与计算机技术的发展,数字信号处理(DSP)技术已深入到各个学科领域。近些年来,数字信号处理技术同数字计算器、大规模集成电路等,有了突飞猛进的发展。在数字信号处理中,离散傅里叶变换(Discrete.TimeFourierTransform,DFT)是常用的变换方法,它在数字信号处理系统中扮演着重要角色。由离散傅里叶变换发现频率离散化,可以直接用来分析信号的频谱、计数滤波器的频率响应,以及实现信号通过线系统的卷积运算等,因而在信号的频谱分析方面有很大的作用。由于DFT的运算量太大,即使是采用计算机也很难对问题进行实时处理,所以经过很多学者的不懈努力,便出现了通用的快速傅里叶变换(FFT)。快速傅里叶变换(FastFourierTransform,FFT)并不是与离散傅里叶变换不同的另一种变换,而是为了减少DFT计算次数的一种快速有效的算法。对FFT算法及其实现方式的研究是很有意义的。目前,FFT己广泛应用在频谱分析、匹配滤波、数字通信、图像处理、语音识别、雷达处理、遥感遥测、地质勘探和无线保密通讯等众多领域。在不同应用场合,需要不同性能要求的FFT处理器。在很多应用领域都要求FFT处理器具有高速度、高精度、大容量和实时处理的性能。因此,如何更快速、更灵活地实现FFT变得越来越重要。数字信号处理器(DSP)是一种可编程的高性能处理器。它不仅是一种适用于数字信号处理,而且在图像处理、语音处理、通信等领域得到广泛的应用。DSP处理器中集成有高速的乘法硬件,能快速的进行大量的乘法加法运算。频谱分析在生产实践和科学研究中获得日益广泛的应用。例如,对汽车、飞机、轮船、汽轮机等各类旋转机械、电机、机床等机器的主体或部件进行实际运行状态下的谱分析,可以提供设计数据和检验设计效果,或者寻找振源和诊断故障,保证设备的安全运行等;在声纳系统中,为了寻找海洋水面船只或潜艇,需2要对噪声信号进行谱分析,以提供有用信息,判断舰艇运动速度、方向、位置、大小等。因此对谱分析方法的研究,受到普遍注意和重视,是当前信号处理技术中一个十分活跃的课题。1965年库利首次提出了快速傅里叶变换(FFT)算法,FFT和频谱分析很快发展成为机械设备故障诊断、振动分析、无线电通信、信息图象处理和自动控制等多种学科重要的理论基础。然而长期的应用和近年来的理论分析表明:经快速傅立叶变换得到的离散频谱,频率、幅值和相位均可能产生较大误差,单谐波加矩形窗时最大误差从理论上分析可达36.4%;即使加其他窗时,也不能完全消除此影响,在加汉宁(Hanning)窗时,只进行幅值恢复时的最大幅值误差仍高达15.3%,相位误差高达90度。因此,频谱分析的结果在许多领域只能定性而不能精确的定量分析和解决问题,大大限制了该技术的工程应用,特别是在机械振动和故障诊断中的应用受到极大限制。从70年代中期,有关学者开始致力于频谱校正理论的研究以期解决离散频谱误差较大的问题。1975年JohnC.Burges等从事电学领域研究工作的学者采用插值法对加矩形窗的离散化频谱进行校正,解决了电学中的离散高次谐波参数的精确测量问题。1983年ThomasGrandke提出了加Hanning窗的内插法,进一步提高了离散高次谐波参数的分析精度。1993年,丁康和谢明提出了三点卷积法幅值校正法,提高了频率间隔较大的信号的离散频谱幅值精度,解决了工程实际中的一些问题。1994年,谢明、丁康等提出和发展了比例频谱校正方法,使内差法系统地发展成为一种通用的频谱校正方法,解决了频率间隔较大的离散化频谱幅值、相位和频率的精确求解问题,并开始对离散频谱的校正方法和误差分析进行了深入系统的分析和研究。1996年,余佳兵,史铁林等提出了采用复调制细化谱分析将已产生频谱干涉的密集频率成分分离开,消除干涉,再用比例法进行校正以解决密集频率成分的离散频谱的校正问题。1997年,谢明、丁康等分析了离散频谱中的负频率成分和多频谱成分的干涉现象,提出了离散频谱中用相位和幅值综合判定和识别单频率成分的方法,实现了单频率成分和频率间隔较大的多频率成分的自动识别和自动校正,并提出了在不采长样的基础上利用轴系旋转识别和校正两个己发生干涉的密集频率成分的自动判定和校正的方法。1998年刘渝提出了一段信号作N点和N/2点的校正方法,利用相位信息可以得到比较精3确的频率。1999年,丁康、谢明等提出了对连续时域信号分前后两段作傅里叶变换,利用其对应离散谱线的相位差校正出谱峰处的准确频率和相位的校正方法一相位差校正法,该方法可在不知道窗谱函数表达式的情况下,直接用其相位差进行频率和相位校正。2001年,徐培民、杨积东、闻邦椿提出了自动识别和修正离散频谱中两临近谱峰参数的方法,不仅能识别间距不到一个频率分辨率的两个密集频率成分,而且能识别峰间距为1-6个频率的临近谱峰参数。1.2设计要求利用C语言在CCS环境中编写一个FFT程序,并能利用已设计好的频谱分析仪对常用信号进行频谱分析。1.3设计思路简介在TMS320C54x系统开发环境CCS(CodeComposerStudio)下对FFT算法的DSP实现原理进行讨论。利用C语言设计相应的频谱分析仪,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的信号的频谱分析能完成预定的任务。第2章系统开发平台与环境2.1CCS开发环境CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下图1所示的开发周期的所有阶段。4图12.2SEED-DEC2812开发实验箱SEED-DECxxxx系列嵌入式DSP开发板本着模块化、总线型、开放式、系列化的设计思想,采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成具有标准总线和相同物理尺寸的高性能嵌入式DSP开发板。SEED-DEC2812嵌入式DSP开发板原理框图如图2所示:图2第3章频谱分析仪设计过程3.1FFT算法实现快速傅里叶变换(FFT)是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的,它对离散傅里叶变换并没有新的发现。有限长序列x(n)及其频域表示X(k)可由以下离散傅立叶变换得出设计概念性规划编程和编译创建工程文件、编写源代码和配置文件调试语法检查、探测点设置和日志保存等分析实时调试、统计和跟踪510x(k)=DFT[x(n)]=()NnkNnxnW01kN(8)101x(n)=IDFT[X(k)]=()NnkNnXkWN01kN(9)其中2jnknkNNWe。式(8)称为离散傅立叶正变换,式(9)称为离散傅立叶逆变换,x(n)与X(k)构成了离散傅立叶变换对。根据上述公式,计算一个X(k),需要N次复数乘法和N-1次复数加法,而计算全部X(k)(01kN),共需要2N次复数乘法和N(N-1)次复数加法。实现一次复数乘法需要四次实数乘法和两次实数加法,一次复数加法需要两次实数加法,因此直接计算全部X(k)共需要42N次实数乘法和2N(2N-1)次实数加法。当N较大时,对实时信号处理来说,对处理器计算速度有十分苛刻的要求,于是如何减少计算离散傅里叶变换运算量的问题变得至关重要。为减少运算量,提高运算速度,就必须改进算法。计算DFT过程中需要完成的运算的系数里,存在相当多的对称性。通过研究这种对称性,可以简化计算过程中的运算,从而减少计算DFT所需的时间。如前所述,N点的DFT的复乘次数等于2N。显然,把N点的DFT分解为几个较短的DFT,可是乘法的次数大大减少。另外,旋转因子mNW具有明显的周期性和对称性,其周期为:22()jmlNjmmlNmNNNNWeeW其对称性表现为:mNmNNWW或*[]NmmNNWWFFT算法就是不断地把长序列的DFT分解成几个短序列的DFT,并利用mNW的周期性和对称性来减少DFT的运算次数。nkNW具有以下固有特性:(1)nkNW的周期性:()(NnknNknkNNN)6(2)nkNW的对称性:()nknknnNkNNN()(3)nkNW的可约性:/,nnNNnNNn另外,/2(/2)1,NkNkNNN。利用nkNW的上述特性,将x(n)或X(k)序列按一定规律分解成短序列进行运算,这样可以避免大量的重复运算,提高计算DFT的运算速度。算法形式有很多种,但基本上可以分为两大类,即按时间抽取(DecimationInTime,DIT)FFT算法和按频率抽取(DecimationInFrequency,DIF)FFT算法。如果序列x(n)的长度2MN,其中M是整数(如果不满足此条件,可以人为地增补零值点来达到),在时域上按奇偶抽取分解成短序列的DFT,使最小DFT运算单元为2点。通常将FFT运算中最小DFT运算单元称为基(radix),因而把这种算法称为基-2时间抽取FFT(DIT-FFT)算法[4]。将x(n)按n为奇偶分解成两个子序列,当n为偶数时,令n=2r;当n为奇数时,令n=2r+l;可得到12(2)(),(21)(),0,...,12Nxrxrxrxrr(10)则其DFT可写成11222(21)00()(2)(21)NNrkrkNNrrXkxrWxrW11222(21)1200()()NNrkrkNNrrxrWxrW1122/2/200(2)(21)NNrkrkNNrrxrWxrW12()()kNXkWXk(11)1()Xk和2()Xk均分别是N/2点序列1()xn和2()xn的DFT,而且r与k的取值满足0,1,…,N/2-1。而X(k)是一个N点的DFT,因此式(11)只计算了X
本文标题:信号的频谱分析及DSP实现
链接地址:https://www.777doc.com/doc-6285352 .html