DSP实验指导书C语言篇_第1页
DSP实验指导书C语言篇_第2页
DSP实验指导书C语言篇_第3页
DSP实验指导书C语言篇_第4页
DSP实验指导书C语言篇_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DSP技术实验指导书(C语言篇) 目 录一 CCS的安装2二 CCS的软仿真设置2三 仿真器驱动的安装及CCS的硬仿真设置2四 常用汇编指示符9五 命令文件一般书写格式9软件类:11实验1 CCS集成环境认识11实验2 存储器认识12实验3 卷积与相关算法的程序设计与调试13实验4 DSP与计算机数据交换程序的设计与调试14实验5 有限冲击响应滤波器(FIR)算法15实验6 无限冲激响应滤波器(IIR)算法18实验 7 数字图象直方图统计算法20实验 8数字图象边缘检测(SOBEL 算子)22实验 9 数字图象的锐化(LAPLACE算子)算法24实验 10 数字图象的取反算法27一 CCS的安

2、装 CCS5000的安装及设置 第一步:Code Composer Studio 的安装 安装CCS到系统中。将CCS安装光盘放入到光盘驱动器中,运行CCS安装程序setup.exe,出现以下画面。点击”Code Composer Studio” 安装 CCS5000 集成开发环境按系统提示安装,默认安装路径是“C:ti”。第二步:仿真器驱动的安装 若用户使用的是 USB 仿真器,只需要安装随光盘附带的 Techusb USB仿真器驱动。下面介绍仿真器驱动的安装及设置。1、 CCS安装好后,将仿真器与计算机连接后,接着安装“USBSETUP.EXE”. 点击下一步点击下一步2、USB驱动安装了

