DSP应用技术实验教程_第1页
DSP应用技术实验教程_第2页
DSP应用技术实验教程_第3页
DSP应用技术实验教程_第4页
DSP应用技术实验教程_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

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

文档简介

电工电子实验中心

实验指导书

DSP应用技术实验教程

二。。九年三月

高等学校电工电子实验系列

DSP应用技术实验教程

主编郝小江李慧蓉

攀枝花学院电气信息工程学院

电工电子实验中心

内容简介

内容简介

本书是根据高等院校工科本科生“DSP原理及应用"、“DSP技术”等课程的

基本要求编写的。

书中实验内容包含CCS基本操作实验、DSP算法实验、定时/中断实验、

BOOTLOADER实验、多通道缓冲串口(McBSP)实验、双音多频(DTMF)实验。图文

并茂地向读者介绍了DSP实验的基本重点内容,通俗易懂,能够让在校学生、DSP

工程技术人员更好地学习和掌握DSP应用技术。

本书可作为高等院校电子、通信类本科生的DSP应用技术实验教材,也可作

为从事DSP应用技术研究的专业人员参考书。

»*—1—

刖a

前言

数字信号处理器(DSP)问世以来,由于其结构独特并具有快速实现各种数字信

号处理算法的优点,在从多领域得到广泛应用。为了适应这一发展趋势,许多高校

都开设了DSP相关的课程和实验,而且学习DSP课程的同学和利用DSP进行研究

开发的工程师也越来越多。为了适应这一发展趋势,在吸取其它DSP相关教材经

验的基础上,根据攀枝花学院"DSP原理及应用”课程的教学经验和教学改革的

要求,编写的本实验教程。通过本课程的学习,读者可以由浅入深地掌握

TMS320C54X系列DSP的基本原理、系统组成、软硬件开发,将理论和实践相结合,

在学习中逐步培养和提高学生的实验能力、设计能力、独立分析和解决问题的能

力。

本书实验内容丰富、并且注重理论与实践相结合,由浅入深,从TMS320c54x

的基本操作、DSP算法实验、DSP接口实验着手,由简到繁地让读者对DSP有一个

较全面的认识,基本掌握DSP的应用。基本操作实验包括CCS软件的使用,算法

实验包括定点算术运算实验、数字滤波实验、FFT实验、定时器实验,接口实验包

括BSP串口操作、双音多频(DTMF)实验。

全书由攀枝花学院电气信息工程学院和省级电工电子示范中心郝小江、李慧

蓉老师主编。在本书的编写的过程中得到电子科技大学一一美国德州仪器DSPs

技术培训中心的大力支持,在此表示感谢。

由于作者水平有限,书中错误之处在所难免,恳请广大师生及读者提出宝贵

意见及建议。

编者

2009年3月于攀枝花

目录

目录

实验•DSP开发环境CCS的使用1

实验二DSP基本算法5

实验三FIR数字滤波器(设计实验)10

实验四IIR数字滤波器(设计实验)21

实验五快速傅立叶变换(FFT)30

实验六正弦波信号发生器45

实验七定时器中断实验52

实验八定时器实验数字振荡器62

实验九McBSP串口操作70

实验十数字滤波系统设计(综合实验)79

实验十一TMS320VC5402的BOOTLOADER技术85

实验十二双音多频DTMF技术(综合实验)95

附录A107

附录B135

附录C138

附录D142

附录E150

附录F156

参考文献167

实验一DSP开发环境CCS的使用

实验一DSP开发环境CCS的使用

一、实验目的

1.熟悉CCS软件的基本使用方法,重点掌握CCS软件的调试工具和技巧;

2.掌握堆栈的使用方法;

二、实验内容

编写程序,观察堆栈的使用情况。

三、实验内容与步骤

1.将计算机与DES320PP-A教学实验系统连接好,并打开实验系统电源、然后运

行CCS软件。

2.新建一个项目:点击ProjectfNew,将项目命名为DSPCCS,并将项目名保存在

自己定义的文件夹下。(注意文件夹一定要用英文名,不要将文件夹取名为中文

名)。

3.新建一个源文件:点击File-New-SourceFile,可以打开一个文本编辑窗

