ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:1,015.17KB ,
资源ID:16166220      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16166220.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP技术与应用基础实验报告模板终极版Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP技术与应用基础实验报告模板终极版Word文件下载.docx

1、5实验五 卷积算法67891011121314151617181920福建农林大学金山学院信息工程类实验报告 专业: 年级: 姓名: 学号: 实验课程:实验室号:_ 实验设备号: 实验时间:指导教师签字: 成绩:1实验目的和要求1掌握 Code Composer Studio 2.21 的安装和配置步骤过程。2了解 DSP 开发系统和计算机与目标系统的连接方法。3了解 Code Composer Studio 2.21 软件的操作环境和基本功能,了解 TMS320C55xx 软件开发过程。 学习创建工程和管理工程的方法。 了解基本的编译和调试功能。 学习使用观察窗口。 了解图形功能的使用。2实

2、验原理*开发 TMS320C55xx 应用系统一般需要以下几个调试工具来完成:-软件集成开发环境(Code Composer Studio 2.21):完成系统的软件开发,进行软件和硬件仿真调试。它也是硬件调试的辅助手段。-开发系统(ICETEK 5100-USB 或 ICETEK 5100-PP):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。-评估模块(ICETEK VC5509-A 或 ICETEK VC5509-C 等):提供软件运行和调试的平台和用户系统开发的参照。*Code Composer Studio 2.21 主要完成系统的软件开发和调试。它提供一整套的

3、程序编制、维护、编译、调试环境,能将汇编语言和 C 语言程序编译连接生成 COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标 DSP 上运行调试。*用户系统的软件部分可以由 CCS 建立的工程文件进行管理,工程一般包含以下几种文件:-源程序文件:C 语言或汇编语言文件(*.C 或*.ASM)-头文件(*.H)-命令文件(*.CMD)-库文件(*.LIB,*.OBJ)3主要仪器设备(实验用的软硬件环境)1 PC 兼容机一台;操作系统为 Windows2000 (或 WindowsNT、Windows98、WindowsXP,以下假定操作系统为 Windows2000)。Window

4、s 操作系统的内核如果是 NT 的应安装相应的补丁程序(如:Windows2000 为 Service Pack3,WindowsXP 为 Service Pack1)。4操作方法与实验步骤1实验准备连接实验设备。2启动 Code Composer Studio 2.21选择菜单 DebugReset CPU。成功地启动了 CCS 后会出现如下窗口:3创建工程: 创建新的工程文件:选择菜单“Project”的“New”项。弹出下图,按编号顺序操作建立 volume.pjt 工程文件:展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其中各项均为空。 在工程文件

