1、 DSP原理与应用实验报告 姓名: 学号: 班级: 学院: 指导教师: 实验一 代数汇编指令基础实验 一、实验目的: 1.通过调试目标代码,掌握指令的功能,熟悉指令; 2.通过指令的熟悉,能够指令应用于实际项目中。 二、实验原理: Ti公司的代数汇编指令。 三、实验程序: .title"算术指令综合实验" .mmregs .sect ".vect" .copy "vectors.asm" .text _Start: ; AR7
2、767 ; A=#38CAH ; DP=#08AH ; RSA=#0123H; DP=#188H ; ASM=#0AH AR7=A MMR(*AR7+)=#1234H DP=#04H A=#9876H AR6=#230H *AR6+=#9ACDH ARP=#6 ; @38H=A NOP NOP AR0=#003AH A=*AR6+0 T=#08H SXM=1
3、B=*AR6-< 4、<7
@3AH=A< 5、T=*AR3+
A=#3456H
IF(AGT)*AR4+ =HI(A)< 6、 *AR3=#0F775H
AR5=#024AH
*AR5=#09ACDH
NEXT: NOP
A=#9ABCH
*AR5+ =A
A=A+#1000H
A=A+#08ADEH
SXM=0
A=#07AB8H<<16
A=A+#04ADEH
A=A-#08ADEH<<16
SXM=1
B=#0FF7CH
A=#0889AH
A=A-#09ACDH<<16
B=A-*AR5-
C=1
B=B-A< 7、0
A=DBL(*AR5-)-A
B=B-*AR3+
A=B+*AR5+<<16
A=A-B< 8、BL(*AR5+)
A=A-DBL(*AR5-)
T=#7654H
C16=0
A=DADST(*AR5+,T)
C16=1
A=DSADT(*AR5-,T)
A=DBL(*AR5+)-A
*AR3+ =HI(B)
||B=A+*AR5+0%<<16
*AR4- =HI(A)||A=*AR3-<<16-B
GOTO NEXT
;
SXM=0
A=#89ABH
A=A+#4567H<<16
*AR3=#9999H
A=A&*AR3-
B=#8897H
9、 B=B+#079ADH<<16
A=A|B<<-12
A=#8897H
A=A+#079ADH<<16
A=B^#0567DH<<12
DP=#04
@7AH=@7AHACD6H
.end
四、实验步骤:
1、输入以上程序,并进行编译;
2、打开code Explore,并把编译好的程序装载,并进行调试
3、逐步调试,并观察各种特殊寄存器的值和预期值是否对应,着重了解各种寻址的特点,及相对应的指令。
五、实验心得
第一次实验并没有掌握程序的操作方法以及对于程序的不理解,导致操作不熟练,而且程序错 10、误较多,花费了大量的时间在程序的纠错和调试上。
实验二 DSP FIR 低通滤波器
一、实验目的
1、通过实验程序理解DSP程序的编写。
2、掌握CIC-500系统的A/D转化,串口通信的编程。
3、掌握FIR低通滤波器在DSP中的具体实现,进一步了解各种寻址方式的实际应用。
二、 实验原理
FIR滤波器的主要操作控制为
设计一个低通滤波器,条件如下:
1、采样频率为9.26KHZ,系统工作频率为10MHZ。
2、截至频率为Flpc为1 11、KHZ。
3、输入信号为14位带符号数值。
4、共取80阶点作运算。
滤波器设计好后的系数放在"lp_coeff.asm"文件内其他文件应拷贝到同 一文件夹下。
三、FIR设计方法
1、数字滤波器设计步骤
数字滤波器的实质是一个离散的多项式表达式,通过这个表达式来满足 一定的需求。因此数字滤波器的设计步骤如下:
A、了解滤波器的技术要求
B、实现系数计算
C、实现,即把传函转换为合适的滤波器网络或结构
D、有限字长效应分析,主要考虑滤波器系数、输入数据量化和固定字 长对滤波器性能的影响
E、工程实现
2、滤波器的技术指标
:峰值通带偏差
: 12、阻带偏差
:通带边缘频率
:阻带边缘频率
3、用窗口法设计滤波器的步骤
第一步:指定理想的或期望的滤波器频率响应;
第二步:通过傅立叶反变换求期望的滤波器的冲击响应,
第三步:选择一个满足通带或衰减指标的窗函数,然后利用滤波器长度与过渡带宽之间的关系确定滤波器的系数数目。
第四步:对于选取的窗函数求w(n)的值,并且将的值与w(n)相乘求得实际的FIR系数h(n)。
4、标准频率选择性滤波器的理想冲击响应总结
滤波器类型
低通
高通
-
1-
带通
-
-
带阻
-
1-+
5、常用窗函数及重要特征总结。
窗函数名 13、
归一化过渡带宽(HZ)
通带波纹(dB)
相对于旁瓣的主瓣(dB)
阻带衰减(dB)
窗函数表达式
矩形窗
0.9/N
0.7614
13
21
1
Hanning窗
3.1/N
0.0546
31
44
Hamming窗
3.3/N
0.0194
41
53
布莱克曼
5.5/N
2.93/N
0.0017
0.0274
57
75
50
凯塞
4.32/N
5.71/N
0.00275
0.000275
70
90
四、随机数产生方法
实验程序范例
.title 14、 "low pass filter"
.mmregs
.width 80
.length 55
;.setsect ".text",0x1800,0 ; these assembler directives specify
;.setsect ".data",0x0200,1 ; the absolute addresses of different
;.setsect "vectors",0x01 15、80,0 ; sections of code
.sect "vectors" ; interrupt vector table resides at
.copy "lp_vecs.asm" ; location 0x0180
.data
seed .word 07e6dh ; seed for random variable
temp .word 0
XN .word 0,0,0,0,0,0,0,0,0,0 16、 ; 80 data locations for 80
XN1 .word 0,0,0,0,0,0,0,0,0,0 ; stage delay line.
XN2 .word 0,0,0,0,0,0,0,0,0,0 ;
XN3 .word 0,0,0,0,0,0,0,0,0,0 ;
XN4 .word 0,0,0,0,0,0,0,0,0,0 ;
XN5 .word 0,0,0,0,0,0,0,0,0,0 ;
XN6 .word 0,0,0,0,0,0,0,0,0, 17、0 ;
XN7 .word 0,0,0,0,0,0,0,0,0 ;
XNLAST .word 0 ;
OUTPUT .word 0 ; extra word for the bit bucket
.text
.copy "lp_coeff.asm"
.copy "lp_ac01.asm"
start: intm = 1 ; disable al 18、l interrupts
dcall AC01INIT ; initialize Analog interface.
DP = #0
nop
pmst = #01a0h ; Interrupt pointer maps vectors to page #3 (3*128=180h)
sp = #0ffah ; stack pointer located in Communications Kernal
19、 imr = #240h ; unmask TDM RINT and HPIINT(host port interface)
intm = 0 ; enable all interrupts
WAIT: goto WAIT ; wait for receive interrupt.
receive: DP = #seed ; This sets Data Memory Page Pointer
20、 ; to page XN, which is defined
; earlier in the program.
;--------- random noise Generator (P-5cs Modulator)-------------------
a = @seed << 1
a = @seed ^ a
@temp = a << 2
a = @temp ^ a
21、 a = #8000h & a
a = a + @seed << 16
@seed = hi(a) << 1
a = @seed << 11
a = a & #0fffch << 15
repeat(#12)
a = a < 22、 ; LOAD ACCUMULATOR WITH WORD
; RECEIVED FROM AIC!
@XN = A << 0 ; STORE THE VALUE OF RECEIVED
; WORD TO VARIABLE XN!
AR0 = #XNLAST ; LOAD AR0 WITH ADDRESS OF LAST
23、 ; DELAY ELEMENT!
A = #0 ; ZERO ACCUMULATOR A!
repeat(#79) ; Repeat next instructions 80 times.
macd(*AR0-,h0,A) ; Compute FIR output.
@OUTPUT = hi(A) << 0 ; Store the filter 24、ed input into
; variable OUTPUT.
A = @OUTPUT << 0 ; OUTPUT ==>Accumulator A
A = #0FFFCh & A ; TWO LSB's MUST BE ZERO FOR AIC!
DXR1 = A ; SEND TO TRANSMIT REGISTER!
return_enable 25、 ; Enable interrupts and return
; from interrupt.
transmit: return_enable ; Enable interrupts and return
; from interrupt.
.end
四、实验步骤
1、连接CIC-500 DSP发展实验系统
2、载入程序,从J2端输入音乐,运行一段时间后暂停,观 26、察实验结果。
3、观察不同频宽的音乐,把结果进行比较。
五、实验心得
通过实验了解到了DSP程序的编写和A/D转化,以及串口通信的编程,进一步了解了各种寻址方式的实际应用,依据上次实验的经验,这次的操作过程更为熟练。
实验三 FFT算法的实现
—、实验目的
1. 掌握FFT算法。
2、进一步掌握FFT的DSP编程。
3、指出FFT算法中的各种寻址方式,结合算法掌握寻址方式的使用技巧。
4、 认真分析各功能模块的具体功能,和课堂所讲的算法步骤关联起来。
二、 实验原理
实验原理依据课堂所授的蝶 27、形变换
设计1024个点的FFT变换,输入数据放在in.dat文件里面。在输入实验的时候把bit_rev.asm、 fft.asm unpack.asm、power.asm拷贝至同一个目录下
实验主程序:
.width 80
.length 55
.title"Real Fast Fourier Transfrom"
.mmregs
.copy"vectors.asm"
.copy"initrfft.asm"
.text
start: SP =#BOS
28、 DP =#0
OVM=#0
FRCT=#1
ASM=#0
CALL bit_rev
CALL fft
CALL unpack
CALL power
hangloose:
NOP
goto hangloose
.copy"bit_rev.asm"
.copy"fft.asm"
.copy"unpack.asm"
.cop 29、y"power.asm"
.end
三、实验步骤:
1、认真阅读四个子程序,理解四个子程序的作用
2、认真进行调试,通过时域频域图对比算法的精度
3、认真思考,改进算法。
四、实验心得
掌握FFT算法,以及相关的FFT的DSP编程。认真分析各功能模块的具体功能,和课堂所讲的算法步骤关联起来,通过实验能够了解到FFT算法的一些简单的应用以及算法的运算准则。
实验七 设计PID控制器或设计矩阵乘法程序
— 实验目的
1、根 30、据以前做实验的所培养的经验,写出PID控制器或矩阵乘法程序
二、实验原理
1、PID控制原理
2、矩阵乘法原理
3、矩阵乘法程序
main.asm
.width 80
.length 55
.title"矩阵乘法"
.mmregs
.copy"vectors.asm"
.data
XN .word 1,4,7,2,5,8,3,6,9,1,2,3,4,5,6,7
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
YN .word 1,2,3,4,5,6,7,8,9,1,1,3,2,4,4,2
. 31、text
start:
ar3=#XN
ar4=#YN
ar5=#(YN+17)
sp=#07ffh
bk=#9
call mulx1
call mulx1
call mulx1
call mulx1
wait:
nop
goto wait
mulx1:
call mulad3
ar0=#4
mar(*ar3-0)
call mulad3
ar0=#4
mar(*ar3-0)
call mulad3
ar0=#4
mar(*ar3-0)
call mulad3
return_ena 32、ble
nop
mulad3: a=#0
ar0=#1
repeat(#2)
a=a+ *ar3+* *ar4+0%
*ar5+ =a
nop
return_enable
.end
三、实验步骤
1、首先自己参考前三个程序,设计自己的程序。
2、编译自己的程序,挑出错误,生成目标文件。
3、加载程序,査询数据存储器的内容验证程序是否正确。
四、实验心得
在这几次的实验之后,我对书本上的相关知识有了更深的体会,在最后一个实验操作过程中,矩阵乘法的设计很有难度的,需要我们在充分了解矩阵乘法知识的基础上才能转换成我们所要的4*4矩阵,在多次修改,调试后实验才取得了成功。,
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818