DSP原理实验报告.doc

上传人:叶*** 文档编号:35169480 上传时间:2022-08-20 格式:DOC 页数:16 大小:98.50KB
返回 下载 相关 举报
DSP原理实验报告.doc_第1页
第1页 / 共16页
DSP原理实验报告.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《DSP原理实验报告.doc》由会员分享,可在线阅读,更多相关《DSP原理实验报告.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、DSP原理实验报告学号: K031341725 姓名: 张治中 实验成绩: 实验时间: 2015.11.16 九十节 实验地点: 实验楼四楼 实验题目: CCS入门实验 一、 实验目的1. 学习用标准C语言编写程序;2. 了解TI CCS开发平台下的C语言程序设计方法和步骤;3. 熟悉使用软件仿真方式调试程序。二、实验内容1. DSP源文件的建立;2. DSP程序工程文件的建立;3. 掌握C语言在DSP中的应用。三、实验背景知识当使用标准C语言编制程序时,其源程序文件名的后缀应为*.c。CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成

2、的是coff格式的可下载到DSP中运行的文件,其文件名后缀为*.out。由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。所以用户工程中需要注明使用C的支持库。四、 实验程序,包含文件1Hello.c:实验的主程序。2Hello.cmd:声明了系统的存储器配置与程序各段的连接关系。3DEC643.gel:系统初始化。五、实验准备首先将光盘下03. Examples of Program 04. SEED-DTK643实验程序CCS使用实验目录下的3.1.2 hello的文件夹拷贝到D盘根目录下。1. 将 DSP 仿真器与计算机连接好;2.

3、 将 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文件,即右键点击工程视窗中的GEL files,在弹出的菜单中选

4、择laod GEL命令。在弹出的对话框中添加 DEC643.gel 文件。5. 按照下图所示添加.out 文件,即使用 FileLoad Program 菜单命令。装载hello.out文件,进行调试。(.out文件一般存放在程序文件夹的debug文件夹中)6. 运行程序,在CCS中显示结果“hello world!”。表明实验成功。 DSP原理实验报告学号: K031341725 姓名: 张治中 实验成绩: 实验时间: 2015.11.23 九十节 实验地点: 实验楼四楼 实验题目: 交通灯实验 二、 实验目的1. 熟悉使用 SEED-DEC643 板控制 SEED-DTK_MBoard 上

5、交通灯的方法;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 在其内部

6、做锁存逻辑,我们采用的是后者。SEED-DEC643 的存储器扩展总线,包含 4 个存储空间 ,每个存储空间有 20-位地址线、 32-位数据线。 SEED-DEC643 的这 4 个存储空间 被映射到DM643 的和 空间中,具体的映射关系如下表所示:在 SEED-DEC643 上,存储器扩展总线只支持 8/16/32-位数据宽度,不支持 64-位数据宽度。存储器扩展总线的 20-位地址线 XA21:2由DM643 的 EMIF 总线的地址总线 EA22:3经驱动后提供,32-位数据总线 XD31:0则由DM643 的 EMIF 总线的低 32-位数据总线ED31:0经驱动后提供,4-位存储

7、空间选通线 由DM643 的 、 与地址译码后提供, 4-位字节使能线 由DM643 的 EMIF 总线的字节使能的低 4-位 经驱动后提供,读写控制线有DM643 的 EMIF 总线的读写控制线经驱动后提供。实验箱 I/O 板映射到 SEED-DEC643 模板的 EDSP_CE3 空间,接口方式为 16-位。所以将 DSP C643 EMIF CE3#空间配置为 16-位异步接口模式,地址映射关系如下: 实验箱 I/O 板对应的起始地址为:0xA01C0000(字地址);TRAFFIC LED 的偏移地址为:0x00000002;即 TRAFFIC LED 的地址为:0xA01C0002;

8、2、SEED-DTK643 系统中数字 IO 所占的资源交通灯控制口地址为:0xA01C0002(I/O 空间);其说明如下:NG: 方向北的绿灯控制位;NY: 方向北的黄灯控制位;NR: 方向北的红灯控制位;WG: 方向西的绿灯控制位;ER: 方向东的红灯控制位;WY: 方向西的黄灯控制位;EY: 方向东的黄灯控制位;EG: 方向东的绿灯控制位;WR: 方向西的红灯控制位;SG: 方向南的绿灯控制位;SY: 方向南的黄灯控制位;SR: 方向南的红灯控制位;当以上各位置1时,点亮各控制位所代表的交通灯状态的 LED 灯。四、实验要求通过本实验,了解 DSP 对 I/O 口的操作,完成交通灯的控

