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

📄 gaecua.s54

📁 TI公司DSP/tms320c55x/tms320c54x系列的声学回声消除代码
💻 S54
字号:
*-------------------------------------------------------------------------*
*                                                                         *
*   THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY   *
*   INFORMATION.  IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES:    *
*      "COPYRIGHT 2003 MICHAEL TSIROULNIKOV, ALL RIGHTS RESERVED"         *
*                                                                         *
*-------------------------------------------------------------------------*/
	.mmregs
	.include "gaeci.h54"
	.sect ".ftext3"

;-------------------------------------------------------------------------
	.global				_gaec_utl_avrg
;-------------------------------------------------------------------------
_gaec_utl_avrg
;	S16 *psVal	= a
;	S16	sNew	= sp(1)
;	S16 sCoeff	= sp(2)
;
	stlm	a, ar4
	ssbx	sxm
	ssbx	frct
	ld		*sp(1), 16, a
	sub		*ar4, 16, a
	ld		*ar4, 16, b
	macar	*sp(2)
	sth		b, *ar4
	rsbx	frct
	ret
;-------------------------------------------------------------------------
	.global				_gaec_utl_pen2log
;-------------------------------------------------------------------------
_gaec_utl_pen2log
;	S32 slEn 	= a
;
	ssbx	sxm
	add		#1, a
	exp		a
	ld		#0x780-1024, b
	norm	a
	ld		a, -16, a
	add		a, -5, b
	mac		#-512, b, a
;	sub		#1024, a
	ret
;-------------------------------------------------------------------------
	.global _gaec_utl_en2log
;-------------------------------------------------------------------------
_gaec_utl_en2log
	ssbx	sxm
	add		#1, a
	exp		a
	ld		#0x780-1024-GAEC_1DB*6, b
	norm	a
	ld		a, -16, a
	add		a, -5, b
	mac		#-512, b, a
	ret
;-------------------------------------------------------------------------
	.global				_gaec_utl_pkt_energy
;-------------------------------------------------------------------------
_gaec_utl_pkt_energy
;	S16 *psData
;
;	return S32 En
;
    stlm    a, ar2
    ssbx    sxm
    rptz    b, #(GAEC_FR_SZ/2-1)
        squra    *ar2+, b
    rptz    a, #(GAEC_FR_SZ/2-1)
        squra    *ar2+, a
    bd 		_gaec_utl_pen2log
    ld      a, -2, a
    add     b, -2, a
;-------------------------------------------------------------------------
	.global				_gaec_utl_exp
;-------------------------------------------------------------------------
_gaec_utl_exp
;	S16 slog
;	returns S16 sExp in a
;
	frame	#-1

	ssbx	sxm
	ld		a, -10, b
	ld		a, 2, a
	and		#4095, a
	stl		a, *sp(0)
	squr	*sp(0), a
	ld		a, -13, a
	add		*sp(0), a
	stl		a, *sp(0)
	mpy		*sp(0), #21845, a
	ld		a, -15, a
	stlm	b, t
	add		#4096, a
	norm	a
	frame	#1
	ret

;-------------------------------------------------------------------------
	.global				_gaec_utl_pkt_norm
;-------------------------------------------------------------------------
_gaec_utl_pkt_norm
;	S16 *psData
;
;	return S32 En
;
    stlm    a, ar2
    ssbx    sxm
    rptz    b, #(GAEC_FR_SZ/2-1)
        squra    *ar2+, b
    rptz    a, #(GAEC_FR_SZ/2-1)
        squra    *ar2+, a
    retd
    ld      a, -2, a
    add     b, -2, a
    
	.if 0    
;-------------------------------------------------------------------------
	.global				_gaec_utl_pkt_peak
;-------------------------------------------------------------------------
_gaec_utl_pkt_peak
;	S16 *psIn = a
;
    stlm    a, ar2
    ssbx   sxm
    stm    #GAEC_FR_SZ-1, brc
    ld     #0, a
;
    rptb    L05-1
        ld    *ar2+, b
        abs   b
        max   a             ; a= max(a, b)
L05
	ret
	.endif

⌨️ 快捷键说明

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