ImageVerifierCode 换一换
格式:DOCX , 页数:56 ,大小:1.17MB ,
资源ID:3962961      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3962961.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP原理及应用滤波器的设计文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

DSP原理及应用滤波器的设计文档格式.docx

1、 -m example1.map /*声明链接产生的存储器映射文件*/ -estart /*声明主程序入口*/MEMORY /*关键字加一对,存储器配置*/PAGE 0: /*程序存储区*/ EPROM:org=00A0H len=0F70H /*定义EPROM区,起始地址0090H,长度0F70H*/ VECS: org=0080H len=0010H /*定义VECS区,起始地址0080H,长度0010H*/PAGE 1: /*数据存储区*/ SPRAM:org=1010H len=1000H /*定义SPRAM区,起始地址1000H,长度1000H*/ DARAM:org=2010H l

2、en=2000H /*定义DARAM区,起始地址2000H,长度2000H*/SECTIONS /*关键字加一对,定位段*/ .text :EPROM PAGE 0 /*将.text段映射或定位到PAGE0的EPROM区*/ .data : .bss : STACK :DARAM PAGE 1 /*将.text段映射或定位到PAGE1的DARAM区*/ .vectors :VECS PAGE 0 /*将.vectors段映射或定位到PAGE0的VECS区*/12改变主程序example2.asm中x1x5的值(自定),重新执行911。记录x1x5、y的值并验算。 .title example1

3、.asm ;伪指令。用于格式化输出清单文件,声明在每页的顶部打印文件标题 .mmregs ;声明CPU寄存器名称STACK .usect STACK,10H ;自定义未初始化段STACK及大小(10H个字),最左边的STACK是标号 .bss x,5 ;声明数组x,5个字 .bss y,1 ;声明变量y,1个字 .def start ;声明本文件中的标号start能被别的文件(程序)引用 .data ;伪指令,指示下面的代码为数据段,通常包含初始化的数据(常数)。table: .word 1,2,3,4,5 ;声明5个16位整数类型的常数。table是标号。 .text ;伪指令,指示下面的代

4、码为文本段,通常包含可执行的代码。start: STM #0,SWWSR ; SWWSR=0,插入0个等待状态。start是标号。 STM #STACK+10H,sp ;sp=#STACK+10H,设置堆栈指针指向堆栈段的底部 STM #x,AR1 ;AR1=#x或AR1指向数组x RPT #4 ;下一条指令重复执行4+1=5次 MVPD table,*AR1+ ;数据传送。程序存储器中的table数据表AR1+指向的数据存储器 LD #0,A ;累加器A清零 CALL SUM ;调用求和子程序SUMend: B end ;无条件转移到标号end所在地方执行程序SUM:标号,指示求和子程序SU

5、M从这里开始 STM #x,AR3 ;AR3指向数组x STM #4,AR2 ;AR2=4loop: ADD *AR3+,A ;*AR3+AA,然后AR3= AR3+1。 loop是标号。 BANZ loop,*AR2- ;如果AR2的值不为0, AR2= AR2-1,跳转到loop处执行;否则执行下一条指令 STL A,*(y) ; y=AL RET ;子程序返回 .end ;指示汇编结束实验二 算术运算与数据操作的汇编语言程序设计实验6、编制程序,计算y= a1x1 + a2x2 + a10x10,其中数据均为小数(aixi的值自己定义 )。.title test.asm .mmregsS

6、TACK .usect ,10H .bss a,10 .bss x,10 .bss y,1 .def start .data .word 1*32768/10 ;0.1 .word 2*32768/10 ;0.2 .word -3*32768/10 ;-0.3 .word 4*32768/10 ;0.4 .word 8*32768/10 ;0.8 .word 6*32768/10 ;0.6 .word -4*32768/10 ;-0.4 .word -2*32768/10 ;-0.2 .word 1*32768/10 ; .text SSBX FRCT STM #a,AR1 RPT #19 M

7、VPD table,*AR1+ STM #x,AR2 STM #a,AR3 RPTZ A,#9 MAC *AR2+,*AR3+,A STH A,*(y) B end .end8、编写浮点乘法程序,计算x1x2x3 =0.2(-0.4) 0.25。注:(1)x1:被乘数, m1:被乘数的尾数 m2:乘数的尾数, x2:乘数, m3:乘数的尾数, x3:乘数 ep:乘积的指数, e1:被乘数的指数(2)mp:乘积的尾数, m1:被乘数的尾数, product:乘积, e2:乘数的指数, temp:暂存单元 .title sy27.asm,100 .bss x1,1 .bss x2,1 .bss x

