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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(DSP技术与实验思考题答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP技术与实验思考题答案.docx

1、DSP技术与实验思考题答案DSP实验报告实验一CCS集成开发环境的熟悉思考一:为什么要设置成Address=0x0090?1、主程序中的bss段如下: .bss x,5 ;伪指令。声明数组x,5个字 .bss y,1 ;伪指令。声明变量y,1个字2、数据存储区分配如下:PAGE 1: /*数据存储区*/ SPRAM:org=1000H len=1000H /*定义SPRAM区,起始地址1000H,长度1000H*/3、段分配如下: .bss :SPRAM PAGE 1 /*将.text段映射或定位到PAGE1的SPRAM区*/所以数组x的五个存储单元地址为1000H1004H。4、数据表分配如

2、下:table: .word 10,20,3,4,5 ;伪指令。声明5个16位整数类型的常数。table是标号5、下面的操作是将table中的五个数据装载到变量x中,即存储空间1000H1004H中 STM #x,AR1 ;AR1=#x或AR1指向数组x RPT #4 ;下一条指令重复执行4+1=5次 MVPD table,*AR1+ ;将程序存储器中的table数据表AR1+指向的数据存储器由以上存储结构可知,查看Data的地址空间1000H的内容就是查看数组x中的五个数:10, 20, 3, 4, 5在数据存储器中的存储情况。思考二:为什么.bss的地址是0x1000,变量y的地址是0x1

3、005,变量x的地址又是多少呢? 因为.bss段分配到SPRAM PAGE 1,而SPRAM PAGE 1的起始地址为1000H,所以.bss的地址为0x1000;变量x最先声明,变量y接着声明,而变量x是长度为5的数组,所以变量x占地址0x10000x1004五个地址单元,变量y的地址为0x1005.思考三:为什么要设置成Address=0x0090?1、 程序存储区地址分配如下:PAGE 0: /*程序存储区*/ EPROM:org=0090H len=0F70H /*定义EPROM区,起始地址0090H,长度0F70H*/2、 段分配如下: .text :EPROM PAGE 0 /*将

4、.text段映射或定位到PAGE0的EPROM区*/ 由以上程序结构可知,.text段的起始地址为0090H,查看Program的地址空间中0090H中的的内容就是查看主程序在程序存储其中的内容。思考四:为什么.text段的地址是0x0090?标号end的地址是0x009C?标号SUM的地址是0x009E?标号loop的地址是0x00A2?.data段的地址是0x00A8? 因为.text段被分配到EPROM PAGE 0存储区,而存储区EPROM PAGE 0的首地址被定义为0090H,所以.text段的地址是0x0090;指令STM #0,SWWSR、STM #STACK+10H,sp、S

5、TM #x,AR1各占两个字节,指令RPT #4占一个字节,指令MVPD table,*AR1+占两个字节,指令LD #0,A占一个字节,指令CALL SUM占两个字节,所以标号end的地址为0090H+2+2+2+1+2+1+2=009CH;指令B end占两个字节,所以标号SUM的地址是009CH+2=009EH;指令STM #x,AR3、STM #4,AR2各占两个字节,所以标号loop的地址是009EH +2+2=00A2H;.data段被分配到EPROM PAGE 0存储区,并且在.text后面被指定的,指令ADD *AR3+,A占一个字节,指令BANZ loop,*AR2-占两个字

6、节,指令STL A,*(y)占两个字节,指令RET占一个字节,所以.data段的地址是00A2H+1 +2+2+1= 00A8H。思考五:改变主程序example2.asm中x1x5的值(自定),重新执行911。记录x1x5、y的值并验算。1、x1x5的值修改如下:2、 运行结果y的值如下:思考六:修改example2.cmd(自定义存储器配置及段的定位),重新执行911。记录程序、数据、标号、中断矢量的地址空间。1、存储器配置及段定位修改如下:2、修改后数据存储器如下: 修改后程序存储器标号位置如下:实验二 算术运算与数据操作的汇编语言程序设计实验编程练习一:编写程序,计算y=x1+x2+x

7、10 (xi的值自己定义 )。编程练习二:编写程序,计算y= a1x1 + a2x2 + a40x40 (aixi的值自己定义 )。编程练习三:编写程序,用长字运算指令实现Z32=X32+Y32;用并行运算指令实现z=x+y和f=e+d。编程练习四:编制程序,计算y= a1x1 + a2x2 + a10x10,其中数据均为小数(aixi的值自己定义 )。 .title example4.asm .mmregsSTACK .usect STACK,10H .bss a,10 .bss x,10 .bss y,1 .def start .datatable: .word 1*32768/10 ;0

8、.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 5*32768/10 ;0.5 .word 7*32768/10 ;0.7 .word 1*32768/10 ;0.1 .word 2*32768/10 ;0.2 .word -3*32768/10 ;-0.3 .word 4*32768/10 ;0.4 .wo

9、rd 8*32768/10 ;0.8 .word 6*32768/10 ;0.6 .word -4*32768/10 ;-0.4 .word -2*32768/10 ;-0.2 .word 5*32768/10 ;0.5 .word 7*32768/10 ;0.7 .textstart: SSBX FRCT STM #a,AR1 RPT #19 MVPD table,*AR1+ STM #x,AR2 STM #a,AR3 RPTZ A,#9 MAC *AR2+,*AR3+,A STH A,*(y)end: B end .end编程练习五:分别编写程序,计算(-0.24)0.48和1024128

10、。1、计算(-0.24)0.48 .title example5.asm .mmregsSTACK .usect STACK,10H .bss num,1 ;分子 .bss den,1 ;分母 .bss quot,1 ;商 .datatable: .word 24*32768/100 ;-128 .word 48*32768/100 ;1024 .def start .textstart: LD #0020H,DP ;设置数据页指针,使DP指向第31页(1000H处) STM #num,AR1 RPT #1 MVPD table,*AR1+ ;传送2个数据至分子、分母 LD den,16,A

11、;将分母移到累加器A(3116) MPYA num ;(num)*(A(3116)-B,获取商的符号 ;(在累加器B中) ABS A ;分母取绝对值 STH A,den ;分母取绝对值存回原处 LD num,16,A ;将分子移到累加器A(3216) ABS A ;分子取绝对值 RPT #14 ;15次减法循环,完成除法 SUBC den,A XC 1,BLT ;如果BB,获取商的符号 ;(在累加器B中) ABS A ;分母取绝对值 STH A,den ;分母取绝对值存回原处 LD num,A ;将分子移到累加器A(3216) ABS A ;分子取绝对值 RPT #15 ;16次减法循环,完成

12、除法 SUBC den,A XC 1,BLT ;如果Bep LD m1,T ;尾数相乘 MPY m2,A ;乘积尾数在累加器A中 EXP A ;对尾数乘积规格化 ST T,temp ;规格化时产生的指数-temp NORM A STH A,mp ;保存乘积尾数在mp中 LD temp,A ;修正乘积指数 ADD ep,A ;(ep)+(temp)-ep STL A,ep ;保存乘积指数在ep中 NEG A ;将浮点乘积转换成定点数 STL A,temp ;乘积指数反号,并且加载到T寄存器 LD temp,T ;再将尾数按T移位 LD mp,16,A NORM A STH A,product ;

13、保存定点乘积 RET .end实验三 信号发生器设计思考一:设DSP的CPU主时钟频率为100MHz,指令周期为10ns,请说明产生频率为100KHz的周期三角波信号时,应该如何修改主程序。 .mmregs .def _c_int00 .include c54.inc .ref c54initDA_ADDR .set 0x0002 ; 定义符号DA_ADDR表示D/A 端口地址 .datasin_table: ;在这里放置一个周期的正弦波的64个离散值 .word 0,1,2,3,4,5,6,7 .word 8,9,10,11,12,13,14,15 .word 16,17,18,19,20,

14、21,22,23 .word 24,25,26,27,28,29,30,31 .word 32,31,30,29,28,27,26,25 .word 24,23,22,21,20,19,18,17 .word 16,15,14,13,12,11,10,9 .word 8,7,6,5,4,3,2,1 .bss DA_DATA,1 ;声明变量DA_DATA作D/A缓冲区 .bss DA_NUM,1 ; 声明变量DA_NUM作D/A计数器 .sect progsys ;自定义初始化段progsys .align 0x10 ;调整SPC,下面的程序代码放置在存储器中时,起始地址对准16字的边界_c_i

15、nt00: STM #0x0f80,SP ;设置堆栈指针 CALL c54init ;调整DSP初始化程序,硬件仿真时必须的部分 LD #sin_table ,DP ;设置数据页指针,DP指向sin_table所在的数据存储器页LOOP: ;周期循环标号 ST #0,DA_NUM ;计数变量清零 STM #sin_table,AR1 ; AR1指向查找表首地址SINLOOP: ;一个周期内的D/A循环标号 MVDK *AR1+,DA_DATA ;读查找表中的值放入到数据缓冲区DA_DATA中,软件仿真时在此处设置断点 PORTW DA_DATA,DA_ADDR ; 数据缓冲区DA_DATA中的

16、值写到D/A端口,软件仿真时不起作用 RPT #1000 ;下面的一条指令执行1001次 NOP ;空操作,在这里起延时作用 ADDM #1,DA_NUM ; DA_NUM循环计数 CMPM DA_NUM,#63 ; DA_NUM与63比较 BC SINLOOP,NTC ;一个周期内的64个点还没D/A完继续 B LOOP ;一个周期内的64个点已经D/A完,进入周期循环.end思考二:如果在查找表中放置正弦波一个周期内的360个离散值(在MATLAB中产生),请重写产生正弦波的主程序并仿真。 .mmregs .def _c_int00 .include c54.inc .ref c54ini

17、tDA_ADDR .set 0x0002 ; 定义符号DA_ADDR表示D/A 端口地址 .datasin_table: ;在这里放置一个周期的正弦波的64个离散值 .word 255,259,264,268,273,277,282,286,290,295,299,304,308,312,317,321,325,330,334,338,342,346,351,355,359,363,367,371,375,379,383,386,390,394,398,401,405,408,412,415,419,422,426,429,432,435,438,441,445,447,450,453,456

18、,459,461,464,466,469,471,474,476,478,480,482,484,486,488,490,491,493,495,496,498,499,500,501,502,503,504,505,506,507,508,508,509,509,509,510,510,510,510,510,510,510,509,509,509,508,508,507,506,505,504,503,502,501,500,499,498,496,495,493,491,490,488,486,484,482,480,478,476,474,471,469,466,464,461,459

19、,456,453,450,447,445,441,438,435,432,429,426,422,419,415,412,408,405,401,398,394,390,386,383,379,375,371,367,363,359,355,351,346,342,338,334,330,325,321,317,312,308,304,299,295,290,286,282,277,273,268,264,259,255,251,246,242,237,233,228,224,220,215,211,206,202,198,193,189,185,180,176,172,168,164,159

20、,155,151,147,143,139,135,131,128,124,120,116,112,109,105,102,98,95,91,88,84,81,78,75,72,69,65,63,60,57,54,51,49,46,44,41,39,36,34,32,30,28,26,24,22,20,19,17,15,14,12,11,10,9,8,7,6,5,4,3,2,2,1,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,6,7,8,9,10,11,12,14,15,17,19,20,22,24,26,28,30,32,34,36,39,41,44,46,49,51,

21、54,57,60,63,65,69,72,75,78,81,84,88,91,95,98,102,105,109,112,116,120,124,127,131,135,139,143,147,151,155,159,164,168,172,176,180,185,189,193,198,202,206,211,215,220,224,228,233,237,242,246,251,255 .bss DA_DATA,1 ;声明变量DA_DATA作D/A缓冲区 .bss DA_NUM,1 ; 声明变量DA_NUM作D/A计数器 .sect progsys ;自定义初始化段progsys .ali

22、gn 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: ;一个周期内的D/A循环标号 MVDK *AR1+,DA_DATA ;读查找表中的值放入到数据缓冲区DA_DATA中,软件仿真

23、时在此处设置断点 PORTW DA_DATA,DA_ADDR ; 数据缓冲区DA_DATA中的值写到D/A端口,软件仿真时不起作用 RPT #100 ;下面的一条指令执行1001次 NOP ;空操作,在这里起延时作用 ADDM #1,DA_NUM ; DA_NUM循环计数 CMPM DA_NUM,#359 ; DA_NUM与63比较 BC SINLOOP,NTC ;一个周期内的64个点还没D/A完继续 B LOOP ;一个周期内的64个点已经D/A完,进入周期循环.end实验四 IIR滤波器的DSP实现思考题一:编写程序实现八阶低通IIR数字滤波器的DSP程序并仿真 *用双操作数指令实现二阶低

24、通IIR滤波器 *反馈通道:x0=w(n)=x(n)+A1*x1+A2*x2 前向通道:y(n)=B0*x0+B1*x1+B2*x2 * .title IIR_filter.asm .mmregs .def startindata .usect buffer,1outdata .usect buffer,1x8 .usect x,1x7 .usect x,1x6 .usect x,1x5 .usect x,1x4 .usect x,1x3 .usect x,1x2 .usect x,1x1 .usect x,1x0 .usect x,1COEF .usect COEF,18*PA0 .set 10*PA1 .set 1 .datatable .word 0 ;x(n-1) .word 0 ;x(n-2) .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 47*32768/10000 ;分子系数B2=0.0676 .word 376*32768/10000;分子系数B1=0.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1