资源描述:
《计算一个角度正弦值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、洛阳理工学院实验报告系部计算机与信息工程系班级学号姓名课程名称DSP技术实验日期实验名称计算一个角度的正弦值成绩实验目的:1.熟悉DSP的汇编语言程序构架,熟悉CCS开发环境。2.利用DSP汇编语言实现正弦信号的计算。实验条件:装有CCS开发环境的电脑实验原理:正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。用DSP实现正弦波信号发生器通常有三种方法:(1)查表法将某个频率的正弦/余弦值计算出来后制成一个表,通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。(2)迭代法利用数字震荡器通过迭代方法产生正弦信号。(3)泰勒
2、级数展开法根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前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的正弦值,可
3、利用泰勒级数的展开式,采用子程序的调用方式来实现。在调用前先在数据存储器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.sect"coeff".word01C7H.word030BH.word0666H.word1556Hd_x.usect"sin_vars",1d_s
4、qur_x.usect"sin_vars",1d_temp.usect"sin_vars",1d_sinx.usect"sin_vars",1c_1.usect"sin_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
5、
6、LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASFTAA,3,ASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA
7、*AR2+SFTAB,3,BSTB,*AR2
8、
9、LD*AR4,BMASR*AR2-,*AR3+,B,AMPYA*AR2+SFTAB,3,BSTB,*AR2
10、
11、LD*AR4,BMASR*AR2-,*AR3+,B,AMPYAd_xSTHB,d_sinx.end/****************************************************//*******************INRAM.cmd************************//*programentry*/-eCodeStartMEMORY{PAGE0:PROG:or
12、g=0100H,len=0F00H/*setupaEPROGbuffer*/PAGE1:MMREGS:org=0070H,len=0020H}SECTIONS{.text:>PROGPAGE0/*mapthesegmnet"text"toEPROGbufferofpage0*/coeff:>MMREGSPAGE1/*variableinprogram*/sin_vars:>MMREGSPAGE1}/**************************************************************/实验步骤:1.将桌面上的“DSP实验
13、参考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程序,如图
14、所示(注意:*.out文件在工程目录中