3、, 再检测USB与计算机连接是否正常,点击“USB20EMURST.EXE” . 按“RESET(R)”键,出现如上图标则表示正确。也可从“设备管理器”查看是否有“TECHSHINE DSP开发系统”图标。第三步、进行软件设置先在桌面上打开Setup CCS 2 ('C5000)进入以下画面,点击右边的“Install a Device Driver”弹出对话框,在CCS的安装目录中找到drivers找到相应的设备,这里举例54XX系列。点击“OK”按钮,会发现在中的框中多了“tixds54X”这个设备,然后点击“Add To System”出现在“Board Properties”对

4、话框在Board下面的下拉菜单中选择第二项“Auto-generate board data file with extra configuratic”,这里“Configuratic File”变成可见,点击“Browse”在CCS目录中的drivers目录中找到Techusb2.cfg这个文件,选中打开,然后点击“Next>”按钮。出现下面的对话框后,将I/O port 的Value改成0x280。点击“Next>”选中”TMS320C5400”点击旁边的“Add Single”按钮,在右边的框中会出现“CPU_1”,点击“Next>”在“startup GEL”中点击右

5、边的小按钮,在打开对话框中选择你需要的文件。完成上面的操作后。出现信息如下点“File”菜单中的“Save”存盘,然后退出,弹出对话点击是,就会启动CCS软件四 常用汇编指示符符号说明.mmregs使用通用的寄存器名,每个内部寄存器名都被赋予相应的值。其功能相当于执IMR=00H, IFR=01H, ST0=06HAL=08H .version编译所使用的DSP芯片型号,因为不同型号有不同指令.equ给一个符号值.set给一个符号值.include将所指出文件包含到当前源文件中.end源文件结束指令,编译器将不对其后面内容进行编译.text建立一个代码段.data建立一个数据段.bss在数据存

6、储器中保留空间.sect 建立用户自定义段,可以使代码段,也可以是数据段 目标文件包括三个默认 .text, .data, .bss使用.sect可建立用户命名的代码段或数据段其格式为.sect“段名”五 命令文件一般书写格式 在C编译器中从FILE( )中选择NEW( )建立一个新文件将其保存并重命名为new.cmd(也可以是其它名,扩展名不能改),然后在文件中输入一下内容。MEMORYPAGE 0:VECS:origin = 0xff80,length = 0x80PROG:origin = 0x1000,length = 0x1000DATA:origin = 0x2000,length

7、 = 0x1000PAGE 1:STACK:origin = 0x3000,length = 0x1000RAM: origin=0x200,length=0x100 DARAM: org=0100H len=0010HSECTIONS.vectors:>VECS PAGE 0.text:>PROG PAGE 0.data:>DATA PAGE 0.stack:>STACK PAGE 1.bss: >RAM PAGE1sin_vars: > DARAM PAGE 1coeff: > DARAM PAGE 1 MEMORY和SECTIONS必须大写,or

8、igin和length小写 MEMORY是用来指明存储器的分配,PAGE 0是程序存储器,PAGE 1是数据存储器,origin是用来说明各种起始位置,length是用来指出长度。在上面的例子中VECS占用FF80H-FFFFH空间,PROG 占用1000H-2000H空间,DATA占用2000H-3000空间,数据存储器也如此。 SECTIONS是用来指明各段在存储器中那一块。在上面的例子中,.vectors段在VECS所在的空间。.text在PROG的空间,.data段在DATA空间,.stack段在STACK空间。软件类:实验1 CCS集成环境认识一、实验目的:1、学会安装ccs和设置

9、2、熟悉ccs编程器使用 3、能进行编译调试程序4、学会建立命令文件和源文件,建立工程文件5、学会编译、调试二、实验步骤:1. 从光驱上安装ccs,安装完毕后按照ccs setup进行设置,然后启动ccs.2. 将CCS设置为软仿真方式,DSP CPU设为C5402 Device Simulator。3. 从ccs的project菜单中New建立L1.prj工程文件。文件的路径默认。4. 从菜单File中的NewàSource File建立L1.CMD和L1.C文件,并把两个文件保存在L1.prj工程文件同一个目录中,分别输入命令文件例1和源文件例1的内容。输入时注意大写和小写。5.

10、 再从Project菜单中的Add Files to Project把步骤3中的两个文件添加到工程中。6. 点击Project菜单的Rebuild All对工程进行编译。系统提示程序是否有错误,如果有,则修改,再编译。如果没有错误,则执行步骤67. 从菜单File中的Load Program装载L1.out文件。8. 将x,y,z分别加入观察窗口。在源程序处点鼠标右键,选择“Add to Watch Windows。”9. 单步运行程序:从菜单中选择Debug->Go main,然后进行单步运行程序(Debug->Step into(F8)),观察变量x,y,z内容的变化。重新运行

11、重新选择Debug->reset,复位程序。10. 更改x,y的值,单步运行程序,再观察z的变化。xyZ第1次12?第2次1234523456?第3次0xfedc0xabcd?11. 对照教材,熟悉CCS操作界面上的窗口、菜单和按钮。三、思考题:x,y,z在memory窗口中的地址是多少?实验2 存储器认识一、实验目的:1、学习数据存储器的访问操作 2、学习存储器映像寄存器的访问操作 3、学习查看存储器窗口4、学习新CPU的设置二、实验步骤:1. 将CCS设置为软仿真方式,DSP CPU设为C5416 Device Simulator。见第1页的二。2. 建立L2.prj工程文件,并且建

12、立和输入MEMORY.CMD和MEMORY.C文件。3. 单步运行程序:从菜单中选择Debug->Go main,然后进行单步运行程序(Debug->Step into(F8)),观察变量 内容的变化。4. 记录从Watch Windows窗口、memory窗口、Peripheral regs窗口和CPU registers窗口观察到的结果。从菜单中选择View->Watch Window打开Watch Window窗口;从菜单中选择View->memory打开memory窗口(特别注意12h17h内容的变化);从菜单中选择View->registers打开CPU

13、 registers窗口和Peripheral regs窗口,注意AR2AR7和SWWSR内容的变化。三、思考题:1、将数据存储器的3000h地址开始的10个空间都存入1,怎样修改程序?2、将数据存储器的3000h地址开始的10个空间的内容复制到3020h开始的10个空间,怎样用程序实现?实验3 卷积与相关算法的程序设计与调试一、实验目的:1、学习如何用DSP C语言程序实现卷积与相关的计算。 2、学习用CCS调试程序的详细过程 3、学习如何设置断点二、实验步骤:(教材P228)1. 设置Setup CCS为TMS320C5402软仿真方式2.建立一个新过程3.编辑源程序4.将文件添加到过程中

14、5.设置过程选项6.编译与连接7.程序的运行与基本调试三、思考题:如何用程序实现y=sinx公式(用高等数学中的泰勒公式)。实验4 DSP与计算机数据交换程序的设计与调试一、实验目的:1、学习DSP存储器与计算机数据文件之间进行双向读写 2、学习使用CCS的断点、变量观察窗、探针和File I/O 3、学习数据的图形显示功能和代码剖析工具的使用4、学习新CPU的设置二、实验步骤:(教材P235)1.设置Setup CCS为TMS320C5402软仿真方式2.建立一个新过程3.编辑连接程序4.查看源代码5.使用断点和变量观察窗6.探针与File I/O7.数据的图形显示功能8.代码剖析工具三、思

15、考题: 代码剖析工具有何用途?为什么提供这个功能?实验5 有限冲击响应滤波器(FIR)算法一实验目的 1熟悉FIR数字滤波器特性。 3了解各种窗函数对滤波器特性的影响。 二实验设备 PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为 Windows2000),安装 Code Composer Studio 3.1 软件。 三实验原理 1有限冲击响应数字滤波器的基础理论(请参考相关书籍)。 2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器) 。 3数字滤波器系数的确定方法。 4根据要求设计低通 FIR 滤波器。

