DSP正弦函数计算程序

上传人:zhu****ng 文档编号:139357932 上传时间:2022-08-22 格式:DOC 页数:12 大小:112KB
收藏 版权申诉 举报 下载
DSP正弦函数计算程序_第1页
第1页 / 共12页
DSP正弦函数计算程序_第2页
第2页 / 共12页
DSP正弦函数计算程序_第3页
第3页 / 共12页
资源描述:

《DSP正弦函数计算程序》由会员分享,可在线阅读,更多相关《DSP正弦函数计算程序(12页珍藏版)》请在装配图网上搜索。

1、 课 程 设 计 任 务 书题目 正弦函数计算程序的编写 专业、班级 学号 姓名 主要内容、基本要求、主要参考资料等:1、 参考课本,正弦函数的泰勒级数展开式及C54X Mnemonic Instruction Set.pdf ,编写正弦函数的计算程序。2、 要求程序能够进行3次以上的叠代运算,计算一个数的正弦值。3、 要求用汇编语言书写,其中汇编语言源文件要求具有已初始化段,未初始化段,代码段的定义。4、 完成上述要求程序的编写并在CCS5000编译连接通过并验证计算结果,设计完成后要求每人上交一份课程设计说明书,说明书要求包含有课程设计任务书,各文件的说明,各文件里关键语句的说明。说明书要

2、求字迹工整、叙述清楚。5、 发挥部分,如时间可行,增加设计成为一个完整的项目(附加一个命令文件和一个向量表文件)。并验证结果。6、 时间:一周。完 成 期 限: 指导教师签名: 课程负责人签名: 2013 年 12 月 30 日目 录摘要11 正余弦的泰勒级数展开式22 存储空间分配33 迭代法计算正弦值43.1流程图43.2、程序64 复位向量文件和链接文件84.1、复位向量84.2、链接85 调试96 总结11参考文献11摘 要正弦作为一种数学方法,在科研和平时的数据处理方面应用的很广泛。尤其是在通信、仪器仪表和工业控制等领域应用更为广泛。在科技高速发展的今天,对函数的计算不仅要求有很高的

3、精度,还对计算的时间又很高的要求,必须在很短的时间内完成数据的处理,否则根本不能完成大批量数据的实时性计算和处理。介于DSP芯片运算速度快的特点,用DSP芯片完成这些算法已越来越受到重视。通常有两种方法可以产生正弦波,分别是查表法和泰勒级数展开法。查表法应用于精度要求不很高的场合,而泰勒级数展开法是一种比查表法更为有效的方法。它能精确的计算出一个角度的正弦和余弦值,且占用的储存空间较小,体现了它的优越性。关键词:sin函数 算法1 正余弦的泰勒级数展开式高等数学中,正弦函数和余弦函数可以展开的泰勒级数,其表达试如下: (1) (2)若要计算一个角度x的正弦和余弦值,可取泰勒级数的前五项进行计算

4、。 (3) (4)由式(3)和(4)可得导出递推公式,即由递推公式可以看出,在计算正弦和余弦值时,不仅需要已知cos(x),而且需要、和。2 存储空间分配在正弦函数的计算程序所需要的存储空间有四个已初始化的数据段table_s与若干个程序段组成的已初始化段和九个存储空间未初始化段,分别为:d_xs、d_squr_xs、d_temp_s、d_sinx、c_1_s、d_coef_s(4个存储空间)。其存储空间分布如下: 数据存储空间程序存储空间d_xsd_squr_xsd_temp_sd_sinxc_1_sd_coef_stable_sxx2Sin(x)7FFFH(C1=01C7H)(C2=030

5、BH)(C3=0666H)(C4=1556H)C1=1/(8*9)C2=1/(6*7)C3=1/(4*5)C1=1/(2*3)计算正弦值存储单元分配 3 迭代法计算正弦值3.1流程图其中随迭代次数的变化而变化=、=、=、=(1) 执行第一次迭代:|DL*AR5,BMASR *AR3+,*AR2+,B,A MPYA A STH A,*AR3 执行结果:d_temp_s= (2) 执行第二次迭代:MASR *AR3-,*AR2+,B,AMPYA *AR3+ STB,*AR3执行结果:d_temp_s= 执行第三次迭代:|DL*AR5,BMASR *AR3-,*AR2+,B,A MPYA *AR3+

6、 ST B,*AR3执行结果:d_temp_s= 执行第四次迭代:|DL*AR5,BMASR *AR3-,*AR2+,B,ASTM#d_xs,AR3执行结果:d_temp_s= 即可粗略的求的sinx的值为d_temp_s中的值3.2、程序.titlesin.asm.mmregs.defstart.refsin_start,d_xs,d_sinxSTACK: .usectSTACK,10H ;定义堆栈空间Start:STM#STACK+10,SP ;给堆栈指针赋值栈顶 LD#d_xs,DPST#6487H,d_xsCALLsin_startend:Bendsin_start:.defsin_s