9、制。熟练使用 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 程

10、序流程图5.3 实验准备首先将光盘下 03. Examples of Program 04. SEED-DEC643 实验程序目录下的3.3.1 IO 的文件夹拷贝到 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 的操作环

11、境;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 单元的 Traffic LED 处将显示结果;4. 装载程序 IO.out;5. 运行,观察。在程序运行过程中,可直接在 Watch Window 里修改 TestCommand的值,即将每一种运行方式所对应宏定义的值直接赋值给 Tes

12、tCommand,即可改变运行方式。例如在程序运行过程中,若想将运行方式改为夜间模式,就请将TestCommand 赋值为 0xAA16(关于各种方式的宏定义已在第 22 行到第 31 行给出)即可。如下图所示:6. 重新到第 3)步开始尝试其他情况或者退出实验。 DSP原理实验报告学号: K031341725 姓名: 张治中 实验成绩: 实验时间: 2015.11.30 九十节 实验地点: 实验楼四楼 实验题目: 快速傅立叶变换(FFT)算法实验 三、 实验目的1. 加深对 DFT 算法原理和基本性质的理解;2. 熟悉 FFT 的算法原理和 FFT 子程序的算法流程和应用;3. 学习用 FF

13、T 对连续信号和时域信号进行频谱分析的方法。二、实验内容1. DSP 初始化;2. A/D 采样;3. FFT 的运算程序。三、实验背景知识傅立叶变换是一种将信号从时域到频域的变换形式,是声学、语音、电信和信号处理等领域中的一种重要分析工具。离散傅立叶变换(DFT)是连续傅立叶变换在离散系统中的表现形式,由于 DFT 的计算量很大,因此在很长时间内其应用受到很大的限制。快速傅立叶变换(FFT)是离散傅立叶变换的一种高效运算方法。FFT 使 DFT 的运算大大简化,运算时间一般可以缩短一至两个数量级,FFT 的出现大大提高了 DFT 的运算速度,从而使 DFT在实际应用中得到广泛的应用。在数字信

14、号处理系统中,FFT 作为一个非常重要的工具经常使用,它甚至成为 DSP 运算能力的一个考核因素。对于有限长离散数字信号xn,0nN-1,其离散谱xk可以由离散付氏变换(DFT)求得。DFT 的定义为可以方便的把它改写为如下形式:即称为蝶形因子式旋转因子。对于旋转因子来说,有如下的对称性和周期性:对称性:;周期性: 。FFT 就是利用了旋转因子的对称性和周期性来减少运算量的。FFT 算法将长序列的 DFT 分解为短序列的 DFT。 N 点的 DFT先分解为两个 N/2 点的 DFT,每个 N/2 点的 DFT 又分解为两个 N/4 点的 DFT 等等,最小变换的点数即基数,基数为 2的 FFT

15、 算法的最小变换是 2 点 DFT.一般而言,FFT 算法分为时间抽选(DIT)FFT 和频率抽选(DIF)FFT 两大类。时间抽取 FFT 算法的特点是每一级处理都是在时域里把输入序列依次按奇/偶一分为二分解成较短的序列;频率抽取 FFT 算法的特点是在频域里把序列依次按奇/偶一分为二分解成较短的序列来计算。DIT 和 DIF 两种 FFT 算法的区别是旋转因子出现的位置不同,(DIT) FFT 中旋转因子在输入端,(DIF)FFT 中旋转因子在输出端,除此之外,两种算法是一样的。在本设计中实现的是基 2 的频率抽取 FFT 算法,具体的实现过程可参见源程序及其注释。四、实验要求对不同的输入

16、信号进行 FFT 变换,观看不同信号在频域内的特性。五、实验程序功能与结构说明5.1 FFT 实验,包含文件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. Ex

17、amples of Program 04. SEED-DTK643实验程序目录下的3.4.3 FFT 的文件夹拷贝到 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-DE

18、C643的 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(SampleL

19、ong/2);i+)”处和 120 行“for(;);”处设置断点。6. 本实验和 AD 实验,数字滤波实验都需要设置实验箱信号源。通过液晶和按键,设置信号源。菜单路径为:“系统设置”“信号发生器设置”。在“信号发生器设置”这一菜单下:“通道”设为“0”;“信号类型”可根据需要任意选择,这里我们设置为“标准正弦波”;“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议“信号振幅”设为 1000 左右,“信号频率”设为 300 左右;“信号发生器开关”设为“开启”。此时便有正弦信号输入音频芯片 AIC23 的输入端(利用此芯片同样可以进行 AD 采集)。7. 运行程序。当

