文档介绍:DSP原理及应用
课程设计
课题:正弦信号发生器的设计
班级:通信0802
姓名:
学号:2008001322
课题正弦信号发生器
设计目的
s集成开发软件,在开发环境下完成工程项目创建,程序编辑,编译,链接,调试和数据分析。
设计内容
用ccs软件编写程序产生正弦波
设计实现
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法
正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前5项,得近似计算式:
递推公式:
sin(nx) = 2cos(x)sin[(n-1)x]-sin[(n-2)x]
cos(nx) = 2cos(x)sin[(n-1)x]-cos[(n-2)x]
由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。
计算一个角度x的正弦值,可利用泰勒级数的展开式,采用子程序的调用方式来实现。在调用前先在数据存储器d_xs单元中存放x的弧度值,计算结果存放在d_sinx单元中
设计步骤
S软件的操作:
(1)建立工程:点击菜单project-new,在弹出的窗口中输入工程名,;
(2)建立文件:点击菜单file-new-source file,建立汇编语言文件和链接命令文件;
(3)将文件加入工程:点击菜单project-add files to project,选择要加入的文件添加到工程;
(4)工程的汇编链接:点击菜单project-rebuild all,;
(5)装载可执行程序:点击菜单file-lode program,;
(6)执行程序:点击菜单debug-run;
(7)观察结果。
2、注意事项:
(1)标号区分大小写,标号从第一列开始;
(2)星号(*)从第一列开始;
(3)指令助记符不能从第一列开始;
(4) MEMORY和SECTIONS要大写;
(5)在链接命令文件中解释说明用符号/* */;
(6)PAGE与0或与1之间要有空格。
设计源程序
1、正弦波形的汇编程序
.title ""
.mmregs
.def _c_int00
.ref d_xs,d_sinx,d_xc,d_cosx
sin_x: .usect "sin_x",360
STACK: .usect "STACK",10
k_theta .set 286
PA0 .set 0
_c_int00: .text
STM #STACK+10,SP
STM #0,AR1
STM k_theta,AR0
STM #sin_x,AR7
STM #90,BRC
RPTB loop1-1
LDM AR1,A
LD #d_