《DSP原理及应用修订版》邹彦主编课后答案个人终极修订版.docx
《《DSP原理及应用修订版》邹彦主编课后答案个人终极修订版.docx》由会员分享,可在线阅读,更多相关《《DSP原理及应用修订版》邹彦主编课后答案个人终极修订版.docx(19页珍藏版)》请在冰豆网上搜索。
《DSP原理及应用修订版》邹彦主编课后答案个人终极修订版
声明:
1、本人知识才能有限,只能按自己认识来判断答案的正误来编写本资料;
2、本资料为?
DSP原理及应用〔修订版〕?
邹彦主编的课后答案,仅作参考作用,不一定代表考试方向。
3、请尊重劳动成果,祝大家考试顺利!
第一章
1、数字信号处理实现方法一般有几种?
答:
课本P2〔2.数字信号处理实现〕
2、简要地表达DSP芯片的开展概况。
答:
课本P2〔1.2.1DSP芯片的开展概况〕
3、可编程DSP芯片有哪些特点?
答:
课本P3〔1.2.2DSP芯片的特点〕
4、什么是哈佛构造和冯诺依曼构造?
他们有什么区别?
答:
课本P3-P4(1.采用哈佛构造〕
5、什么是流水线技术?
答:
课本P5〔3.采用流水线技术〕
6、什么是定点DSP芯片和浮点DSP芯片?
它们各有什么优缺点?
答:
定点DSP芯片按照定点的数据格式进展工作,其数据长度通常为16位、24位、32位。
定点DSP的特点:
体积小、本钱低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。
浮点DSP芯片按照浮点的数据格式进展工作,其数据长度通常为32位、40位。
由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。
但它的硬件构造相对复杂、功耗较大,且比定点DSP芯片的价格高。
通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。
7、DSP技术开展趋势主要表达在哪些方面?
答:
课本P9〔开展技术趋势〕
8、简述DSP系统的构成和工作过程。
答:
课本P10〔系统的构成〕
9、简述DSP系统的设计步骤。
答:
课本P12〔系统的设计过程〕
10、DSP系统有哪些特点?
答:
课本P11〔系统的特点〕
11、在进展DSP系统设计时,应如何选择合理的DSP芯片?
答:
课本P13〔芯片的选择〕
12、TMS320VC5416-160的指令周期是多少毫秒?
它的运算速度是多少MIPS?
解:
f=160MHz,所以;运算速度=160MIPS
第二章
1、TMS320C54x芯片的根本构造都包括哪些局部?
答:
课本P17〔各个局部功能如下〕
2、TMS320C54x芯片的CPU主要由几局部组成?
答:
课本P18〔1.CPU)
3、处理器工作方式状态存放器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间构造有何影响?
答:
课本P34〔PMST存放器各状态位的功能表〕
4、TMS320C54x芯片的内外设主要包括哪些电路?
答:
课本P40〔’C54x的片内外设电路〕
5、TMS320C54x芯片的流水线操作共有多少个操作阶段?
每个操作阶段执行什么任务?
完成一条指令都需要哪些操作周期?
答:
课本P45〔1.流水线操作的概念〕
6、TMS320C54x芯片的流水线冲突是怎样产生的?
有哪些方法可以防止流水线冲突?
答:
由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。
解决的方法:
①由CPU通过延时自动解决;②通过程序解决,如重新安排指令或插入空操作指令。
7、TMS320C54x芯片的串行口有哪几种类型?
答:
课本P42〔TMS320C54x芯片的串行口〕
8、TMS320VC5402共有多少可屏蔽中断?
它们分别是什么?
NMI和RS属于哪一类中断源?
答:
课本P56〔对VC5402来说,这13个中断的硬件名称为......RS和NMI属于外部硬件中断。
)
9、试分析以下程序的流水线冲突,画出流水线操作图。
如何解决流水线冲突?
〔解题时参考课本P52【例】〕
STLMA,AR0
STM#10,AR1
LD*AR1,B
解:
流水线图如以下图:
1
2
3
4
5
6
7
8
9
预取指
取指
译码
寻址
读数
执行
STLMA,AR0
写AR1
预取指
取指
译码
寻址
读数
执行
STM#10,AR1
(1stWord)
写AR2
写AR2
预取指
取指
译码
寻址
读数
执行
STM#10,AR1
(2ndWord)
预取指
取指
译码
寻址
读数
执行
LD*AR1,B
读AR2
解决流水线冲突:
最后一条指令〔LD*AR1,B〕将会产生流水线冲突,在它前面参加一条NOP指令可以解决流水线冲突。
10、试根据等待周期表,确定以下程序段需要插入几个NOP指令。
(流水线等待周期表P53)
①LD@GAIN,T
STM#input,AR1
MPY*AR1+,A
解:
本段程序不需要插入NOP指令〔查等待周期表,对于T字段,后面的存储指令需要参加一个等待周期,由于STM是一条双字指令,隐含1个等待周期,所以不用再插入等待周期〕
②STLMB,AR2
STM#input,AR3
MPY*AR2+,*AR3+,A
解:
本段程序需要在MPY*AR2+,*AR3+,A语句前插入1条NOP指令〔在等待周期表,AR2后面的STM指令不用插入等待,但注2外表在后面的STM指令之前,不能有在执行阶段对,ARx的写操作,而前面的STLM指令正是执行阶段写AR2,所以应插入1个等待周期。
〕
③MAC@x,B
STLMB,ST0
ADD@table,A,B
解:
本段程序需要在ADD@table,A,B语句前插入2条NOP指令
第三章
1、〔1030H〕=0050H,AR2=1040H,AR3=1060H,AR4=1080H。
MVKD1030H,*AR2〔将地址单元1030H中的数据复制到AR2存放器所指向的数据存储单元中去,因为〔1030H〕=0050H,AR2=1040H,执行结果〔1040H〕=0050H,*AR2=0050H〕
MVDD*AR2,*AR3〔在AR2和AR3数据存储器内部传送数据,即AR2指向的存储单元数据=AR3指向的存储单元数据,即:
AR2=1040H,AR3=1060H,所以执行结果〔1040H〕=〔1060H〕=0050H,*AR3=0050H〕
MVDM1060H,AR4〔地址1060H数据向AR4存放器传送数据。
执行结果:
〔1060H〕=AR4=0050H;〕
运行以上程序后,〔1030H〕、〔1040H)、*AR3和*AR4的值分别等于多少?
解:
运行的结果:
(1030H)=0050H,(1040H)=0050H,*AR3=0050H,AR4=0050H
2、〔1080H〕=0020H,〔1081H〕=0030H。
STM#1080H,AR0〔AR0=#1080H〕
STM#1081H,AR1〔AR1=#1081H〕
LD*AR0,16,B〔把存放器AR0指向的地址单元中数据左移16位装入累加器B,这时〔B〕=2000H〕
ADD*AR1,B〔把存放器AR1指向地址单元的数据与累加器B中数据相加传送给B,这时〔B〕=200030H
解:
运行以上程序后,〔B〕=200030H
3、阅读以下程序,分别写出运行结果。
.bssx,4
.data
table:
.word4,8,16,32
……
STM#x,AR1
RPT#2
MVPDtable,*AR1+
解:
数据表table中的常量4传送到以变量x的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+1的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+2的地址为地址的存储单元中;
.bssx,4
.data
table:
.word4,8,16,32
……
STM#x,AR1
RPT#2
MVPDtable,*+AR2
解:
数据表table中的常量4传送到以变量x+1的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+2的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+3的地址为地址的存储单元中;
4、NOP指令不执行任何操作,它起什么作用?
答:
延时作用,在指令中参加NOP指令可以防止流水线冲突。
延时几个周期,防止流水线冲突;需要准确延时程序时,也会用到NOP指令。
5、TMS320C54x的数据寻址方式各有什么特点?
应该应用在什么场合?
答:
课本P89〔本章小结〕
第四章
1、软件开发环境有哪几种?
在非集成开发环境中,软件开发常采用哪些局部?
答:
可以在两种开发环境中进展C54X的开发:
非集成的开发环境和集成的开发环境。
在非集成开发环境中,软件开发常采用:
编辑、汇编、链接、调试等局部。
2、什么是COFF格式?
它有什么特点?
答:
课本P94〔的一般概念〕
3、试说明.text段、.data段和.bbs段分别包含什么内容?
答:
课本P94〔的一般概念〕
4、程序员如何定义自己的程序段?
5、链接器对段是如何处理的?
答:
课本链接器对段的处理〕
6、什么是程序的重新定位?
答:
课本P99〔链接器对程序的重新定位〕
7、宏定义、宏调用和宏展开分别指的是什么?
答:
课本P112〔宏定义和宏调用〕
8、链接器能完成什么工作?
链接器命令文件中,MEMORY命令和SECTIONS命令的任务是什么?
答:
课本P114〔链接器的使用,命令,命令〕
第五章
1、能用伪指令〔如data〕或运算符〔如ADD〕作为标号吗?
为什么?
〔参考课本P126标号区的格式要求〕
2、标号和注释有什么差异?
它们在程序运行中作用一样吗?
答〔参考课本P1291.标号;注释是程序的人选项。
注释可以由ASCII码和空格组成。
注释在汇编源清单中显示,但不影响汇编。
注释在程序中的作用是说明语句的含义,以便对软件进展维护。
〕
3、两个数相乘,假如结果溢出,DSP系统会报警吗?
答:
不会。
当发生溢出时,自动将结果设置为最大或最小值。
4、伪指令起什么作用?
它占用存储空间吗?
答:
伪指令给程序提供数据和控制汇编过程。
答:
它多用于代码编译的,硬件并不认识汇编语言,它们只认机器语言,程序的运行涉及由高级语言汇编成汇编语言,再由汇编语言编译成机器语言,最后由硬件执行机器语言。
编译过程中,伪指令起作用,但是伪指令不产生目的代码,仅仅是帮助编译器准确的把其他指令编译出来。
因此,伪指令在代码编译过程中所起的功能,在程序运行时伪指令已经不存在了,因为代码是编译好后才执行的。
伪指令不占用存储空间。
5、在堆栈操作中,PC当前地址为4020H,SP当前地址为0013H,运行PSHMAR7后,PC和SP的值分别是多少?
〔PSHMAR7是压栈操作〔完成后PC指针+1,堆栈指针SP-1〕
答:
PC=4021H,SP=0012H
6、试编写×(-0.1)的程序代码。
参考程序如下:
.title"FracAmp.asm"
.mmregs
.global_c_int00
.bssx,1
.bssy,1
.bssz,1
.data
AmpCoef:
.word25*32768/100
.word-1*32768/10
.text
_c_int00:
ssbxFRCT
stm#x,ar1
rpt#0x1
mvpd#AmpCoef,*ar1+
stm#x,ar2
stm#y,ar3
mpy*ar2,*ar3,A
sthA,*ar1
Wait:
bWait
.end
7、将定点数用浮点数表示。
解:
A=28H;T=19H
8、试写出以下两条指令的运行结果:
①EXPA
A=FFFD876624T=0000
那么以上指令执行后,A、T的值各是多少?
解:
A=0xFFFD876624;T=5
②NORMB
B=420D0D0D0D,T=FFF9
那么以上指令执行后,B、T的值各是多少?
解:
B=0x841A1A1A,T=FFF9
9、阅读以下程序,写出运行结果。
.bssy,5
table.word1,2,3,4,5
STM#y,AR2
RPT#5
MVPDtable,*AR2+
LD#0,B
LD#81h,AR5〔有误,应改为STM#81H,AR5〕
STM#0,A
STM#4,BRC
STM#y,AR5
RPTBsub-1
ADD*ARM5,B,A
STLA,*AR5+
sub:
LD#0,B
运行以上程序后,〔81H〕,〔82H〕,〔83H〕,〔84H〕和〔85H〕的值分别是多少?
答:
〔81H〕=0001H,〔82H〕=0002H,〔83H〕=0003H,〔84H〕=0004H,〔85H〕=0005H。
10、CALL指令调用子程序与循环语句有什么不同?
答:
CALL指令调用子程序:
课本P135〔子程序调用指令表〕;循环语句:
课本P137〔循环操作程序〕
11、屡次循环嵌套时,可以从最内一层循环直接跳到最外一层循环吗?
假设能,那么采用什么方式呢?
12、在不含循环的程序中,RPTZ#3语句和其前一句、后一句以及后第二句各运行多少次?
答:
RPTZ#3语句和其前一句运行1次,后一句运行3次,后第二句运行1次。
第六章
1、FIR和IIR数字滤波器都有哪些设计方法?
每种设计方法的步骤是什么?
〔参考课本P179~P181〕
2、与FIR滤波器比拟,IIR滤波器有哪些优缺点?
〔参考课本P1676.2IIR滤波器的DSP实现〕
3、二阶IIR滤波器,又称为二阶根本节,其构造图可以分为几种类型?
各有什么特点?
〔参考课本P1681.二阶IIR滤波器〕
4、略
5、FIR滤波器的算法为y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲区和直接寻址的方法实现。
〔参考课本P161~P162,只是对课本一些参数稍作修改便是答案〕
解:
.title“〞
.mmregs
.defstart
x.usect“x〞,5
PA0.set0
PA1.set1
.data
COEF:
.word1*32768/10;定义a4=
.word-3*32768/10;定义a3=-0.3
.word5*32768/10;定义a2=-0.5
.word-3*32768/10;定义a1=-
.word1*32768/10;定义a0=-0.1
.text
start:
SSBXFRCT
STM#x+5,AR2
STM#4,AR0
LD#x+1,DP
PORTRPA1,@x+1
FIR1:
RPTZA,#4
MACD*AR2-,COEF,A
STHA,*AR2
PORTW*AR2+,PA0
BDFIR1
PORTRPA1,*AR2+0
.end
6、试用线性缓冲区和间接寻址方法实现题算法的FIR滤波器。
〔参考课本P162~P163,只是对课本一些参数稍作修改便是答案〕
解:
.title“〞
.mmregs
.defstart
.bssy,1
xn.usect“xn〞,5
b0.usect“a0〞,5
PA0.set0
PA1.set1
.data
table:
.word1*32768/10;定义a4=
.word-3*32768/10;定义a3=-0.3
.word5*32768/10;定义a2=0.5
.word-3*32768/10;定义a1=-
.word1*32768/10;定义a0=0.1
.text
start:
SSBXFRCT
STM#b0,AR1
RPT#4
MVPDtable,*AR1+
STM#xn+4,AR2
STM#b0+4,AR3
STM#5,BK
STM#-1,AR0
LD#xn,DP
PORTRPA1,@xn
FIR2:
RPTZA,#4
MAC*AR2+0%,*AR3+0%,A
STHA,@y
PORTW@y,PA0
BDFIR2
PORTRPA1,*AR2+0%
.end
7、~12、略
第七章
1、试列举主机与PHI通信的连接单元?
并分别说明它们的功能。
〔参考课本’C54x的主机接口〕
2、TMS320C54X的CLKOUT频率为4MHz。
①在SAM工作方式下,主机的时钟频率是多少?
解:
在SAM工作方式下,主机频率可达3.2MHz或。
②在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率有关吗?
答:
在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率无关。
3、试分别说明以下有关定时器初始化和开放定时中断语句的功能。
①STM#0040H,IFR〔课本有误,此处应为STM#0080H,IFR〕解:
去除外部中断2标志位。
②STM#0080H,IMR解:
允许定时器T1或DMAC1中断〔使用哪一种中断由DMA通道优先级和使能控制存放器DMPREC控制。
在复位以后,中断被配置为定时器T1中断〕。
③RSBXINTM解:
使能所有可屏蔽中断。
④STM#0279H,TCR解:
设置定标计数器的值PSC为9;定时器分频系数为9;以PRD中的值加载TIM,以TDDR中的值加载PSC;定时器停顿工作。
4、假设时钟频率是40Mhz,试编写在XF端输出一个周期为2ms的方波程序段。
〔参考课本P207程序,只要将课本程序中STM#1599,TIM0和STM#1599,PRD0改为STM#3999,TIM0和STM#3999,PRD0即可。
注意计算到的Tt=1ms〔高电平和低电平各1ms,故周期为2ms〕。
定时器根本计算公式在课本P206〕
解:
〔定时半周期=CLKOUT*(TDDR+1)*(PRD+1);
1/2T=〔1/40M〕*〔9+1〕*〔3999+1〕=1ms〕
;定时器0存放器地址
TIM0.set0024H
PRD0.set0025H
TCR0.set0026H
;K_TCR0:
设置定时器控制存放器的内容
K_TCR0_SOFT.set0b;Soft=0
K_TCR0_FREE.set1b;Free=1
K_TCR0_PSC.set1001b;PSC=9H
K_TCR0_TRB.set1b;TRB=1
K_TCR0_TSS.set0b;TSS=0
K_TCR0_TDDR.set1001b;TDDR=9
K_TCR0.setK_TCR0_SOFT|K_TCR0_FREE|K_TCR0_PSC|K_TCR0_TRB|K_TCR0_TSS|K_TCR0_TDDR
;初始化定时器0
;Tt=25*(9+1)*(3999+1)=1000000(ns)=1(ms)
STM#0010H,TCR0
STM#3999,TIM0
STM#3999,PRD0
STM#K_TCR0,TCR0
STM#0080H,IFR
STM#0080H,IMR
RSBXINTM
RET
;定时器0的中断效劳子程序:
通过引脚XF给出
t0_flag.usect“vars〞,1;假设t0_flag=1那么XF=1,假设t0_flag=0那么XF=0
time0_rev:
PSHMTRN
PSHMT
PSHMST0
PSHMST1
BITFt0_flag,#1
BCxf_out,NTC
SSBXXF
ST#0,t0_flag
Bnext
xf_out:
RSBXXF
ST#1,t0_flag
next:
POPMST1
POPMST0
POPMT
POPMTRN
RETE
5、TMS320C54x的串口有哪几种类型?
答:
课本P213〔7.3’C54x的串行口〕
6、试表达标准串行接口数据的发送程序。
7、试分别说明以下语句的功能。
①STM#SPCR10,SPSA0
STM#0001H,BSP0
解:
对串口控制存放器SPCR10赋值。
不使用数字循环返回形式,接收数据DRR[1,2]
采用右对齐方式,连续时钟方式,DX使能判断,接收中断由RRDY产生,接收移位存放器未超载,串口接收器准备好,使能串口接收器。
②STM#SPCR20,SPSA0
STM#0081H,BSP0
解:
对串口控制存放器SPCR20赋值。
串口使用软件形式,帧同步逻辑、采样率发生器复位,由发送准备好XRDY驱动发送中断;发送移位存放器为空,发送器未准备好,使能串口发送器。
③STM#SPCR20,SPSA0
ORM#01000001B,BSP0
解:
修改串口控制存放器SPCR20的值。
由采样率发生器产生帧同步信号,使能串口发送器。
8、中断向量TINT=013H,中断向量地址指针IPTR=0111H,求中断向量地址。
解:
中断向量地址=(100010001B)<<9+(10011)<<2=88CCH
第八章
1、一个典型的DSP系统通常有哪些局部组成?
画出原理框图。
答:
〔1〕一个完好的DSP系统通常是由DSP芯片和其他相应的外围器件构成。
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等。
DSP系统的工作过程:
①将输入信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
②经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n)。
③数字信号处理器对x(n)进展处理,得数字信号y(n)。
④经D/A转换器,将y(n)转换成模拟信号;⑤经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
〔2〕原理框图:
课本P267图
2、DSP系统硬件设计过程都有哪些步骤?
答:
第一步:
确定硬件实现方案;第二步:
器件的选择;第三步:
原理图设计;第四步:
PCB设计;第五步:
硬件调试;
3、在TMS320C54x芯片中,能否从一种分频方式直接切换到另一种分频方式,写出切换步骤。
4、一个DSP系统采用TMS320C54x芯片,而其他外部接口芯片采用5V器件,试为该系统设计一个合理的电源。
〔参考课本电源电路的设计〕
5、试为DSP系统设计一个复位电路,要求该电路具有上电复位、手动复位和监视系统运行等功能。
答:
课本P252〔图和图,监视系统:
“看门狗〞电路〕
6、将TMS320C5402芯片从2分频切换到4分频方式,试编写相应的程序。
答: