西华大学 DSP技术及应用实验指导书李天倩.docx
- 文档编号:10820437
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:15
- 大小:65.90KB
西华大学 DSP技术及应用实验指导书李天倩.docx
《西华大学 DSP技术及应用实验指导书李天倩.docx》由会员分享,可在线阅读,更多相关《西华大学 DSP技术及应用实验指导书李天倩.docx(15页珍藏版)》请在冰点文库上搜索。
西华大学DSP技术及应用实验指导书李天倩
《DSP技术及应用》
实验指导书
适用专业:
电子信息、测控、电气
课程代码:
总学时:
24总学分:
2
编写单位:
电气信息学院信息工程系
编写人:
李天倩
审核人:
审批人:
批准时间:
年月日
目录
实验一DSP的常用指令实验…………………………………………………………2
实验二数字振荡器实验………………………………………………………………4
实验三FIR滤波器的DSP实现………………………………………………………7
实验四IIR滤波器的DSP实现………………………………………………………10
注释………………………………………………………………………………………13
主要参考文献…………………………………………………………………………………13
实验一DSP的常用指令实验
一、实验目的和任务
1、熟悉CCS编程环境及TMS320C54xDSP的基本算术运算指令。
2、了解TMS320C5402的存储空间分配。
3、进行DSP的基本编程调试。
二、实验内容
用CCS编程环境进行DSP的基本算术运算指令的编程调试。
三、实验仪器、设备及材料
安装有WINDOWS98以上操作系统和CCS2.0(`C5000)的计算机。
四、实验原理
借用计算机的资源仿真DSP的内部结构,以学习DSP的基本编程。
五、主要技术重点、难点
主要技术重点:
CCS编程环境,TMS320C5402的存储空间分配,DSP的基本算术运算指令。
主要技术难点:
DSP的基本算术运算指令的运用。
六、实验步骤
1、鼠标左键双击桌面“SetupCCS2('C5000)”图标启动CCSSetup,鼠标左键依次单击“C5402Simulator”,“Import”,“SaveandQuit”,“是(Y)”启动CCS,在[Project]-[Open]菜单中打开ex1.pjt;
2、在左边树状列表框内双击[Project]展开目录树,双击[ex1.asm]打开源程序文件,参考程序中的注释仔细阅读源程序;
3、在[Project]-[Build]菜单中编译项目文件,编译成功后在下端的状态窗口中显示BuildComplete,0Errors,0Warnings;
4、在[File]-[LoadProgramm]中加载输出执行代码文件ex1.out,选择[View]-[[Disassembly]。
此时,反汇编(Disassembly)窗口将显示在前端,当前PC指针为0000:
2080(黄色箭头指示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[DisassemblyOptions]打开反汇编选项对话框,在[DisassemblyStyle]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:
此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);
5、选择[View]-[CPURegisters]-[CPURegister](或点击左边工具栏的快捷按钮)打开处理器映射寄存器窗口;
6、选择[View]-[Memory](或点击左边工具栏的快捷按钮),在弹出的[WindowsMemoryOptions]对话框的Address文本框中输入0x0260,Page下拉框中选中Data,确定后将打开数据存储器查询窗口,此时数据存储器地址0x0260~0x0263将对应ex1.asm中声明的标号DAT0~DAT3;
7、调整[Disassembly][memory][CPURegisters]三个窗口的大小,以便于观察;
8、依次把光标移动到反汇编(Disassembly)窗口中标号为bk?
(?
表示从0开始的整数)的标号行下的指令处,点击鼠标右键,在弹出菜单选择[Togglebreakpoint](或者点击快捷按钮)设置断点,断点设置后,该行前显示红色圆点;
9、选择[Debug]-[Run](也可以按快捷键F5或点击快捷按钮)执行程序;
10、程序将在第一个断点bk0处停止,在处理器映射寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:
如步骤6所述,DAT0~DAT3对应地址为0X0260~0X0263),试修改下一条指令操作数的内容,然后按F10单步执行程序,再在处理器映射寄存器窗口中或数据存储器查询窗口中观察指令执行结果;
11、重复执行9步骤,依次观察并记录加法指令(结果:
A)、减法指令(结果:
A)、乘法指令(结果:
A)、除法指令(结果:
DAT2:
商;DAT3:
余数)、平方指令(结果:
A)以及3数累加宏指令(结果:
DAT3)的执行结果;
12、以上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。
13、修改[ex1.asm],使DAT0=组号(ST#组号,DAT0),重复上述操作,记录加法指令、减法指令、乘法指令、除法指令、平方指令以及3数累加宏指令的执行结果。
七、实验报告要求
1、对于实验内容1-10,12仅作练习;
2、对于实验内容11、13要给出执行结果;
3、实验报告按规定格式填写,要求如下:
(1)实验步骤根据自己实际操作填写;
(2)各小组实验数据不能完全相同,否则以缺席论处;
八、实验注意事项
实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。
九、思考题
试运用TMS320C54xDSP基本运算指令编写程序计算
实验二数字振荡器实验
一、实验目的和任务
1、进一步熟悉CCS编程环境和DSP的基本编程调试。
2、学习数字振荡器的DSP实现原理。
3、学习使用C语言完成源程序的编写。
二、实验内容
1、复习数字振荡器原理
A=2cos(wT),B=-1,C=sin(wT)
通常情况下我们更关心的是频率,
设fd为输出正弦波频率,fs为采样频率,
这样将上面公式条件写成频率形式为:
A=2*cos(wT)=2*cos(2*π*fd/fs)
B=-1
C=sin(wT)=sin(2*π*fd/fs)
(k>=2)y[k]=Ay[n-1]+By[n-2]
2、设计一个数字振荡器,在采样率为100KHz情况下输出正弦波频率为5KHz,根据推导出来的公式计算出程序中常数A、B和C(用Windows附件中计算器[科学型]),填入程序相应处,并利用CCS绘出输出波形。
程序:
#defineMAX_POINT64//定义缓冲区大小
inty[MAX_POINT];//用来存储输出序列的区
voidgetSineWave(void);
intmain(void)
{
getSineWave();
while
(1);
}
voidgetSineWave(void)
{
intA;
intB;
intC;
inti;
longrt;
longx1,x2,x0;
A=;//2*cos(2*pi*fd/fs)*32768/2
B=;//-1*32768/2
C=;//sin(2*pi*fd/fs)*32768/2
x2=00;
x1=C;
for(i=0;i { y[i]=x2; rt=A*x1+B*x2; x0=(rt>>14); x2=x1; x1=x0; } } 三、实验仪器、设备及材料 安装有WINDOWS98以上操作系统和CCS2.0(`C5000)的计算机。 四、实验原理 借用计算机的资源仿真DSP的内部结构,以学习数字振荡器的DSP实现。 五、主要技术重点、难点 主要技术重点: 数字振荡器的DSP实现原理;使用C语言完成源程序的编写;DSP的C语言源程序调试。 主要技术难点: 数字振荡器的DSP实现原理。 六、实验步骤 1、鼠标左键双击桌面“CCS2('C5000)”图标启动CCS;选择[Project]-[New]创建工程。 在ProjectCreation对话框Project栏填工程文件名sin1,Location栏填保存路径。 2、选File->New->SourceFile新建一个c文件,输入实验内容2中程序(常数A、B、C填计算结果)并选File->Save保存为sin.c。 3、选Project->AddFilestoProject添加文件,需要添加的文件有: C: \ti\c5400\cgtool\lib\rts.lib和2中创建的sin.c文件。 4、使用Build选项完成编译、连接,然后使用Fille菜单中的LoadProgram将生成的sin1.out文件装入。 这时CCS将显示程序的起始地址_c_int00。 5、选Debug->Gomain找到主函数,在“while (1);”语句处增加一个断点。 6、选View->Graph->Time/Frequency…打开图形显示设置窗口;在弹出的对话框中按下图设置,主要修改“GraphTitle”为“Sin”,“StartAddress”为y,“DisplayDataSize”为64,“AcquisitionBufferSize”为64,“DSPDataType”为“16-bitsignedinteger”。 将在图形显示窗口显示输入序列的64点波形。 7、按F5键启动程序运行。 观察记录输出波形。 输出波形记录方法: 用PrintScreen键记录当前屏幕,打开Windows的附件中画图工具,选“编辑->粘贴”,然后剪选所需的输入输出序列波形图,粘贴至Word文档,打印贴于实验报告。 七、实验报告要求 1、实验步骤按实验内容指导进行; 2、对于实验内容1仅作了解; 3、对于实验内容2要给出程序和CCS输出波形; 4、实验报告按规定格式填写,要求如下: (1)实验步骤根据自己实际操作填写; (2)各小组实验数据不能完全相同,否则以缺席论处; 八、实验注意事项 实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。 九、思考题 重新设计和实现一个数字振荡器,采样频率改为20KHz,输出正弦信号的频率为4KHz。 实验三FIR滤波器的DSP实现 一、实验目的和任务 1、学会用MATLAB设计FIR数字滤波器的系数。 2、学会用DSP实现所设计的FIR数字滤波器。 3、巩固DSP的基本编程调试。 二、实验内容 用MATLAB设计FIR数字滤波器的系数,在CCS编程环境下用DSP实现所设计的FIR数字滤波器,并编程调试。 三、实验仪器、设备及材料 安装有WINDOWS98以上操作系统和CCS2.0(`C5000)的计算机。 四、实验原理 借用计算机的资源仿真DSP的内部结构,以学习用DSP实现数字信号处理基本算法。 五、主要技术重点、难点 主要技术重点: 用MATLAB设计FIR数字滤波器的系数,用DSP实现所设计的FIR数字滤波器。 主要技术难点: 用DSP实现所设计的FIR数字滤波器。 六、实验步骤 1、用MATLAB设计FIR数字滤波器的系数: (1)在Matlab命令窗口中输入b=fir1(8,0.4)并回车,以设计一个FIR低通滤波器,其阶数为8,截止频率为0.4,采用汉明窗;(注: 命令中1是123的1) (2)记录命令窗口中生成的滤波器系数b; (3)在Matlab命令窗口中输入freqz(b,1,512)并回车,以求出所设计的FIR低通滤波器的幅频响应和相频响应,并记录;(注: 1是123的1) 2、用DSP实现1中所设计的FIR数字滤波器 (1)启动CCS,在Project选项中打开fir.pjt。 (2)使用Build选项完成编译、连接,然后使用Fille菜单中的LoadProgram将生成的fir.out文件装入。 (3)选Debug->Gomain找到主函数,在“while (1);”语句处增加一个断点。 (4)选View->Graph->Time/Frequency…打开图形显示设置窗口;在弹出的对话框中按下图设置,主要修改“GraphTitle”为“Input_x”,“StartAddress”为x,“DisplayDataSize”为128,“AcquisitionBufferSize”为128,“DSPDataType”为“32-bitIEEEfloatingpoint”。 将在图形显示窗口显示输入序列的128点波形。 (5)选View->Graph->Time/Frequency…打开图形显示设置窗口;在弹出的对话框中按下图设置,主要修改“GraphTitle”为“Output_y”,“StartAddress”为y,“DisplayDataSize”为128,“AcquisitionBufferSize”为128,“DSPDataType”为“32-bitIEEEfloatingpoint”。 将在图形显示窗口显示输出序列的128点波形。 (6)选Window->Tile,使各窗口平铺显示。 (7)按F5键启动程序运行。 观察记录比较输入输出波形。 输入输出波形记录方法: 用PrintScreen键记录当前屏幕,打开Windows的附件中画图工具,选“编辑->粘贴”,然后剪选所需的输入输出序列波形图,粘贴至Word文档,打印贴于实验报告。 (8)重复步骤(4)(5)并将设置窗口中的“DisplayType”改为“FFTMagnitude”(点右方下拉键),然后重做(6)(7),以观察记录比较输入输出频谱。 3、按步骤1,2设计自己的FIR数字滤波器 (1)用MATLAB设计FIR数字滤波器的系数: 设计一个FIR低通滤波器,其阶数为20+组号,截止频率为0.3,采用汉明窗。 (2)用DSP实现 (1)中所设计的FIR数字滤波器: 在Project管理栏中打开fir8order.c文件, 修改#defineMAX_ORDER8为#defineMAX_ORDER当前阶数; 修改 floatcoff[]= {-0.0061,-0.0136,0.0512,0.2657,0.4057,0.2657, 0.0512,-0.0136,-0.0061} 为 floatcoff[]={ (1)中生成的系数系数…}; 选File->Save保存修改,重复步骤2。 七、实验报告要求 1、实验步骤按实验内容指导进行; 2、对于实验内容1要给出滤波器系数及FIR低通滤波器的幅频响应和相频响应; 3、对于实验内容2要给出输入输出序列波形及输入输出频谱对比图,和相关比较结论; 4、对于实验内容3要给出C程序,输入输出序列波形及输入输出频谱对比图,和相关比较结论; 5、实验报告按规定格式填写,要求如下: (1)实验步骤根据自己实际操作填写; (2)各小组实验数据不能完全相同,否则以缺席论处; 八、实验注意事项 实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。 九、思考题 试用TMS320C54X的汇编指令改写FIR低通滤波器程序。 实验四IIR滤波器的DSP实现 一、实验目的和任务 4、学会用MATLAB设计IIR数字滤波器的系数。 5、学会用DSP实现所设计的IIR数字滤波器。 6、巩固DSP的基本编程调试。 二、实验内容 用MATLAB设计IIR数字滤波器的系数,在CCS编程环境下用DSP实现所设计的IIR数字滤波器,并编程调试。 三、实验仪器、设备及材料 安装有WINDOWS98以上操作系统和CCS2.0(`C5000)的计算机。 四、实验原理 借用计算机的资源仿真DSP的内部结构,以学习用DSP实现数字信号处理基本算法。 五、主要技术重点、难点 主要技术重点: 用MATLAB设计IIR数字滤波器的系数,用DSP实现所设计的IIR数字滤波器。 主要技术难点: 用DSP实现所设计的IIR数字滤波器。 六、实验步骤 1、用MATLAB设计IIR数字滤波器的系数: (4)在Matlab命令窗口中输入[ba]=maxflat(3,3,0.2)并回车,以设计一个巴特沃斯低通滤波器,其零点数为3,极点数为3,截止频率为0.2,求得b,a分别系统函数分子多项式和分母多项式系数; (5)记录命令窗口中生成的滤波器系数b,a; (6)在Matlab命令窗口中输入fvtool(b,a)并回车,以求出所设计的IIR低通滤波器的幅频响应,并记录; 2、用DSP实现1中所设计的IIR数字滤波器 (8)启动CCS,在Project选项中打开iir.pjt。 (9)使用Build选项完成编译、连接,然后使用File菜单中的LoadProgram将生成的iir.out文件装入。 这时CCS将显示程序的起始地址_c_int00。 (10)选Debug->Gomain找到主函数,在“while (1);”语句处增加一个断点。 (11)选View->Graph->Time/Frequency…打开图形显示设置窗口;在弹出的对话框中按下图设置,主要修改“GraphTitle”为“Input_x”,“StartAddress”为x,“DisplayDataSize”为128,“AcquisitionBufferSize”为128,“DSPDataType”为“32-bitIEEEfloatingpoint”。 将在图形显示窗口显示输入序列的128点波形。 (12)选View->Graph->Time/Frequency…打开图形显示设置窗口;在弹出的对话框中按下图设置,主要修改“GraphTitle”为“Output_y”,“StartAddress”为y,“DisplayDataSize”为128,“AcquisitionBufferSize”为128,“DSPDataType”为“32-bitIEEEfloatingpoint”。 将在图形显示窗口显示输出序列的128点波形。 (13)选Window->Tile,使各窗口平铺显示。 (14)按F5键启动程序运行。 观察记录比较输入输出波形。 输入输出波形记录方法: 用PrintScreen键记录当前屏幕,打开Windows的附件中画图工具,选“编辑->粘贴”,然后剪选所需的输入输出序列波形图,粘贴至Word文档,打印贴于实验报告。 (8)重复步骤(4)(5)并将设置窗口中的“DisplayType”改为“FFTMagnitude”(点右方下拉键),然后重做(6)(7),以观察记录比较输入输出频谱。 3、按步骤1,2设计自己的IIR数字滤波器 (3)用MATLAB设计IIR数字滤波器的系数: 设计一个IIR低通滤波器,其零点数为组号,极点数为10+组号,截止频率为0.3。 (4)用DSP实现 (1)中所设计的IIR数字滤波器: 在Project管理栏中打开iir.c文件,修改 #defineMAX_ZERO3//零点个数 #defineMAX_POLE3//极点个数 为 #defineMAX_ZERO当前零点个数 #defineMAX_POLE当前极点个数 修改 doublez[]={0.01810.05430.05430.0181};//零点系数 doublep[]={1.0000-1.76001.1829-0.2781};//极点系数为 为 doublez[]={当前生成的零点系数}; doublep[]={当前生成的极点系数}; 选File->Save保存修改,重复步骤2。 七、实验报告要求 1、实验步骤按实验内容指导进行; 2、对于实验内容1要给出滤波器系数及IIR低通滤波器的幅频响应; 3、对于实验内容2要给出输入输出序列波形及输入输出频谱对比图,和相关比较结论; 4、对于实验内容3要给出C程序,输入输出序列波形及输入输出频谱对比图,和相关比较结论; 5、实验报告按规定格式填写,要求如下: (1)实验步骤根据自己实际操作填写; (2)各小组实验数据不能完全相同,否则以缺席论处; 八、实验注意事项 实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。 九、思考题 试用TMS320C54X的汇编指令改写IIR低通滤波器程序。 注释: 安装后CCS2用SetupCCS2选C5402Simulator,并Import,SaveandQuit。 实验程序在 C: \DSP技术课实验\shiyan目录下。 各实验对应工程文件: 实验一DSP的常用指令实验…………………………………………shiyan\Exp01\ex1.pjt 实验二数字振荡器实验………………………………………………shiyan\Exp02\sin1.pjt 实验三FIR滤波器的DSP实现………………………………………shiyan\Exp03\fir.pjt 实验四IIR滤波器的DSP实现…………………………………………shiyan\Exp04\iir.pjt 主要参考文献: [1]《DSP原理及应用》,邹彦编,电子工业出版社,2005。 [2]《DSP集成开发环境CCS开发指南》,尹勇等编,北京航空航天大学出版社,2003。 [3]《DSP技术的发展与应用》,彭启琮等编,高等教育出版社,2002。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西华大学 DSP技术及应用实验指导书李天倩 西华 大学 DSP 技术 应用 实验 指导书 李天倩