
利用DSP实现信号频谱动态分析.doc
19页撰写人:___________日 期:___________电工电子教学基地DSP课程设计实验报告实验名称: 利用DSP实现信号频谱动态分析 指导老师:高海林 实验人员:邱浩然 07214016 电子0701 刘海峰 07214015 电子0701 利用DSP实现信号频谱动态分析一、实验内容 1.使用C语言编写信号实时谱分析程序,从MIC接口输入1KHZ正弦信号,分别利用CCS图形观察工具和虚拟示波器观察信号幅度频谱2.输入不同频率的信号和混合频率信号,观察信号的幅度频谱,分析并比较与实际理论幅度频谱的差别二、实验目的 1、 掌握FFT的算法原理和基本性质2、 掌握利用DSP系统对连续信号进行幅度频谱分析3、 学会设置断点并利用CCS和虚拟仪器观察实时信号的频谱4、 熟练运用C语言进行编程实现实时信号的频谱分析5、 熟练使用CCS5402的操作方法和调试检验方式三、实验器材 DSP5402开发板,CCS软件环境,电源,电脑与板接口连线四、实验原理 1、信号的实时采集与传输 本实验利用DMA通道2与McBSP1通道结合来读取A/D转换的数据,利用DMA通道3 与McBSP1道结合来将处理后的数据发送至D/A。
选择McBSP1通道的接受寄存器DRR11(41H)DMA传送数据的首地址,并选择DMA源地址工作在不调整模式,选择McBSP1接收事件为DMA同步事件,以实现DMA和McBSP的结合A/D转换的数据按McBSP1设置被送到DSP内部接受寄存器DRR11中,再由DMA通道2将DRR11中的数据读到指定数据存储区&p-inp中完成数据的采集DMA在传输外部来的数据时不会影响CPU的运行,当DMA通道2采集完一组数据后产生一个DMA中断事件中断CPU,来通知CPU对其进行处理,CPU通过对数据进行倒序和序列FFT处理并计算频谱,此时DMA通道2可以按照设定继续采集下一组数据,实现数据与CPU的并行处理 当一组数据处理完成后,将数据存放在数据存储区& out_buffer+frame*0x100中,选择& out_buffer+frame*0x100为DMA通道3传送数据的首地址,并选择源地址工作在不调整模式选择McBSP1通道的发送寄存器DRR11(43h)为DMA通道3传送数据的目地地址,并选择DMA源地址工作在不调整模式,选择McBSP1接受事件为DMA同步事件,以实现DMA与McBSP的结合。
待分析的外部模拟信号首先需经A/D转换成数字信号,然后通过DMA实时传输进入DSP系统,由FFT进行信号的频谱分析输入信号转换成数字信号后利用DMA通道2进行传输,信号的输出利用DMA通道3进行传输,因此需对DMA的通道2和通道3进行初始化2、 FFT算法实现 快速傅里叶变换FFT是DFT的快速算法直接计算一个N点序列x【k】的DFT X[m]需要N次复数运算,而利用基 2-时域抽取算法只需 次复数乘法运算 ,可见FFT算法能有效提高DFT计算速度本实验直接调用DSPLIB库中的RFFT函数,其可以实现基2时域抽取FFT算法由于输入输出的次序不同,所以计算频谱时需要对信号数据进行倒序倒序算法可以调用DSPLIB库中的cbrev函数在利用DSPLIB库是,工程中要添加库文件54xdsp.lib,C源程序重要包含头文件dsplib.h 序列倒序算法函数cbrev()的调用格式是:void cbrev(DATA*x,DATA*r,unshort n) 函数rfft()的调用格式是:void rfft(DATAy,n,short scale) 五、实验程序及注释:1、C语言源程序如下: 主程序:FFTlab。
C /*****************************************************************************//* FIRlab.C AIC,McBSP,DMA initialization for FIR lab Filter */ /* *//* Goal: This code performs the following functions: *//* - toggle the three LEDs on the DSK *//* - setup AIC (CODEC) parameters *//* - initialize DMA Channel (CH2-input) *//* - turn on interrupts *//* - run forever (waiting for DMA interrupts to transfer data) *//* *//* Author: Scott Bland Date: 03/20/2000 *//*****************************************************************************/ /*****************************************************************************//* Include Files *//*****************************************************************************/#include