口,点击保存按键,保存在和项目相同的一个文件夹下面(DSPCCS),保存类型选

择*.ASM(如果源文件是C语言编写的,保存类型选择*.C。本实验中的例程是

使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命

名为DSPCCS.asm。

4.在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对

该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中

右键单击DSPCCS.pjt,在弹出的菜单中选择AddFiles,然后将刚才建立的

DSPCCS.asm文件添加到该项目中去。

5.编写源程序:在工程管理器中双击DSPCCS.asm,将出现文本编辑窗口,在

该文本编辑窗口中输入如下内容:

*****************************************

*学习堆栈的使用方法*

.title“DSPCCS.asm”

.mmregs

-1-

实验一DSP开发环境CCS的使用

size.set100

stack.usectnSTK",size;堆栈的设置

.bsslength,!OH

.defstart

.text

start:STM#0,SWWSR;插入0个等待状态

STM#stack+size,SP;设置堆栈的指针

LD#-8531,A

STM#length,ARl

MVMMSP,AR7

loop:STLA,♦ART-

BANZloop,*ARl-

.end

6.编写链接配置文件:

只有汇编源程序是不够的,一个完整的DSP程序至少包含三个部分:主程

序、中断向量表、链接配置文件(*.cmd)。这里先介绍一下链接配置文件。

链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:(1)存贮

器的分配(2)标明程序入口。由于每个程序都需要一个链接配置文件,每个程

序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写

一个链接配置文件。

vectors.obj/*中断向量的目标文件*/

DSPCCS.obj/*产生目标文件*/

-oDSPCCS.out/*产生可执行下载文件,文件名可以根据不同项目而定*/

-mDSPCCS.map/*产生存储器映射文件,文件名可以根据不同项目而定*/

-estart/*程序入口*/

MEMORY

{

PAGE0:/*定义程序存贮区*/

EPROM:org=0090Hlen=0F70H/*定义EPROM区,起始地址0090H,长度0F70H*/

VECS:org=0080Hlen=0010H/*定义VECS区,起始地址0080H,长度0010H*/

PAGE1:/*定义数据存贮区*/

SPRAM:org=1000Hlen=1000H/*定义SPRAM区,起始地址1000H,长度1000H*/

DARAM:org=2000Hlen=2000H/*定义DARAM区,起始地址2000H,长度2000H*/

SECTIONS

.text:>EPROMPAGE0/*将.text段映射到PAGE0的EPROM区*/

-2-

实验一DSP开发环境CCS的使用

.data:>EPROMPAGE0/*将.data段映射到PAGEO的EPROM区*/

.bss:>SPRAMPAGE1/*将.bss段映射到PAGE1的SPRAM区*/

STK:>DARAMPAGE1/*将STK段映射至ljPAGE1的DARAM区*/

.vectors:>VECSPAGE0/*将中断向量表定位到PAGEO的VECS区*/

}

将其以DSPCCS.cmd文件保存在自定义文件夹下。

7.编写中断向量表文件

/*vectors.asm*/

.title"vectors.asm^/*中断向量表的文件名*/

.refstart/*引用外部定义的标号*/

.sect".vectors”/*定义初始化的段名*/

Bstart/*引用start*/

.end

将其以vectors.asm文件保存在自定义文件夹下。

并将DSPCCS.cmd、vectors.asm添加到项目中。

8.对项目进行编译和链接:

把DSPCCS.asm、vectors.asm,DSPCCS.cmd三个文件依次添加到项目后,点

击Project-CompileProject—Build选项对该项目进行链接,生成*.out文件。

9.装载可执行文件:

要让程序代码在DSP内部运行必需将生成的*.OUT文件装载至UDSP内部,装载

方法是:点击File-*LoadPrograme再选择生成的

DSPCCS.out文件就可以将程序装载到DSP内部的

存储器中。

10.运行程序并查看结果:

a)首先打开欲查看的数据空间:点击

View-Memory弹出uMemoryWindowsOptionsM

对话框,把欲查看的地址改为0x2000,如图1.1

所示。

b)点击OK按钮,然后点击Debug—Run让程序在