16、要求:通带边缘频率 10kHz,阻带边缘频率 22kHz,阻带衰减75dB,采样频率 50kHz。 设计: - 过渡带宽度=阻带边缘频率-通带边缘频率=22-10=12kHz - 采样频率: f1=通带边缘频率+(过渡带宽度)/2=10000+12000/2=16kHz 1=2f1/fs=0.64 - 理想低通滤波器脉冲响应: h1n=sin(n1)/n/=sin(0.64n)/n/ - 根据要求,选择布莱克曼窗,窗函数长度为: N=5.98fs/过渡带宽度=5.98*50/12=24.9 - 选择 N=25,窗函数为: wn=0.42+0.5cos(2n/24)+0.8cos(4n/24)

17、- 滤波器脉冲响应为: hn=h1nwn |n|12 hn=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 REALTIMEDSP 系列应用丛书 +0.28xn-13-0.11xn-14-0.02xn-15 +0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19 -0.

18、002xn-20-0.002xn-21+0.001xn-22四实验步骤 1实验准备: 运行Setup CCS,设CPU为TMS320C5416的软件仿真方式。2打开工程,工程目录为 Lab0501-FIRFir.pjt。 3编译并下载程序。 4打开观察窗口。 *选择菜单 View->Graph->Time/Frequency,进行如下设置: 图 5.1*选择菜单 View->Graph->Time/Frequency,进行如下设置: 图 5.2在弹出的图形窗口中单击鼠标右键,选择“CleAe Display” 。 *选择菜单 View->Graph->Tim

19、e/Frequency,进行如下设置: 图 5.35设置断点:在有注释“break point”的语句设置软件断点。 6运行并观察结果: 选择“Debug”菜单的“Animate”项,或按 Alt+F5 键运行程序。 观察“Input” 、 “Output”窗口中时域图形;观察滤波效果。 鼠标右键单击“Input”和“Output”窗口,选择“Properties”项,设置“Display Type”为“FFT Magitude” ,再单击“OK”按钮结束设置。 观察“Input” 、 “Output”窗口中频域图形;理解滤波效果。 五、思考题:举例说明有限冲击响应数字滤波器应用于什么领域?实

20、验6 无限冲激响应滤波器(IIR)算法一实验目的 1掌握设计IIR 数字滤波器的原理和方法。 2熟悉 IIR数字滤波器特性。 3了解 IIR数字滤波器的设计方法。 二实验设备 PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 3.1 软件。 三实验原理 1无限冲激响应数字滤波器的基础理论。 2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3数字滤波器系数的确定方法。 4根据要求设计低通 IIR 滤波器: 要求:低通巴特沃斯滤波器在其通