5、中添加程序文件:选择菜单“Project”的“Add Files to Project”项;在“Add Files to Project”对话框中选择文件目录为 C:ICETEK-VC5509-EDULabLab0101-UseCCS,改变文件类型为“C Source Files(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加 volume.cmd文件到volume 工程中;添加 C:tiC5500cgtoolslibrts55.lib 文件到工程中。 编译链接工程:选择菜单“Project”的“RebuildAll”项,或单击工具条中的按钮;注意编译过程中

6、 CCS 主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。4编辑修改工程中的文件: 查看工程文件:展开 CCS 主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含“volume.h”、“rts55.lib”、“volume.c”和“volume.cmd”文件,其中第一个“volume.h”为程序在编译时根据程序中的“include”语句自动加入的。 查看源文件:*双击工程管理窗中的“volume.c”文件,可以查看程序内容。可以看到,用标准 C 语言编制的程序,大致分成几个功能块:-头文件。描述标准库程序的调用规则和用户自定义数据、函数

7、头、数据类型等。具体包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。比如:如果程序中使用了 printf 函数,它是个标准 C 提供的输入/输出库函数,选中“printf”关键字,按 Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为 stdio.h,那么在此部分程序中需要增加一条语句:#include “stdio.h”。-工作变量定义。定义全局变量。-子程序调用规则。这部分描述用户编制的子程序的调用规则。也可以写到用户自己编制的.h 文件中去。-主程序。即 main()函数。它可分为两部分:变量定义和初始化部分、主循环部分。主循环部分完成程序的主要功能。-用户

8、自定义函数。这个程序是一个音频信号采集、处理输出的程序。程序的主循环中调用自定义的函数read_signals 来获得音频数据并存入输入缓存 inp_buffer 数组;再调用自定义函数 write_buffer来处理音频数据并存入输出缓存;output_signals 将输出缓冲区的数据送输出设备;最后调用标准 C 的显示信息的函数 printf 显示进度提示信息。整个系统可以完成将输入的音频数据扩大 volume 倍后再输出的功能。read_signals 子程序中首先应有从外接 AD 设备获得音频数据的程序设计,但此例中由于未采用实际 AD 设备,就未写相应控制程序。此例打算用读文件的方

9、式获得数据,模拟代替实际的 AD 输入信号数据。write_buffer 子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数 volume,然后放入输出缓冲区。output_signals 函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设备,所以函数中未写具体操作语句。*双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。*volume.cmd 文件定义程序所放置的位置,此例中描述了 ICETEK-VC5509-A 评估板的存储器资源,指定了程序和数据在内存中的位置。它首先将 ICETEK-VC5509

10、-A 评估板的可用存储器分为五个部分,每个区给定起始地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪个区。这些区域需要根据评估板硬件的具体情况来确定。 编辑修改源文件及编译程序:打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS 自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被 CCS 自动保存。 修改工程文件的设置:通过以上设置操

11、作,重新编译后,程序中的用户堆栈的尺寸被设置成 1024 个字。5基本调试功能: 下载程序:执行 File Load Program ,在随后打开的对话框中选择刚刚建立的C:ICETEK-VC5509-EDULabLab0101-UseCCSDebugvolume.out 文件。 设置软件调试断点:在项目浏览窗口中,双击 volume.c 激活这个文件,移动光标到 main()行上,单击鼠标右键选择 Toggle Breakpoint 或按 F9 设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。 利用断点调试程序:选择 Debug Run 或按 F5 运行程序,程序会自动停

12、在 main()函数上。按 F10 执行到 write_buffer()函数。再按 F8,程序将转到 write_buffer 函数中运行。此时,为了返回主函数,按 shift-F7 完成 write_buffer 函数的执行。再次执行到 write_buffer 一行,按 F10 执行程序,对比与 F8 执行的不同。提示:在执行 C 语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用Debug Go main 命令,上述实验中的使用的是较为繁琐的一种方法。6使用观察窗口: 执行 View Watch Window 打开观察窗口。 在 volume.c 中,用鼠标双击一个变量(比如

13、num),再单击鼠标右键,选择“Quick Watch”,CCS 将打开 Quick Watch 窗口并显示选中的变量。 在 volume.c 中,选中变量 num,单击鼠标右键,选择“Add to Watch Window”,CCS 将把变量添加到观察窗口并显示选中的变量值。 在观察窗口中双击变量,则可以在这个窗口中改变变量的值。 把 str 变量加到观察窗口中,点击变量左边的”+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。 把 str 变量加到观察窗口中;执行程序进入 write_buffer 函数,此时 num 变量超出了作用范围,可以利用 Call Stack 窗口察

14、看在其他函数中的变量:选择菜单 View Call Stack 打开堆栈窗口。双击堆栈窗口的 main()选项,此时可以察看 num 变量的值。7文件输入/输出:下面介绍如何从 PC 机上加载数据到 DSP 上。用于利用已知的数据流测试算法。在完成下面的操作以前,先介绍 Code Composer Studio 的 Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。Probe 断点可以设置在程序的任何位置,当程序运行到 Probe断点时,与 Probe 断点相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,Probe 断点触发的事件是:将 PC 机存储的数据文件中

15、的一段数据加载到 DSP 的缓冲区中。 在真实的系统中,read_signals 函数用于读取 A/D 模块的数据并放到 DSP 缓冲区中。在这里,代替 A/D 模块完成这个工作的是 Probe 断点。当执行到函数 read_signals 时,Probe断点完成这个工作。在程序行 read_signals(input);上单击鼠标右键,选择“Toggle breakpoint”,设置软件断点。再在同一行上单击鼠标右键,选择“Toggle Probe Point”,设置 Probe 断点。执行以下操作:此时,已经配置好了 Probe 断点和与之关联的事件。进一步的结果在下面实验中显示。8图形功

16、能简介:下面我们使用 CCS 的图形功能检验上一节的结果。首先进行下面设置操作:-在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。-按 F12 运行程序。观察 Input 窗口的内容。9选择菜单 Fileworkspacesave workspacs As,输入文件名 SY.wks 。10退出 CCS。5实验结果通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:6总结对上机实验结果进行分析、上机的心得体会及改进意见。1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。2熟悉线性相位 FIR 数字滤波器特性。3了解各种窗函数对滤波器特性的影响。1有限冲激响

17、应数字滤波器的基础理论(请参考相关书籍)。2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3数字滤波器系数的确定方法。4根据要求设计低通 FIR 滤波器。要求:通带边缘频率 10kHz,阻带边缘频率 22kHz,阻带衰减 75dB,采样频率 50kHz。设计:-过渡带宽度=阻带边缘频率-通带边缘频率=22-10=12kHz-采样频率:f1=通带边缘频率+(过渡带宽度)/2=10000+12000/2=16kHz1=2f1/fs=0.64-理想低通滤波器脉冲响应:h1n=sin(n1)/n/=sin(0.64n)/n/-根据要求,选择布莱克曼窗,窗函数长度为:N=5

18、.98fs/过渡带宽度=5.98*50/12=24.9-选择 N=25,窗函数为:wn=0.42+0.5cos(2n/24)+0.8cos(4n/24)-滤波器脉冲响应为:hn=h1nwn |n|12hn=0 |n|12-根据上面计算,各式计算出 hn,然后将脉冲响应值移位为因果序列。-完成的滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0

19、.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19-0.002xn-20-0.002xn-21+0.001xn-225程序流程图:PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 2.21 软件。1实验准备:-设置软件仿真模式;-启动 CCS。2打开工程,浏览程序:工程目录为 C:ICETEK-VC5509-EDULabLab0501-FIRFir.pjt。3编译并下载程序。4打开观察窗口。*选择菜单 View-Graph-Time

20、/Frequency,进行如下设置:在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。5设置断点:在有注释“break point”的语句设置软件断点。6运行并观察结果: 选择“Debug”菜单的“Animate”项,或按 F12 键运行程序。 观察“Input”、“Output”窗口中时域图形;观察滤波效果。 鼠标右键单击“Input”和“Output”窗口,选择“Properties”项,设置“Display Type”为“FFT Magitude”,再单击“OK”按钮结束设置。 观察“Input”、“Output”窗口中频域图形;理解滤波效果。7退出 CCS。1掌握设计

21、 IIR 数字滤波器的原理和方法。2熟悉 IIR 数字滤波器特性。3了解 IIR 数字滤波器的设计方法。1无限冲激响应数字滤波器的基础理论。4根据要求设计低通 IIR 滤波器:低通巴特沃斯滤波器在其通带边缘 1kHz 处的增益为-3dB,12kHz 处的阻带衰减为30dB,采样频率 25kHz。-确定待求通带边缘频率 fp1Hz、待求阻带边缘频率 fs1Hz 和待求阻带衰减-20logsdB。模拟边缘频率为:fp1=1000Hz,fs1=12000Hz阻带边缘衰减为:-20logs=30dB-用=2f/fs 把由 Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到p1 和s1。p1=2fp

22、1/fs=21000/25000=0.08弧度s1=2fs1/fs=212000/25000=0.96弧度-计算预扭曲模拟频率以避免双线性变换带来的失真。由 w=2fs tan(/2)求得 wp1 和 ws1,单位为弧度/秒。wp1=2fs tan(p1/2)=6316.5 弧度/秒ws1=2fs tan(s1/2)=794727.2 弧度/秒-由已给定的阻带衰减-20logs 确定阻带边缘增益s。因为-20logs=30,所以 logs=-30/20,s=0.03162-计算所需滤波器的阶数:因此,一阶巴特沃斯滤波器就足以满足要求。-一阶模拟巴特沃斯滤波器的传输函数为:H(s)=wp1/(s

23、+wp1)=6316.5/(s+6316.5)由双线性变换定义 s=2fs(z-1)/(z+1)得到数字滤波器的传输函数为:因此,差分方程为:yn=0.7757yn-1+0.1122xn+0.1122xn-1。2打开工程,浏览程序,工程目录为ICETEK-VC5509-EDULabLab0502-IIRIIR.pjt。4打开观察窗口:Time/Frequency进行如下图所示设置。5清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“Clear Display”功能。6设置断点:在程序 iir.c 中有注释“break point”的语句上设置软件断点。7运行并观察结果: 观察“IIR

24、”窗口中时域图形;8退出 CCS。试微调(0.0001)改变程序中 fU 的取值,观察步长因子在自适应算法中所起的作用。1掌握用窗函数法设计 FFT 快速傅里叶的原理和方法;2熟悉 FFT 快速傅里叶特性;3了解各种窗函数对快速傅里叶特性的影响。1FFT 的原理和参数生成公式:公式(1)FFT 运算公式FFT 并不是一种新的变换,它是离散傅立叶变换(DFT)的一种快速算法。由于我们在计算 DFT 时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二次实数加法。每运算一个 X(k)需要 4N 次复数乘法及 2N+2(N-1)=2(2N-1)次实数加法。所以整个 DFT运算总共需要 4

25、N2 次实数乘法和 N*2(2N-1)=2N(2N-1)次实数加法。如此一来,计算时乘法次数和加法次数都是和 N2 成正比的,当 N 很大时,运算量是可观的,因而需要改进对 DFT 的算法减少运算速度。根据傅立叶变换的对称性和周期性,我们可以将 DFT 运算中有些项合并。我们先设序列长度为 N=2L,L 为整数。将 N=2L 的序列 x(n)(n=0,1,,N-1),按 N的奇偶分成两组,也就是说我们将一个 N 点的 DFT 分解成两个 N/2 点的 DFT,他们又重新组合成一个如下式所表达的 N 点 DFT:一般来说,输入被假定为连续的。当输入为纯粹的实数的时候,我们就可以利用左右对称的特性

26、更好的计算 DFT。我们称这样的 RFFT 优化算法是包装算法:首先 2N 点实数的连续输入称为“进包”。其次N 点的 FFT 被连续运行。最后作为结果产生的 N 点的合成输出是“打开”成为最初的与 DFT 相符合的 2N 点输入。使用这一思想,我们可以划分 FFT 的大小,它有一半花费在包装输入 O(N)的操作和打开输出上。这样的 RFFT 算法和一般的 FFT 算法同样迅速,计算速度几乎都达到了两次 DFT的连续输入。下列一部分将描述更多的在 TMS320C55x 上算法和运行的细节。PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 2.0 软件。C:IC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1