DSP内部运行,最后点击Debug—Halt停止,再观

察“Memory”对话框,看是否与图1.2一致。图L1存储器设置窗口

-3-

实验一DSP开发环境CCS的使用

8'Me>ory(Data:Hex-CStyle)13回区)

0x2000:stack

0x2000:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2008:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2010:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2018:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2020:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2028:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2030:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2038:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2040:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2048:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2050:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2058:OxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEADOxDEAD

0x2060:OxDEADOxDEADOxDEADOxDEADOxDEAD0x00000x00000x0000

0x2068:0x00000x00000x00000x00000x00000x00000x00000x0000v

图1.2堆栈结果图

四、实验仪器设备

1.计算机

2.DES32OPP-A教学实验系统

五、实验注意事项

1.本实验可以不用实验设备DES320PP-A教学实验系统

六、实验报告要求

1.要求每位同学堆栈中的值不同

2.实验中图1.1和图1.2必须打印

-4-

实验二DSP基本算法

实验二DSP基本算法

一、实验目的

1.练习在CCS5000平台下,TMS320c54x汇编语言的编写与调试方法;

2.掌握用C54x进行算术运算的基本方法和所使用的基本语句;

3.练习并掌握汇编语言的汇编指令系统的使用方法。

二、实验内容

4

编写程序,分别实现计算z=x+y-w、y=mx+b、y=x1Xal+x2Xa2、y=>,

i=l

三、实验步骤

1.将计算机与DES-320PP-A教学实验系统连接好,打开实验箱电源,然后运行

CCS软件。

2.新建一个项目:点击Project-New,将项目命名为example,并将项目保存在

自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,

因为CCS软件不能识别以中文命名的文件夹。

3.新建一个源文件:点击File-New-SourceFile可以打开一个文本编辑窗口,

点击保存按键,保存在和项目相同的-个文件夹下面(example),保存类型选择

*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使

用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名

为example.asm。

4.在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对

该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中

右键单击example.pjt,选择AddFiles,然后将刚才建立的example.asm文件添

加到该项目中去。

5.编写源程序:在工程管理器中双击example.asm,将出现文本编辑窗口,在该

文本编辑窗口中输入如下内容:

*****************************************

*计算z=x+y-w*

-5-

实验二DSP基本算法

.title"example.asm”

.mmregs

STACK.usect“STACK”jOH;堆栈的设置

.bssx,l;为变量分配4个字的存储空间

.bssy,1

.bssw,l

.bssz,l

.defstart

.data

table.word10,26,23;x,y,w

.text

start:STM#0,SWWSR;插入0个等待状态

STM#STACK+10H,SP;设置堆栈指针

STM#x,ARl;AR1指向x

RPT#2

MVPDtable,*AR1+;把程序存储器中的数据移动到数据存储器

CALLSUMB

end:Bend

SUMB:LD*(x),A

ADD*(y),A

SUB*(w),A

STLA,*(z)

RET

.end

6.编写链接配置文件:

vectors.obj/*中断向量的目标文件*/

example.obj/*产生目标文件*/

-oexample.out/*产生可执行下载文件,文件名可以根据不同项目而定*/

-mexample.map/*产生存储器映射文件,文件名可以根据不同项目而定*/

-estart/*程序入口*/

MEMORY

{

PAGE0:/*定义程序存贮区*/

EPROM:org=0090Hlen=0F70H/*定义EPROM区,起始地址0090H,长度0F70H*/

VECS:org=0080Hlen=0010H/*定义VECS区,起始地址0080H,长度0010H*/

PAGE1:/*定义数据存贮区*/

SPRAM:org=1000Hlen=1000H/*定义SPRAM区,起始地址1000H,长度1000H*/

DARAM:org=2000Hlen=2000H/*定义DARAM区,起始地址2000H,长度2000H*/

-6-

实验二DSP基本算法

SECTIONS

.text:>EPROMPAGE0/*将.text段映射到PAGEO的EPROM区*/

.data:>EPROMPAGE0/*将.data段映射到PAGEO的EPROM区*/

.bss:>SPRAMPAGE1/*将.bss段映射到PAGE1的SPRAM区*/

STK:>DARAMPAGE1/*将STK段映射到PAGE1的DARAM区*/

,vectors:>VECSPAGE0/*将中断向量表定位到PAGEO的VECS区*/

)

