⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdf_ex3_asm.s43

📁 Wave Digital Filtering Using the MSP430
💻 S43
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
;   Lattice Wave Digital Filter to perform Band-pass filtering
;
;   Description: This code implements a 14th order Lattice Wave Digital Filter on 
;                the MSP430FG439. The filter response is Band-pass with the 
;                following specifications. 
;                Sampling frequency               = 8000 Hz
;                Lower stop-band edge frequency   = 700 Hz
;          	 Lower pass-band edge frequency   = 950 Hz
;	         Lower pass-band ripple           = 0.5 dB
;	         Lower stop-band attenuation      = 50 dB
;	         Higher pass-band edge frequency  = 1500 Hz
;	         Higher stop-band edge frequency  = 1850 Hz
;	         Higher pass-band ripple          = 0.5 dB
;	         Higher stop-band attenuation     = 50 dB
;                Filter type                      = Elliptic
;
;
;   K. Venkat
;   Texas Instruments Inc.
;   August 2006
;   Built with IAR Embedded Workbench Version: 3.41A
;*******************************************************************************/

        public wdf_ex3
        
	RSEG CODE
        EXTERN  delay0,delay1,delay2,delay3,delay4,delay5,delay6,delay7,delay8,
        EXTERN  delay11,delay12,delay13,output1, delay9,delay10,output2
wdf_ex3
        ; Filter 1 High Pass LWDF
        ; Top part of Filter 1
        ; Adaptor 0     Type 1      Alpha0=0.214536989729
       
        mov.w     R12, R11          ; R11=Input sample
        sub.w     &delay0,R12       ; R12=P10
        mov.w     R12,R13
        inv.w     R13
        add.w     #1,R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=-X*2^-2-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-4-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X4=X3*2^-3-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X5=X4*2^-3+X
        rra.w     R13
        rra.w     R13               ; Final output=X5*2^-2 
        add.w     &delay0,R13
        mov.w     R13, &delay0      ; Delay0 updated with OUTP20
        sub.w     R12,R13             
        mov.w     R13,R15           ; R15=OUTP10
        
        ; Adaptor 4     Type 1      Alpha4=0.124645154211 
    
        mov.w     &delay3,R12
        sub.w     &delay4,R12       ; R12=P14
        mov.w     R12,R13   
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13       
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13       
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-8+X
        rra.w     R13
        rra.w     R13       
        rra.w     R13               ; Final output=X2*2^-3 
        add.w     &delay4,R13         
        mov.w     R13, &delay4      ; Delay4 updated with OUTP24
        sub.w     R12, R13          ; R13=OUTP14
        mov.w     R13, R14          ; R14=OUTP14
        
        ; Adaptor 3   Type 4        Alpha3=0.148774228233
        
        sub.w     R15,R13           ; R13=P13
        mov.w     R13,R12
        inv.w     R13
        add.w     #1, R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=-X*2^-2-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13       
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-4-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X5=X4*2^-2+X
        rra.w     R13
        rra.w     R13       
        rra.w     R13               ; Final output=X5*2^-3 
        sub.w     R14,R13           ; R13=OUTP23
        mov.w     R13, &delay3      ; Delay3 updated with OUTP23
        sub.w     R12, R13          ; R13=OUTP13
        mov.w     R13, R15          ; R15=OUTP13
        rra.w     R13               ; Divided by 2 as part of WDF algo
        mov.w     R13, &output1     ; Top section output sample stored in Output1 
        
        ; Bottom part of Filter 1
       
        ; Adaptor 2   Type 1        Alpha2=0.067783504612
        
        sub.w     &delay2, &delay1
        mov.w     &delay1, R12      ; R12=P12
        mov.w     R12, R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-2-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-2-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X5=X4*2^-3+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13               ; Final output=X5*2^-4 
        add.w     &delay2, R13      ; R13=OUTP22
        mov.w     R13, &delay2      ; Delay2 updated with OUTP22
        sub.w     R12, R13          ; R13=OUTP12
        mov.w     R13, R15          ; R15=OUTP12

        ; Adaptor 1   Type 4        Alpha1=0.297020251677
        
        sub.w     R11, R13          ; R13=P11
        mov.w     R13, R12
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X1=X*2^-3+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-7-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X3=X2*2^-2+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-2 
        sub.w     R15, R13          ; R13=OUTP21
        mov.w     R13, &delay1      ; Delay1 updated with OUTP21
        sub.w     R12, R13          ; R13=OUTP11
        mov.w     R13, R14          ; R14=OUTP11 
       
       
        ; Adaptor 6   Type 1        Alpha6=0.152259485819
        
        mov.w     &delay5, R13  
        mov.w     &delay6, R12       
        sub.w     R12, R13          ; R13=P16
        mov.w     R13, R12
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-5-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X3=X2*2^-3+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-3 
        add.w     &delay6, R13      ; R13=OUTP26
        mov.w     R13, &delay6      ; Delay6 updated with OUTP26
        sub.w     R12, R13          ; R13=OUTP16
        mov.w     R13,R15           ; R15=OUTP16  
        
        ; Adaptor 5   Type 4        Alpha5=0.041755258515
    
        sub.w     R14, R13          ; R13=P15
        mov.w     R13, R12
        inv.w     R13
        add.w     #1,R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=-X*2^-2-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-2-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-2-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -