example 6-16.c
来自「TI_DSP在音频处理中的应用,滤波器算法等各种常用算法。」· C语言 代码 · 共 36 行
C
36 行
; Example 6 - 16. Residu Implementation C Listing Using Intrisics for the TMS320C62x DSP
#define L_add(a,b) (_sadd((a),(b)))
#define L_mult(a,b) (_smpy((a),(b)))
#define extract_h(a) (_extu(a,0,16))//((unsigned)(a)>>16)
#define L_shl(a,b) ((b) < 0 ? (a) >> (– b) : s_shl((a),(b)))
#define round(a) ((unsigned)(_sadd((a),0x8000))>>16)
#define m 10 /* m = LPC order == 10 */
typedef short Word16;
typedef int Word32;
void Residu (
Word16 a[], /* (i) : prediction coefficients */
Word16 x[], /* (i) : speech signal */
Word16 y[], /* (o) : residual signal */
Word16 lg /* (i) : size of filtering */
)
void main()
{
Word16 i, j;
Word32 s;
for (i = 0; i < lg; i++){
s = L_mult(x[i], a[0]);
for (j = 1; j <= m; j++){
s = L_mac(s, a[j], xi[–j]);
}
s = L_shl (s, 3);
y[i] = round (s);
}
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?