7.编写中断向量表文件

/*vectors.asm*/

.title"vectors.asm,,/*中断向量表的文件名*/

.refstart/*引用外部定义的标号*/

.sect".vectors”/*定义初始化的段名*/

Bstart/*引用start*/

.end

将其以vectors.asm文件保存在自定义文件夹下。

并将example.cmd、vectors.asm添加到项目中。

8.对项目进行编译和链接:

把example.asm、vectors.asm>example.cmd依次添加到项目后,点击Project

—CompileProject—Build选项对该项目进行链

接,生成*.out文件。

9.装载可执行文件:

要让程序代码在DSP内部运行必需将生成的

*.OUT文件装载到DSP内部,装载方法是点击:File

—LoadPrograme再选择生成的example.out文件

就可以将程序装载到DSP内部的存储器中。

10.运行程序并查看结果:

a)首先打开欲查看的数据空间:点击View-

Memory,弹出“MemoryWindowOptions”对话

框,把欲查看的地址改为0x1000,如图2.1所示。

b)点击OK按钮,然后点击Debug-Run让程图2.1存储器设置窗口

序在DSP内部运行,最后点击Debug-Halt,再观察“Memory”对话框,看是

否与图2.2一致:

-7-

实验二DSP基本算法

国leaory(Data:Hex-CStyle)

0x1000:XA

0x1000:OxOOOA

0x1001:y

0x1001:OxOOlA

0x1002:w

0x1002:0x0017

0x1003:z

0x1003:OxOOOD

0x1004:STACK

0x1004:0x00000x00000x0000v

图2.2运行结果图

11.建立其它项目工程文件

建立项目工程文件example],使之实现计算y=mx+b;建立项目工程文件

example2,使之实现计算y=xlXa2+x2Xa2;建立项目工程文件example3,使之

4

实现计算>受实验运行结果如图2.3~图2.5所示:

;=1

n:KeBory(Data:Hex-C...叵

0x1000:mA

0x1000:0x0003

0x1001:X

0x1001:OxOOOF

0x1002:b

0x1002:0x0014

0x1003:y

0x1003:0x0041

0x1004:STACK|v

图2.3y=mx+b结果

Sleaory(Data:Hex-C

0x1000:xlA

0x1000:0x0003

0x1001:x2

0x1001:0x0005

0x1002:al

0x1002:OxOOOF

0x1003:a2

0x1003:0x0014

0x1004:y

0x1004:0x0091

nxinns:AndV

图2.4y=xlXa2+x2Xa2结果

-8-

实验二DSP基本算法

r

Ie>ory(Data:Hex-CStyle)回区

0x1000:aA

0x1000:0x00010x00050x00030x0004

0x1004:x

0x1004:0x00080x00060x00070x0002

0x1008:y

0x1008:OxOOlEV

图2.5y结果

;=1

四、实验仪器设备

1.计算机

2.DES-320PP—A教学实验系统

五、实验报告要求

1.要求每位同学实验结果不同

2.实验中图2.1至图2.5必须打印

六、思考题

1.自行编制程序实现图2.3至图2.5的实验结果

-9-

实验三FIR数字滤波器(设计实验)

实验三FIR数字滤波器(设计实验)

一、实验目的

1.了解FIR(FiniteImpulseResponse有限冲激响应)滤波器的原理及使用方法;

2.了解使用MATLAT语言设计FIR滤波器的方法;

3.了解DSP对FIR滤波器的设计及编程方法;

4.熟悉在CCS环境下对FIR滤波器的调试方法;

二、实验原理

数字滤波是DSP的最基本应用,利用MAC(乘、累加)指令和循环寻址可

以方便地完成滤波运算。两种常用的数字滤波器:FIR(有限冲激响应)滤波器

和IIR(无限冲激响应)滤波器的DSP实现。

设FIR滤波器的系数为h(0),h(l)h(N-l),X(n)表示滤波器在n时刻

的输入,则n时刻的输出为:

N-I

y(〃)=ZW)x(〃-i)=

i=0

/i(0)x(n)+h(\)x(n-1)+…〃(N-1)m〃一(N-1)]