7、tartD_coef_s.usectcoef_s,4.dataTable_s: .word 01C7H ;C1=01C7H.word 030bH ;C2=030bH.word 0666H ;C3=0666H.word 1556H ;C4=1556Hd_xs .usect sin_vars,1 ;定义未初始化段d_squr_xs .usect sin_vars,1d_temp_s .usect sin_vars,1d_sinx .usect sin_vars,1c_1_s .usect sin_vars,1.text SSBXFRCT ;设置小数乘法STM #d_coff_s,AR4 RPT#3

8、MVPD#table_s,*AR4+ ;c1=1/72,c2=1/42,c3=1/20 ;c4=1/6STM#d_coef_s,AR2STM #d_xs,AR3 STM #c_1_s,AR5 ;AR5指向C_1_SST#7FFFH,c_1_sSQUR*AR3+,A ;求x的平方值STA,*AR3 ;把x平方值放入(AR3)|DL*AR5,B ;B=1MASR *AR3+,*AR2+,B,A ;A=(1-x2)/72 ;T = x2MPYA A ; A=x2(1-x2)/72STH A,*AR3 ; AR3=d_temp_s= x2(1-x2)/72MASR *AR3-,*AR2+,B,A ;

9、A = 1-x2/42(1-x2/72) ; T =x2(1-x2/72)MPYA *AR3+ ; B = X2(1-x2/42(1-x2/72)STB,*AR3 ; AR3=d_temp_s=B|DL*AR5,BMASR *AR3-,*AR2+,B,A ;A=1-x2/20(1-x2/42(1-x2/72) MPYA *AR3+ ;B=(1-x2/20(1-x2/42(1-x2/72)*x2 ST B,*AR3 ; d_temp_s= B = (1-x2/20(1-x2/42(1-x2/72)*x2|DL*AR5,BMASR *AR3-,*AR2+,B,A ;A=1-x2/6(1-x2/20

10、(1-x2/42(1-x2/72)*x2STM#d_xs,AR3MPYAAR3;B=x(1-x2/6(1-x2/20(1-x2/42(1-x2/72)*x2)STH B, d_sinx ; d_sinx=b 的出结果RET.end4 复位向量文件和链接文件4.1、复位向量程序中所用的复位向量文件如下:.sect .vectors .ref start ; C entry point .align 0x80 ; must be aligned on page boundaryRESET: ; reset vector BD start ; branch to C entry point .end

11、4.2、链接链接命令文件是将链接的信息放在一个文件中,这在多次使用同样的链接信息时,可以方便地调用。在命令文件中可使用两个十分有用的伪指令MEMORY和SECTIONS,用来指定实际应用中的存储器结构和地址的映射。在命令行中不能使用这两个伪指令,命令文件为ASC文件,可包含一下内容:(1)输入文件名,用来指定目标文件、存档库或其他命令文件。注意,当命令文件调用其他文件时,该调用语句必须是最后一句,连接器不能从被调用的命令文件中返回。(2)连接器选项,他们在命令文件中的使用方法于在命令行中相同。(3)MEMORY和SECTIONS链接伪指令,MEMORY用来指定目标存储器结构,SECTIONS用

12、来控制段的构成于地址分配程序中所用到的链接文件如下:vectors.objsinx.obj-o a1.out-ma1.map-estartMEMORY PAGE 0: EPROG: origin = 0x1400, len = 0x7c00 VECT: origin = 0xff80, len = 0x80 PAGE 1: USERREGS: origin = 0x60, len = 0x1c BIOSREGS: origin = 0x7c, len = 0x4 IDATA: origin = 0x80, len = 0x1380 EDATA: origin = 0x1400, len = 0

13、x8000 EDATA1: origin = 0x9400, len = 0x4c00SECTIONS .vectors: VECT PAGE 0 .sysregs: BIOSREGS PAGE 1 .data: EPROG PAGE 0 .text: EPROG PAGE 0 .cinit: EPROG PAGE 0 .pinit: EPROG PAGE 0 .sysinit: EPROG PAGE 0 .stack: IDATA PAGE 1 .bss: IDATA PAGE 1 .sin_vars: IDATA PAGE 15 调试第一次叠代计算结果:A=004E4510A4B=007F

14、FF0000T=4EF3AR2=0061AR3=1428AR4=0094SP=0089第二次叠代计算结果:A=007E230000B=004DCCCA72T=4EF3AR2=0093AR3=0095AR4=0094SP=0089第三次叠代计算结果:A=007C1B0000B=004C8C0F42T=4EF3AR2=0094AR3=0095AR4=0094SP=0089 第四次叠代计算结果:A=00733D0000B=0013356EFCT=1556AR2=0094AR3=0094AR4=0094SP=008A6 总结两周的课程设计很快结束了,从刚接触课程设计时的无从下手,到最后的完成,收获了很多。参考文献1. 邹彦.DSP原理及应用 电子工业出版社 主编2. DSP实用技术苏涛 卢光跃 张林让 编著

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!