21、带边缘 1kHz处的增益为-3dB,12kHz处的阻带衰减为30dB,采样频率25kHz。设计: -确定待求通带边缘频率fp1Hz、待求阻带边缘频率fs1Hz 和待求阻带衰减-20logsdB。 模拟边缘频率为:fp1=1000Hz,fs1=12000Hz 阻带边缘衰减为:-20logs=30dB -用=2f/fs 把由 Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到p1和s1。 p1=2fp1/fs=21000/25000=0.08弧度 s1=2fs1/fs=212000/25000=0.96弧度 -计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan(/2)求得 w

22、p1 和 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 -计算所需滤波器的阶数: n因此,一阶巴特沃斯滤波器就足以满足要求。 -一阶模拟巴特沃斯滤波器的传输函数为:H(s)=wp1/(s+wp1)=6316.5/(s+6316.5) 由双线性变换定义 s=2fs(z-1)/(z+1)得到数字滤波器的传输函数为: H(z)=因此,差分方程为:yn=0.7757yn-

23、1+0.1122xn+0.1122xn-1。 四实验步骤 1实验准备: 设置软件仿真模式为C5416软仿真。 2打开工程,浏览程序,工程目录为 Lab0502-IIRIIR.pjt。 3编译并下载程序。 4打开观察窗口: *选择菜单 View->Graph->Time/Frequency进行如下图所示设置。 图 6.1 *选择菜单 View->Graph->Time/Frequency,进行如下设置: 图 6.25清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“CleAe Display”功能。 6设置断点:在程序 iir.c 中有注释“break poin

24、t”的语句上设置软件断点。 7运行并观察结果: 选择“Debug”菜单的“Animate”项,或按 Alt+F5 键运行程序。 观察“IIR”窗口中时域图形;观察滤波效果。 8退出 CCS: 五实验结果 实验 7 数字图象直方图统计算法一实验目的 掌握直方图统计的原理和程序设计;了解各种图象的直方图统计的意义及其在实际中的运用。 二实验设备 PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 3.1 软件。 三实验原理 灰度直方图是数字图象处理中一个最简单、最有用的

25、工具,它描述了一幅图象的灰度级内容。任何一幅图象的直方图都包括了可观的信息,某些类型的图象可由其直方图完全描述。 灰度直方图是灰度值的函数,描述的是图象中具有该灰度值的象素的个数,其横坐标表示象素的灰度级别,纵坐标是该灰度出现的频率(象素个数与图象象素总数之比)。 四实验步骤 1实验准备: - 设置软件仿真模式:设置为C5416软件仿真。- 启动 CCS。 2打开工程,浏览程序:目录为Lab0801-HistogramHistotram.pjt。 3编译并下载程序。 4打开工程“Histotram.pjt”中的 C 语言源程序“Histo.c”,在程序中有“BreakPoint”注释的语句上加

26、软件断点。 5设置观察窗口: * 选择菜单 View->Graph->Image,做如下设置: * 选择菜单 View->Graph->Time/Frequency,做如下设置: 6运行程序: 按“F5”键运行到各个断点,观察图象和直方图统计结果。 7选择菜单 Fileworkspacesave workspacs As,输入文件名 SY.wks 。 8退出 CCS。五实验结果实验 8数字图象边缘检测(SOBEL 算子)一实验目的 了解边缘检测的算法和用途,学习利用 Sobel 算子进行边缘检测的程序设计方法。 二实验设备 PC 兼容机一台,操作系统为 Windows2

27、000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 3.1 软件。 三实验原理 利用计算机进行图象处理有两个目的:一是产生更适合人观察和识别的图象;二是希望能由计算机自动识别和理解图象。无论为了哪种目的,图象处理中关键的一步就是对包含有大量各式各样景物信息的图象进行分解。分解的最终结果是图象被分解成一些具有某种特征的最小成分,成为图象的基元。相对于整幅图象来说,这种基元更容易被快速处理。 图象的特征指图象场中可用作标志的属性。它可以分为图象的统计特征和图象的视觉特征两类。图象的统计特征是指一些人为定义的特征,通

