《DSP原理及应用》实验指导书.docx
- 文档编号:7467369
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:28
- 大小:640.18KB
《DSP原理及应用》实验指导书.docx
《《DSP原理及应用》实验指导书.docx》由会员分享,可在线阅读,更多相关《《DSP原理及应用》实验指导书.docx(28页珍藏版)》请在冰点文库上搜索。
《DSP原理及应用》实验指导书
DSP原理及应用
实验指导书
编写人:
许成哲
审核人:
许一男
延边大学工学院
电子信息通信学科
目 录
一、基础实验部分
二、选做实验部分
三、创新实验部分
实验一CCS的使用实验
一、实验目的
1.熟悉掌握集成开发环境(CCS)软件。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器;
三、预习要求
1.预习CCS安装与配置。
四、实验内容
打开CCS5000主程序,打开的主界面如下:
本节使用工程“Volume1”为例做一个实验,该实验开发并运行一个简单的程序,指导读者如何新建一个工程,如何向工程添加源文件并修改代码,编译并且运行程序。
1.准备工作
在以下各节之前,为了便于学习,我们事先准备好实验文件。
在CCS的安装目录下,找到“\myprojects”目录,在这里新建一个名为“volume1”的目录,再到CCS安装目录下找到“\tutorial\sim54xx\volume1”目录,把下表的7个文件复制到刚才新建的目录下:
需要复制的文件
文件说明
volume.c
实验用C源文件
load.asm
实验用汇编源文件
vectors.asm
实验用中断向量表文件
volume.h
C函数使用的头文件
volume.cmd
内存定位文件
sine.dat
实验用数据文件
volume.gel
实验用GEL控制文件
2.新建工程文件
文件复制完成以后,启动CCS,再主菜单中单击“Project”(设计),会有“new”和“open”选项,创建新工程使用“new”选项。
程序会提问新建工程的名字以及保存位置,指定后单击“确定”即可。
3.向工程添加各类型文件
可以使用两种方式向工程添加源文件、CMD文件和库文件。
(1)添加源文件:
在主菜单中单击“Project”,选择“AddFilestoProject”命令,在弹出的添加文件对话框中找到目录“volume1”,选择文件“volume.c”,单击“打开”按钮,如下面左图所示。
另一个方法是在工程名“volume.pjt”上单击鼠标右键,选择“AddFiles”命令。
在弹出的添加文件的对话框中,找到目录“volume1”,再在添加文件对话框中单击“文件类型”,选择“AsmSourceFiles(*.a*;*.s*)”,这样在添加文件对话框里就只显示指定类型的文件。
同时选择“load.asm”和“vectors.asm”,单击“打开”按钮(通过这种方法也可添加C代码文件“volume.c”),如右下图所示。
(2)接着添加必需的内存定位文件“*.cmd”,使用上述任一方式,向工程里添加“volume.cmd”,注意在添加文件对话框的“文件类型”下拉列表中要选择“LinkCommandFile(*.cmd)”,该文件定义了各代码段和数据段在存储器中的位置。
(3)因为本实验工程是基于C语言编写的,因此还需要添加运行时支持库(Run-Time-SupportLibrary如果基于汇编的就不需要)。
使用上述任何一种方式,向工程添加“rts.lib”文件,该文件存放在CCS的安装目录“\c5400\cgtools\lib”下。
注意在添加文件对话框的“文件类型”下拉列表中要选择“ObjectLibraryFiles(*.o*,*.l*)”。
(4)添加头文件。
在工程名“volume.pjt”上单击鼠标右键,选择“ScanAllDependencies”,这样volume.c文件所包含的头文件“volume.h”将出现在工程浏览窗中的“Iclude”文件夹中。
头文件实际不用人工添加,在Build工程时,CCS本身就会自动完成扫描。
4.查阅代码
在继续完成实验之前,先阅读一下源代码。
明白各文件内容:
在工程浏览窗里的“volume.c”文件名上双击鼠标,即可在CCS的编辑窗口看到源代码,注意该文件的以下三个部分:
(1)在主函数输出消息"volumeexamplestarted"后,主函数进入一个无限循环,在循环内部调用了两个函数dataIO()与processing()。
(2)函数processing()对输入缓冲区的每个采样值乘以一个增益值“gain”,并将结果存放到输出缓冲区中。
改函数同时调用汇编程序load(),该函数会根据processing()传递过来的参数processingLoad来消耗指令周期,模拟复杂信号处理算法在时间上的消耗。
(3)函数dataIO()在本实验中不作任何实际操作而直接返回。
5.建造和运行程序
建造(Building)在这里指编译、汇编、链接三个独立步骤按顺序联合运行。
在主菜单中单击“Project”,选择“RebuildAll”,或者单击工具条图标
,CCS将重新对工程中所有文件进行编译、汇编、链接,并同步在底部窗口中显示编译连接信息。
连接完毕,CCS生成一个“.out”文件,默认存放在目录“volume1”下的“debug”(除错)目录中。
建造完毕后,再完成装载程序的步骤:
在主菜单中单击“File”,选择“LoadProgram”,在弹出对话框中,找到目录“volume1”下的“debug”目录,选择“volume.out”,并打开。
CCS装载完毕该文件到目标DSP以后,会自动弹出“Dissassembly”窗口,显示构成源代码的反汇编指令。
同时,CCS还会在底部弹出“stdout”栏,用于显示程序在运行时的输出信息。
现在可以运行我们的程序:
在主菜单中单击“Debug”,选择“GoMain”,让程序从主函数开始运行。
程序会停在main()处,并会有一个黄色的箭头
标记当前要执行的C语言代码。
如果希望同时看到C语言代码和对应编译生成的汇编代码,在主菜单中单击“View”,选择“MixedSource/ASM”,此时会有一个绿色箭头
标记当前要执行的汇编代码,如图所示:
在主菜单中单击“Debug”,选择“Run”,或单击工具条图标
,让程序全速运行。
如果能在底部的stdout标准输出窗口看到程序运行的输出信息“volumeexamplestarted”,证明程序能够正常运行。
在主菜单中单击“Debug”,选择“Run”,或单击工具条图标
,让程序停止运行。
常用的按钮如下:
单步执行;
不进入子程序中;
从子程序中执行出;
执行到子程序开始处;
运行程序;
停止运行;
全速运行程序。
5.多种观察窗口帮助调试。
查看寄存器:
在CCS中选择View菜单中的CPURegisters命令。
查看数据:
选择View菜单中的Memory…命令,弹出设置窗口,按实际需要指定其中的参数,如起始地址等,就可以观察到数据单元中的值,该值可以以多种格式表示。
查看程序中变量的当前值:
可以在程序中用光标选中变量名,在鼠标右键菜单中选择AddtoWatchWindow命令就可以把该变量添加到Watch窗口。
随着程序的运行,可以在Watch窗口看到该变量的值的变化。
显示图形:
如果要观察的变量太多,例如要观察一个数组的值,那么可以用一种更直观的方法,就是把数据用图形的方式表现出来。
选择View菜单中的Graph命令,会有不同类型的图形可供选择。
常用的是时域/频域波形,即Time/Frequency…项。
在弹出的GraphProperty对话框中,可以设定图形的标题、数据的起始地址、采集缓冲区的大小、显示数据的大小、数据类型等属性。
五、实验报告
1.整理使用CCS的步骤。
六、思考题
1.总结DSP基本开发流程。
实验二卷积运算实验
一、实验目的
1.掌握卷积运算的基本原理;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习卷积的基本原理。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex2.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.把x,h和y添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“AddWatchWindow”命令);
4.单击运行
;
5.观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把数组展开
);
6.修改输入序列的长度或初始值,重复上述过程,观察卷积结果。
五、实验报告
1.整理卷积运算原理;
2.整理实验步骤及其中间结果。
六、思考题
1.试用汇编语言编写实现卷积运算的程序;
2.考虑如何实现复数的卷积运算。
实验三相关运算实验
一、实验目的
1.掌握相关系数的估计方法;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习自相关系数和互相关系数理论知识。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex3.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.在Watch窗口中添加相关系数数组r作为观察对象;
4.单击运行
,观察数据值的变化;
5.修改估计模式mode,重复上述过程,观察有偏估计与无偏估计的差别;
6.修改输入数组x[]和y[]的初始赋值函数、参与估计的数组长度、输出数组的长度等参数,重复上述过程,观察运行结果。
五、实验报告
1.整理自相关与互相关系数理论内容;
2.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.试证明上面给出的第二组相关系数估计公式的无偏性;
2.在本实验程序的基础上,修改代码,实现自相关系数的估计;
3.分析阶数对相关系数的影响。
实验四快速傅里叶变换实验
一、实验目的
1.掌握FFT算法的基本原理;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习基2FFT算法理论知识。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex4.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.运行程序;
4.选择view->graph->time/frequency… 。
设置对话框中的参数:
其中“StartAddress”设为“x_re”,“Acquisitionbuffersize”和“DisplayDatasize”都设为“64”,并且把“DSPDataType”设为“32-bitfloatingpoint”(如图),
设置好后观察输入信号序列的波形(单边指数函数,如图);
同样方法观察经DFT变换后的输出序列“y_re”的波形,“StartAddress”改为“y_re”,其余参数不变(如图);
5.在Watch窗口中添加i,j,k,m,n,a,b,c等变量,在Debug菜单中先“Restart”然后“Gomain”,单步运行程序,跟踪FFT算法的过程;
(可以跳过程序开始部分对各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点,然后先单击运行,待程序停在该断点后再单步执行后面的代码,见下图)
6.修改N的值(应为2的整数次幂,如8,16,32等,最大不超过256),或者修改输入信号x的函数,如直流、正弦、三角等,观察程序运行结果。
注意观察图形时,数据块大小要相应更改为当前N值。
五、实验报告
1.整理基2FFT理论知识;
2.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.分析本实验程序中完成位倒序排列的“雷德算法”的原理;
2.参考资料,了解TMS320C5000系列专门为FFT运算提供的“比特反转寻址方式”;
3.思考如何实现实数序列的FFT,它在复数序列的算法基础上还能作哪些优化,从而进一步降低运算量和所需的存储空间。
实验五离散余弦变换实验
一、实验目的
1.掌握离散余弦变换算法的概念和实现方法;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习一维离散余弦变换理论知识。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex5.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.运行程序;
4.在Watch窗口中添加ck变量,观察离散余弦变换的结果,当要把ck展开时,程序会提示输入要显示的范围,源程序中N=8,因此只需显示0-7 如图);
5.修改N的值(可以是16,32,64…256),或者修改输入信号x的函数,重复上述过程,观察程序运行结果。
五、实验报告
1.整理离散余弦变换数理论内容;
2.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.了解二维离散余弦变换的定义;
2.把源程序改写成纯实数运算。
实验六有限冲击响应滤波器实验
一、实验目的
1.掌握FIR滤波器的原理和窗函数设计法;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习FIR滤波器理论知识。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex6.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.阅读源代码,记下各种窗函数的公式;
4.运行程序;
5.选择view->graph->time/frequency…。
设置对话框中的参数:
其中“StartAddress”设为“hd”,“Acquisitionbuffersize”和“DisplayDatasize”都设为“21”(因为源程序中n=21),并且把“DSPDataType”设为“32-bitfloatingpoint”,设置好后观察理想冲击响应序列的波形示意图,可与公式对照分析;
6.观察其它序列的波形示意图,包括所用窗函数w,加窗后响应序列h和输出对数幅频响应db的图形,这时的“StartAddress”应分别设为“w”和“h”和“db”,其中观察前两者时数据块大小设为“21”(同n值),观察“db”时数据块大小设为“300”(同l值),所观察到的图形应大致如下面五组图所示;
7.从1-5依次修改m的值,按上面步骤观察各图形。
Øm=1时:
矩形窗函数(w)
加窗后序列(h)
加窗后的幅频响应db
Øm=2时:
三角窗函数(w)
加窗后序列(h)
加窗后的幅频响应db
Øm=3时:
汉宁窗函数w
加窗后序列h
加窗后的幅频响应db
Øm=4时:
汉明窗函数w
加窗后序列h
加窗后的幅频响应db
Øm=5时:
布莱克曼窗函数w
加窗后序列h
加窗后的幅频响应db
五、实验报告
1.整理FIR滤波器设计方法;
2.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.总结窗函数法的设计步骤和关键问题。
实验七无限冲击响应滤波器实验
一、实验目的
1.掌握IIR滤波器的原理与设计方法;
2.掌握用C语言编写DSP程序的方法。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习IIR滤波器理论知识。
四、实验内容
1.在CCS环境中打开本实验的工程(Ex7.pjt)
2.编译并重建.out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
3.运行程序;
4.在Watch窗口观察系统函数H(z)的分子和分母系数ptr_b,ptr_a。
写出该滤波器的系统函数;
5.选择view->graph->time/frequency…。
设置对话框中的参数:
其中“StartAddress”设为“hwdb”,“Acquisitionbuffersize”和“DisplayDatasize”都设为“50”,并且把“DSPDataType”设为“32-bitfloatingpoint”,观察幅频响应的波形(如图);
6.修改滤波器的设计参量fp,fr,fs,ap,ar等,重复上述过程,观察设计结果。
(其参数值均在编写的程序中请注意按程序修改)
五、实验报告
1.整理IIR滤波器设计方法;
2.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.总结巴特沃思型滤波器的设计方法。
实验八普通语音A/D与D/A实验
一、实验目的
1.熟悉5410DSP的MCBSP的使用;
2.了解AD50的结构;
3.掌握AD50各寄存器的意义及其设置;
4.掌握AD50与DSP的接口;
5.掌握AD50的通讯格式;
6.掌握AD50的DA实验。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习MCBSP接口;
2.预习AD50接口及其使用方法。
四、实验内容
1.连接好DSP开发系统,音频线连接计算机和AD50模块的输入,另一条音频线连接AD50模块输出和扬声器输入,或者用耳机连接AD50模块输出;
2.调节RPC03可变电阻,使Uc02运放的正输入端(3脚和5脚)[出场前均设计好],输入电平为2.5V把JC05跳到上面3.3V,AD50做Master;
3.打开CPU寄存器观察窗口,把OVLY位设置为0(因为我们把程序放到片外,数据放到片内);
4.本实验工程文件(.\ad50ad_da\ad50.pjt),编译之后下载程序到DSP;
5.复位AD50,并观察AD50复位后默认的MCLK,FS的频率;
6.运行程序,用示波器观察设置AD50的MCLK,FS频率的变化;
7.当声音不清晰时可调节RPC02(VOCALOUTPUT旁边那个),调节音量,使音量大小恰当;
8.计算机用声卡信号源产生声音信号,测试输入输出信号波形。
五、实验报告
1.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.总结A/D与D/A的原理。
实验九高精度音频A/D与D/A实验
一、实验目的
1.熟悉DSP中多功能缓冲串口(MCBSP);
2.熟悉数字D/A,A/D芯片的功能和结构;
3.掌握MCBSP及AIC23的设置和使用方法;
4.了解AIC23与MCBSP的硬件结构与连接方式。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、预习要求
1.预习MCBSP接口;
2.预习AIC23接口及其使用方法。
四、实验内容
本实验包含两部分:
一部分是AIC23的Bypass功能,即从线路输入口(LINEIN)输入音频信号,控制芯片内寄存器,使输入音频信号通过AIC23内Bypass通道经功率放大直接输出,实现模拟到模拟输出,另一部分是AIC23的D/A变换实验,即由DSP送来的音频数据字,经音频数字接口送到AIC23内D/A变换成模拟信号,经功率放大器由耳机输出口(HPOUT)输出。
1.我们首先要了解本次实验使用的硬件资源,在实验中我们使用5410芯片的MCBSP0口和AIC23,AIC23有控制接口,音频数据接口,而DSP只提供了MCBSP0口。
故该串口要复用,传送AIC23的控制字与音频数据字;
2.实验要求首先实现30秒的Bypass功能,然后自动转换为DSP芯片输出音频数据字;
注意事项:
(1)AIC23控制接口的通信模式是硬件控制,应将AIC23的MODE引脚拉高电平,置SPI模式,即跳线帽插在中间与右边。
(2)由CPLD的内部设置,在音频数据传送过程中,应设AIC23为DSP主模式,MCBSP0为DSP从模式,并注意收发时钟,帧同步的极性与延迟脉冲的个数设置匹配。
(3)注意AIC23休眠寄存器中ADC,DAC不能同时开启,否则芯片会自动关闭,在改变控制字后应激活寄存器,否则芯片不会进入工作状态。
3.音频线连接计算机和AIC23模块的输入(LINEIN),另一条音频线连接AIC23模块输出(PHONE)和扬声器输入,或者用耳机连接AIC23模块输出(PHONE),用计算机播放声音文件;
4.本实验工程文件(.\aic23bypassda\aic231215.pjt),编译之后下载程序到DSP;
5.运行程序,听声音输出的变化。
五、实验报告
1.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.比较本实验和实验八。
实验十AIC23的数字录音实验
一、实验目的
1.熟悉掌握TMS32C5410配置CODEC芯片的过程;
2.熟悉AIC23芯片的使用;
3.掌握串口中断的配合使用。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器;
4.MIC一个。
三、预习要求
1.预习AIC23接口及其使用方法。
四、实验内容
1.用音频线连接实验箱的扬声器和AIC23模块的LINEOUT或者PHONE端,MIC端口连接一个MIC;
2.打开aic23micphone.pjt工程,这是一个AIC23的程序,编译;
3.将编译的aic23micphone.out文件通过仿真器下载到DSP芯片,执行程序;
4.听到“滴”的一声以后开始录音,大概6秒后“滴”的一声是录音结束,接着DSP会循环回放刚才录的声音。
如果想再次录音则需要再次下载并运行。
五、实验报告
1.整理每个实验步骤所能观察到的中间结果。
六、思考题
1.总结本实验的流程。
实验十一BootLoader实验
一、实验目的
1.掌握TMS32C5410Bootloader的原理;
2.掌握TMS32C5410Bootloader的并行加载程序的编写。
二、实验仪器及材料
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器;
三、预习要求
1.预习BootLoader内容。
四、实验内容
1.打开bypass.pjt工程,这是一个AIC23的程序,编译时注意加上参数-v548,在Project菜单下的BuildOpti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP原理及应用 DSP 原理 应用 实验 指导书