8、3,1 .bss e1,1 .bss m1,1 .bss e2,1 .bss m2,1 .bss e3,1 .bss m3,1 .bss ep,1 .bss mp,1 .bss product,1 .bss temp,1 .word 2*32768/10 ; .word -4*32768/10 ; .word 25*32768/100 ;0.25 .text STM #STACK+100,SP ;设置堆栈指针 LD #x1, DP ;设置DP指针为x1所在页 MVPD table,x1 ;将x1和x2和x3传送到数据存储器 MVPD table+1,x2 MVPD table+2,x3 LD

9、x1,16,A ;将x1规格化为浮点数 EXP A ST T,e1 ;保存x1的指数 NORM A STH A, m1 ;保存x1的尾数 LD x2,16,A ;将x2规格化为浮点数 ST T,e2 ;保存x2的指数 NORM A STH A,m2 ;保存x2的尾数 LD x3,16,A ;将x3规格化为浮点数 ST T,e3 ;保存x3的指数 STH A,m3 ;保存x3的尾数 CALL MULT ;调用浮点乘法子程序 B endMULT:SSBX FRCT SSBX SXM LD e1,A ;指数相加 ADD e2,A ADD e3,A STL A,ep ;乘积指数-ep LD m1,T

10、;尾数相乘 MPY m2,A STL A,m1 LD m1,T MPY m3,A ;乘积尾数在累加器A中 EXP A ;对尾数乘积规格化 ST T,temp ;规格化时产生的指数-temp STH A,mp ;保存乘积尾数在mp中 LD temp,A ;修正乘积指数 ADD ep,A ;(ep)+(temp)-保存乘积指数在ep中 NEG A ;将浮点乘积转换成定点数 STL A,temp ;乘积指数反号,并且加载到T寄存器 LD temp,T ;再将尾数按T移位 LD mp,16,A STH A,product ;保存定点乘积 RET .end实验三 信号发生器设计1设DSP的CPU主时钟频

11、率为100MHz,指令周期为10ns,请说明产生频率为100KHz的周期三角波信号时,应该如何修改主程序。2如果在查找表中放置正弦波一个周期内的360个离散值(在MATLAB中产生),请重写产生正弦波的主程序并仿真。main.asm .mmregs .def _c_int00 .include c54.inc .ref c54initDA_ADDR .set 0x0002 ; 定义符号DA_ADDR表示D/A 端口地址 .datasin_table:在这里放置一个周期的正弦波的360个离散值 .word 0,4,9,13,18,22,27,31 .word 35,40,44,49,53,57,

12、62,66 .word 70,75,79,83,87,91,96,100 .word 104,108,112,116,120,124,128,131 .word 135,139,143,146,150,153,157,160 .word 164,167,171,174,177,180,183,186 .word 190,192,195,198,201,204,206,209 .word 211,214,216,219,221,223,225,227 .word 229,231,233,235,236,238,240,241 .word 243,244,245,246,247,248,249,2

13、50 .word 251,252,253,253,254,254,254,255 .word 255,255,255,255,255,255,254,254 .word 254,253,253,252,251,250,249,248 .word 247,246,245,244,243,241,240,238 .word 236,235,233,231,229,227,225,223 .word 221,219,216,214,211,209,206,204 .word 201,198,195,192,190,186,183,180 .word 177,174,171,167,164,160,1

14、57,153 .word 150,146,143,139,135,131,127,124 .word 120,116,112,108,104,100,96,91 .word 87,83,79,75,70,66,62,57 .word 53,49,44,40,35,31,27,22 .word 18,13,9,4,0,-4,-9,-13 .word -18,-22,-27,-31,-35,-40,-44,-49 .word -53,-57,-62,-66,-70,-75,-79,-83 .word -87,-91,-96,-100,-104,-108,-112,-116 .word -120,-

15、124,-127,-131,-135,-139,-143,-146 .word -150,-153,-157,-160,-164,-167,-171,-174 .word -177,-180,-183,-186,-190,-192,-195,-198 .word -201,-204,-206,-209,-211,-214,-216,-219 .word -221,-223,-225,-227,-229,-231,-233,-235 .word -236,-238,-240,-241,-243,-244,-245,-246 .word -247,-248,-249,-250,-251,-252,

16、-253,-253 .word -254,-254,-254,-255,-255,-255,-255,-255 .word -255,-255,-254,-254,-254,-253,-253,-252 .word -251,-250,-249,-248,-247,-246,-245,-244 .word -243,-241,-240,-238,-236,-235,-233,-231 .word -229,-227,-225,-223,-221,-219,-216,-214 .word -211,-209,-206,-204,-201,-198,-195,-192 .word -190,-18