28、过变换才能得到,如图象的直方图、频谱等等;图象的视觉特征是指人的视觉可直接感受到的自然特征,如区域的亮度、纹理或轮廓等。利用这两类特征把图象分解成一系列有意义的目标或区域的过程称为图象的分割。图象的边缘是图象的最基本特征。所谓边缘(或边沿)是指其周围象素灰度有阶跃变化或屋顶变化的那些象素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。因此,它是图象分割所依赖的重要特征。 物体的边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察图象的每个象素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。这种方法称为边缘检测局部算子法。边缘的种类可

29、以分为两种:一种称为阶跃性边缘,它两边的象素的灰度值有着显著的不同;另一种称为屋顶状边缘,它位于灰度值从增加到减少的变化转折点。下图分别给出了这两种边缘的示意图及相应的一阶方向导数、二阶方向导数的变化规律。对于阶跃性边缘,二阶方向导数在边缘处呈零交叉;而对于屋顶状边缘,二阶方向导数在边缘处取极值。如果一个象素落在图象中某一个物体的边界上,那么它的邻域将成为一个灰度级的变化带。对于这种变化最有用的两个特征是灰度的变化率和方向,它们分别以梯度向量的幅度和方向来表示。 边缘检测算子检查每个象素的邻域并对灰度变化率进行量化,也包括方向的确定。大多数使用基于方向导数掩模求卷积的方法。Sobel 边缘算子

30、:下图所示的两个卷积核形成了 sobel 算子,图象中的每个点都用这两个核做卷积,一个核对通常的垂直边缘相应最大,而另一个对水平边缘相应最大。两个卷积的最大值作为该点的输出位。运算结果是一幅边缘幅度图象。 四实验步骤 1实验准备: - 设置软件仿真模式:设置为C5416软件仿真。 - 启动 CCS。 2打开工程,浏览程序:目录为Lab0802-EdgeCountEdgeCount.pjt。 3编译并下载程序。 4打开工程“EdgeCount.pjt”中的 C 语言源程序“EdgeCount.c”,在程序中有“BreakPoint”注释的语句上加软件断点。 5设置观察窗口: * 选择菜单 Vie

31、w->Graph->Image,做如下设置: 图 8.1* 选择菜单 View->Graph->Image,做如下设置: 图 8.26.运行程序:按“F5”键运行到各个断点,观察图象和边缘检测结果。 7.选择菜单 Fileworkspacesave workspacs As,输入文件名 SY.wks 。 8退出 CCS: 五实验结果实验 9 数字图象的锐化(LAPLACE算子)算法一实验目的 了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。 二实验设备 PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默

32、认为Windows2000),安装 Code Composer Studio 3.1 软件。 三实验原理 图象锐化处理的目的是使模糊的图象变得更加清晰起来。 图象的模糊实质就是图象受到平均或积分运算造成的,因此可以对图象进行逆运算如微分运算来使图象清晰化。从频谱角度来分析,图象模糊的实质是其高频分量被衰减,因而可以通过高通滤波操作来清晰图象。但要注意,能够进行锐化处理的图象必须有较高的信噪比,否则锐化后图象信噪比反而更低,从而使噪声的增加得比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。 图象锐化一般有两种方法:一种是微分法,另外一种是高通滤波法。拉普拉斯锐化法是属于常用的一种微分锐

33、化方法。 拉普拉斯运算是偏导数运算的线性组合,而且是一种各向同性(旋转不变)的线性运算。 设2f为拉普拉斯算子,则:2f=+对于离散数字图象 f(i,j),其一阶偏导数为: =xf(i,j)=f(i,j)-f(i-1,j)=yf(i,j)=f(i,j)-f(i,j-1)则其二阶偏导数为: =xf(i+1,j)- xf(i,j)=f(i+1,j)+f(i-1,j)-2f(i,j)=yf(i,j+1)-yf(i,j)=f(i,j+1)+f(i,j-1)-2f(i,j)所以,拉普拉斯算子2f为: 2f=+=f(i-1,j)+f(i+1,j)+f(i,j+1)对于扩散现象引起的图象模糊,可以用下式来进行锐化: g(i,j)=f(i,j)-k2f(i,j)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论