您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 计算一个角度的正弦值
洛阳理工学院实验报告系部计算机与信息工程系班级学号姓名课程名称DSP技术实验日期实验名称计算一个角度的正弦值成绩实验目的:1.熟悉DSP的汇编语言程序构架,熟悉CCS开发环境。2.利用DSP汇编语言实现正弦信号的计算。实验条件:装有CCS开发环境的电脑实验原理:正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。用DSP实现正弦波信号发生器通常有三种方法:(1)查表法将某个频率的正弦/余弦值计算出来后制成一个表,通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。(2)迭代法利用数字震荡器通过迭代方法产生正弦信号。(3)泰勒级数展开法根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前5项,得近似计算式:由式(3)和由式(4)可推导出递推公式: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_x单元中存放x的弧度值,计算结果存放在d_sinx单元中。ex002.asm的程序清单如下:/**********************ex002.asm*********************/.mmregs.defCodeStart.defd_sinx,d_temp,c_1,d_x,d_squr_x,d_coeffd_coeff.sectcoeff.word01C7H.word030BH.word0666H.word1556Hd_x.usectsin_vars,1d_squr_x.usectsin_vars,1d_temp.usectsin_vars,1d_sinx.usectsin_vars,1c_1.usectsin_vars,1.textCodeStart:STM#d_coeff,AR3STM#d_x,AR2STM#c_1,AR4sin_angle:LD#0000H,DPST#4305H,d_xST#1FFFH,c_1SQUR*AR2+,ASTA,*AR2||LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASFTAA,3,ASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA*AR2+SFTAB,3,BSTB,*AR2||LD*AR4,BMASR*AR2-,*AR3+,B,AMPYA*AR2+SFTAB,3,BSTB,*AR2||LD*AR4,BMASR*AR2-,*AR3+,B,AMPYAd_xSTHB,d_sinx.end/****************************************************//*******************INRAM.cmd************************//*programentry*/-eCodeStartMEMORY{PAGE0:PROG:org=0100H,len=0F00H/*setupaEPROGbuffer*/PAGE1:MMREGS:org=0070H,len=0020H}SECTIONS{.text:PROGPAGE0/*mapthesegmnettexttoEPROGbufferofpage0*/coeff:MMREGSPAGE1/*variableinprogram*/sin_vars:MMREGSPAGE1}/**************************************************************/实验步骤:1.将桌面上的“DSP实验\参考\ex002”目录复制到计算机硬盘,将目录中所有文件的只读属性去掉;2.启动CCS2(‘5000);3.选择Project→new,找到并打开硬盘上目录“ex002”,新建ex002.pjt工程文件;4.选择Project→AddFilestoProject,找到并打开硬盘上目录“ex002”,选择并添加ex002.asm和INRAM.cmd文件。5.将汇编语言程序添加进ex002.asm文件并保存。6.打开INRAM.cmd,按照实验指导书的程序编写相应程序;7.选择Project→Build,编译程序,生成ex002.out文件;8.LOAD程序,如图所示(注意:*.out文件在工程目录中的DEBUG文件夹中)。9.单步运行程序,把光标摆在ex002.asm文件中第一条语句,按“执行到光标处”图标,单步跟踪或全速运行,观看结果。10.程序运行完,点击view→memory,弹出对话框如图所示:在Address一栏键入“d_sinx”,单击“ok”,即可看到结果(如图所示)。检测结果是否正确。11.修改角度,d_x=7FFFH,即x=1弧度,运行程序,记录d_sinx的结果并检验结果是否正确。实验总结:通过此次试验,熟悉了DSP的汇编语言程序构架,也进一步熟悉了CCS开发环境。并且利用DSP汇编语言实现正弦信号的计算。初次接触汇编指令,看程序不免有些困难,通过与同学的交流,也了解了一些基本的语法知识,此次试验收获很大,不仅接触到了汇编还进一步的理解了其编程思想与C语言的差别,收获颇丰。
本文标题:计算一个角度的正弦值
链接地址:https://www.777doc.com/doc-8570283 .html