FIR数字滤波器的结构如图3.1所示。

x(•n)--►--•--Z-►'--•--Z►-1--•►•--Z-►1--•

h(0)“h(l)▼h(2)■h(N-2)▼▼h(N-l)

图3.1FIR数字滤波器的结构图

1、线性缓冲区法

又称延迟线法。其方法是:对于n=N的FIR滤波器,在数据存储器中开辟一

个N单元的缓冲区,存放最新的N个样本;滤波时从最老的样本开始,每读一个

样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶

部。以上过程,可以用N=6的线性缓冲区示意图来说明,如图3-2所示

-10-

实验三FIR数字滤波器(设计实验)

数据存信器数免存储器数据存储器

线性缓冲区顶部X(n)读入新数据―X(n+1)读入新数据fX(n+2)

X(n-l)X(n)X(n+1)

X(»2)X(训X(n)

X(n-3)X32)X(n-l)

tX(n4)tX(n-3)IX(n-2)

ARxX(2)ARxfX(M)ARxX(n-3)

(a)(b)(c)

图3-2N=6的线性缓冲区示意图

2、循环缓冲区法

图3-3说明了使用循环寻址实现FIR滤波器的方法。对于N级FIR滤波器,

在数据存储区开辟一个称为滑窗的具有N个单元的缓冲区,滑窗中存放最新的N

个输入样本值。每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他

数据则不需要移动。

数据存储器数番存储器数据存储器

MO)低地址x(n)<-ARx侬电)

1

H(l)Xn-l)Xn-Dx(n-D

::•:

MN・2)XMN-2)]X[MN-2HX(n+2)

h(N-l)X[n<N-l)]x-(n+l)]+ARJCXn+1)]ARx

I+

图3-3FIR滤波器循环缓冲区存储器图

三、实验内容与步骤

设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于IdB;阻

带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。FIR滤波器的

设计可以用MATLAB窗函数法进行。

本实验设计一个采样频率Fs为8000Hz,输入信号频率为1000Hz和2500Hz

的合成信号,通过设计的低通滤波器将2500Hz信号滤掉,余下1000Hz信号。

1、MATLAB设计FIR滤波器

FIR滤波器的设计可以用MATLAB窗函数法进行,选择Hamming窗,其程

序为:

b=firl(16,1500/8000*2);

-II-

实验三FIR数字滤波器(设计实验)

得到FIR数字滤波器系数b为:

bO=O.00000000b9=0.28342322

bl=0.00482584bl0=0.09725365

b2=0.00804504bll=-0.02903702

b3=-0.00885584bl2=-0.04291741

b4=-0.0429174bl3=-0.00885584

b5=-0.02903702bl4=0.00804504

b6=0.09725365bl5=0.00482584

b7=0.28342322bl6=0.00000000

B8=0.37452503

在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转

换:

h=round(b*2A15)

将系数转换为Q15的定点小数形式,为:

h(0)=0h(9)=9287

h(l)=158h(10)=3187

h(2)=264h(ll)=-951

h(3)=-290h(12)=-1406

h(4)=-1406h(13)=-290

h(5)=-951h(14)=264

h(6)=3187h(15)=158

h(7)=9287h(16)=0

h(8)=12272

2、编写FIR数字滤波器的汇编程序

;一个FIR滤波器源程序fir.asm

.mmregs

.globalstart

.defstart,cintOO

INDEX.set1

KS.set256;模拟输入数据缓冲区大小

N.set17

COFF_FIR.sect”'COFF_FIR";FIR滤波器系数

.word0

.word158

.word264

.word-290

.word-1406

.word-951

-12-

实验三FIR数字滤波器(设计实验)

.word3187

.word9287

.word12272

.word9287

.word3187

.word-951

.word-1406

.word-290

.word260

.word158

.word0

.data

INPUT.copy"firin.incH;模拟输入在数据存储区0x2400

OUTPUT.space1024;输出数据在数据区0x2500

COFFTAB.usect"FIR_COFF",N

