DSP第二次实验报告.docx

上传人:b****3 文档编号:11779079 上传时间:2023-06-02 格式:DOCX 页数:12 大小:447.68KB
下载 相关 举报
DSP第二次实验报告.docx_第1页
第1页 / 共12页
DSP第二次实验报告.docx_第2页
第2页 / 共12页
DSP第二次实验报告.docx_第3页
第3页 / 共12页
DSP第二次实验报告.docx_第4页
第4页 / 共12页
DSP第二次实验报告.docx_第5页
第5页 / 共12页
DSP第二次实验报告.docx_第6页
第6页 / 共12页
DSP第二次实验报告.docx_第7页
第7页 / 共12页
DSP第二次实验报告.docx_第8页
第8页 / 共12页
DSP第二次实验报告.docx_第9页
第9页 / 共12页
DSP第二次实验报告.docx_第10页
第10页 / 共12页
DSP第二次实验报告.docx_第11页
第11页 / 共12页
DSP第二次实验报告.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DSP第二次实验报告.docx

《DSP第二次实验报告.docx》由会员分享,可在线阅读,更多相关《DSP第二次实验报告.docx(12页珍藏版)》请在冰点文库上搜索。

DSP第二次实验报告.docx

DSP第二次实验报告

DSP实验报告(第二次实验)

实验四、正弦信号发生器

学院:

信息工程学院

班级:

11级通信工程3班

姓名:

李慧

学号:

指导老师:

姚志强

完成日期:

2014.4.12

 

验四、正弦信号发生器

一、实验目的

1.掌握利用DSP产生正弦信号的原理

2.熟悉子程序调用的程序结构以及堆栈的使用

3.掌握CCS的图形输出操作

二、实验设备

1.集成开发环境CodeComposerStudio(简称CCS)

2.实验代码Sin.s54、Lab.cmd和Lab.gel

三、实验内容

1.阅读理解多项式逼近正弦的文档

2.阅读和理解Sin.s54

3.调试正弦波发生器

4.加入断点,并选取图形观测,利用动画及时更新

5.试利用迭代的方法来实现正弦信号发生器

四、实验结果和提示

1.

为第一象限内的弧度值。

因为

,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。

由于有限精度,规定弧度值从

,其中

=0x7FFF,

/2=0x4000,

=0x8000。

利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A中的当前弧度值,以便计算结束后实现

增量。

正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。

自动增长时要注意当

超过

后必须调整到

的范围内才能调用计算子程序,即若

2.需要使用临时数据时,必须用frame语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。

要注意的是frame的下一条指令不能使用直接寻址。

3.注意事项:

利用累加器写乘法寄存器T(stlm)之后的下一条指令不能使用T;条件转移指令xc在指令访问阶段判断条件,该条件必须在先于xc指令的2个指令之前产生;条件转移指令bc是在指令执行阶段判断条件,不存在这方面的问题。

具体细节请参见《数字信号处理系统的应用和设计》3.6节和4.5节。

4.图形观测时选择菜单View->Graph->Time/Frequency,然后设置如下图:

确定并设置好断点后(断点位置要设置对,几个地方都可以,可多尝试几次)

我自己设置的断点如图所示:

使用Debug->Animate就可以观察到动画输出的结果如图:

从图中可以观察到正弦波的周期。

使用Debug->Run就可以观察动画输出的结果如下图所示:

从两种运行方式可以看出:

用Animate方式是动态动画输出,而用Run方式是单步运行,动画输出不连续。

5.

得到正弦信号迭代公式:

,因为

为常数所以

为常数,则利用此公式迭代计算每次只需一次乘法和一次加法。

6.尝试不用断点,而用探针ProbePoint的方式显示并观察图形。

同样需要比较两种运行方式在探针形式下有无区别。

设置探针如下:

在Animate方式下图形输出如下图所示:

在Run方式下:

从动画输出结果看,设置探针在两种方式下没有什么区别,都是动态运行。

