好文档 - 专业文书写作范文服务资料分享网站

DSP第二次实验报告 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

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.

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

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方式是单步运行,动画输出不连续。

sin{[(n?1)?T??]??T}?sin{[(n?1)?T??]??T}?2sin[(n?1)?T??]?cos(?T)5.

到正

n?)?n弦信

?(号迭

c)?o?代

[s公式:

ns(?i?2T???(因为T?T?为常数所s?i?,

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

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

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

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

在Run方式下:

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

DSP第二次实验报告 - 图文 

DSP实验报告(第二次实验)实验四、正弦信号发生器验四、正弦信号发生器一、实验目的1.掌握利用DSP产生正弦信号的原理2.熟悉子程序调用的程序结构以及堆栈的使用3.掌握CCS的图形输出操作<
推荐度:
点击下载文档文档为doc格式
1le6b2b3df1emx12t1jh
领取福利

微信扫码领取福利

微信扫码分享