DATABUF.usect"FIR_BFRH,N

BOS.usect"STACK\0Fh

TOS.usect"STACK"」

.text

.asgAR0JNDEX_P

.asgAR4,DATA_P;输入数据x(n)循环缓冲区指针

.asgAR5,COFF_P;FIR系数表指针

.asgAR6,INBUF_P;模拟输入数据指针

,asgAR7,OUTBUF_P;FIR滤波器输出数据指针

cintOO

bstart

nop

nop

start:SSBXFRCT

STM#COFFTAB,COFF_P

RPT#N-1;将FIR系数从程序存储器移动

MVPD#COFF_FIR,*COFF_P+;到数据存储器

STM#INDEX,INDEX_P

STM#DATABUF,DATAP

RPTZA,#N-1

STLA,*DATA_P+;将数据循环缓冲区清零

STM#(DATABUF+N-1),DATA_P;数据缓冲区指针指向x[n-(N-l)]

-13-

实验三FIR数字滤波器(设计实验)

STM#COFFTAB,COFF_P;

FIR_TASK:

STM#INPUT,INBUF_P

STM#OUTPUT,OUTBUF_P

STM#KS-1,BRC

RPTBDLOOP-1

STM#N,BK;FIR循环缓冲区大小

LD*INBUF_P+,A;装载输入数据

FIRFILTER:

STLA,*DATA_P+%

RPTZA,N-1

MAC*DATA_P+0%,*COFF_P+0%,A

STHA,*OUTBUF_P+

LOOP:

ENDBEEND

.end

3、编写FIR滤波器链接命令文件

对应以上汇编程序的链接命令文件fir.cmd如下:

fir.obj

-mfir.map

-ofir.out

MEMORY

(

PAGE0:ROMl(RIX):ORIGIN=0080H,LENGTH=100H

PAGE1:INTRAMl(RW):ORIGIN=2400H,LENGTH=0200H

INTRAM2(RW):ORIGIN=2600H,LENGTH=0100H

INTRAM3(RW):ORIGIN=2700H,LENGTH=0100H

B2B(RW):ORIGIN=0070H,LENGTH=10H

)

SECTIONS

(

.text:{}>ROM1PAGE0

.data:{}>INTRAM1PAGE1

FIRCOFF:{}>INTRAM2PAGE1

FIR_BFR:{}>INTRAM3PAGE1

.stack:{}>B2BPAGE1

4、实验步骤及结果

-14-

实验三FIR数字滤波器(设计实验)

(1)在CCS上建立fir工程并运行fir.out程序。建立fir工程,将fir.asm和fir.cmd

添加到工程中,对汇编程序进行汇编、链接;如果有错误则进行修改、调试,当

汇编、链接成功后,加载并运行fir.out程序。注意,将fir.asm、fir.cmd、firin.inc

文件和fir.pjt工程文件放在同一文件夹下。

(2)观察输入信号的波形及频谱。单击View-GraphfTime/Frequency命令,按

照如图3-4所示改变各选项。其中,由.cmd可知输入信号的数据放在数据区

0x2400开始的256个单元中。

图3-4Graph属性设置窗口

单击OK按钮,则显示输入信号的时域波形如图3-5所示。其波形是频率为

1000Hz和2500Hz正弦信号的合成信号。

图3-5输入信号的时域波形

-15-

实验三FIR数字滤波器(设计实验)

将图3-4中的DsiplayType项改为FFTMagnitude,则显示输入信号的频谱图,

如图3-6所示。

图3-6输入信号的频谱图

3、观察输出信号的波形及频谱。

单击View-Graph-*Time/Frequency命令,按照如图3-7所示改变各选项。

其中,由.cmd可知输出信号的数据放在数据区0x2500开始的256个单元中。

S3GraphPropertyDialogfX'|

DisplayTypeSingleTime图人

GraphTitleGraphicalDisplay

StartAddress0x002500

PageData

AcquisitionBufferSize256

IndexIncrement1

DisplayDataSize256

DSPDataType16-bitsignedinteger

Q-value0

SamplingRateQ{z}8000

PlotData

温馨提示

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

评论

0/150

提交评论