




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。目录目录 1第一章实验平台说明 3§1.1系统总览 4§1.2使用方法 6§1.3模块说明 7第二章开发软件(CCS)介绍 23§2.1CCS简介 23§2.2CCS的安装与配置 25§2.3CCS的使用 40第三章基本指令实验 45§3.1[实验3.1]循环操作 45§3.2[实验3.2]双操作数乘法 47§3.3[实验3.3]并行运算 49§3.4[实验3.4]小数运算 51§3.5[实验3.5]长字运算 53§3.6[实验3.6]浮点运算 55第四章常见算法实验 58§4.1[实验4.1]卷积运算 58§4.2[实验4.2]相关运算 60§4.3[实验4.3]快速傅里叶变换(FFT)实现 62§4.4[实验4.4]离散余弦变换(DCT)实现 66§4.5[实验4.5]有限冲击响应滤波器(FIR)实现 69§4.6[实验4.6]无限冲击响应滤波器(IIR)实现 75§4.7[实验4.7]自适应滤波器(LMS)实现 77第五章接口及控制实验 81§5.1[实验5.1]数码管控制实验 81§5.2[实验5.2]交通灯控制实验 83§5.3[实验5.3]液晶显示屏(LCD)实验 84§5.4[实验5.4]键盘扫描实验 86§5.5[实验5.5]通用异步串行接口(UART)实验 88§5.6[实验5.6]通用串行总线(USB)接口实验 91§5.7[实验5.7]普通语音A/D与D/A转换实验 101§5.8[实验5.8]高精度音频A/D与D/A转换实验 105§5.9[实验5.9]直流电机控制实验(选做) 114§5.10[实验5.10]步进电机控制实验(选做) 115§5.11[实验5.11]以太网卡与TCP/IP协议实验 116§5.12[实验5.12]FIR滤波器实时处理实验 123§5.13[实验5.13]利用信号发生模块的FFT实验 128§5.14[实验5.14]TMS32C5410的Bootloader实验 132§5.15[实验5.15]AIC23的数字录音实验 136§5.16[实验5.16]TMS320LF2407AFLASH烧写实验 138§5.17[实验5.17]虚拟仪器实验 140§5.18[实验5.18]MP3音频解码实验 153§5.19[实验5.19]数字图像基本处理实验(选做) 157第六章附录 162§6.1[附录1]TMS320C5410DSP芯片简介 162§6.2[附录2]TMS320C54X指令速查表 168第一章实验平台说明本实验箱以TI公司的TMS320C5410(可选配TMS320C5416)和TMS320LF2407两种DSP芯片为中心,附加开发了多个功能模块,能够使实验者方便有效地完成各种常见的DSP开发实验。 TMS320C5410是TI公司54系列DSP芯片中相当优秀的一个型号,除了有强大的运算能力外,还集成了丰富的片内资源。基于该芯片的出众性能,它在各种DSP应用场合中发挥着重要作用。本实验箱就提供了这样一个平台,使实验者能在最短的时间内了解并掌握该DSP芯片的基本开发技术。 TMS320C5416是TI公司54系列DSP芯片中另一款优秀的型号,片内资源比5410丰富,HPI(主机接口)提供16BIT模式,外设与5410相近。实验者能够在5410主控板(或5416主控板)上进行各种指令实验和算法实验。把5410主控板(或5416主控板)插接在实验箱主电路板上的接口后,实验者就能够借助已设计好的外部电路进行USB接口、A/D与D/A转换等实验。本实验箱的USB模块主芯片采用功能强大的PHILIPSISP1362芯片,它支持USB2.0和最新的OTG(onTheGo点对点通信)协议,因此实验者能够充分学习到最先进的USB技术。A/D与D/A转换是传统的实验内容,本实验箱配置了两个A/D与D/A模块,它们有不同的性能和特点,适合不同的应用场合。把5410(或5416)与A/D与D/A模块配合起来,实验者甚至能够进行声音文件的MP3编解码实验。本实验箱的另一块主控板采用TMS320LF2407DSP芯片,这也是一个应用非常广泛的型号。配合实验箱主电路板上的各个模块,实验者能够进行通用异步串行口(UART)的实验,电机控制实验,以太网卡实验,液晶显示屏实验,数码管控制实验,信号灯控制实验和键盘扫描实验。另外实验箱上还有一个信号发生模块可供实验。除了已设计好的实验之外,实验者还能够发挥创造性,充分利用实验箱的资源进行其它实验。§1.1系统总览一、实验箱资源分布 本实验箱采用模块化设计,直接与实验相关的,一共有13个模块,另有负责总线控制的CPLD模块和一个负责为各个部分供电的电源模块。每一个模块都有独立的电源开关控制。实验系统中有三个模块是采用外插形式的,在实验箱主电路板上预留了插槽,包括5410主控板(或5416主控板),2407主控板以及电机控制模块。而其余各模块都设计在主电路板上。整个实验箱的资源分布如下图。(图1-1-1)实验箱整体说明图TMS320C5410主控板(或5416主控板)位置(外插)TMS320LF2407主控板位置(外插)CPLD模块(复杂可编程逻辑器件)A/D与D/A转换模块一(普通语音数模转换)A/D与D/A转换模块二(高精度音频)信号发生模块USB2.0OTG接口模块(USB2.0点对点接口通信模块)UART接口模块(通用异步收发报机接口模块)以太网卡模块电机控制模块插槽4×4键盘模块液晶显示屏模块数码管模块信号灯模块电源模块双声道扬声器模块DSPII+型模块及各部分控制图§1.2使用方法 1. 电源本实验箱内部自带变压器,使用时不需另配低压电源,可直接用普通三相插头接入220V电源。接上电源后,由电源模块输出±12V,5V,3.3V和2.5V,分别送至实验箱的各个模块。另外为方便单独使用,两个主控板上都设有独立的电源输入端口,能够接入5V的直流电源。 2. 仿真器接口 在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到5410或2407芯片上。仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型;另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,在两块主控板上都能够找到。仿真器连接好后才能对主控板上的DSP芯片进行读写控制。 3. 外插模块的使用本实验箱有三个模块单独成板,以外插形式与主电路板连接。其中两个DSP主控板在主电路板上留有专门的位置(请见资源分布图),使用时把主控板上的接口对准主电路板上的相应插槽插牢即可。在做电机控制实验时,应先把电机控制模块的小电路板架在以太网卡模块的位置上,插好四个支脚,然后经过连接线把电机小电路板上的接口与主电路板上的电机模块插槽(请见资源分布图中的标号”10”)相连。 4. 计算机的配置DSP实验中的代码编写,下载仿真和程序调试都必须在计算机上完成。计算机上需要安装DSP集成开发环境软件CCS(推荐使用2.0版本)。计算机应具备最少32M内存,100M硬盘空间和奔腾处理器,显示器分辨率不能低于800*600。另外,部分模块的实验还要求计算机配有标准的USB接口,DB9串行接口以及RJ-45网卡接口。 5. 其它配件包括USB连接线,串行口连接线,网线,排线,以及耳机。§1.3模块说明1.TMS320C5410主控板该板上实现了一个最小系统,能够单独运行。板上主要资源包括一个TMS320C5410型号的DSP芯片,一个CY7C1021型号的64K×16位的SRAM芯片,以及一个TE39LV800型号的8M容量FLASH芯片。如图:(图1-3-1)5410主控板硬件说明图板上有一个14针的JTAG接口,是与DSP仿真器连接的。有一个6位拨码开关分别对应HPIENA(高性能并型接口始能),BIO(IO输出),MP/MC(工作模式),CLKMD3(时钟配置3),CLKMD2(时钟配置2),CLKMD1(时钟配置1),拨到”ON”位置为”1”,”OFF”位置为”0”,另外该主控板经过三排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。各接口引脚的连接情况如下:主控板接口说明5410主控板实际各接口及扩展接口位置TMS320C5416主控板板上DSP芯片为TMS320C5416,一个CY7C1021型号的64K×16位的SRAM(静态存储器)芯片,以及一个TE39LV800型号的8M容量FLASH(闪存)芯片。 (图1-3-3)5416主控板说明图2.TMS320LF2407主控板该板上实现了一个最小系统,能够单独运行。板上主要资源包括一个TMS320LF2407型号的DSP芯片,以及一个CY7C1021型号的64K×16位的SRAM芯片。如图:(图1-3-4)2407主控板说明图板上有一个14针的JTAG接口,是与DSP仿真器连接的。另外该主控板经过六排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。各接口引脚的连接情况如下:(图1-3-5)2407主控板接口说明2407主控板各接口及其扩展接口实际位置3.CPLD模块及其特点该模块主要包含有二个Xilinx公司的XC9572可编程芯片。本模块主要负责实验系统中的总线控制工作。其特点是CPLD由完全可编程的与/或门阵列以及宏单元构成。与/或阵列是可重新编程的,能够实现多种逻辑功能。宏单元则是可实现组合或时序逻辑的功能模块,同时还提供了真值或补码输出和以不同的路径反馈等额外的灵活性。传统上,CPLD采用模拟感应放大器来提高结构性能。这种性能提高的代价是需要较高的电流。它采用了一种全新的全数字内核,能够以极低的功耗达到同样的性能水平。这使得设计人员可同时在高性能和低功耗设计中使用同一种CPLD结构。避免采用模拟感应放大器还使结构具有可扩展能力,使得随着工艺技术一代一代的进步成本可快速降低并可不断增强其功能。CPLD部分管脚定义及扩展总路线位置图4.USB2.0OTG(点对点通信)接口模块该模块主要包含有一个USB主控芯片(IPS1362),一个USB通用端口(H-A),两个为实现OTG(点对点通信)协议而用的OTG(点对点通信)端口,分别是作Host(主机)时的OTG-B和作Device(驱动)时的OTG-A。如下图:(图1-3-6)USB模块说明图 模块中设置了一排接口,包含了该模块对外的所有数据和控制线,其引脚定义如下:(图1-3-7)USB模块接口定义模块接口也能够作调试时观察所用,除此之外,模块中还设置了其它若干探测点,如下: CON302:(1)D+ (差分信号正向端) (2)D-(差分信号反相端)(3)H_OC2(主指令1) CON304:(1)OTG_DP (点对点数据处理) (2)OTG_DM(点对点设计模式) (3)H_OC1(主指令1) CON306:(1)OTG_D+ (点对点信号正端) (2)OTG_D-(点对点信号负端) (3)V_BUS(公共端) TP301:CLKOUT(时钟输出)USB模块接口实图5.高精度音频A/D与D/A转换模块该模块上的主要芯片是AIC23,这是一个双通道的A/D与D/A转换芯片。因此,在该模块上设有四个插口,一组是Line-In(线入)和Line-Out(线出),另一组是Mic-In(麦克风入)和Phone-Out(话音出)。如下图:(图1-3-8)音频模块说明图模块接口的定义如下:(图1-3-9)音频模块接口定义除接口外,还有若干探测点定义如下:TPb01:SignalPower (信号源) TPb02:VDD(芯片电源) TPb11:CLKOUT(时钟输出) TPb12:Lineoutright(线出右声) TPb13:Lineoutleft(线出左声) TPb14:Phoneright(话音右声)TPb15:Phoneleft(话音左声) TPb16:Lineinright(线入右声) TPb17:lineinleft(线入左声)6.普通语音A/D与D/A转换模块该模块所使用的主要芯片是AD50CDW。该模块只提供一对信号输入/输出插口。如下图:(图1-3-10)语音模块说明图该模块的探测点设置如下:(图1-3-11)语音模块探测点定义7.UART接口模块该模块主要包括两个芯片,其中进行UART控制的是SC16C550芯片,而完成电平转换的是MAX3232芯片。本模块带有一个9针的串行连接口。如下图:(图1-3-12)UART模块说明图本模块的接口定义如下:(图1-3-13)UART模块接口定义 本模块还有一个探测点是TP401:CLKUART模块接口实图8.以太网卡模块本模块主要包括一个Ethernet(以太网)控制芯片RTL8019AS。模块上设有一个RJ-45(交叉路45)的网线插口。如下图:(图1-3-14)以太网卡模块说明图该模块的接口定义如下:模块上还有7个探测点,其意义如下:(图1-3-16)以太网卡模块探测点定义1.RW(读写)2.CS(片选引脚)3.IOR(I/O读)4.IOW(I/O写)5.IOCHRDY(I/O准备信号)6.INT0(中断0)7.CLK(时钟)9.信号发生模块本模块经过信号发生电路能够产生两路三种不同波形的音频信号,包括方波,三角波和正弦波。欲产生的信号类型可用模块上的跳线进行选择,幅度和频率能够经过旋钮调节。模块还含有加法电路,能够将两路音频信号进行相加。如下图:(图1-3-14)信号发生模块说明图该模块独立工作,不需与DSP连接。10.4×4键盘模块本模块上的键盘电路采用交叉扫描方式,即共有8个引脚。11.液晶显示屏模块本模块主要器件是一个液晶显示屏,该LCD有16个引脚,都已引出,各引脚的信号意义如下:(图1-3-18)LCD接口定义 本模块上也有一个独立的电源开关。LCD模块接口实图12.数码管模块本模块共有8个七段数码管。另有独立的电源开关。13.信号灯模块本模块共有8个发光二极管,分为四组,每组各有一个红灯和一个绿灯。四组LED以东西南北的位置排布,模仿十字路口的交通信号灯。该模块中用到一个锁存芯片,而且引出其片选引脚(CS)作为探测点。如下图:(图1-3-19)信号灯模块说明图14.电机控制模块本模块设计在一块独立的小电路板上,该小电路板能够插在以太网卡模块位置的四个支脚上。小电路板上有一16针接口,在使用时要用排线把这个接口与实验箱主电路板上的”电机接口总线”相连。如下图:(图1-3-20)电机模块与主电路板连接示意图15.双声道扬声器模块:用户不但能够经过耳机插孔来听发出的声音,同时也能够经过内置扬声器来实现。扩展模块、主板、及CPLD的数据传递与控制关系表示数据传递过程表示控制关系第二章开发软件(CCS)介绍§2.1CCS简介CCS(CodeComposerStudio数据设计工作室)代码调试器是一种合成开发环境。它是一种针对标准TMS320调试器接口的交互式方法。CCS当前有CCS1.1,CCS1.2和CCS2.0等三个不同时期的版本,又有CC(针对C2XX),CCS5000(针对C54XX)和CCS6000(针对C6X)三个不同的型号。我们所使用的是CCS50002.0的版本。CCS5000具有以下特性:TI编译器的完全集成的环境:CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。对C和DSP汇编文件的目标管理:目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。高集成的编辑器调整C和DSP汇编代码:CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就能够直接到达出错处。在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在Windows95和Windows-me中支持多处理。PDM(调试管理器)允许将命令传播给所有的或所选择的处理器。在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT(快速傅立叶变换)在主机内执行,这样就能够观察所感兴趣的部分而无须改变它的DSP代码。图显示也能够同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就能够迅速地观察到信号。文件探针在算法处经过文件提取或加入信号或数据:CCS5000允许用户从PC机读或写信号流。而不是实时的读信号,这就能够用已知的例子来仿真算法。图形分析:CCS5000的图形分析能力在其环境中是集成的。在后台(系统命令)执行用户的DOS程序:用户能够执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000。技术状态观察窗口:CCS5000的可视窗口允许用户进入C表示式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。代数分解窗口:允许用户选择查看写成代数表示式的C格式,提高可读性。目标DSP上的帮助:DSP结构和寄存器上的在线帮助能够使用户不必查看技术手册。用户扩展:扩展语言(GEL)使得用户能够将自己的菜单项加到CCS5000的菜单栏中。主要操作流程图§2.2CCS的安装与配置一、CCS软件的安装打开光驱,将带有DSP软件的光盘放入其中。打开其中的”DSP软件”目录显示如下:在CV2.2目录下是CCS的安装软件;C5000V2.2目录下是CCS5000的安装软件。工具软件目录下是一些常见的工具软件;驱动程序目录下是EPP(并口)和USB接口的仿真器的驱动程序。先安装CCS的软件,打开”CV2.2”目录,点其目录下的”SETUP”应用程序。安装开始。如下图:在INSTALL下面有两个可选的安装项目,第一个是”CODECOMPOSERSTUDIO”(数据设计工作室)这是CCS软件的安装目录。第二个是”ADOBEACROBATREADER”(图形自动读取)是其帮助文件的应用软件。选第一项进行CCS软件的安装。按照其安装提示进行安装,出现如下提示:在下方选择”YES,IDOacceptallthetermsoftheprecedingLicenseAgreement”(接受前面所述的授权协议)点击”Next”继续进行安装,直至出现如下图所示画面:在上图中有两个可选项,上面一个是CCS的安装软件(CODECOMPOSERSTUDIO),下面一个是其软件的帮助文件的安装(OnlineManuals在线指南)。将两个项目都选择,即在两个项当前的方框内打上”√”;或者点击”SelectAll”(全选)点击”Next”继续进行安装。出现如下图所示画面:在上图中选择”Browse”(浏览)对软件的安装目录进行设置。因为还有CCS5000的软件要进行安装,因此最好对其安装目录进行设置如D:\TI\,以示对CCS5000的区别。点击”Next”继续进行安装,按照安装提示直至安装完成。安装完成后会出现如下所示:点击”确定”按钮,出现如下图所示的窗口:这两项是安装完成后,其软件的网上资料和安装生成的一些介绍。能够选择的来进行设置。最后点击”Finish”完成软件的安装。点击完成后,如果选择了前面的两项,则会出现其网页资料,关闭这些网页后,出现如下窗口:选择”重新启动计算机”(Yes,Iwanttorestartmycomputernow)来重启你的计算机,以便使你的设置生效(默认选项)。选择下面一项则不重新启动你的计算机。选择这两项中的其中一项,点击”FINISH”完成整个软件的安装。CCS5000的安装过程和CCS的安装过程基本上是一致的,只是其安装文件不一样,另外在安装目录的选择上CCS5000建议安装在D:\TI\5000目录下以示同CCS的区别。二、EPP(并口)仿真器的驱动安装要在CCS开发环境下使用EPP并口仿真器,首先安装的是EPP仿真器的驱动程序。打开光盘中的驱动程序目录下的EPP_Driver(即EPP并口仿真器的驱动程序)出现两个子目录,如下图:CDRV是其在CCS软件开发环境下的驱动程序。CCS5000DRV是其在CCS5000开发环境下的驱动程序,如安装CCS开发环境的驱动则运行其目录下的”SETUPCC2XX”程序,按照其提示进行驱动的安装,直至出现如下图所示窗口:上图所示是对其驱动程序的安装目录进行设置,选择”BROWSE”(浏览)选择安装目录。如果是对CCS开发环境进行驱动安装,其目录最好要在CCS软件所在的目录下,如D:\TI\\目录下;同样如果是对CCS5000开发环境进行驱动安装,其目录最好有CCS5000软件所在的目录之下,如D:\TI\5000\目录下。点击”NEXT”按照提示信息继续进行驱动的安装直至出现如下窗口:上图所示是对NT(基于WINDOWS的一种操作系统)下的安装进行提示,选择”是”安装NT的驱动程序。最后按照提示完成整个驱动的安装。其在CCS5000开发环境下的驱动安装与CCS开发环境下的驱动安装基本是一致的。三、EPP并口仿真器在CCS环境下的设置CCS软件安装完成后,会在桌面上出现两个”CCS2(`)或CCS2(`5000)和SETUPCCS2(`)或SETUPCCS2(`5000)”两个图标。分别对应CCS的应用软件和CCS的配置程序。只有对其进行了正确的设置才能执行CCS开发环境。除非用户改变CCS应用平台类型(如软件仿真)。运行SETUPCODECOMPOSERSTUDIO软件(以CCS为例),即桌面上的CCS的配置程序图标(SetupCCS2(‘C))。出现如下窗口:在上图中将中间当前的对话窗口关闭,点击InstallaDeviceDriver(安装设备的驱动),进行设置。出现如下窗口:上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的Drivers(驱动器)子目录下。选择Sdgo2XX.drv,点击上图中的”打开”出现如下窗口:点击上图中的”OK”按钮。此时,中间一栏(AvailableBoard可用板/SimulatorType模拟类型)会出现相应的驱动图标,如下图显示的:把该图标拖动到最左边的SYSTEMCONFIGURATION(系统结构)栏是,则会出现BOARDPROPERTIES(板道具)对话框。然后点击上图中的sdgo2xx,右上脚新出来两个选项:”Uninstall”(卸载)和”AddtoSystem”(添加系统),点击”AddtoSystem”(添加系统)出现下图:在BoardName&DataFile(板名和数据文件)栏中,点击Next,进入下一页,会显示硬件仿真器的I/O口值,如下图所示:将上图中的硬件仿真器的I/O口值由0X240改为0X378,再点击Next,继续进行设置则会出现如下图所示的”ProcessorConfiguration”(处理机结构)页面。在ProcessorConfiguration(处理机结构)页面下,在AvailableProcessor(可处理)选项中选择TMS320C2400(在CCS5000开发环境下为TMS320C5400),然后,点击其中间的AddSingle(添加单一)按钮,其右边出现CPU-1图标。如下图所示:点击”Next”按钮,出现下面的对话框。点击上图所标示的的位置,对CPU进行类型的选择,出现如下图所示的窗口:基于实验箱中的CPU选择F2407A.GEL文件,这个文件也在前瑞安装驱动程序所选择的目录下的Drivers(驱动)子目录下。单击”打开”按钮。点击”Finish”完成其设置。对其设置进行保存后,退出其配置程序。对于EPP仿真器在CCS5000开发环境下的设置其步骤与CCS开发环境下的基本一致。只是在相应的配置文件的选择上略的不同。在对仿真器驱动程序选择是CCS5000开发环境下选择的是”Sdgo5XX.drv”,相应的出现的图标则为Sdgo5XX的图标;另外在对其CPU类型进行选择时根据实验箱选择C5410.GEL或C5410A.GEL。这些文件都在其驱动安装程序所在目录下的Drivers(驱动)子目录下。设置完成后,将仿真器与计算机经过并口电缆边接起来,仿真器的下载口与目标板相连(注意:连接时其方向一定要正确,否则可能烧毁仿真器;与仿真器相连的14P下载电缆上红色的那一边与目标板下载口的1,2脚那一端相接),仿真器与目标板接上电源后,根据目标板上芯片的型号来打开相应的CCS开发软件(CCS或CCS5000),就能够进行DSP的开发了。四、USB仿真器驱动程序的安装USB仿真器驱动程序的安装与EPP仿真器的安装基本是一致的,首先打开光盘中的驱动程序目录下的USB_Driver(即USB仿真器的驱动程序),运行其目录下的SETUP.EXE程序,按照其提示进行驱动的安装,如下图所示窗口:上图的提示窗口是进行选择其驱动程序的安装目录对话框。如果选择”是”则安装在C:/TI目录下,一般情况下不安装有这一个目录下,而是要安装在CCS安装的目录下。选择”否”则是对安装目录进行设置,如下图所示:选择”Browse”选择安装目录,建议安装在CCS软件安装的目录下,(如CCS软件所在的目录下D:\TI\)。选择好安装目录后,依照提示信息完成其驱动程序的安装。用同样的方法将驱动程序也安装有另外一个CCS开发环境下(如CCS5000软件所在的目录下D:\TI\5000)。五、USB仿真器在CCS环境下的设置USB仿真器在CCS开发环境下的设置与EPP仿真器的在其开发环境下的设置基本是一致的。运行SETUPCODECOMPOSERSTUDIO(设置数据处理工作室)软件(以CCS5000为例),即桌面上的CCS的配置程序图标SetupCCS2(‘C5000)。出现如下窗口:在上图中将中间当前活动的对话窗口关闭,点击”InstallaDeviceDriver”(安装设备驱动程序)进行设置。出现如下窗口:上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的Drivers子目录下。如(D:\TI\5000\Drivers\...)选择tixds54x.dvr,点击上图中的”打开”出现如下窗口:点击上图中的”OK”按钮。此时,中间一栏(AvailableBoard可用板/SimulatorType模拟类型)会出现相应的驱动图标,如下图:把该图标拖动到最左边的”SystemConfiguration”(系统配置)一栏是,则会出现”BoardProperties”(板道具)对话框。如下图所示:如上图所示在第一项下拉菜单中选择中间的一条”Auto-generateboarddatafilewithextraconfiguration”(自动生成板数据文件和其它配置)。在第二项中”ConfigurationFile”(结构文件)选项中选择”Browse”(浏览)按钮,出现如下对话框:选择上图中的ICETEK.cfg文件,其文件也在CCS软件目录下的Drivers(驱动器)子目录下(D:\TI\5000\Drivers\...)。点击”Next”出现如下图所示的窗口:将上图中的硬件仿真器的I/O口值由0X240改为0X000,再点击Next,继续进行设置则会出现”ProcessorConfiguration”(处理机结构)页面。在ProcessorConfiguration(处理机结构)页面下,在AvailableProcessor(可用处理机)选项中选择TMS320C5400(在CCS开发环境下为TMS320C2400),然后,点击其中间的AddSingle(添加一个)按钮,其右边出现CPU-1图标。点击”Next”按钮,出现下面的对话框:点击上图所标示的的位置,对CPU进行类型的选择,出现如下图所示的窗口:基于实验箱中的CPU选择C5410.gel或C5410A.gel文件,这个文件也在前瑞安装驱动程序所选择的目录下的Drivers子目录下。单击”打开”按钮。点击”Finish”完成其设置。对其设置进行保存后,退出其配置程序。对于USB仿真器在CCS开发环境下的设置其步骤与CCS5000开发环境下的基本一致。只是在相应的配置文件的选择上略的不同。在对仿真器驱动程序选择是CCS开发环境下选择的是”TIXDS24X.DVR”,相应的出现的图标则为tixds24x的图标;另外在对其CPU类型进行选择时根据实验箱选择f2407A.gel这些文件都在其驱动安装程序所在目录下的Drivers(驱动器)子目录下。设置完成后,将仿真器与计算机经过USB电缆接起来,此时电脑硬件会显示找到新的硬件,如果提示要安装驱动,则按电脑的安装向导安装USB驱动目录下USBDevice(USB驱动器)文件夹里的mdpjtag.inf驱动文件。电脑如果找到了驱动程序则在硬件列表里会出现一个红色的仿真器的图标。六C5410软件仿真在CCS环境下的设置运行SETUPCODECOMPOSERSTUDIO软件,即桌面上的CCS的配置程序图标(SetupCCS2(‘C5000))。出现如下窗口:点击C5410DeviceSimulator,再选择Import(输入)则就完成了仿真设置如果尚有不明的地方可参见我们电子板的”DSP简易安装指导书”其有详细安装过程。§2.3CCS的使用一、创立或打开工程 打开CCS5000主程序,打开的主界面如下:(图2-3-1)CCS程序主窗口本节使用工程”Volume1”为例做一个实验,该实验开发并运行一个简单的程序,指导读者如何新建一个工程,如何向工程添加源文件并修改代码,编译而且运行程序。准备工作在以下各节之前,为了便于学习,我们事先准备好实验文件。在CCS的安装目录下,找到”\myprojects”目录,在这里新建一个名为”volume1”的目录,再到CCS安装目录下找到”\tutorial\sim54xx\volume1”目录,把下表的7个文件复制到刚才新建的目录下:需要复制的文件文件说明volume.c实验用C源文件load.asm实验用汇编源文件vectors.asm实验用中断向量表文件volume.hC函数使用的头文件volume.cmd内存定位文件sine.dat实验用数据文件volume.gel实验用GEL控制文件新建工程文件文件复制完成以后,启动CCS,再主菜单中单击”Project”(设计),会有”new”和”open”选项,创立新工程使用”new”选项。程序会提问新建工程的名字以及保存位置,指定后单击”确定”即可。(图2-3-2)新建工程窗口向工程添加各类型文件能够使用两种方式向工程添加源文件、CMD文件和库文件。添加源文件在主菜单中单击”Project”,选择”AddFilestoProject”命令,在弹出的添加文件对话框中找到目录”volume1”,选择文件”volume.c”,单击”打开”按钮,如下面左图所示。另一个方法是在工程名”volume.pjt”上单击鼠标右键,选择”AddFiles”命令。在弹出的添加文件的对话框中,找到目录”volume1”,再在添加文件对话框中单击”文件类型”,选择”AsmSourceFiles(*.a*;*.s*)”,这样在添加文件对话框里就只显示指定类型的文件。同时选择”load.asm”和”vectors.asm”,单击”打开”按钮(经过这种方法也可添加C代码文件”volume.c”),如右下图所示。(图2-3-3)添加文件方式接着添加必须的内存定位文件”*.cmd”,使用上述任一方式,向工程里添加”volume.cmd”,注意在添加文件对话框的”文件类型”下拉列表中要选择”LinkCommandFile(*.cmd)”,该文件定义了各代码段和数据段在存储器中的位置。因为本实验工程是基于C语言编写的,因此还需要添加运行时支持库(Run-Time-SupportLibrary如果基于汇编的就不需要)。使用上述任何一种方式,向工程添加”rts.lib”文件,该文件存放在CCS的安装目录”\c5400\cgtools\lib”下。注意在添加文件对话框的”文件类型”下拉列表中要选择”ObjectLibraryFiles(*.o*,*.l*)”。添加头文件。在工程名”volume.pjt”上单击鼠标右键,选择”ScanAllDependencies”,这样volume.c文件所包含的头文件”volume.h”将出现在工程浏览窗中的”Iclude”文件夹中。头文件实际不用人工添加,在Build工程时,CCS本身就会自动完成扫描。查阅代码在继续完成实验之前,先阅读一下源代码。明白各文件内容:在工程浏览窗里的”volume.c”文件名上双击鼠标,即可在CCS的编辑窗口看到源代码,注意该文件的以下三个部分:在主函数输出消息"volumeexamplestarted"后,主函数进入一个无限循环,在循环内部调用了两个函数dataIO()与processing()。函数processing()对输入缓冲区的每个采样值乘以一个增益值”gain”,并将结果存放到输出缓冲区中。改函数同时调用汇编程序load(),该函数会根据processing()传递过来的参数processingLoad来消耗指令周期,模拟复杂信号处理算法在时间上的消耗。函数dataIO()在本实验中不作任何实际操作而直接返回。建造和运行程序建造(Building)在这里指编译、汇编、链接三个独立步骤按顺序联合运行。在主菜单中单击”Project”,选择”RebuildAll”,或者单击工具条图标,CCS将重新对工程中所有文件进行编译、汇编、链接,并同步在底部窗口中显示编译连接信息。连接完毕,CCS生成一个”.out”文件,默认存放在目录”volume1”下的”debug”(除错)目录中。建造完毕后,再完成装载程序的步骤:在主菜单中单击”File”,选择”LoadProgram”,在弹出对话框中,找到目录”volume1”下的”debug”目录,选择”volume.out”,并打开。CCS装载完毕该文件到目标DSP以后,会自动弹出”Dissassembly”窗口,显示构成源代码的反汇编指令。同时,CCS还会在底部弹出”stdout”栏,用于显示程序在运行时的输出信息。(图2-3-4)反汇编窗口现在能够运行我们的程序:在主菜单中单击”Debug”,选择”GoMain”,让程序从主函数开始运行。程序会停在main()处,并会有一个黄色的箭头标记当前要执行的C语言代码。如果希望同时看到C语言代码和对应编译生成的汇编代码,在主菜单中单击”View”,选择”MixedSource/ASM”,此时会有一个绿色箭头标记当前要执行的汇编代码,如图所示:(图2-3-5)C代码与对应的反汇编代码在主菜单中单击”Debug”,选择”Run”,或单击工具条图标,让程序全速运行。如果能在底部的stdout标准输出窗口看到程序运行的输出信息”volumeexamplestarted”,证明程序能够正常运行。在主菜单中单击”Debug”,选择”Run”,或单击工具条图标,让程序停止运行。常见的按钮如下: 单步执行; 不进入子程序中; 从子程序中执行出; 执行到子程序开始处; 运行程序; 停止运行; 全速运行程序。6.多种观察窗口帮助调试。查看寄存器:在CCS中选择View菜单中的CPURegisters命令。查看数据:选择View菜单中的Memory…命令,弹出设置窗口,按实际需要指定其中的参数,如起始地址等,就能够观察到数据单元中的值,该值能够以多种格式表示。查看程序中变量的当前值:能够在程序中用光标选中变量名,在鼠标右键菜单中选择AddtoWatchWindow命令就能够把该变量添加到Watch窗口。随着程序的运行,能够在Watch窗口看到该变量的值的变化。显示图形:如果要观察的变量太多,例如要观察一个数组的值,那么能够用一种更直观的方法,就是把数据用图形的方式表现出来。选择View菜单中的Graph命令,会有不同类型的图形可供选择。常见的是时域/频域波形,即Time/Frequency…项。在弹出的GraphProperty对话框中,能够设定图形的标题、数据的起始地址、采集缓冲区的大小、显示数据的大小、数据类型等属性。DSP基本开发流程示意图第三章基本指令实验§3.1[实验3.1]循环操作一、实验目的1.掌握循环操作指令的运用;2.掌握用汇编语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理TMS320C54x具有丰富的过程控制与转移指令,利用这些指令能够执行分支转移、循环控制以及子程序操作。本实验要求编写一程序完成的计算。这个求和运算能够经过一个循环操作指令BANZ来完成。BANZ的功能是当辅助寄存器的值不为0时转移到指定标号执行。例如: STM #4, AR2loop: ADD *AR3+, A BANZ loop, *AR2–;当AR2不为零时转移到loop行执行。假设AR3中存有x1到x5五个变量的地址,则上述简单的代码就完成了这五个数的求和。四、实验步骤1.学习有关指令的使用方法;2.在CCS环境中打开本实验的工程(Ex3_1.pjt),阅读源程序;3.编译并重建.out输出文件(RebuildAll…),然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.在”end:Bend”代码行设置断点(当光标置于改行时,单击工具条上的ToggleBreakpoint图标,此时该行代码左端会出现一个小红点或双击此行),单击运行;选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值的变化。应能看到五个加数的值及其求和值。注意查看0X0060--0X0065单元中计算值显示的十六进制结果。6. 停止程序的运行(单击);7.尝试改变对变量的初始赋值,或者增加或减少变量数目,重复上述3~6步过程,验证程序运行结果。五、思考题1.总结迭代次数与循环计数器初值的关系(在本实验的代码中,用AR2作为循环计数器,设其初值为4,共执行了5次加法。);2.学习其它转移指令。§3.2[实验3.2]双操作数乘法一、实验目的1.掌握TMS320C54x中的双操作数指令; 2.掌握用汇编语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 TMS320C54x片内的多总线结构,允许在一个机器周期内经过两个16位数据总线(C总线和D总线)寻址两个数据和系数。双操作数指令是用间接寻址方式获得操作数的,而且只能用AR2到AR5的辅助寄存器。双操作数指令占用较少的程序空间,而获得更快的运行速度。 现举一例说明双操作数指令的用法。试求y=mx+b,则用单操作数指令的代码应该如下: LD @m, T MPY @x, A ;单操作数乘法指令 ADD @b, A STL A, @y若用双操作数乘法指令则改为: STM @m, AR2 STM @x, AR3 MPY *AR2, *AR3, A ;双操作数乘法指令 ADD @b, A STL A, @y表面上从代码的行数来看,用双操作数乘法指令似乎没有什么显着优势,可是双操作数指令能够节省机器周期,这在某些迭代运算过程中是十分有用的;迭代次数越多,节省的机器时间越多。本实验要计算的乘法累加就是双操作数指令的一种应用场合。四、实验步骤1. 学习有关双操作数乘法指令的使用方法;2.在CCS环境中打开本实验的工程(Ex3_2.pjt),阅读源程序;3.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.在”end:Bend”代码行设置断点(或双击此行便可完成断点设制),单击运行;5.选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值a,x和z的变化。 注意查看0X0060--0X0075单元中计算值显示的十六进制结果。6. 停止程序的运行(单击);7.改变对变量ai和xi的初始赋值,重复上述过程,验证程序运行结果。 五、思考题1.试用单操作数指令完成上述计算;2.学习其它双操作数指令。§3.3[实验3.3]并行运算一、实验目的1.掌握TMS320C54x中的并行运算指令; 2.掌握用汇编语言编写DSP程序的方法。 二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 TMS320C54x片内有1条程序总线,3条数据总线和4条地址总线。这3条数据总线(CB、DB和EB)将内部各单元连接在一起。其中,CB和DB总线传送从数据存储器读出的操作数,EB总线传送写到存储器中的数据。并行运算就是同时利用D总线和E总线。其中,D总线用来执行加载或算术运算,E总线用来存放先前的结果。并行指令有并行加载和乘法指令,并行加载和存储指令,并行存储和乘法指令,以及并行存储和加/减法指令4种。所有并行指令都是单字单周期指令。并行运算时存储的是前面的运算结果,存储之后再进行加载或算术运算。这些指令都工作在累加器的高位,且大多数并行运算指令都受ASM(累加器移位方式位)影响。现举一个并行指令为例: STsrc,Ymem ;Ymem=src<<(ASM-16) ||LDXmem,dst ;dst=Xmem<<16 这个并行加载和存储指令实现了存储ACC和加载累加器并行执行。其它的并行指令请读者查阅相关资料。 本实验中要求用并行运算指令编写程序完成z=x+y和f=e+d的计算。四、实验步骤1.学习有关并行指令的使用方法;2.在CCS环境中打开本实验的工程(Ex3_3.pjt),阅读源代码Ex3_3.asm;3.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.单击运行;5.选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值的变化。应能看到z=x+y和f=d+e的结果。注意查看0X0060--0X0065单元中计算值显示的十六进制结果。6. 停止程序的运行(单击);7.尝试改变对变量x,y,d和e的初始赋值,重复上述过程,验证程序运行结果。 五、思考题1.学习其它并行指令,理解其工作原理。§3.4[实验3.4]小数运算一、实验目的1.掌握TMS320C54x中小数的表示和处理方法; 2.掌握用汇编语言编写DSP程序的方法。 二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 两个16位整数相乘,乘积总是”向左增长”,这意味着多次相乘后乘积将会很快超出定点器件的数据范围。而且要将32位乘积保存到数据存储器,就要开销2个机器周期以及2个字的程序和RAM单元;而且,由于乘法器都是16位相乘,因此很难在后续的递推运算中,将32位乘积作为乘法器的输入。然而,小数相乘,乘积总是”向右增长”,这就使得超出定点器件数据范围的是我们不太感兴趣的部分。在小数乘法下,既能够存储32位乘积,也能够存储高16位乘积,这就允许用较少的资源保存结果,也便于用于递推运算中。这就是为什么定点DSP芯片都采用小数乘法的原因。 小数的表示方法: TMS320C54x采用2的补码表示小数,其最高位为符号位,数值范围为(–1~1)。一个十进制小数(绝对值)乘以32768后,再将其十进制整数部分转换成十六进制数,就能得到这个十进制小数的2的补码表示,例如:0.5乘以32768得16384,再转换成十六进制就得到4000H,这就是0.5的补码表示形式。在汇编语言程序中,由于不能直接写入十进制小数,因此如果要定义一个小数0.707,则应该写成word32768*707/1000,而不能写成32768*0.707。 在进行小数乘法时,应事先设置状态寄存器ST1中的FRCT位(小数方式位)为”1”,这样,在乘法器将结果传送至累加器时就能自动地左移1位,从而自动消除两个带符号数相乘时产生的冗余符号位。使用的语句是 SSBX FRCT 在本实验中,要求编写程序完成的计算,其中的数据均为小数:a1=0.1a2=0.2a3=–0.3a4=0.2x1=0.8x2=0.6x3=–0.4x4=–0.2注意源代码中小数的表示。四、实验步骤1.在CCS环境中打开本实验的工程(Ex3_4.pjt),阅读源代码Ex3_4.asm;2.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.单击运行;4.选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值的变化。 注意查看0X0060--0X0068单元中计算值显示的十六进制结果。其中计算结果为y=0.24=1EB7H;5. 停止程序的运行(单击);6.尝试改变变量的赋值,重复上述过程,验证程序运行结果。五、思考题以为例分析两个带符号数相乘时的冗余符号位是如何产生的,理解为什么要设定FRCT(小数)位。注解:冗余符号位是两个代符号数相乘时存储器自动留出符号位的空间因此而产生;设置FRCT是为了减去多出来的一个符号位.§3.5[实验3.5]长字运算一、实验目的1.掌握TMS320C54x中的长字指令; 2.掌握用汇编语言编写DSP程序的方法。 二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 TMS320C54x能够利用32位的长操作数进行长字运算。长字指令如下: DLD Lmem, dst DST src, Lmem DADD Lmem, src[,dst] DSUB Lmem, src[,dst] DRSUB Lmem, src[,dst]除了DST指令外,都是单字单周期指令,也就是在单个周期内同时利用C总线和D总线得到32位操作数。DST指令存储32位数要用E总线2次,因此需要2个机器周期。 长操作数指令中的一个重要问题是,高16位和低16位操作数在存储器中如何排列。一般情况下,高16位操作数放在存储器中的低地址单元,低16位操作数放在存储器中的高地址单元。例如一个长操作数16782345H,它在存储器中的存入方式是:(0060H)=1678H(高字),(0061H)=2345H(低字)。 本实验利用长字指令完成两个32位数的相加。四、实验步骤1. 在CCS环境中打开本实验的工程(Ex3_5.pjt),阅读源代码Ex3_5.asm;2.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.单击运行;4.选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值的变化。 注意查看0X0060--0X0065单元中计算值显示的十六进制结果。 5. 停止程序的运行(单击);6.尝试改变变量的赋值,重复上述过程,验证程序运行结果。五、思考题 1.试给出不用长字指令实现上述计算的代码。§3.6[实验3.6]浮点运算一、实验目的1.掌握TMS320C54x中浮点数的表示和处理方法; 2.掌握用汇编语言编写DSP程序的方法。 二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 在数字信号处理中,为了扩大数据的范围和精度,需要采用浮点运算,TMS320C54x虽然是个定点DSP器件,但它支持浮点运算。 浮点数的表示方法:在TMS320C54x中浮点数用尾数和指数两部分组成,它与定点数的关系是”定点数=尾数*2exp(–指数)”例如:定点数0x(即0.25)用浮点数表示时,尾数为0x4000(即0.5),指数为1,即0.25=0.5*2–1。定点数到浮点数的转换:TMS320C54x经过3条指令可将一个定点数转化成浮点数(设定点数存放在累加器A中)。这3条指令分别是”EXPA”,”STT,EXPONENT”和”NORMA”。(1)”EXPA”:这是一条提取指数的指令,指数保存在T寄存器中。(2)”STT,EXPONENT”:这条紧接在EXP后的指令是将保存在T寄存器中的指数存放到数据存储器的指定单元中。(3)”NORMA”:这是一条按T寄存器中的内容对累加器A进行归一化处理(左移或右移),T中为正数时左移,为负数时右移,移动的位数就是T中的指数值。但这条指令不能紧跟在EXP指令后面,因为此时EXP指令还没有来得及把指数值送至T。本实验中,要求编写浮点乘法程序,完成x1*x2=0.3*(–0.8)的运算。源程序中保留了10个存储单元:x1(被乘数),x2(乘数),e1(被乘数的指数),m1(被乘数的尾数),e2(乘数的指数),m2(乘数的尾数),ep(乘积的指数),mp(乘积的尾数),product(乘积),temp(临时单元)。四、实验步骤1.在CCS环境中打开本实验的工程(Ex3_6.pjt),阅读源代码Ex3_6.asm;2.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.单击运行选择”View”->”memory”,起始地址设为”0x0060”,观察内存数值的变化。 注意查看0X0060--0X0069单元中计算值显示的十六进制结果。其中计算结果即乘积的尾数为8520H,指数为0002H,乘积的定点数为E148H,对应的十进制数约等于–0.24;5. 停止程序的运行(单击);6.尝试改变变量的赋值,重复上述过程,验证程序的运行结果。五、思考题1.试分析指数提取指令”EXPA”和归一化指令”NORMA”的工作原理;2.浮点数到定点数应如何转换。3.说明两个浮点数相乘的过程。第四章常见算法实验§4.1[实验4.1]卷积运算一、实验目的 1. 掌握卷积运算的基本原理; 2. 掌握用C语言编写DSP程序的方法。二、实验设备 1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 卷积是数字信号处理中经常见到的运算。其基本的表示式为: 写实现程序时需要注意两点:(1)序列数组长度的分配,特别是输出数组y(n)要有足够的长度;(2)循环体中变量的位置,即n和m的关系。四、实验步骤1.复习卷积的基本原理;2.在CCS环境中打开本实验的工程(Ex4_1.pjt),3.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.把x,h和y添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择”AddWatchWindow”命令); 5.单击运行;6.观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的”+”号把数组展开);7.修改输入序列的长度或初始值,重复上述过程,观察卷积结果。五、思考题1.试用汇编语言编写实现卷积运算的程序;2.考虑如何实现复数的卷积运算。§4.2[实验4.2]相关运算一、实验目的1.掌握相关系数的估计方法;2.掌握用C语言编写DSP程序的方法。二、实验设备1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 相关系数是数字信号处理中的一个重要概念,包括自相关系数和互相关系数。它们的定义是: ,k为相关系数的阶数;和 。 根据相关系数的定义,需要求输入信号的期望值,这在实际上是不可能实现的。因此,一般只根据一定长度的已知输入信号求相关系数的一个估计,这时采用以下的公式:(设N为已知信号的长度) 和 既然是估计值,那么就存在一致性和有效性的问题,能够证明上面两式的估计是有偏估计,而以下的则是无偏估计: (无偏估计), (无偏估计) 本实验在上面公式的基础上实现各阶相关系数的估计。四、实验步骤1.在CCS环境中打开本实验的工程(Ex4_2.pjt),2.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.在Watch窗口中添加相关系数数组r作为观察对象;4.运行程序,观察数据值的变化; 5.修改估计模式mode,重复上述过程,观察有偏估计与无偏估计的差别;6.修改输入数组x[]和y[]的初始赋值函数、参与估计的数组长度、输出数组的长度等参数,重复上述过程,观察运行结果;五、思考题1.试证明上面给出的第二组相关系数估计公式的无偏性;2.在本实验程序的基础上,修改代码,实现自相关系数的估计;3.分析阶数对相关系数的影响。§4.3[实验4.3]快速傅里叶变换(FFT)实现一、实验目的 1. 掌握FFT算法的基本原理; 2. 掌握用C语言编写DSP程序的方法。二、实验设备 1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。离散傅里叶变换(DFT)是傅里叶变换在离散系统中的表示形式。可是DFT的计算量非常大,FFT就是DFT的一种快速算法,FFT将DFT的N2步运算减少至(N/2)log2N步。 离散信号x(n)的傅里叶变换能够表示为,式中的WN称为蝶形因子,利用它的对称性和周期性能够减少运算量。一般而言,FFT算法分为时间抽取(DIT)和频率抽取(DIF)两大类。两者的区别是蝶形因子出现的位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。本实验以时间抽取方法为例。时间抽取FFT是将N点输入序列x(n)按照偶数项和奇数项分解为偶序列和奇序列。偶序列为:x(0),x(2),x(4),…,x(N-2);奇序列为:x(1),x(3),x(5),…,x(N-1)。这样x(n)的N点DFT可写成: 考虑到WN的性质,即 因此有: 或者写成: 由于Y(k)与Z(k)的周期为N/2,而且利用WN的对称性和周期性,即: 可得: 对Y(k)与Z(k)继续以同样的方式分解下去,就能够使一个N点的DFT最终用一组2点的DFT来计算。在基数为2的FFT中,总共有log2(N)级运算,每级中有N/2个2点FFT蝶形运算。单个蝶形运算示意图如下: 以N=8为例,时间抽取FFT的信号流图如下: 从上图能够看出,输出序列是按自然顺序排列的,而输入序列的顺序则是”比特反转”方式排列的。也就是说,将序号用二进制表示,然后将二进制数以相反方向排列,再以这个数作为序号。如011变成110,那么第3个输入值和第六个输入值就要交换位置了。本实验中采用了一种比较常见有效的方法完成这一步工作__雷德算法。四、实验步骤1.以8点FFT的信号流图为例,理解FFT算法的过程;2.在CCS环境中打开本实验的工程(Ex4_3.pjt),3.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.运行程序; 5.选择view->graph->time/frequency…。设置对话框中的参数:其中”StartAddress”设为”x_re”,”Acquisitionbuffersize”和”DisplayDatasize”都设为”64”,而且把”DSPDataType”设为”32-bitfloatingpoint”(如图), 设置好后观察输入信号序列的波形(单边指数函数,如图); 同样方法观察经DFT变换后的输出序列”y_re”的波形,”StartAddress”改为”y_re”,其余参数不变(如图); 在Watch窗口中添加i,j,k,m,n,a,b,c等变量,在Debug菜单中先”Restart”然后”Gomain”,单步运行程序,跟踪FFT算法的过程;(能够跳过程序开始部分对各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点,然后先单击运行,待程序停在该断点后再单步执行后面的代码,见下图。)6.修改N的值(应为2的整数次幂,如8,16,32等,最大不超过256),或者修改输入信号x的函数,如直流、正弦、三角等,观察程序运行结果。注意观察图形时,数据块大小要相应更改为当前N值。五、思考题1.分析本实验程序中完成位倒序排列的”雷德算法”的原理;2.参考资料,了解TMS320C5000系列专门为FFT运算提供的”比特反转寻址方式”;3.思考如何实现实数序列的FFT,它在复数序列的算法基础上还能作哪些优化,从而进一步降低运算量和所需的存储空间。§4.4[实验4.4]离散余弦变换(DCT)实现一、实验目的1.掌握离散余弦变换的概念和实现方法;2.掌握用C语言编写DSP程序的方法。二、实验设备 1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 尽管傅里叶变换具有很多优点,得到了广泛的应用,可是它也有缺点。例如:傅里叶变换需要计算的是复数而不是实数,一般进行复数运算要比进行实数运算费时得多。如果采用其它合适的完备正交函数系来代替傅里叶变换所利用的正、余弦函数构成的完备正交函数系,就能够避免这种复数运算。离散余弦变换就是基于实数的正交变换。 一维的离散余弦变换的定义如下: 式中F(k)为第k个余弦变换系数,f(x)为时域中的N点序列。 要进行离散余弦变换能够从它的定义出发,但这样做的计算量相当大,在实际应用中非常不便,因此需要一种快速算法。 首先,将f(x)进行延拓: 按照一维离散余弦变换的定义有: 由于是fe(x)的2N点离散傅里叶变换,因此,在作离散余弦变换时,能够把长度为N的序列f(x)的长度延拓为2N的序列,然后对延拓的结果进行离散傅里叶变换,最后提取离散傅里叶变换的实部便是离散余弦变换的结果。在作离散傅里叶变换时能够采用快速傅里叶变换方法(FFT)。 本实验就是在实验5.4的基础上完成的,程序主体部分利用了上一个实验的FFT算法,最后对FFT变换的结果提取实部并乘上系数即可。四、实验步骤1.在CCS环境中打开本实验的工程(Ex4_4.pjt),2.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;3.运行程序;4.在Watch窗口中添加ck变量,观察离散余弦变换的结果,当要把ck展开时,程序会提示输入要显示的范围,源程序中N=8,因此只需显示0-7如图); 5.修改N的值(能够是16,32,64…256),或者修改输入信号x的函数,重复上述过程,观察程序运行结果。 五、思考题1.了解二维离散余弦变换的定义;2.把源程序改写成纯实数运算。§4.5[实验4.5]有限冲击响应滤波器(FIR)实现一、实验目的1.掌握FIR滤波器的原理和窗函数设计法;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。三、实验原理 数字滤波是DSP的最基本的应用领域之一。对于许多应用来说,数字滤波一般具有如下的差分方程形式: 式中,X(n)为输入序列,Y(n)为输出序列,Ak和Bk为滤波器系数,N是滤波器的阶数。若式中所有的Bk均为零,且一般把系数Ak记为hk,则有: 上式就是FIR滤波器的差分方程了。FIR滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位脉冲响应h(n)是一个有限长序列。由上面的方程可见,FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本x(n),经延时(z–1),做乘法累加,再输出滤波结果y(n)。 要设计一个FIR滤波器就是要求出它的冲击响应系数h(n),设计方法主要有窗函数法和频率抽样法,本实验要求掌握窗函数法,这也是最基本的方法。 理想的低通滤波器的频率响应Hd(w)是一个矩形,这意味着它在时域上是无限长的序列,这在实际上是不可能实现的。因此我们要采取某种方法截断Hd(n),能够用一个有限长度的窗函数序列w(n)与之相乘。这个窗函数序列的形状和长度都会对最后系统的频率响应特性产生影响,因此对窗函数的分析和选择是设计FIR滤波器的关键问题所在。 本实验举了五种常见的窗函数为例,经过设置参数能够得到加上不同窗后的冲击响应序列h(n),而且能够观察到其幅频响应图。关于根据给定频率要求进行FIR滤波器设计的详细原理,以及在求得符合要求的h(n)后如何对输入信号序列进行滤波,请读者参考数字信号处理的有关资料。四、实验步骤1.复习有关FIR滤波器的原理;2.在CCS环境中打开本实验的工程(Ex4_5.pjt),3.编译并重建.out输出文件,然后经过仿真器把执行代码(.out的文件)下载到DSP芯片中;4.阅读源代码,记下各种窗函数的公式;5.运行程序(执行需要一定时间);6.选择view->graph->time/frequency…。设置对话框中的参数:其中”StartAddress”设为”hd”,”Acquisitionbuffersize”和”DisplayDatasize”都设为”21”(因为源程序中n=21),而且把”DSPDataType”设为”32-bitfloatingpoint”,设置好后观察理想冲击响应序列的波形示意图,可与公式对照分析; 7.观察其它序列的波形示意图,包括所用窗函数w,加窗后响应序列h和输出对数幅频响应db的图形,这时的”StartAddress”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国瓷质砖行业市场动态分析及投资机会研判报告
- 众包项目人才激励机制-洞察及研究
- 承德应用技术职业学院《舆情大数据分析》2023-2024学年第二学期期末试卷
- 江阳城建职业学院《中国古代文学史上》2023-2024学年第二学期期末试卷
- 惠州经济职业技术学院《经济政策(economcpoces)》2023-2024学年第二学期期末试卷
- 数学思维训练对初中生学业成绩的影响研究
- 浙江经济职业技术学院《融合教育理论与实践》2023-2024学年第二学期期末试卷
- 内蒙古工业职业学院《山水临摹》2023-2024学年第二学期期末试卷
- 广西职业师范学院《歌曲弹唱(Ⅰ)》2023-2024学年第二学期期末试卷
- 上海交通职业技术学院《土木工程施工软件应用》2023-2024学年第二学期期末试卷
- 《信号处理技术》课件
- 热电厂汽轮机安全培训
- 2025行政执法人员政治理论和法律知识考试试题及参考答案
- uni-app移动应用开发课件 7-智慧环保项目
- 2025年厦门大学嘉庚学院图书馆员招考高频重点提升(共500题)附带答案详解
- 《oracle性能优化》课件
- 小学生手工剪纸课件
- 化工设备机械基础习题及参考答案
- 《课件旅游法培训》课件
- 高中生物(部编版)选择性必修3知识清单(问答版)
- 山东师范大学《高级英语(二)》2021-2022学年第一学期期末试卷
评论
0/150
提交评论