DSP课程设计实验报告
————利用DSP实现实时信号FIR滤波
学院:电子信息工程学院
专业:自动化(信号)1201
小组成员:12212150 洪恩杯
12212154 金夏垚
指导老师:高海林
一、 实验目的
掌握DSP集成开发环境CCS的使用和调试方法。掌握DSP片上资源和片外资源访问的基本方法。通过对DSP处理器及CODEC的编程,培养学生C语言编程能力。学会利用Matlab对信号进行FIR滤波,掌握Matlab的信号仿真方法。掌握利用DSP实现信号实时FIR滤波设计可使学生更加透彻的理解信号的采集方法和滤波方法。培养学生使用DSP硬件平台实现数字信号处理算法的能力。
二、 实验要求
基本部分
(1) 掌握利用Matlab的滤波器工具箱设计FIR滤波器的方法,并提取滤波器参数。
(2) 掌握Matlab的信号处理工具箱的使用,以及利用Matlab对信号进行滤波的方法。
(3) 在DMA中断服务程序中,编写数字滤波算法程序,或调用DSPLIB中的滤波函数,实现对信号的滤波。
(4) 在实验板的Line in输入端接入正弦信号,分左右声道分别采集,并分别滤波。
(5) 利用CCS信号分析工具分析信号的频谱成分,根据实际输入信号确定滤波器的参数。
发挥部分
(1)比较加不同窗和阶数时滤波器的滤波效果。
(2)测试所设计滤波器的幅频特性和相频特性,并与MATLIB下的设计结果进行比较。
三、 实验相关技术
1、DMA技术
直接内存存取(Direct Memory Access ,简称DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足实时图像处理中高速数据传输要求。允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
实现DMA传送的基本操作如下:
1、外设可通过DMA控制器向CPU发出DMA请求;
2、CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
3、由DMA控制器发送存储器地址,并决定传送数据块的长度;
4、执行DMA传送;
5、DMA操作结束,并把总线控制权交还CPU。
2、FIR滤波技术
假设数字滤波器的频率响应函数H用下式表示:
幅频特性表示信号通过该滤波器后各频率成分振幅衰减情况,而相频特性反映各频率成分通过滤波器后在时间上的延时情况。一般选频滤波器的技术要求由幅频特性给出,其相频特性是确定的,所以在设计过程中,对相频特性一般不作要求。在低通滤波器的幅频特性中,Wp和Ws分别称为通带边界频率和阻带截止频率。从Wp到Ws称为过渡带,过渡带上的频响一半是单调下降的。
当冲击响应满足下列条件时,FIR滤波器具有对称结构,为线性相位滤波器:
这种对称性,可使得乘法器数量减半:对n价滤波器,当n为偶数时,乘法器的个数为n/2个;当n为奇数时,乘法器的个数为(n+1)/2个。在电路实现中,乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。
在DSP的应用中,可以应用Matlab的滤波器设计工具箱fdatool工具箱生成需要的FIR滤波器,在生成C文件,提取出相应的滤波数据,应用CCS来调用这些数据,从而应用DSP产生信号的滤波效果,这样就实现了FIR的低通滤波效果。
3、利用DSP实现实时的FIR滤波
利用DSP实现对模拟信号的实时滤波流程图:
信号采集和滤波的流程图:
将DMA传输和DSP的算法FIR相结合,在DMA采集和传输的主程序中的存储器处理子程序中嵌入滤波算法,则可以实现利用DSP实现信号实时滤波。
四、 实验内容
(一)实验基本思路:
外部模拟信号先进行A/D转换,利用MCBSP的接收寄存器接收数据。利用CCS的频谱分析工具对输入信号进行频谱分析;根据频谱成分确定滤波器参数,然后利用Matlab设计FIR滤波器,并将参数提取出来。在DMA中断服务程序中调用DSPLIB中的FIR滤波函数,对信号进行滤波。滤波后的数据利用DMA方式送到D/A转换器转换为模拟信号。
本设计可以分为两部分:
(1) 信号仿真
(a) 首先利用Matlab的fdatool工具箱设计滤波器,在sptool工具箱进行信号分析与滤波。
(b) 利用CCS进行信号滤波算法的仿真,即利用simulator进行仿真。调用DSPLIB库中的fir()滤波函数实现信号FIR滤波,或自行编写FIR滤波程序实现信号FIR滤波。
(2) 利用Emulator在DSP实验板上采用DMA方式实现信号采集与传输。
(3) 在DSP实验板上,结合FIR滤波算法,实现信号的实时FIR滤波。
(二)实验过程
1、 利用Matlab的滤波器工具箱设计FIR滤波器,生成c文件,并提取相应的滤波数据。用MATLAB的fdatool滤波器工具箱设计低通滤波器:
得到的64个数据:
2、 MATLAB中的sptool工具箱对任意设置的信号进行分析:
设两个中心频率分别为2000Hz和5000Hz的正弦波相叠加,设计截止频率为3000Hz的低通滤波器进行滤波。
输入(叠加正弦波)信号的频域、时域波形分别如下所示:
经过截止频率为3000Hz的低通滤波之后的时域、频域波形分别为:
3、 利用ccsS新建工程、编译和运行调试
步骤如下所示:
4、 利用ccs图形观测工具观察
输入左声道频谱:
滤波后左声道频谱:
比较上面左声道滤波前后的频谱纵坐标数据,滤波前的最大纵坐标值(增益)为2.8e^5,滤波后纵坐标最大值(增益)为2899,即滤波后增益减小。
左(右)声道输入时域波形:
滤波后左声道时域波形
比较滤波前后的左声道的时域波形,可看出经过滤波后,信号变得平滑,且失真几乎没有。
5、 基于声卡的模拟示波器显示
滤波前:由于左声道低通滤波器的截止频率设置的是4000Hz,故当左声道(绿线)的频率设置为3000Hz的时候还处在滤波器的高通范围内,信号没有被滤掉,故还可以显示出来;右声道(红线)没有进行滤波,故改变频率其频谱基本上没什么变化。相应的频谱显示如下图所示:
滤波后:由于设计的低通滤波器的截止频率是4000Hz,所以当左声道信号(图中绿线)的频率为7000Hz时,大于了截止频率,处于阻带范围内,信号被滤掉,而右声道信号没有经过滤波处理,故其频谱没什么变化,只是频率变高后,高频部分的频谱将会稍微减弱。频谱变化如下图所示:
五、 实验感想
通过DSP的课程设计,将之前数字信号处理的内容进行实践,过去只是在matlab上通过软件进行信号的滤波处理,这次不仅需要软件仿真,还需要通过硬件进行处理滤波,我们从开始的什么都不会,到后来一点点查找资料,弄懂DSP处理的原理以及方法,在编程调试的过程中加深了对DSP的理解,因DSP独特的结构使他在数字信号处理方面有独特的优势,在以后的工作中会起到很大的作用。
第二篇:DSP实验报告
学校代码 学号
分 类 号 密级
DSP实验报告
院系名称
专业名称
年 级
学生姓名
指导老师
年 月 日
实验一 数据存储实验
一、 实验目的
1. 掌握 TMS320C54X 程序空间的分配;
2. 掌握 TMS320C54X 数据空间的分配;
3. 能够熟练运用TMS320C54X 数据空间的指令。
二、 实验设备
计算机,CCS 3.1版软件,DSP仿真器,E300实验箱,DSP-54XP CPU板。
三、实验系统相关资源介绍
1. 本实验指导书是以TMS320VC5416为例,介绍其相关的内部和外部存储器资源。对于其他类型的CPU请参考查阅相关的数据手册。)
下面给出TMS320VC5416的存储器分配表:
对于数据存储空间而言,映射表相对固定。值得注意的是内部寄存器都映射到数据存储器空间内。因此在编程时这些特定的空间不能作其他用途。
对于程序空间而言,其映射表和CPU 的工作模式有关。当MP/MC 引脚为高电平时,CPU 工作在微处理器模式;当MP/MC引脚为低电平时,CPU工作在微计算机模式。具体的MP和MC模式下的程序和数据映射关系如上图所示。
2. 样例程序实验操作简单说明:
本实验程序将对0x1000 开始的8 个地址空间,填写入0xAAAA 的数据,然后读出,并存储到以0x1008开始的8个地址空间,在CCS中可以观察DATA存储器空间地址0x1000~0x100F值的变化。
四、 实验步骤与内容
1. 在进行 DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:
2. E300 底板的开关SW4 的第1位置ON,其余位置OFF,SW5全部置ON,其余开关不做设置要求。
3. 上电复位
在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。
4. 运行CCS程序
1) 待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电;
2) 启动CCS3.1,进入CCS界面后,点击“Debug—Connect”;
3) 此时仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,这时需掉电检查仿真器的连接、JTAG 接口连接是否正确,或检查CCS相关设置是否存在问题。
注:如出现上述问题,原因有二:
其一,可能是系统连接错误或没有正常复位,应重新检查系统硬件并复位;
其二,可能是软件安装或设置存在问题,应尝试调整软件系统设置,具体仿真器和仿真软件CCS的应
5.成功运行CCS 程序后,首先应熟悉CCS的用户界面;
6. 学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。
7. 用“Project\open”打开“\normal\ 01_mem\ mem.pjt”.编译并装载“\01_mem\Debug\mem.out”。
8.用“Edit”下拉菜单中的“Memory/Fill”编辑内存单元,参数设置如下图:
单击“OK”此时以0x1000 为起始地址的16个内存单元被修改成:0x0009
9.用“View”下拉菜单“Memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH 单元的数值变化,输入地址0x1000H;
单击“OK”如下图所示:
10. 点击“Debug\Go main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处施加软件断点。
11. 单击“Debug\Run”运行程序,也可以“单步”运行程序;当程序运行到“软件断点1”处时,查看0x1000H~0x1007H单元的值变化;
12. 再单击“Debug\Run”,当程序运行到“软件断点2”处时,查看0x1008~0x100F 单元的变化。
13. 闭各窗口,本实验完毕。
本实验说明:
1.首先利用手动的方法,将以0x1000地址的16 个内存单元被修改成:0x0009
2.然后利用实验程序对以0x1000地址的16 个内存单元进行修改:
首先将0x1000H 开始的8 个地址空间,填写入0xAAAA 的数值,然后读出,并存储到以0x1008H 开始的8 个地址空间。在CCS中可以观察DATA 存储器空间地址0x1000H~0x100FH 值的变化。
五、 程序框图
六、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行。在CCS中可以观察到DATA存储器空间地址0x1000H~0x100fH值的变化:首先,当程序运行到第一个断点时,0xAAAA将被写入从数据空间的地址0x1000开始的8个单元,即0x1000H~0x1008H中;其次,当程序运行到第二个断点时,0XAAAA将被写入从数据空间的地址0x1008开始的8个单元,即0x1008H~0x100fH中。最终,0xAAAA被写入从数据空间的地址0x1000H~0x100fH。
试验二 拨码开关实验
—、实验目的
1.了解DSP开发系统的组成和结构
2.了解IO 的基本编程方法
二、实验设备
计算机,CCS3.1版本软件,DSP 仿真器,E300 实验箱,DSP-54XP CPU板
三、实验原理
8位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过74LS244(可读)缓冲连接到DSP 的数据总线的低8 位。CPU 通过读指令读取到拨码开关产生的8 位输出的数字量,然后CPU通过写指令把读出的8 位数字量写入(0x0200)单元内,使连接到DSP的数据总线的低8 位的74LS273的输出端产生高低信号,此时LED 灯产生亮灭。当对应LED 灯点亮时说明输出为低,熄灭时为高。(器件 74LS244和74LS273详细的介绍请参看数据手册)。
数字量输入输出单元的资源分配如下:
基地址:0000h(当CS0为0时分配有效)
数字量分配空间为数据空间地址:基地址+0x200(低8位,只读)
拨码开关扩展工作原理
说明:74LS244 片选号、74LS273 片选信号和74LS273 复位信号由E300 上CPLD 译码产生。
本实验使用DSP 数据总线的低8位。
本实验的程序流程框图如下:
四、实验步骤
1. E300 板上的开关SW4 的第一位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。
2. 运行Code Composer Studio (CCS)(ccs3.1需要“DEBUG→Connect” )
3. 用“Project\Open”打开系统项目文件 \ normal\02_io\ io.pjt;
4. 编译全部文件并装载\02_io\ Debug\io.out;
5. 单击“Debug \Go Main”跳到主程序的开始;
6. 单击“Debug \RUN”运行程序。
7.任意拨动E300 底板上的拨动开关,观察LED和拨动开关的对应情况。(LED1-LED7分别对应DSP 数据总线的D0-D7);
8.单击“Debug \Halt” 暂停持续运行,开关将对灯失去控制.
9.关闭所有窗口,本实验完。
五、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行。调整数字输入输出单元的开关K1~K8,观察LED1~LED8灯亮灭的变化为:拨动LED1~LED8灯相应的开关K1~K8,则对应的灯亮灭。
实验三 定时器实验
一、实验目的
1、熟悉TMS320C54X 的定时器;
2、掌握TMS320C54X 的定时器的控制方法;
3、学会使用CPU定时器中断方式控制程序流程。
二、实验设备
计算机,CCS 3.1版软件,DSP硬件仿真器,E300 实验箱,DSP-54XP CPU板。
三、实验原理说明
样例实验是采用CPU定时器来定时使LED 亮灭的。
C54x 的定时器是一个20 位的减法计数器,可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD和定时减法寄存器TDDR,定时器的中断周期为:CLKOUT * (TDDR+1) * (PRD+1。)
在本系统中,如果设置时钟频率为10MHZ,令PRD = 0x30D3,TDDR=15,这样得到每0.02 秒中断一次,通过累计50 次,就能实现1 秒钟定时。
0.1us * (15+1) *( 12499+1) * 50 =1S
样例实验的程序框图如下:
四、实验步骤和内容
1、E300 底板的开关SW4 的第1位置ON,其余位置OFF。其余开关设置为OFF;
2、运行CCS软件,调入样例程序,装载并运行;(进入CCS界面后需要点“Debug--Connect”);
3、用“Project//Open”系统项目文件 \ normal\ 03_timer \timer.pjt;
4、编译全部文件并装载“..\ debug\timer.out”;单击“Debug\Go main”进入到主程序中;
5、单击“Debug \ RUN”运行,可观察到灯LED1~LED8 的闪烁变化;
6、单击“Debug \ Halt”,暂停程序运行,LED灯停止闪烁;单击“RUN”,LED灯又开始闪烁变化;
7、结束实验程序。
五、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行。观察LED1~LED8灯亮灭的变化为:灯从两边往中间亮,然后再循环往复。
试验四 外部中断实验
—、实验目的
1.掌握中断技术,学会外部中断的处理方法
2.掌握中断对程序的流程控制,理解DSP对中断的响应时序.
二、实验设备
计算机,CCS3.1版本软件,DSP 仿真器,E300 实验箱,DSP-54XP CPU板
三、实验原理
1.54XP 外部中断简介:(具体有关TMS320C5416中断信息,请参看TI的C54X数据手册)
外部中断来源于DSP 片外,它属于硬件中断。外部中断信号通过DSP 器件封装上的专用管脚输入DSP,属于可屏蔽中断。TMS3205416DSP有四个外中断: ,如果CPU允许,这四个信号线上的低脉冲信号会触发CPU 产生中断。
TMS320VC54xxDSP内部有两个重要的寄存器:中断标志寄存器(IFR)和中断屏蔽寄存器(IMR)结构如下图:
当一个中断发生时间,IFR 中相应的位置1,直到中断得到处理完为止。IMR 主要用来屏蔽外部和内部的可屏蔽中断。如果CPU状态寄存器ST1的INTM位置0,并且IMR寄存器中的某一位为1,则开放相应的中断。
1.中断处理过程:
TMS320XXDSP处理中断分三个阶段:
1) 接受中断请求:当中断发生时,CPU 的IFR 中相应位置1;
2) 响应中断:满足下列条件时才能响应中断;
① 优先级别最高(当同时出现一个以上中断时);
② 状态寄存器ST1 中的INTM 位为0;
③ 中断寄存器IMR 中相应位为1;
CPU 响应中断时,使PC 转到适当地址取出中断向量,并发出中断响应信号IACK,清除相应的中断标志位。
3) 执行中断服务程序:
① 将PC 值(返回地址)存到数据存储器堆栈的栈顶;
② 将中断向量的地址加载到PC;
③ 在中断向量地址上取指令;
④ 执行分支转移指令,转到中断服务程序;
⑤ 执行中断服务程序;
⑥ 中断返回,从堆栈弹出返回地址到PC。
⑦继续执行被中断的程序
2.实验采用C5416 的外部中断INT1,中断触发为低电平沿触发.
运行程序后,每次按键盘时,键盘则产生一个低电平脉冲,通过CPLD输入到C5416CPU 的INT2 引脚,从而产生中断信号。
2. 实验流程框图如下:
四、实验步骤和内容
1. E300 板上的开关SW4 的第一位置ON,其余OFF;SW3的第四位置ON 其余的SW3位置OFF;
2. 运行Code Composer Studio (CCS)(ccs3.1需要“DEBUG→Connect”);
3. 打开系统项目文件 \ normal\04_int \ int.pjt;;
4. 编译全部文件并装载\ Debug\int.out;
5. 单击“Debug\Go Main”跳到主程序的开始;
6. 单击“Debug\RUN”运行程序;
7. 点击E300 底板上的任意键盘,观察LED 灯的变化情;
8. 单击“Debug\ Halt”暂停程序运行,反复按“键盘”按键,LED1-LED8灯亮灭不变化;
9.关闭所有窗口,本实验完毕。
五、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行。观察LED1~LED8灯亮灭的变化为:每按一次“键盘”按键,LED1-LED8 奇偶数灯亮灭就变化一次.
试验五 键盘接口实验(E300)
—、实验目的
1. 了解DSP开发系统的组成和结构
2. 了解键盘的基本编程方法
3. 内存观察工具的使用
二、实验设备
计算机,CCS3.1版本软件,DSP 仿真器,E300 实验箱,DSP-54XP CPU板
三、实验原理
本实验程序由二部分组成:
1.由外部中断0 产生中断信号
2.键值读取程序:该部分有两种方法进行键值的判断。
方法1:利用内存观察工具进行观察
方法2:利用LED1-LED8 的亮灭对应显示键值。
a) 外部中断0的应用参照实验四;
b) 内存观察键值:程序中定义了三个变量“W”“row”和“col”。“W”代表是CPLD 中键盘的扫描数值,“row”和“col”分别代表键盘的行和列,由行和列可以判定按键的位置。上述三个变量可以在观察窗口中观察的。
c) 利用LED 灯显示键值原理,参看实验一。具体的LED 灯显示值以查表的形式读出,请参看“e300_codec.h”库文件。
四、实验步骤和内容
1.E300 板上的开关SW4 的第一位置ON,其余OFF;SW3 的第四位置ON 其余的SW 置OFF;
2.运行Code Composer Studio (CCS)(ccs3.1需要“DEBUG→Connect” );
3.打开系统项目文件\ normal \ 05_key interface \ keyled.pjt;
4.编译全部文件并装载“\Debug\ keyled.out”文件;
5.单击“Debug\Go Main”跳到主程序的开始;
6.指定位置设置断点;
7.View--〉Watch Window 打开变量观察窗口;
8. 将变量“w”“ row”和“ col”添加到观察窗口中,改变变量观察窗口的显示方式为HEX 显示;
9.点击“Debug--〉Animate”全速运行,然后点击E300 板上键盘按键,观察窗口中变量变化,同时LED1-LED8 灯也相应变化,指示键值。(注意程序中KEY_E和KEY_F分别代表键盘上的“*”和“#”键值。十六进制数代表的意义为:高4 位为按键的行值,低4 位为按键的列值。注意:“w”中的低八位表;
10.关闭所有窗口,本实验完毕。
五、实验程序框图
六、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行(设置断点运行)。将"W""row"和"col"添加到观察窗中,;点击E300上键盘,观察观察窗中变量的变化, 观察到的结果如下表;同时观察LED1~LED8灯的变化LED1~LED8 分别对应数据线的LED0~LED7。
试验六 LCD 实验(E300)
—、实验目的
1.了解DSP开发系统的组成和结构
2.了解Liquid Screen 的基本编程方法
二、实验设备
计算机,CCS3.1版本软件,DSP 仿真器,E300 实验箱,TechV-54xpCPU 板
三、实验原理
实验采用的采用台湾晶采光电科技股份有限公司的AM-176220JTNQW, 该款彩屏可视面积为2.0英寸,白色LED背光,176 x 220点阵,26万真彩显示;支持8/9/16/18位并行接口设计,驱动芯片一般采用HX8039。
地址译码说明:基地址:0x0000,当底板片选CS0 为低时,分配有效。
LCD_CMD_ADD: 基地址+0x0400
LCD_DAT_ADD: 基地址+0x0402
样例实验的流程框图如下:
四、实验步骤和内容
1.E300 板上的开关SW4 的第1位置ON,其余OFF.其余开关全部置OFF。
2.运行Code Composer Studio (CCS3.1);
3.进入CCS界面后单击“DEBUG→Connect”
4.用“Project”打开系统项目\ normal\ 10_LCD\ LCD.pjt,
5. 编译全部文件并装载“lcd.out”文件
6.单击“Debug\Go main” 跳到主程序的开始;
7. 单击“Debug\ Animate”全速运行,在LCD 上可以看到屏上有显示的信息,其中背景颜色不断变化的界面;
8. 单击“Debug\Halt”,停止程序,退出CCS。
五、实验结果
运行程序后,在LCD 上可以看到屏上有显示的信息,其中背景颜色由黑到蓝再到黄交替变化的界面。
实验七 快速傅立叶变换(FFT)算法实验
一. 实验目的
1.加深对DFT算法原理和基本性质的理解;
2.熟悉 FFT算法原理和FFT子程序的应用;
3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二. 实验设备
计算机,CCS 3.1 版软件,E300 实验箱,DSP仿真器,导线
三. 基本原理
1.离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
2.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N 步,极大的提高了运算的速度。
3.旋转因子的变化规律、蝶形运算规律及基 2FFT算法。
四. 实验步骤
1.E300 底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置。
2.E300 板子上的SW7开关的第1位置OFF,其余位置ON
3. 正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。
4. 启动CCS3.1,Project/Open 打开“algorithm\01_fft”子目录下“fft.pjt”工程文件;双击“fft.pjt” 及“Source”可查看各源程序;加载“Debug\fft.out”;
5. 单击“Debug\Go main”进入到主程序,在主程序“flag=0;”处设置断点;
6. 单击“Debug \ Run”运行程序,或按F5 运行程序;程序将运行至断点处停止;
7. 用 View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,px:存放经A/D 转换后的输入信号;pz:对该信号进行FFT变换的结果;
8. 单击“Debug \ Animate”运行程序,或按F10运行;观察窗口并观察输入信号波形及其FFT变换结果;
9. 单击“Debug \ Halt”暂停程序运行,关闭窗口,本实验结束。
五、子程序流程图:
六、实验结果
在CCS3.1环境,同步观察输入信号波形及其FFT变换结果(下图观察窗口中px波形在上面,pz 波形在下面)
实验八 卷积(Convolve)算法实验
一 、实验目的
1.了解卷积算法的原理;
2.掌握 TMS320 ’C54X 程序的编译和调试方法;
3.掌握在CCS环境下,编写和调试程序的方法。
二 、实验设备
计算机,CCS 3.1 版软件,DSP仿真器,E300实验箱,信号输入线
三 、实验原理
卷积的基本原理。
四 、实验步骤
1. E300 底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置;
2. E300 板子上的SW7开关的第1位置OFF,其余置ON;
3. 正确完成计算机、DSP 仿真器和实验箱连接;启动CCS3.1,用Project/Open 打开“04_convolve\convolve.pjt”工程文件;双击“convolve.pjt”及“Source”可查看源程序;并加载“convolve.out”;
4. 在”Convolve.c”文件中最后的“flag = 0”处,设置断点;单击“Debug \ Run”运行程序,程序运行到断点处停止;
5. 用 View / Graph / Time/Frequency打开图形观察窗口;设置观察图形窗口变量及参数;采用双踪观察两路输入变量Input 及Impulse的波形,波形长度为512,数值类型为32 位浮点型;
6.打开一个图形观察窗口,以观察卷积结果波形;该观察窗口的参数设置为:变量为Output,长度为1024,数据类型为32 位浮点数;
7. 调整观察窗口,观察两路输入波形和卷积结果波形;
8. 关闭“convolve.pjt”工程文件,关闭各窗口,实验结束。
五、子程序流程图
六、实验结果
设置好CCS的环境,打开本工程,编译、下载、运行。用图形观察窗口观察y[]数组中的波形数据如下: