DSP原理实验报告.docx
- 文档编号:8260409
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:18
- 大小:792.68KB
DSP原理实验报告.docx
《DSP原理实验报告.docx》由会员分享,可在线阅读,更多相关《DSP原理实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
DSP原理实验报告
DSP原理实验报告
学号:
K031341725姓名:
张治中实验成绩:
实验时间:
2015.11.16九十节实验地点:
实验楼四楼
实验题目:
CCS入门实验
1、实验目的
1.学习用标准C语言编写程序;
2.了解TICCS开发平台下的C语言程序设计方法和步骤;
3.熟悉使用软件仿真方式调试程序。
二、实验内容
1.DSP源文件的建立;
2.DSP程序工程文件的建立;
3.掌握C语言在DSP中的应用。
三、实验背景知识
当使用标准C语言编制程序时,其源程序文件名的后缀应为*.c。
CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。
最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为*.out。
由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。
所以用户工程中需要注明使用C的支持库。
4、实验程序,包含文件
1.Hello.c:
实验的主程序。
2.Hello.cmd:
声明了系统的存储器配置与程序各段的连接关系。
3.DEC643.gel:
系统初始化。
五、实验准备
首先将光盘下03.ExamplesofProgram\04.SEED-DTK643实验程序\CCS使用实验目录下的3.1.2hello的文件夹拷贝到D盘根目录下。
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;
3.打开SEED-DTK643的电源。
观察SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源
六、实验步骤
1.双击
图标进入CCS环境。
2.按照下图所示添加pjt文件,点击Project→open命令。
3.在弹出的对话框中选中hello.pjt文件添加该工程文件。
4.按照下图所示的方法添加GEL文件,即右键点击工程视窗中的GELfiles,在弹出的菜单中选择laodGEL命令。
在弹出的对话框中添加DEC643.gel文件。
5.按照下图所示添加.out文件,即使用File→LoadProgram菜单命令。
装载hello.out文件,进行调试。
(.out文件一般存放在程序文件夹的debug文件夹中)
6.运行程序,在CCS中显示结果“helloworld!
”。
表明实验成功。
DSP原理实验报告
学号:
K031341725姓名:
张治中实验成绩:
实验时间:
2015.11.23九十节实验地点:
实验楼四楼
实验题目:
交通灯实验
2、实验目的
1.熟悉使用SEED-DEC643板控制SEED-DTK_MBoard上交通灯的方法;
2.掌握DSP扩展数字I/O口的方法;
3.了解SEED-DEC643的硬件系统。
二、实验内容
1.DSP的初始化;
2.TMS320DM643的扩展数字I/O口使用;
3.交通灯控制程序。
三、实验背景知识
1、DSP系统中数字I/O的实现
DSP系统中一般只有少量的数字I/O资源,而一些控制中经常需要大量的数字量的输入与输出。
因而,在外部扩展I/O资源是非常有必要的。
在扩展I/O资源时一般占用DSP的I/O空间。
其实现方法一般有两种:
其一为采用锁存器像74LS273、74lS373之类的集成电路;另一种是采用CPLD在其内部做锁存逻辑,我们采用的是后者。
SEED-DEC643的存储器扩展总线,包含4个存储空间,每个存储空间有20-位地址线、32-位数据线。
SEED-DEC643的这4个存储空间被映射到’DM643的和空间中,具体的映射关系如下表所示:
在SEED-DEC643上,存储器扩展总线只支持8/16/32-位数据宽度,不支持64-位数据宽度。
存储器扩展总线的20-位地址线XA[21:
2]由’DM643的EMIF总线的地址总线EA[22:
3]经驱动后提供,32-位数据总线XD[31:
0]则由’DM643的EMIF总线的低32-位数据总线ED[31:
0]经驱动后提供,4-位存储空间选通线由’DM643的、与地址译码后提供,4-位字节使能线由’DM643的EMIF总线的字节使能的低4-位经驱动后提供,读/写控制线有’DM643的EMIF总线的读/写控制线经驱动后提供。
实验箱I/O板映射到SEED-DEC643模板的EDSP_CE3空间,接口方式为16-位。
所以将DSPC643EMIFCE3#空间配置为16-位异步接口模式,地址映射关系如下:
实验箱I/O板对应的起始地址为:
0xA01C0000(字地址);
TRAFFICLED的偏移地址为:
0x00000002;即TRAFFICLED的地址为:
0xA01C0002;
2、SEED-DTK643系统中数字IO所占的资源
交通灯控制口地址为:
0xA01C0002(I/O空间);其说明如下:
NG:
方向北的绿灯控制位;
NY:
方向北的黄灯控制位;
NR:
方向北的红灯控制位;
WG:
方向西的绿灯控制位;
ER:
方向东的红灯控制位;
WY:
方向西的黄灯控制位;
EY:
方向东的黄灯控制位;
EG:
方向东的绿灯控制位;
WR:
方向西的红灯控制位;
SG:
方向南的绿灯控制位;
SY:
方向南的黄灯控制位;
SR:
方向南的红灯控制位;
当以上各位置1时,点亮各控制位所代表的交通灯状态的LED灯。
四、实验要求
通过本实验,了解DSP对I/O口的操作,完成交通灯的控制。
熟练使用CCS对程序进行调试。
五、实验程序功能与结构说明
5.1数字IO实验,包含文件
1.IO.c:
实验的主程序,包含了系统初始化,并完成控制交通灯按照所选择的不同模式输出显示,以及LED灯按照可输入的8位二进制数显示结果。
2.DEC643.C:
对SEED-DEC643各项资源操作的函数集,主要包含系统初始化函数。
3.DEC643_DTK.c:
主要包含对IO口操作的各函数。
4.vecs.asm:
包含定时器中断的中断向量表。
5.SEED-DEC643.cmd:
声明了系统的存储器配置与程序各段的连接关系。
6.DEC643.gel:
系统初始化程序。
5.2程序流程图
5.3实验准备
首先将光盘下03.ExamplesofProgram\04.SEED-DEC643实验程序目录下的3.3.1IO的文件夹拷贝到D盘根目录下。
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;
3.打开SEED-DTK643的电源。
观察SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源。
5.4实验步骤
1.打开CCS,进入CCS的操作环境;
2.装入IO.pjt,添加DEC643.gel文件开始进行调试;
3.打开IO.c文件,到第19行,修改TESTCOMMAND的宏定义;
TESTCOMMAND是交通灯操作控制选项。
可以为1、2、3、4、5这5个数。
1为自动运行;2为夜间模式;3为交通灯东西通;4为交通灯南北通;5为禁行。
SEED-DTK_MBoard单元的TrafficLED处将显示结果;
4.装载程序IO.out;
5.运行,观察。
在程序运行过程中,可直接在WatchWindow里修改TestCommand的值,即将每一种运行方式所对应宏定义的值直接赋值给TestCommand,即可改变运行方式。
例如在程序运行过程中,若想将运行方式改为夜间模式,就请将TestCommand赋值为0xAA16(关于各种方式的宏定义已在第22行到第31行给出)即可。
如下图所示:
6.重新到第3)步开始尝试其他情况或者退出实验。
DSP原理实验报告
学号:
K031341725姓名:
张治中实验成绩:
实验时间:
2015.11.30九十节实验地点:
实验楼四楼
实验题目:
快速傅立叶变换(FFT)算法实验
3、实验目的
1.加深对DFT算法原理和基本性质的理解;
2.熟悉FFT的算法原理和FFT子程序的算法流程和应用;
3.学习用FFT对连续信号和时域信号进行频谱分析的方法。
二、实验内容
1.DSP初始化;
2.A/D采样;
3.FFT的运算程序。
三、实验背景知识
傅立叶变换是一种将信号从时域到频域的变换形式,是声学、语
音、电信和信号处理等领域中的一种重要分析工具。
离散傅立叶变换(DFT)是连续傅立叶变换在离散系统中的表现形式,由于DFT的计算量很大,因此在很长时间内其应用受到很大的限制。
快速傅立叶变换(FFT)是离散傅立叶变换的一种高效运算方法。
FFT使DFT的运算大大简化,运算时间一般可以缩短一至两个数量级,FFT的出现大大提高了DFT的运算速度,从而使DFT在实际应用中得到广泛的应用。
在数字信号处理系统中,FFT作为一个非常重要的工具经常使用,它甚至成为DSP运算能力的一个考核因素。
对于有限长离散数字信号{x[n]},0≦n≦N-1,其离散谱{x[k]}可以
由离散付氏变换(DFT)求得。
DFT的定义为
可以方便的把它改写为如下形式:
即
称为蝶形因子式旋转因子。
对于旋转因子
来说,有如下的对称性和周期性:
对称性:
;
周期性:
。
FFT就是利用了旋转因子的对称性和周期性来减少运算量的。
FFT算法将长序列的DFT分解为短序列的DFT。
N点的DFT
先分解为两个N/2点的DFT,每个N/2点的DFT又分解为两个N/4点的DFT等等,最小变换的点数即基数,基数为2的FFT算法的最小变换是2点DFT.
一般而言,FFT算法分为时间抽选(DIT)FFT和频率抽选(DIF)
FFT两大类。
时间抽取FFT算法的特点是每一级处理都是在时域里把输入序列依次按奇/偶一分为二分解成较短的序列;频率抽取FFT算法的特点是在频域里把序列依次按奇/偶一分为二分解成较短的序列来计算。
DIT和DIF两种FFT算法的区别是旋转因子
出现的位置不
同,(DIT)FFT中旋转因子
在输入端,(DIF)FFT中旋转因子
在输出端,除此之外,两种算法是一样的。
在本设计中实现的是基2的频率抽取FFT算法,具体的实现过程可参见源程序及其注释。
四、实验要求
对不同的输入信号进行FFT变换,观看不同信号在频域内的特
性。
五、实验程序功能与结构说明
5.1FFT实验,包含文件
1.FFT.c:
实验主程序,包含系统初始化,音频芯片各控制寄存
器的初始化,A/D采样,FFT变换,以及将FFT变换结果做取模运算。
2.CODECc:
音频芯片各控制寄存器的初始化。
3.FFTfunction.c:
包含不同采样长度时FFT变换的各函数。
4.IIC.c:
进行I2C初始化。
5.vecs.asm:
包含定时器中断的中断向量表。
6.SEED-DEC643.cmd:
声明了系统的存储器配置与程序各段的
连接关系。
5.2程序流程图
5.3实验准备
首先将光盘下03.ExamplesofProgram\04.SEED-DTK643
实验程序目录下的3.4.3FFT的文件夹拷贝到D盘根目录下。
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC643单元的J1
相连接;
3.打开SEED-DTK643的电源。
观察SEED-DTK_MBoard单
元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源;
4.用音频线连接SEED-DTK_MBoard单元的DAOUT2(J12)
接口和SEED-DEC643的BNC转接头(J13)的音频输入接口Ain。
5.4实验步骤
1.打开CCS,进入CCS的操作环境。
2.装入FFT.pjt工程文件,添加DEC643.gel文件,开始进
行调试。
3.打开FFT.c文件,到第15行,可以修改宏定义
SAMPLELONG。
SAMPLELONG是采样长度选择,有3个选择1、2、3。
1表
示256,2表示512,3表示1024。
4.修改完宏定义后,编译、连接生成DEC643_FFT.out文件,装
载程序DEC643_FFT.out。
5.分别在FFT.c程序的65行“for(i=0;i<(SampleLong/2);i++)”
处和120行“for(;;);”处设置断点。
6.本实验和AD实验,数字滤波实验都需要设置实验箱信号源。
通过液晶和按键,设置信号源。
菜单路径为:
“系统设置”-“信号发生器设置”。
在“信号发生器设置”这一菜单下:
“通道”设为“0”;
“信号类型”可根据需要任意选择,这里我们设置为“标准正弦
波”;
“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的
范围内任意输入,建议“信号振幅”设为1000左右,“信号频率”设为300左右;
“信号发生器开关”设为“开启”。
此时便有正弦信号输入音频芯
片AIC23的输入端(利用此芯片同样可以进行AD采集)。
7.运行程序。
当程序执行到断点时,可以观察收到的数据和显
示的图像。
运行到第一个断点处(65行),AD采样完成,此时可设置图像
观察AD采样的结果(即显示DataBuffer数组);运行到第二个断点处(120行),FFT变换完成,同样可设置图像观察FFT变换后没有取模时的结果(即显示DDataBuffer数组),和取模后的结果(即显示mod数组)。
如下图从上至下分别为1024点时,DataBuffer数组,
DDataBuffer数组,mod数组的图像显示。
其中图像显示设置对话框中Startadderss:
起始地址;Acquisition
BufferSize:
输入数据个数;DisplayDataSize:
显示数据个数(注意:
显示个数要与程序中宏定义的采样个数一致);DSPDataType:
数据类型;
以上举例说明1024点时如何观察收到的数据和显示的图像,256点和512点可以此类推。
8.重新执行第6)步,变化采样长度和输入信号类型;
DSP原理实验报告
学号:
K031341725姓名:
张治中实验成绩:
实验时间:
2015.12.7九十节实验地点:
实验楼四楼
实验题目:
有限冲击响应滤波器(FIR)算法实验
4、实验目的
1.掌握数字滤波器的设计过程;
2.了解FIR的原理和特性;
3.熟悉设计FIR数字滤波器的原理和方法。
二、实验内容
1.通过MATLAB设计确定FIR滤波器系数;
2.DSP初始化;
3.A/D采样;
4.FIR运算,观察滤波前后的波型变化。
三、实验背景知识
3.1有限冲击响应数字滤波器(FIR)的基础理论
FIR数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序
列,其差分方程表达式为:
N为FIR滤波器的阶数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤
波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。
为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或
h(n)=-h(N-1-n)。
这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为
由上可见,FIR滤波器不断地对输入样本x(n)延时后,再做乘法
累加算法,将滤波器结果y(n)输出。
因此,FIR实际上是一种乘法累加运算。
而对于线性相位FIR而言,利用线性相位FIR滤波器系数的对称特性,可以采用结构精简的FIR结构将乘法器数目减少一半。
3.2本实验中FIR的算法公式
四、实验要求
对带有噪声的不同输入信号(正弦波、方波、三角波)进行FIR滤
波,观看滤掉噪声后的波形。
五、实验程序功能与结构说明
5.1Filter实验,包含文件
1.Filter.c:
实验的主程序,包含了系统初始化,音频芯片各控制
寄存器的初始化,A/D采样程序,FIR_Filter子程序。
2.DEC643.C:
对SEED-DEC643各项资源操作的函数集,主要
包含系统初始化函数。
3.CODEC.c:
包含对音频芯片的各控制函数。
4.IIC.c:
包含对IIC的各操作函数。
5.vecs.asm:
包含定时器中断的中断向量表。
6.CODEC.cmd:
声明了系统的存储器配置与程序各段的连接关
系。
7.DEC643.gel:
系统初始化程序。
5.2程序流程图
5.3实验准备
首先将光盘下03.ExamplesofProgram\04.SEED-DTK643
实验程序目录下的3.4.1FIR_Filter的文件夹拷贝到D根目录下。
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC643单元的J1
相连接;
3.打开SEED-DTK643的电源。
观察SEED-DTK_MBoard单
元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源。
4.用音频线连接SEED-DTK_MBoard单元的DAOUT2(J13)
接口和SEED-DEC643CSL初始化条件编译采样长度的选择AD采样初始化AD采样有限冲击响应数字滤波的BNC转接头(J13)的音频输入接口Ain。
5.4实验步骤
1.打开CCS,进入CCS的操作环境。
2.装入FIR_Filter.pjt工程文件,添加DEC643.gel文件,开
始进行调试。
3.打开Filter.c文件,到第24行修改SAMPLELONG宏定
义。
SAMPLELONG是采样长度选择,有3个选择1、2、3。
1表
示256,2表示512,3表示1024;
4.修改完宏定义后,编译、连接生成Filter.out文件,装载程序
Filter.out。
5.本实验和FFT实验,AD实验都需要设置实验箱信号源。
通
过液晶屏和键盘,设置信号源:
当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”键,进入“信号发生器设置”。
在“信号发生器设置”这一菜单下:
“通道”设为“0”;
“信号类型”可根据需要任意选择(这里我们选“噪声正弦波”);
“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的
范围内任意输入,建议振幅设为1000左右,频率设为300左右;
“信号发生器开关”设为“开启”。
此时便有噪声方形波信号输入
音频芯片AIC23的输入端(利用此芯片同样可以进行AD采集)。
6.打开Filter.c文件,在第65行“fir_filter((int*)DataBuffer,(int
*)hfir,DDataBuffer,ORDER_FIR,SampleLong,ROUND_FIR);”66行设置断点“printf("FIRfilterhavedone!
\n");”
7.运行程序。
可以观察收到的数据和显示的图像;DataBuffer
数组显示的是原始信号图像;DDataBuffer数组显示的是滤波后信号图像。
其中图像显示设置对话框中Startadderss:
起始地址;AcquisitionBufferSize:
输入数据个数;DisplayDataSize:
显示数据个数(注意:
显示个数要与程序中宏定义的采样个数一致);DSPDataType:
数据类型;
滤波前
滤波后:
注意:
有削顶现象。
8.从第6)步开始重新执行,变化采样长度或滤波类型,或者
退出本实验。
六、MATLAB的应用
实验者若进一步研究FIR算法,会发现在每种算法函数的开始处
都已定义好进行FIR运算时所需的系数,这些系数是用Matlab产生的。
下面具体介绍一下在Matlab中如何设置各种参数,从而方便实验者根据具体需要进行参数的调整,从而达到不同的滤波效果。
说明:
实验箱提供的信号默认采样频率为48KHz,信号频率为
200Hz,幅值为500mv,fir具体参数如下:
(为方便起见,采用MATLAB执行格式,括弧内为说明)
说明:
MATLAB源文件在在光盘下03.ExamplesofProgram
\06.Matlab文件夹中,文件名为ezFIR,只需运行它,按照以上示例
输入参数(或根据具体需要输入所需参数后)即可得FIR-FILTER算法所需的系数。
输入参数中,通带截至频率(FP)和截止带截止频率(FS)是比较重要的两个参数,不宜过小,过小滤掉的高频成分太多,很难还原出原波形的形状;也不宜过大,过大滤波效果欠佳。
这里只是作为实验演示程序时所需参数的建议,真正做滤波程序时,所需参数还要根据具体要求而定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 实验 报告