利用DSP实现信号频谱动态分析.doc
- 文档编号:2489777
- 上传时间:2022-10-30
- 格式:DOC
- 页数:18
- 大小:109.50KB
利用DSP实现信号频谱动态分析.doc
《利用DSP实现信号频谱动态分析.doc》由会员分享,可在线阅读,更多相关《利用DSP实现信号频谱动态分析.doc(18页珍藏版)》请在冰豆网上搜索。
电工电子教学基地
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】的DFTX[m]需要N次复数运算,而利用基2-时域抽取算法只需次复数乘法运算,可见FFT算法能有效提高DFT计算速度。
本实验直接调用DSPLIB库中的RFFT函数,其可以实现基2时域抽取FFT算法。
由于输入输出的次序不同,所以计算频谱时需要对信号数据进行倒序。
倒序算法可以调用DSPLIB库中的cbrev函数。
在利用DSPLIB库是,工程中要添加库文件54xdsp.lib,C源程序重要包含头文件dsplib.h。
序列倒序算法函数cbrev()的调用格式是:
voidcbrev(DATA*x,DATA*r,unshortn)
函数rfft()的调用格式是:
voidrfft(DATAy,n,shortscale)
五、实验程序及注释:
1、C语言源程序如下:
主程序:
FFTlab。
C
/*****************************************************************************/
/*FIRlab.CAIC,McBSP,DMAinitializationforFIRlabFilter*/
/**/
/*Goal:
Thiscodeperformsthefollowingfunctions:
*/
/* -togglethethreeLEDsontheDSK */
/* -setupAIC(CODEC)parameters */
/* -initializeDMAChannel(CH2-input) */
/* -turnoninterrupts */
/* -runforever(waitingforDMAinterruptstotransferdata) */
/* */
/*Author:
ScottBlandDate:
03/20/2000 */
/*****************************************************************************/
/*****************************************************************************/
/*IncludeFiles*/
/*****************************************************************************/
#include
#include
#include
#include
#include
#include
/*****************************************************************************/
/*FunctionPrototypes*/
/*****************************************************************************/
voiddelay(s16period);
externvoidDMAC2ISR();
/*****************************************************************************/
/*GlobalVariables*/
/*****************************************************************************/
HANDLEhHandset;
unsignedintdmsefc,dmmcr,dmctr,src_addr,dst_addr;
unsignedintdmpre,dmsrcp,dmdstp,dmidx0,dmidx1,dmfri0,dmfri1,dmgsa,dmgda,dmgcr,dmgfr;
/*Createspecificdatasectionforbuffer(symbol,section_name)*/
#pragmaDATA_SECTION(inp_buffer,"audio_buffer");
DATAinp_buffer[0x200];
/*Createspecificdatasectionforbuffer(symbol,section_name)*/
#pragmaDATA_SECTION(out_buffer,"outt_buffer");
DATAout_buffer[0x200];
/*declareandinitializetwovariablesforDMACISRs*/
intframe=0;
intflag=0;
inttemp;
intcurrbuff=0;
/*delayptrholdstheaddressofthestartofthedelaybuffer*/
interruptvoidDMAC2ISR();
/*****************************************************************************/
/*MAIN*/
/*****************************************************************************/
voidmain()
{
s16cnt=2;
/*ThesearetheitemsthatBIOSwillsetwhenweuseit*/
BSCR=0x8806;
XPC=0;
PMST=0xA0;
brd_set_cpu_freq(100);
TIMER_HALT(0);
brd_set_wait_states(7,7,9);
TIMER_RESET(0);
IMR=0; //禁止所有中断
/*-----------------------------------------------------*/
if(brd_init_bios())
return;
while(cnt--)
{
brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态
delay(1000);
brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态
delay(1000);
brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态
delay(1000);
}
/*OpenHandsetCodec*/
hHandset=codec_open(HANDSET_CODEC);/*Acquireha
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 DSP 实现 信号 频谱 动态 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)