当前位置:文档之家› DSP原理与应用实验报告

DSP原理与应用实验报告

DSP原理与应用实验报告姓名:学号:班级:学院:指导教师:实验一代数汇编指令基础实验一、实验目的:1.通过调试目标代码,掌握指令的功能,熟悉指令;2.通过指令的熟悉,能够指令应用于实际项目中。

二、实验原理:Ti公司的代数汇编指令。

三、实验程序:.title"算术指令综合实验".mmregs.sect ".vect".copy "vectors.asm".text_Start:;AR7=#767 ;A=#38CAH ;DP=#08AH ;RSA=#0123H;DP=#188H ;ASM=#0AHAR7=AMMR(*AR7+)=#1234HDP=#04HA=#9876HAR6=#230H*AR6+=#9ACDHARP=#6;@38H=ANOPNOPAR0=#003AHA=*AR6+0T=#08HSXM=1B=*AR6-<<TSAR7=#0220H*AR7=#0E5D8HA=*AR7+0B<<-12@3AH=#665AHAR2=#023AHBK=#0A=*AR2-0%<<12BK=#002AHAR3=#0256H*AR3- =HI(B)<<8ASM=#-8*AR3+ =A<<ASMAR4=#0216H*AR4=#8775HB=#025AHA=B<<ASMMMR(*AR4+)=BA=MMR(13H)AR2=#0245H*AR2=A<<7@3AH=A<<ASM*AR2+0%=B<<4;*AR2=#1CHASM=*AR2T=*AR4+LTD(*AR2+)B=RND(*AR2+)*AR3=#0F57AHA=UNS(*AR3)B=*AR3+*AR3+0B=TTRN=#12ACHA=DBL(*AR4+)B=DUAL(*AR2-)DBL(*AR3-)=ADUAL(*AR4+)=B*AR3+=HI(A)<<ASM||B=*AR2-<<16 *AR2+=HI(B)<<ASM||T=*AR3+A=#3456HIF(AGT)*AR4+=HI(A)<<ASMB=#0F679HIF(BLEQ)*AR3-=HI(B)<<ASMA=#0F98DHIF(AGT)*AR2+ =BRCIF(ALT)*AR3- =TB=#0125CHIF(BGEQ)*AR2+ =BRCCMPS(A,*AR4-)CMPS(B,*AR2+);B=@20DP=#40A=#1234H@22=AA=A+@9AH@25=AAR3=#0236H*AR3=#0F775HAR5=#024AH*AR5=#09ACDH NEXT: NOPA=#9ABCH*AR5+ =AA=A+#1000HA=A+#08ADEHSXM=0A=#07AB8H<<16A=A+#04ADEHA=A-#08ADEH<<16SXM=1B=#0FF7CHA=#0889AHA=A-#09ACDH<<16B=A-*AR5-C=1B=B-A<<ASM*AR5=AC16=0A=DBL(*AR5-)-AB=B-*AR3+A=B+*AR5+<<16A=A-B<<ASMB=*AR3+<<16-*AR4-<<16A=A+*AR4<<12B=A+*AR5<<-12A=B-#06789H<<16B=B+*AR7+0B+CARRYA=A-*AR2--BORROWSUBC(@25,A)A=A-UNS(*AR7+)T=#9ACDHB=DADST(*AR4,T)A=DADST(*AR7,T)C16=1A=A+DBL(*AR5+)A=A-DBL(*AR5-)T=#7654HC16=0A=DADST(*AR5+,T)C16=1A=DSADT(*AR5-,T)A=DBL(*AR5+)-A*AR3+ =HI(B)||B=A+*AR5+0%<<16*AR4-=HI(A)||A=*AR3-<<16-BGOTO NEXT;SXM=0A=#89ABHA=A+#4567H<<16*AR3=#9999HA=A&*AR3-B=#8897HB=B+#079ADH<<16A=A|B<<-12A=#8897HA=A+#079ADH<<16A=B^#0567DH<<12DP=#04@7AH=@7AH&#0ACD6H.end四、实验步骤:1、输入以上程序,并进行编译;2、打开code Explore,并把编译好的程序装载,并进行调试3、逐步调试,并观察各种特殊寄存器的值和预期值是否对应,着重了解各种寻址的特点,及相对应的指令。

五、实验心得第一次实验并没有掌握程序的操作方法以及对于程序的不理解,导致操作不熟练,而且程序错误较多,花费了大量的时间在程序的纠错和调试上。

实验二 DSP FIR 低通滤波器一、实验目的1、通过实验程序理解DSP 程序的编写。

2、掌握CIC-500系统的A/D 转化,串口通信的编程。

3、掌握FIR 低通滤波器在DSP 中的具体实现,进一步了解各种寻址方式的实际应用。

二、 实验原理FIR 滤波器的主要操作控制为[]k y =[][]11-∑-=k x i h N i设计一个低通滤波器,条件如下:1、采样频率为9.26KHZ ,系统工作频率为10MHZ 。

2、截至频率为Flpc 为1KHZ 。

3、输入信号为14位带符号数值。

4、共取80阶点作运算。

滤波器设计好后的系数放在"lp_coeff.asm"文件内其他文件应拷贝到同 一文件夹下。

三、FIR 设计方法1、数字滤波器设计步骤数字滤波器的实质是一个离散的多项式表达式,通过这个表达式来满足 一定的需求。

因此数字滤波器的设计步骤如下: A 、了解滤波器的技术要求 B 、实现系数计算C 、实现,即把传函转换为合适的滤波器网络或结构D 、有限字长效应分析,主要考虑滤波器系数、输入数据量化和固定字 长对滤波器性能的影响E 、工程实现2、滤波器的技术指标p δ:峰值通带偏差s δ:阻带偏差p ω:通带边缘频率 s ω:阻带边缘频率3、用窗口法设计滤波器的步骤第一步:指定理想的或期望的滤波器频率响应()ωD H ;第二步:通过傅立叶反变换求期望的滤波器的冲击响应, 第三步:选择一个满足通带或衰减指标的窗函数,然后利用滤波器长度与过渡带宽之间的关系确定滤波器的系数数目。

第四步:对于选取的窗函数求w(n)的值,并且将()n h D 的值与w(n)相乘求得实际的FIR实验程序范例.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.dataseed .word 07e6dh ; seed for random variabletemp .word 0XN .word 0,0,0,0,0,0,0,0,0,0 ; 80 data locations for 80XN1 .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 interruptsdcall AC01INIT ; initialize Analog interface.DP = #0noppmst = #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 interruptsWAIT: 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 << 1a = @seed ^ a@temp = a << 2a = @temp ^ aa = #8000h & aa = a + @seed << 16@seed = hi(a) << 1a = @seed << 11a = a & #0fffch << 15repeat(#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 AA = #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端输入音乐,运行一段时间后暂停,观察实验结果。

相关主题