收藏 分销(赏)

DSP原理与应用实验报告.doc

上传人:仙人****88 文档编号:9345783 上传时间:2025-03-23 格式:DOC 页数:13 大小:485.50KB
下载 相关 举报
DSP原理与应用实验报告.doc_第1页
第1页 / 共13页
DSP原理与应用实验报告.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
DSP原理与应用实验报告 姓名: 学号: 班级: 学院: 指导教师: 实验一 代数汇编指令基础实验  一、实验目的: 1.通过调试目标代码,掌握指令的功能,熟悉指令; 2.通过指令的熟悉,能够指令应用于实际项目中。 二、实验原理: Ti公司的代数汇编指令。 三、实验程序: .title"算术指令综合实验" .mmregs .sect ".vect" .copy "vectors.asm" .text _Start: ; AR7=#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 B=*AR6-<<TS AR7=#0220H *AR7=#0E5D8H A=*AR7+0B<<-12 @3AH=#665AH AR2=#023AH BK=#0 A=*AR2-0%<<12 BK=#002AH AR3=#0256H *AR3- =HI(B)<<8 ASM=#-8 *AR3+ =A<<ASM AR4=#0216H *AR4=#8775H B=#025AH A=B<<ASM MMR(*AR4+)=B A=MMR(13H) AR2=#0245H *AR2=A<<7 @3AH=A<<ASM *AR2+0%=B<<4 ; *AR2=#1CH ASM=*AR2 T=*AR4+ LTD(*AR2+) B=RND(*AR2+) *AR3=#0F57AH A=UNS(*AR3) B=*AR3+ *AR3+0B=T TRN=#12ACH A=DBL(*AR4+) B=DUAL(*AR2-) DBL(*AR3-)=A DUAL(*AR4+)=B *AR3+ =HI(A)<<ASM||B=*AR2-<<16 *AR2+ =HI(B)<<ASM||T=*AR3+ A=#3456H IF(AGT)*AR4+ =HI(A)<<ASM B=#0F679H IF(BLEQ)*AR3- =HI(B)<<ASM A=#0F98DH IF(AGT)*AR2+ =BRC IF(ALT)*AR3- =T B=#0125CH IF(BGEQ)*AR2+ =BRC CMPS(A,*AR4-) CMPS(B,*AR2+) ; B=@20 DP=#40 A=#1234H @22=A A=A+@9AH @25=A AR3=#0236H *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<<ASM *AR5=A C16=0 A=DBL(*AR5-)-A B=B-*AR3+ A=B+*AR5+<<16 A=A-B<<ASM B=*AR3+<<16-*AR4-<<16 A=A+*AR4<<12 B=A+*AR5<<-12 A=B-#06789H<<16 B=B+*AR7+0B+CARRY A=A-*AR2--BORROW SUBC(@25,A) A=A-UNS(*AR7+) T=#9ACDH B=DADST(*AR4,T) A=DADST(*AR7,T) C16=1 A=A+DBL(*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 B=B+#079ADH<<16 A=A|B<<-12 A=#8897H A=A+#079ADH<<16 A=B^#0567DH<<12 DP=#04 @7AH=@7AH&#0ACD6H .end 四、实验步骤: 1、输入以上程序,并进行编译; 2、打开code Explore,并把编译好的程序装载,并进行调试 3、逐步调试,并观察各种特殊寄存器的值和预期值是否对应,着重了解各种寻址的特点,及相对应的指令。 五、实验心得 第一次实验并没有掌握程序的操作方法以及对于程序的不理解,导致操作不熟练,而且程序错误较多,花费了大量的时间在程序的纠错和调试上。 实验二 DSP FIR 低通滤波器 一、实验目的 1、通过实验程序理解DSP程序的编写。 2、掌握CIC-500系统的A/D转化,串口通信的编程。 3、掌握FIR低通滤波器在DSP中的具体实现,进一步了解各种寻址方式的实际应用。 二、 实验原理 FIR滤波器的主要操作控制为 设计一个低通滤波器,条件如下: 1、采样频率为9.26KHZ,系统工作频率为10MHZ。 2、截至频率为Flpc为1KHZ。 3、输入信号为14位带符号数值。 4、共取80阶点作运算。 滤波器设计好后的系数放在"lp_coeff.asm"文件内其他文件应拷贝到同 一文件夹下。 三、FIR设计方法 1、数字滤波器设计步骤 数字滤波器的实质是一个离散的多项式表达式,通过这个表达式来满足 一定的需求。因此数字滤波器的设计步骤如下: A、了解滤波器的技术要求 B、实现系数计算 C、实现,即把传函转换为合适的滤波器网络或结构 D、有限字长效应分析,主要考虑滤波器系数、输入数据量化和固定字 长对滤波器性能的影响 E、工程实现 2、滤波器的技术指标  :峰值通带偏差 :阻带偏差 :通带边缘频率 :阻带边缘频率 3、用窗口法设计滤波器的步骤  第一步:指定理想的或期望的滤波器频率响应; 第二步:通过傅立叶反变换求期望的滤波器的冲击响应,  第三步:选择一个满足通带或衰减指标的窗函数,然后利用滤波器长度与过渡带宽之间的关系确定滤波器的系数数目。  第四步:对于选取的窗函数求w(n)的值,并且将的值与w(n)相乘求得实际的FIR系数h(n)。 4、标准频率选择性滤波器的理想冲击响应总结 滤波器类型 低通 高通 - 1- 带通 - - 带阻 - 1-+ 5、常用窗函数及重要特征总结。 窗函数名 归一化过渡带宽(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 "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",0x0180,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 ; 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,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 all 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 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 ; 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 a = #8000h & a a = a + @seed << 16 @seed = hi(a) << 1 a = @seed << 11 a = a & #0fffch << 15 repeat(#12) a = a <<C -1 ;-------- get sample and run through lowpass filter --------- b = DRR1 ; 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 ; 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 filtered 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 ; Enable interrupts and return ; from interrupt. transmit: return_enable ; Enable interrupts and return ; from interrupt. .end 四、实验步骤 1、连接CIC-500 DSP发展实验系统 2、载入程序,从J2端输入音乐,运行一段时间后暂停,观察实验结果。 3、观察不同频宽的音乐,把结果进行比较。 五、实验心得 通过实验了解到了DSP程序的编写和A/D转化,以及串口通信的编程,进一步了解了各种寻址方式的实际应用,依据上次实验的经验,这次的操作过程更为熟练。 实验三 FFT算法的实现 —、实验目的 1. 掌握FFT算法。 2、进一步掌握FFT的DSP编程。 3、指出FFT算法中的各种寻址方式,结合算法掌握寻址方式的使用技巧。 4、 认真分析各功能模块的具体功能,和课堂所讲的算法步骤关联起来。 二、 实验原理 实验原理依据课堂所授的蝶形变换  设计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 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" .copy"power.asm" .end 三、实验步骤: 1、认真阅读四个子程序,理解四个子程序的作用 2、认真进行调试,通过时域频域图对比算法的精度 3、认真思考,改进算法。 四、实验心得 掌握FFT算法,以及相关的FFT的DSP编程。认真分析各功能模块的具体功能,和课堂所讲的算法步骤关联起来,通过实验能够了解到FFT算法的一些简单的应用以及算法的运算准则。 实验七 设计PID控制器或设计矩阵乘法程序 — 实验目的 1、根据以前做实验的所培养的经验,写出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 .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_enable nop mulad3: a=#0 ar0=#1 repeat(#2) a=a+ *ar3+* *ar4+0% *ar5+ =a nop return_enable .end 三、实验步骤 1、首先自己参考前三个程序,设计自己的程序。 2、编译自己的程序,挑出错误,生成目标文件。 3、加载程序,査询数据存储器的内容验证程序是否正确。 四、实验心得 在这几次的实验之后,我对书本上的相关知识有了更深的体会,在最后一个实验操作过程中,矩阵乘法的设计很有难度的,需要我们在充分了解矩阵乘法知识的基础上才能转换成我们所要的4*4矩阵,在多次修改,调试后实验才取得了成功。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服