20、程序执行到断点时,可以观察收到的数据和显示的图像。运行到第一个断点处(65 行),AD 采样完成,此时可设置图像观察 AD 采样的结果(即显示 DataBuffer 数组);运行到第二个断点处(120 行),FFT 变换完成,同样可设置图像观察 FFT 变换后没有取模时的结果(即显示 DDataBuffer 数组),和取模后的结果(即显示 mod 数组)。如下图从上至下分别为 1024 点时, DataBuffer 数组,DDataBuffer 数组, mod数组的图像显示。其中图像显示设置对话框中 Start adderss:起始地址;Acquisition Buffer Size:输入数据

21、个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致) ;DSP Data Type:数据类型;以上举例说明 1024 点时如何观察收到的数据和显示的图像, 256 点和 512 点可以此类推。8. 重新执行第 6)步,变化采样长度和输入信号类型; DSP原理实验报告学号: K031341725 姓名:张治中 实验成绩: 实验时间: 2015.12.7 九十节 实验地点: 实验楼四楼 实验题目: 有限冲击响应滤波器(FIR)算法实验 四、 实验目的1. 掌握数字滤波器的设计过程;2. 了解 FIR 的原理和特性;3. 熟悉设计 FIR 数字滤波器

22、的原理和方法。二、实验内容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

23、-1-n) 或h(n)=-h(N-1-n)。这样,当 N 为偶数时,偶对称线性相位 FIR 滤波器的差分方程表达式为由上可见,FIR 滤波器不断地对输入样本 x(n)延时后,再做乘法累加算法,将滤波器结果 y(n)输出。因此,FIR实际上是一种乘法累加运算。而对于线性相位 FIR 而言,利用线性相位 FIR 滤波器系数的对称特性,可以采用结构精简的 FIR 结构将乘法器数目减少一半。3.2 本实验中 FIR 的算法公式四、实验要求对带有噪声的不同输入信号(正弦波、方波、三角波)进行 FIR 滤波,观看滤掉噪声后的波形。五、实验程序功能与结构说明5.1 Filter 实验,包含文件1. Filt

24、er.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. Examples of Program 04. SEED-DT

25、K643 实验程序目录下的3.4.1 FIR_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

26、 采样初始化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 实验

27、都需要设置实验箱信号源。通过液晶屏和键盘,设置信号源:当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”键,进入“信号发生器设置”。在“信号发生器设置”这一菜单下:“通道”设为“0”;“信号类型”可根据需要任意选择(这里我们选“噪声正弦波”) ;“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议振幅设为 1000 左右,频率设为 300 左右;“信号发生器开关”设为“开启”。此时便有噪声方形波信号输入音频芯片 AIC23的输入端(利用此芯片同样可以进行 AD 采集)。6. 打开 Filter.c 文件,在第 65 行“fir_filter(int *)

28、DataBuffer,(int *)hfir,DDataBuffer,ORDER_FIR ,SampleLong,ROUND_FIR);” 66行设置断点“printf(FIR filter have done!n);”7. 运行程序。可以观察收到的数据和显示的图像; DataBuffer数组显示的是原始信号图像;DDataBuffer 数组显示的是滤波后信号图像。其中图像显示设置对话框中 Start adderss:起始地址;Acquisition Buffer Size:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致) ;DSP

29、 Data Type:数据类型;滤波前滤波后:注意:有削顶现象。8. 从第 6)步开始重新执行,变化采样长度或滤波类型,或者退出本实验。六、MATLAB 的应用实验者若进一步研究 FIR 算法,会发现在每种算法函数的开始处都已定义好进行 FIR运算时所需的系数,这些系数是用 Matlab 产生的。下面具体介绍一下在 Matlab 中如何设置各种参数,从而方便实验者根据具体需要进行参数的调整,从而达到不同的滤波效果。说明:实验箱提供的信号默认采样频率为 48KHz,信号频率为200Hz,幅值为 500mv,fir 具体参数如下:(为方便起见,采用MATLAB 执行格式,括弧内为说明)说明:MATLAB 源文件在在光盘下 03. Examples of Program06.Matlab 文件夹中,文件名为 ezFIR,只需运行它,按照以上示例输入参数(或根据具体需要输入所需参数后)即可得FIR-FILTER 算法所需的系数。输入参数中,通带截至频率(FP)和截止带截止频率(FS)是比较重要的两个参数,不宜过小,过小滤掉的高频成分太多,很难还原出原波形的形状;也不宜过大,过大滤波效果欠佳。这里只是作为实验演示程序时所需参数的建议,真正做滤波程序时,所需参数还要根据具体要求而定。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