DSP课后习题答案1精.docx
《DSP课后习题答案1精.docx》由会员分享,可在线阅读,更多相关《DSP课后习题答案1精.docx(13页珍藏版)》请在冰豆网上搜索。
![DSP课后习题答案1精.docx](https://file1.bdocx.com/fileroot1/2022-11/27/15da5a51-27b0-4bd8-8f73-79ee804b3ede/15da5a51-27b0-4bd8-8f73-79ee804b3ede1.gif)
DSP课后习题答案1精
第一章:
答:
数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。
(1在通用的计算机上用软件实现;(2在通用计算机系统中加上专用的加速处理机实现;
(3用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4用通用的可编程DSP芯片实现。
与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5用专用的DSP芯片实现。
在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现(6)用基于通用dsp核的asic芯片实现。
答:
第一阶段,DSP的雏形阶段(1980年前后)。
代表产品:
S2811。
主要用途:
军事或航空航天部门。
第二阶段,DSP的成熟阶段(1990年前后)。
代表产品:
TI公司的TMS320C20主要用途:
通信、计算机领域。
第三阶段,DSP的完善阶段(2000年以后)。
代表产品:
TI公司的TMS320C54主要用途:
各个行业领域。
答:
1、采用哈佛结构
(1)冯。
诺依曼结构,
(2)哈佛结构(3)改进型哈佛结构2、采用多总线结构3.采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的dsp指令6、快速的指令周期7、硬件配置强8、支持多处理器结构9、省电管理和低功耗
答:
哈佛结构:
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯。
诺依曼结构:
该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
区别:
哈佛:
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯:
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
答:
每条指令可通过片内多功能单元完成取指、译码、取操作数和执行等多个步骤,实现多条指令的并行执行,从而在不提高系统时钟频率的条件下减少每条指令的执行时间。
利用这种流水线结构,加上执行重复操作,就能保证在单指令周期内完成数字信号处理中用得最多的乘法-累加运算。
(图)
答:
若数据以定点格式工作的称为定点DSP芯片。
若数据以浮点格式工作的称为浮点DSP芯片。
定点dsp芯片优缺点:
大多数定点dsp芯片称为定点dsp芯片,浮点dsp芯片优缺点:
不同的浮点DSP芯片所采用的浮点格式有所不同,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。
答:
(1)DSP的内核结构将进一步改善
(2)DSP和微处理器的融合(3)DSP和高档CPU的融合(4)DSP和SOC的融合(5)DSP和FPGA的融合(6)实时操作系统RTOS与DSP的结合(7)DSP的并行处理结构(8)功耗越来越低
8、简述dsp系统的构成和工作过程?
答:
DSP系统的构成:
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换
器、数字信号处理器DSP、D/A转换器和低通滤波器等。
DSP系统的工作过程:
①将输入信号x(t经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
②经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n。
③数字信号处理器对x(n进行处理,得数字信号y(n。
④经D/A转换器,将y(n转换成模拟信号;
答:
:
①明确设计任务,确定设计目标②算法模拟,确定性能指令③选择DSP芯片和外围芯片④设计实时的DSP芯片系统⑤硬件和软件调试⑥系统集成和测试。
(图)
答:
(1)接口方便
(2)编程方便(3)具有高速性(4)稳定性好(5)精度高(6)可重复性好(7)集成方便
答:
1、dsp的运算速度2、dsp芯片价格3、dsp芯片运算精度4、dsp芯片的硬件资源5、dsp芯片的开发工具6、dsp芯片的功耗7、其他因素。
第二章
答:
①中央处理器②内部总线结构③特殊功能寄存器④数据存储器RAM⑤程序存储器ROM⑥I/O口⑦串行口⑧主机接口HPI⑨定时器⑩中断系统
答:
①40位的算术运算逻辑单元(ALU)。
②2个40位的累加器(ACCA、ACCB)。
③1个运行-16至31位的桶形移位寄存器。
④17×17位的乘法器和40位加法器构成的乘法器-加法器单元(MAC)。
⑤比较、选择、存储单元(CSSU)。
⑥指令编码器。
⑦CPU状态和控制寄存器。
的存储空间结构各有何影响?
当OVLY=0时,程序存储空间不使用内部RAM。
当OVLY=1时,程序存储空间使用内部RAM。
内部RAM同时被映射到程序存储空间和数据存储空间。
当MP/MC=0时,4000H~EFFFH程序存储空间定义为外部存储器;F000H~FEFFH程序存储空间定义为内部ROM;当MP/MC=1时,4000H~FFFFH程序存储空间定义为外部存储。
DROM=0:
0000H~3FFFH——内部RAM;4000H~FFFFH——外部存储器;DROM=1:
0000H~3FFFH——内部RAM;4000H~EFFFH——外部存储器;F000H~FEFFH——片内ROM;FF00H~FFFFH——保留。
①通用I/O引脚②定时器③时钟发生器④主机接口HPI⑤串行通信接口⑥软件可编程等待状态发生器⑦可编程分区转换逻辑
条指令都需要哪些操作周期?
六个操作阶段:
①预取指P;将PC中的内容加载PAB②取指F;将读取到的指令字加载PB③译码D;若需要,数据1读地址加载DAB;若需要,数据2读地址加载CAB;修正辅助寄存器和堆栈指针④寻址A;数据1加载DB;数据2加载CB;若需要,数据3写地址加载EAB⑤读数R;数据1加载DB;数据2加载CB;若需要,数据3写地址加载EAB;⑥
执行X。
执行指令,写数据加载EB。
答:
’C54x的流水线结构,允许多条指令同时利用CPU的内部资源。
由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。
解决办法①由CPU通过延时自动解决;②通过程序解决,如重新安排指令或插入空操作指令。
为了避免流水冲突,可以根据等待周期表来选择插入的NOP指令的数量。
四种串行口:
标准同步串行口SP,缓冲同步串行口BSP,时分多路串行口TDM,多路缓冲串行口McBSP。
源?
答:
TMS320VC5402有13个可屏蔽中断,RS和NMI属于外部硬件中断。
解:
流水线图如下图:
解决流水线冲突:
最后一条指令(LD*AR1,B)将会产生流水线冲突,在它前面加入一条NOP指令可以解决流水线冲突。
①LD@GAIN,TSTM#input,AR1
MPY*AR1+,A解:
本段程序不需要插入NOP指令
②STLMB,AR2
STM#input,AR3
MPY*AR2+,*AR3+,A解:
本段程序需要在MPY*AR2+,*AR3+,A语句前插入1条NOP指令
③MAC@x,B
STLMB,ST0
ADD@table,A,B解:
本段程序需要在ADD@table,A,B语句前插入2条NOP指令
第三章
运行以上程序后,(80H、(84H)、*AR3和AR4的值分别等于多少?
解:
(80H=50H,(84H=50H,*AR3=50H,AR4=50H
运行以上程序,B等于多少?
答:
(B)=0000000000H
解:
数据表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的地址为地址的存储单元中;
3.5TMS320C54x的数据寻址方式各有什么特点?
应该应用在什么场合?
答:
TMS320C54x有7种基本的数据寻址方式:
立即寻址,绝对寻址,累加器寻址,直接寻址,间接寻址,存储器映像寄存器寻址和堆栈寻址。
1,立即寻址:
其特点是指令中包含有一个固定的立即数,操作数在指令中,因而运行较慢,需要较多的存储空间。
它用于对寄存器初始化。
2,绝对寻址:
可以寻址任一数据存储器中操作数,运行较慢,需要较多的存储空间。
它用于对寻址速度要求不高的场合。
3,累加器寻址:
把累加器内容作为地址指向程序存储器单元。
它用于在程序存储器和数据存储器之间传送数据。
4,直接寻址:
指令中包含数据存储器的低7位和DP或SP结合形成16位数据存储器地址,它寻址速度快,用于对寻址速度要求高的场合。
5,间接寻址:
利用辅助寄存器内容作为地址指针访问存储器,可寻址64千字X16为字数据存储空间中任何一个单元。
它用于按固定步长寻址的场合。
6,堆栈寻址:
用于中断或子程序调用时,将数据保存或从堆栈中弹出。
7,存储器映像寄存器
(MMR)寻址,是基地址为零的直接寻址,寻址速度快,它用于直接用MMR名快速访问数据存储器的0页。
第四章
答:
可以在两种开发环境中进行C54X的开发:
非集成的开发环境和集成的开发环境。
在非集成开发环境中,软件开发常采用:
编辑、汇编、链接、调试等部分。
答:
汇编器和链路器生成的目标文件,是一个可以由'C54x器件执行的文件。
这些目标文件的格式称为公共目标文件格式,即COFF。
特点:
在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程和管理变得更加方便。
3、.text段(文本段,通常包含可执行代码;
.data段(数据段,通常包含初始化数据;
.bss段(保留空间段,通常为未初始化变量保留存储空间。
5、链接器对段是如何处理的?
答:
链接器将一个或多个COFF目标文件中的各种段作为链接器的输入段,经过链接后在一个可执行的COFF输出模块中建立各个输出段,通过情况下是将不同目标文件中的同名段进行合并,并为各个输出段分配进具体的存储器中。
6、答:
将各个段配置到存储器中,使每个段都有一个合适的起始地址;
将符号变量调整到相对于新的段地址的位置;
将引用调整到重新定位后的符号,这些符号反映了调整后的新符号值。
7、
答:
在调用宏之前,必须先定义宏。
可以在源程序的任何位置定义宏,宏定义的所有内容必须包含在同一个文件中。
宏定义可以嵌套,即在一条宏指令中调用其他的宏指令。
在定义宏之后,可在源程序中使用宏名进行宏调用。
8、是什么?
答:
链接器将各个目标文件合并起来,并完成如下工作:
(1)将各个段配置到目标系统的存储器。
(2)对各个符号和段进行重新定位,并给它们指定一个最终的地址。
(3)解决输入文件之间的未定义的外部引用。
MEMORY命令的作用:
MEMORY命令用来建立DSP应用系统中的存储器模型。
通过这条命令,可以定义系统中所包含的各种形式的存储器,以及它们占用的地址范围。
SECTION命令的作用:
说明如何将输入段结合成输出段;在可执行程序中定义输出段;规定输出段在存储器中的存储位置;允许重新命名输出段。
第六章应用程序设计
2、FIR低通滤波器的截止频率为0.2nωπ=,其输出方程为:
79
0((iiynaxni==-∑。
存放079aa-的系数表以及存放数据的循环缓冲区设置在DARAM中,如图6.1所示。
试用
解:
运行Coef.m文件,生成滤波器所需系数文件。
Coef.m文件内容如下:
n=79;
b=fir1(n,0.1;
fid=fopen('FIRCoef.inc','wt';
fprintf(fid,'%s%s%s\n','FIRCoef','.sect','"FIRCOEF"';
fprintf(fid,'%s\n','';
forj=1:
1:
(n+1
fprintf(fid,'%s%6.0f\n','.word',round(b(j*16384;
end
fclose(fid
用循环缓冲区实现的参考程序如下:
;FIR滤波器的参考程序,使用循环缓冲区法。
.title"fir_main.asm"
.mmregs
.global_c_int00
K_FIR_BFFR.set80
K_FIR_INDEX.set1
K_FRAME_SIZE.set256
stack_len.set100
stack.usect"STACK",stack_len
FIR_DP.usect"fir_vars",0
d_filin.usect"fir_vars",1
d_filout.usect"fir_vars",1
fir_coff_table.usect"fir_coff",K_FIR_BFFR
d_data_buffer.usect"fir_bfr",K_FIR_BFFR;buffersizeforthefilter
FIR_Dinbuf.usect"fir_dinbuf",K_FRAME_SIZE
FIR_Doutbuf.usect"fir_doutbuf",K_FRAME_SIZE
.asgAR0,FIR_INDEX_P
.asgAR4,FIR_DATA_P
.asgAR5,FIR_COFF_P
.asgAR6,INBUF_P
.asgAR7,OUTBUF_P
.copy"FIRInput.inc"
.copy"FIRCoef.inc"
.text
_c_int00:
ssbxINTM;INTM=1,禁止所有可屏蔽中断
ssbxFRCT
;--------------------------------------------------------------------
stm#0,CLKMD;切换CPU内部PLL到分频模式
Clk_Status:
ldmCLKMD,A
and#01b,A
bcClk_Status,ANEQ;检查是否已经切换到分频模式?
stm#0x07ff,CLKMD;设置DSP时钟16.384MHZ
;--------------------------------------------------------------------
nop
stm#0x3FF2,PMST
stm#0x7FFF,SWWSR
stm#0xF800,BSCR
stm#0x0000,IMR;禁止所有可屏蔽中断
stm#0xFFFF,IFR;清除中断标志
stm#stack+stack_len,SP;设置堆栈指针
nop
STM#FIR_Dinbuf,AR1
RPT#(K_FRAME_SIZE-1
MVPD#FIRIn,*AR1+;以上3行的功能是把模拟数据拷贝到内存中。
STM#fir_coff_table,FIR_COFF_P
RPT#K_FIR_BFFR-1;
MVPD#FIRCoef,*FIR_COFF_P+;把滤波器常数拷贝到内存中。
STM#K_FIR_INDEX,FIR_INDEX_P
STM#d_data_buffer,FIR_DATA_P;loadcir_bfraddressfortherecentsamples
RPTZA,#K_FIR_BFFR
STLA,*FIR_DATA_P+;清除滤波器缓冲区,所有数据存储单元置0。
STM#(d_data_buffer+K_FIR_BFFR-1,FIR_DATA_P;
STM#fir_coff_table,FIR_COFF_P;AR5指向滤波器系数缓冲区最低地址。
STM#FIR_Dinbuf,INBUF_PAR6指向输入数据缓冲区,准备读入数据。
STM#FIR_Doutbuf,OUTBUF_P;AR7指向输出数据缓冲区,准备读出数据。
;修改数据页指针
LD#FIR_DP,DP
STM#K_FRAME_SIZE-1,BRC;程序执行256次。
RPTBDfir_filter_loop-1
STM#K_FIR_BFFR,BK;
LD*INBUF_P+,A;从输入数据缓冲区读入数据,准备处理。
fir_filter:
STLA,*FIR_DATA_P+%;读入最新数据
RPTZA,(K_FIR_BFFR-1
MAC*FIR_DATA_P+0%,*FIR_COFF_P+0%,A;累加处理。
STHA,*OUTBUF_P+;把数据输出到输出缓冲区,可以验证结果。
fir_filter_loop
WaitbWait
.END
第七章TMS320C54x片内外设、接口及应用
①在SAM工作方式下,主机的时钟频率是多少?
解:
在SAM工作方式下,主机频率可达3.2MHz或2.4MHz。
②在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率有关吗?
答:
在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率无关。
①STM#0004H,IFR
解:
清除外部中断2标志位
②STM#0080H,IMR
解:
允许定时器T1或DMAC1中断(使用哪一种中断由DMA通道优先级和使能控制寄存器DMPREC控制。
在复位以后,中断被配置为定时器T1中断)。
③RSBXINTM
解:
使能所有可屏蔽中断。
④STM#0279H,TCR
解:
设置定标计数器的值PSC为9;定时器分频系数为9;以PRD中的值加载TIM,以TDDR中的值加载PSC;定时器停止工作。
①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的值。
由采样率发生器产生帧同步信号,使能串口发送器。
解:
中断向量地址=(100010001B<<9+(10011<<2=88CCH
第八章
1、一个典型的dsp系统通常有哪些部分组成?
画出原理框图?
答:
一个完整的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。
答:
第一步:
确定硬件实现方案;第二步:
器件的选择;第三步:
原理图设计;第四步:
PCB设计;第五步:
硬件调试;
第九章
工程项目的管理
CCS开发环境对用户系统采用工程项目的集成管理,使用户系统的开发和调试变得简单明了。
在开发过程中,CCS会在开发平台中建立不同独立程序的跟踪信息,通过这些跟踪信息对不同的文件进行分类管理,建立相应的文件库和目标文件。
一个工程项目包括源程序、库文件、链接命令文件和头文件等,它们按照目录树的结构组织在工程项目中。
工程项目构建(编译链接完成后生成可执行文件。
答:
CCS集成开发环境。
此环境集编辑,编译,链接,软件仿真,硬件调试和实时跟踪等功能于一体,包括编辑工具,工程管理工具和调试工具等。
答,只要在该窗口中单击右键就可以打开关联菜单。
答:
标准工具条,编辑工具条,项目工具条和调试工具条
答:
反汇编窗口,存储器窗口,寄存器窗口,观察窗口,
反汇编窗口:
主要用来显示反汇编后的指令和调试所需的符号信息,包括反汇编指令,指令所存放的地址和相应的操作码。
当程序装入目标处理器或仿真器后,CCS会自动打开反汇编窗口。
存储器窗口:
可以直接显示存储器的内容。
在调试程序的过程中,可直接观察存储器的内容来确定程序的正确性。
答:
一个工程项目包括源程序,库文件,链接命令文件和头文件等,它们按照目录树的结构组织在工程项目中。
见课本(P358)
答:
1,编译文件:
编译文件仅完成对当前源文件的编译,不进行链接。
2,增加性构建:
增加性构建仅对修改的源文件进行编译,先前编译过,没有修改的文件不再进行编译。
3,全部重新构建:
是对当前工程项目中的所有文件进行重新编译,重新链接,形成输
出文件。
4,停止构建:
停止当前的构建进程。
答:
CCS开发环境提供了异常丰富的调试手段。
当完成工程项目构建,生成目标文件后,就可以进行程序的调试。
一般的调试步骤为:
1、装入构建好的目标文件;2、设置程序断点,探测点和评价点;3、执行程序;4、程序停留在断点处,查看寄存器和内存单元的数据,并对中间数据进行在线(或输出)分析。
反复上述过程直到程序达到预期的功能为止。
的操作,它们分别是哪些操作?
各有什么不同?
答:
在调试程序的过程中,经常需要复位,执行,单步执行等操作。
1、装载文件2、复位目标处理器3、单步运行4、实时运行
第7章程序
;初始化定时器0
;根据定时长度计算公式:
Tt=T*(TDDR+1*(PRD+1
;给定TDDR=9,PRD=1599,CLKOUT主频f=4MHz,T=250ns
;Tt=250*(9+1*(1599+1=4,000,000(ns=4(ms
STM#1599,TIM0
STM#1599,PRD0
STM#K_TCR0,TCR0;启动定时器0中断
RET
;定时器0的中断服务子程序:
通过引脚XF给出周期为8ms的占空比
;为50%