信号频谱分析设计性实验报告姓名:×××学号:…………班级:××××××基于DSP用FFT变换进行信号频谱分析设计性实验报告摘要随着计算机和微电子技术的发展,基于数字信号处理的频谱分析已经应用到各个领域并且发挥着重要作用。信号处理方法是当前机械设备故障诊断中重要的技术基础之一,分析结果的精确程度是诊断成功与否的关键因素。研究频谱分析是当前主要的发展方向之一。数字信号处理基本上从两个方面解决信号的处理问题:一个是时域方法,即数字滤波器;另一个是频域分析,即频谱分析。本实验报告主要介绍基于DSP的信号频谱分析系统。本系统以数字信号处理为基础,利用数字信号处理器(DSP)强大的数据处理能力来对采集到的信号利用FFT(快速傅立叶变换)算法进行频谱分析。关键词:FFT;频谱分析;DSP;一、课程设计目的1、了解使用硬件实验系统进行信号频谱分析的基本思路;2、掌握使用DJ-XH2信号与系统实验平台进行实时信号频谱分析的方法。二、课程设计原理一个连续信号X(t)的频谱可以用它的傅立叶变换表示为:X(jΩ)=∫-∞+∞X(t)e-jΩtdt如果对信号进行理想采样,可以得到离散傅立叶变换。X(ejω)=∑-∞+∞X(n)Z-nDSP数字信号处理器可以对实时采集到的信号进行FFT运算以实现时域与频域的转换,FFT运算结果反映的频域中各频率分量幅值的大小,从而使画出频谱图成为可能。用DSP实验系统进行信号频谱分析的基本思路是:先将实时信号的采样值送入DSP系统,DSP程序对这些采样值进行FFT变换,经运算求出对应的信号频谱数据,并将结果送到PC机屏幕上进行显示,使DSP硬件系统完成一台信号频谱分析仪的功能。如下图所示:三、课程设计要求观测函数发生器应产生频率为1KHz~64KHz的方波、正弦波、三角波模拟信号,运用上位软件Signal,进入频谱分析窗口,窗口即显示该实时信号的时域图和频谱图。(频谱分析时信号的采样率为128KHz,FFT的长度为128,因此频率分辨率为1KHz,也即当信号频率为1KHz的整数倍时,测量结果准确。)装载并运行FFT程序读入AD采样值进行FFT运算求信号的DFT将计算结果送入PC机显示时域信号及其频谱图在A/D端加入输入信号四、课程设计内容(一)、信号频谱分析的定义频谱分析是将信号表示成不同频率的正弦分量或虚指数分量的叠加,即从频率的角度分析信号。它将信号源发出的信号强度按频率顺序展开,使其成为频率函数,并考察变化规律。频谱分析主要分析信号是由哪些频率的正弦信号叠加得到的,以及这些正弦信号的振幅,也就是分析信号的频率构成。它在语音处理、图像处理、数字音频、地震勘探等方面有着广泛的应用。快速傅立叶(FFT)算法和DSP芯片的出现,为频域分析的实时处理提供了有效的解决方案。(二)、信号频谱分析应用领域频谱分析在生产实践与科学研究中有着广泛的应用。频谱分析不仅是揭示信号特征的重要方法,主要用于识别信号中的周期分量,也是处理信号的重要手段。这些方法和手段已经广泛的应用于通信、雷达、地震、声纳、生物医学、物理、化学、音乐、经济等领域。如研究噪声的频谱以寻找主要的噪声污染源,从而为噪声控制提供依据。(三)、进行信号频谱分析的具体步骤在信号的频谱分析中,所用的分析软件主要为Matlab。信号可分为模拟信号和数字信号,对于模拟信号来说,一般进行抽样再利用FFT算法变换,后对其幅度和相位的图像进行分析。对于数字信号,则可直接进行FFT算法变换。1、FFT算法基本原理快速傅立叶变换(FFT)是离散傅立叶变换的快速算法,它是根据离散傅立叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。有限序列X(n)及其频域表示X(k)可由以下离散傅立叶变换得出X(k)=DFT[X(n)]=∑N-1n=0X(n)WNnk0≤k≤N-1(1)X(n)=IDFT[X(k)]=1/N∑N-1n=0X(k)WNnk0≤k≤N-1(2)其中WNnk=e-(2πjnk)/N。式(1)称为离散傅立叶正变换,式(9)称为离散傅立叶逆变换,X(n)与X(k)构成了离散傅立叶变换对。根据上述公式,计算一个X(k),需要N次复数乘法和N-1次复数加法,而计算全部X(k)(0≤k≤N-1),共需要N2次复数乘法和N(N-1)次复数加法。实现一次复数乘法需要四次实数乘法和两次实数加法,因此直接计算全部X(k)共需要4N2次实数乘法和2N(N-1)次实数加法。当N较大时,对实时信号处理来说,对处理器计算速度有十分苛刻的要求,于是如何减少计算离散傅立叶运算量的问题变得至关重要。如前所述,N点的DFT的复乘次数等于N2。显然,把N点的DFT分解为几个较短的DFT,可使乘法的次数大大减少。另外,旋转因子WNm具有明显的周期性和对称性,其周期为:WNm+Ln=e-[2πj(m+LN)]/N=e-(2πjm)/N=WNm其对称性表现为:WN-m=WNN-m或[WNN-m]*=WNmFFT算法就是不断地把长序列的DFT分解成几个短序列的DFT,并利用WNm的周期性和对称性来减少DFT的运算次数。WNnk具有以下固有特性:(1)WNnk的周期性:WNnk=WN(n+N)k=WNn(N+k)(2)WNnk的对称性:WN-nk=(WNnk)n=WNn(N-k)(3)WNnk的可约性:WNn=WN/n,WN=WNnn另外,WNn/2=-1,WN(k+N/2)=-WNk。利用WNnk的上述特性,将X(n)或X(k)序列按一定规律分解成短序列运算,这样可以避免大量的重复运算,提高计算DFT的运算速度。算法基本上可分为两大类,一为按时间抽取(DIT)FFT算法另一为按频率抽取(DIF)FFT算法。2、Matlab仿真及DSP的实现(1)Matlab仿真Matlab功能函数简介:(a)图像显示函数:plot,x轴和y轴均为线性刻度,(b)图形生成函数:figure,生成图形窗口,(c)FFT函数:fft(S),其中S为加窗后的一帧信号,(d)复数取共轭函数:conj(Z),其中Z是fft的结果,用FFT变换进行频谱分析在Matlab软件上验证:按课程设计要求设定模拟信号,再对信号进行采样分析。(2)DSP的实现DSP芯片简介:DSP芯片是为实现低功耗、高性能而专门设计的定点芯片,有如下特点:运算速度快,指令周期可以达10ns以内;优化的CPU结构。故先进的DSP结构可以高效快速实现数字信号处理中的各算法的运算。它不仅具有标准的串行口和时分复(TDM)用串行口,还提供了自动缓冲串行DBSP和与外部处理器通信的HPI是主机接口。在应用DSP芯片时同时还使用CCS2.0编程工具,CCS不仅支持高级C语言编程,汇编语言编程,还支持高级C语言和汇编语言的混合模式编程,降低了代码开发难度。启动CCS2.0,按要求设置参数并查看各源程序确定断点,采用双踪观察启动地址中我们设置的单元中数值的变化,调整窗口观察输入信号波形及其FFT变换结果。DSP能够对信号进行实时分析,以便我们对各种信息更及时的了解,这便是数字信号处理(DSP)的优越所在,也是它之所以应用广泛的一个原因。五、结论本课程设计报告主要学习和研究了快速傅立叶变换(FFT)的算法以及在DSP基础上用FFT变换对信号进行频谱分析。明确了FFT在DSP芯片上实现的关键。基于DSP芯片上用FFT变换进行信号频谱分析的实现,方便了我们对各种信息的及时了解,有助于我们的生产生活和科技研究。