17、6,-183,-180,-177,-174,-171,-167 .word -164,-160,-157,-153,-150,-146,-143,-139 .word -135,-131,-128,-124,-120,-116,-112,-108 .word -104,-100,-96,-91,-87,-83,-79,-75 .word -70,-66,-62,-57,-53,-49,-44,-40 .word -35,-31,-27,-22,-18,-13,-9,-4 .word -0,0,0,0,0,0,0,0 .bss DA_DATA,1 ;声明变量DA_DATA作D/A缓冲区 .bss

18、 DA_NUM,1 ; 声明变量DA_NUM作D/A计数器 .sect progsys自定义初始化段progsys .align 0x10 ;调整SPC,下面的程序代码放置在存储器中时,起始地址对准16字的边界_c_int00: STM #0x0f80,SP ;设置堆栈指针 CALL c54init ;调整DSP初始化程序,硬件仿真时必须的部分 LD #sin_table ,DP ;设置数据页指针,DP指向sin_table所在的数据存储器页LOOP:周期循环标号 ST #0,DA_NUM ;计数变量清零 STM #sin_table,AR1 ; AR1指向查找表首地址SINLOOP:一个周期

19、内的D/A循环标号 MVDK *AR1+,DA_DATA ;读查找表中的值放入到数据缓冲区DA_DATA中,软件仿真时在此处设置断点 PORTW DA_DATA,DA_ADDR ; 数据缓冲区DA_DATA中的值写到D/A端口,软件仿真时不起作用 RPT #1000 ;下面的一条指令执行1001次 NOP ;空操作,在这里起延时作用 ADDM #1,DA_NUM ; DA_NUM循环计数 CMPM DA_NUM,#359 ; DA_NUM与359比较 BC SINLOOP,NTC ;一个周期内的360个点还没D/A完继续 B LOOP ;一个周期内的360个点已经D/A完,进入周期循环 .en

20、d Memory.cmd/*-e _c_int00*/ -m sensor.map MEMORY PAGE 0: PROG: origin = 0x2000, len = 0x0f80 VECT: origin = 0x2f80, len = 0x80 /*128word*/ PAGE 1: DRAM: origin = 0x3000, len = 0x200SECTIONS .progsys: load = PROG PAGE 0 .vectors: load = VECT PAGE 0 .data : load = DRAM PAGE 1 align 16 .bss : load = DR

21、AM PAGE 1实验四 IIR滤波器的DSP实现思考题:对参考程序,编写实现四阶或更高阶数的低通、高通、带通、带阻IIR数字滤波器的DSP程序并仿真。提示:滤波器系数一般通过MATLAB仿真得到。4阶低通:IIR.asm.mmregs .def startx4 .usect x,1x3 .usect x2 .usect x1 .usect x0 .usect COEF .usect COEF,9indata .usect bufferoutdata .usect *PA0 .set 10*PA1 .set 1table .word 0 ;x(n-1)x(n-2) .word 0;x(n-3)

22、x(n-4)分子系数B3=0 .word 15*32768/10000;B3=0.0015 .word 78*32768/10000;分子系数B2=0.0078 .word 25*32768/10000 ;分子系数B1=0.0025分子系数B0=0 .word 3783*32768/10000;分母系数A4=0.3783 .word -6258*32768/10000 ;分母系数A3=-1.8776/3 .word 88705*32768/100000 ;分母系数A2=3.5482/4 .word -826775*32768/1000000;分母系数A1=-3.0372/4 SSBX FRCT

23、 STM #x4,AR1 RPT #3 MVPD #table,*AR1+ STM #indata,AR5 STM #outdata,AR2 STM #COEF,AR1 RPT #8 MVPD #table+2,*AR1+ STM #x2,AR3 STM #COEF+9,AR4 ;AR4-A1 MVMM AR4,AR1 ;保存地址值在AR1中 STM #5,BK ;设置循环缓冲区长度 STM #-1,AR0 ;设置变址寻址步长IIR2:PORTR PA1,*AR3 ;从PA1口输入数据x(n) MVDD *AR5,*AR3 ;在这里设置断点与探针 LD *AR3+0%,16,A ;计算反馈通道,A=x(n) MAC *AR3,*AR4,A ;A=x(n)+A1*x1A=x(n)+2A1*x1A=x(n)+3A1*x1 MAC *AR3+0%,*AR4-,A ;A=x(n)+3*A1*x1+A1*x1A=x(n)+4*A1*x1+A2*x2A=x(n)+4*A1*x1 +2*A2*x2A=x(n)+4*A1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2