7.在断点及动画运行方式实现正弦波显示的情况下,查找到存储器中对应存储正弦波数据实时更新的数据单元。

五、实验心得

通过此次实验我掌握利用DSP产生正弦信号的原理,熟悉子程序调用的程序结构以及堆栈的使用,掌握CCS的图形输出操作,本次实验内容有阅读和理解Sin.s54;调试正弦波发生器;加入断点,并选取图形观测,利用动画及时更新;对比前两次实验,难度有所增加,但是在老师和助教的精心指导下,顺利完成实验,几次实验之后,我认识到实验之前预习的必要性,所以以后的实验中,我会争取做到每一次实验都提前预习。

 

附录:

实验程序

;******************************************************************************

;SJTUDSPTech.Center

;Copyright(c)2003SJTUDSPTech.Center.AllRightsReserved.

;

;Description:

;TMS320C54xProgramforStudentsExperiment

;

;History:

;DateAuthorsChanges

;2003/08/01FuXuanCreated.

;******************************************************************************

STACK_ADDR.set0x0500

STEP.set0x0900;deltax(mustbepositive),themorethehigherfrequency

;T=65536/STEP,f=1/T

.bsssin_out,1

.mmregs

.globalmain

.text

main:

stm#STACK_ADDR,SP

stm#0x00A8,PMST;IPTR=0x0080

stm#0x0000,SWWSR;softwarewaitstatusregister

subA

ssbxCPL;directaddressusingSP

ssbxFRCT;fractionmode

ssbxOVM;overflowmode

ssbxSXM;signextension

stm#sin_out,AR6

sin_loop:

pshmAG;savecurrentx;ddianOK

pshmAH;ddianOK

pshmAL;ddianOK

callcalculate_sin;-pi<=x<=pi;ddianOK

sthA,*AR6;storesin(x),addprobepoint;ddianOK

popmAL;ddianOK

popmAH;ddianOK

popmAG;ddianOK

add#STEP,A;adddelta;ddianOK

sub#0x7fff,A,B;testifx>pi,B=A-pi;ddianOK

bcnormal_increase,BLT;ddianOK

ld#0x8000,A;A=-pi

addB,A;A=B+(-pi)=x-2*pi

normal_increase:

bsin_loop;ddianOK

dead_loop:

nop

nop

nop

nop

bdead_loop

;******************************************************************************

sign.set0;localvariable

calculate_sin:

frame-1;allocatesign

nop;nodirectaddressingnextframe

st#0,@sign;decidesign,0for1stand2ndquadrant,1for3rdand4thquadrant

xc2,ALT

st#1,@sign

absA;changeto1stand2ndquadrant

sub#0x4000,A,B;testfor1stquadrant

bcfirst_quadrant,BLEQ;ifnotchangeto1stquadrant

sub#0x7fff,A;Assin(pi-x)=sinx,letx=pi-x

negA

first_quadrant:

stm#coef,AR2

stlmA,T;T=x

ld*AR2+,16,A;AH=C5

ld*AR2+,16,B;BH=C4

rpt#5-1;AH=C5*x^5+C4*x^4+C3*x^3+C2*x^2+C1*x+0

poly*AR2+

ld@sign,B;pickoutsign

sftaA,3;makeQ15format

nop;nopforBconditiontestbyxc

xc1,BNEQ;testsign

negA;sin(-x)=-sinx

frame1

ret

;******************************************************************************

.sect"vectors"

int_RESET:

bmain

nop

nop

.space124*16

;sin(x)=0+3.x+0.x^2-5.x^3+0.x^4+1.x^5

.data

coef:

;Asthemaxvalueis-5.,soQ12isused

.word0x1cce;1.*4096

.word0x08b7;0.*4096

.word0xaacc;-5.*4096

.word0x0053;0.*4096

.word0x3240;3.*4096

.word0x0000;0

.end

;endofSin.s54

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2