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

📄 exp3d_iir.asm

📁 TI的DSP C55X的应用程序
💻 ASM
字号:
;----------------------------------------------
;
;   exp3d_IIR.asm
;	
;   4th Order IIR filter
;
;---------------------------------------------- 

MASK .set 0xFFFF

    .def  _iir4
    .def  _init_iir4

;
;   Original coefficients 0-1800Hz 4th order IIR LPF
;   with sampling frequency 8000Hz
;
;   int b[5]={0.0072, 0.00287, 0.0431, 0.0287, 0.0072};
;   int a[5]={1.0000, -2.16860,2.0097,-0.8766, 0.1505};
;                               
   .data
;   Q13 formatted coefficients 
;
coeff ; b0, b1, b2, b3, b4
      .word 0x003B&MASK, 0x00EB&MASK
      .word 0x0161&MASK, 0x00EB&MASK, 0x003B&MASK
      ; -a1, -a2, -a3, -a4
      .word 0x4564&MASK, -0x404F&MASK 
      .word 0x1C0D&MASK, -0x04D1&MASK

    .bss  x,5          ; x delay line
    .bss  y,4          ; y delay line


    .text                              
_init_iir4                 
    pshboth XAR5
	nop
	nop
	nop
    amov    #x,XAR5      
    rpt     #4
    mov     #0,*AR5+
    amov    #y,XAR5  		
    rpt     #3
    mov     #0,*AR5+
    popboth XAR5	
    ret
	    
;
;   4th Order IIR filter
;   Entry T0 = sample
;   Exit T0 = filtered sample
;

_iir4           
    pshboth XAR5	
    pshboth XAR6

    bset    SATD     
    bset    SXM  
	
    amov    #x,XAR5   
    amov    #y,XAR6    
    amov    #coeff,XCDP
	
    bset    FRCT 
||  mov     T0,*AR5         ; x[0] = indata
      
;
;   Perform IIR filter
;
    mpym    *AR5+,*CDP+,AC0 ; AC0=x[0]*bn[0]
||  rpt	#3              ; i=1,2,3,4
    macm    *AR5+,*CDP+,AC0 ; AC0+=x[i]*bn[i]

    rpt     #3              ; i=0,1,2,3
    macm    *AR6+,*CDP+,AC0 ; AC0+=y[i]*an[i]
    amov    #y+2,XAR5
    amov    #y+3,XAR6

    sfts    AC0,#2         ; Scale to Q15 format
||  rpt     #2
    mov     *AR5-,*AR6-    ; Update y[]

    mov     hi(AC0),*AR6 
||  mov     hi(AC0),T0      ; Return y[0] in T0

    amov    #x+3,XAR5
    amov    #x+4,XAR6

    bclr    FRCT	
||  rpt     #3
    mov     *AR5-,*AR6-    ; Update x[]
	
    popboth XAR6 
    popboth XAR5  

    bclr    SXM
    bclr    SATD
||  ret
	
    .end

⌨️ 快捷键说明

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