DSP第二次实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

实验四、正弦信号发生器

验四、正弦信号发生器

一、实验目的

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

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

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

二、实验设备

1. 集成开发环境Code Composer Studio(简称CCS)

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

三、实验内容

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

2. 阅读和理解Sin.s54

3. 调试正弦波发生器

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

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

四、实验结果和提示

1.

2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x ,x 为第一象限内的弧度值。因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。

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.

{[(1)]}{[(1)]}2[(1)]()

sin n T T sin n T T sin n T cos T ωθωωθωωθω-+++-+-=-+⨯得

到正

弦信

号迭

公式:

()2(

)[(s i n n

T c o s

T s i n

n

ωθω

ω

θωθ+=⨯-+--+,

因为T ω为常数所以2()cos T ω为常数,则利用此公式迭代计算每次只需一次乘法和一次加法。

6. 尝试不用断点,而用探针Probe Point 的方式显示并观察图形。同样需要

比较两种运行方式在探针形式下有无区别。设置探针如下:

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

在Run方式下:

从动画输出结果看,设置探针在两种方式下没有什么区别,都是动态运行。7. 在断点及动画运行方式实现正弦波显示的情况下,查找到存储器中对应存储

正弦波数据实时更新的数据单元。

五、实验心得

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

附录:实验程序

;****************************************************************************** ; SJTU DSP Tech. Center

; Copyright (c) 2003 SJTU DSP Tech. Center. All Rights Reserved.

;

; Description:

; TMS320C54x Program for Students Experiment

;

; History:

; Date Authors Changes

; 2003/08/01 Fu Xuan Created.

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

STACK_ADDR .set 0x0500

STEP .set 0x0900 ;delta x (must be positive), the more the higher frequency

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

.bss sin_out, 1

.mmregs

.global main

.text

main:

stm #STACK_ADDR, SP

stm #0x00A8, PMST ;IPTR=0x0080

stm #0x0000, SWWSR ;software wait status register

sub A

相关文档
最新文档