DSP课程设计_正弦信号发生器的设计
DSP原理及应用 课程设计 课题正弦信号发生器的设计 班级通信0802 姓名 学号2008001322 课题正弦信号发生器 一、设计目的 学会用CCS集成开发软件,在开发环境下完成工程项目创建,程序编辑, 编译,链接,调试和数据分析。 二、设计内容 用CCS软件编写程序产生正弦波 三、设计实现 正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。通常有两种方法可以产生正弦波,分别为杳表法和泰勒 级数展开法。查表法是通过查表的方式来实现正弦波,主要用于对精度要求 不很高的场合。泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号, 它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。 本次主要用泰勒级数展开法来实现正弦波信号。 产生正弦波的算法 正弦函数和余弦函数可以展开成泰勒级数,其表达式 ./ 、X X X X smx x11 3579 2468 z x . XXXX cosx 111 2468 取泰勒级数的前5项,得近似计算式 X3 X5 X1 X9 smx XHH 3579 2 2 2 2 X1-1-1-1- 2x34x56x78x9 cosx 1 一 X X X X 11 2468 7x8 2 2 2 U-丄1 2 3x45x6 递推公式 sin {nx 2cos x sin[7-lx]-sin[ t-2x] cos tly 2cos x sin [77-1 x]-cos [ tt-2 x] 由递推公式可以看出,在计算正弦和余弦值时,需要已知cosx、sin77_lx、 sin tt-2 x和 cos tt-2 x。 计算一个角度X的正弦值,可利用泰勒级数的展开式,采用子程序的调 用方式来实现。在调用前先在数据存储器d_xs单元中存放X的弧度值,计算 结果存放在d sinx单元中 四、设计步骤 1、CCS软件的操作 1 建立工程点击菜单project-new,在弹出的窗口中输入工程名,后缀 是.pjt; 2 建立文件点击菜单file-new-source file,建立汇编语言文件和链接命 令文件; 3 将文件加入工程点击菜单project-add files to project,选择要加入 的文件添加到工程; 4 工程的汇编链接点击菜单project-rebu订d all,若汇编链接成功会生 成.out文件; 5 装载可执行程序点击菜单file-lode program,装载.out文件; 6 执行程序点击菜单debug-run; 7 观察结果。 2、注意事项 1 标号区分大小写,标号从第一列开始; 2 星号*从第一列开始; 3 指令助记符不能从第一列开始; 4 MEMORY 和 SECTIONS 要大写; 5 在链接命令文件中解释说明用符号/**/; ⑹PAGE与0或与1之间要有空格。 五、设计源程序 1、正弦波形的汇编程序 .title sinx. asmzz .mmregs .def cintOO .ref d_xs, d_sinx, d_xc, d_cosx sin_x .useet 〃sin_x〃, 360 STACK .useet STACK, 10 k_theta .set 286 PAO .set 0 _c_int00 .text STM STACK10, SP STM 0, ARI STM k theta, ARO STM sin_x, AR7 STM 90, BRC RPTB loopl-1 LDM ARI, A LD d_xs, DP STL A, d_xs STL A, d_xc CALL sin_start CALL cos_start LD d_sinx, DP LD d_sinx, 16, A MPYA d_cosx STH B, 1, *AR7 MAR *AR1O loopl STM sin_x89, AR6 STM 88, BRC RPTB loop2l LD *AR6-,A STL A, *AR7 loop2 STM 179, BRC STM sin_x, AR6 RPTB loop3l LD *AR6, A NEG A STL A, *AR7 loop3 NOP end B end sin_start .def sin_start d_coef_s .useet .data 〃coef_s〃, 4 table_s .word 01C7H .word 030BH .word 0666H .word 1556H d_xs .useet sinvars , 1 d_squr_xs .useet sinvars , 1 d_temps .useet sinvars , 1 d_sinx .useet sinvars , 1 c_l_s .useet .text sinvars , 1 SSBX FRCT STM d_coef_s, AR4 RPT 3 MVPD table_s, *AR4 STM d_coef_s, AR2 STM d_xs, AR3 STM c丄s, AR5 ST 7FFFH, c_l_s SQUR *AR3, A ST A, *AR3 LD *AR5, B MASR *AR3, *AR2, B, A MPYA A STH A, *AR3 MASR *AR3-,*AR2, B, A MPYA *AR3 ST B,*AR3 1 |LD *AR5, B MASR *AR3-,*AR2, B, A MPYA *AR3 ST B, *AR3 1 |LD *AR5, B MASR *AR3-,*AR2, B, A MPYA d_xs STH RET B,dsinx cos_start .def cos_start d_coef_c .useet .data 〃coef