ivfilt.c

来自「LPC 2.4kbps codec meeting Federal Standa」· C语言 代码 · 共 57 行

C
57
字号
/************************************************************************	IVFILT Version 48*************************************************************************   2nd order inverse filter, speech is decimated 4:1** Inputs:*  LEN    - Length of speech buffers*  NSAMP  - Number of samples to filter*  LPBUF  - Low pass filtered speech buffer* Output:*  IVBUF  - Inverse filtered speech buffer*  IVRC   - Inverse filter reflection coefficients (for voicing)*/#include "config.ch"#include "lpcdefs.h"ivfilt( lpbuf, ivbuf, ivrc )float ivbuf[], lpbuf[], ivrc[];{int i, j, k;float r[3], pc1, pc2;/*  Calculate Autocorrelations	*/for(i=0;i<=2;i++)	{	r[i] = 0.;	k = 4*i;	for( j = (i+1)*4+PWLEN-LFRAME;j<=PWLEN;j+=2)	{		r[i] += lpbuf[j]*lpbuf[j-k];	}}/*  Calculate predictor coefficients	*/pc1 = 0.;pc2 = 0.;ivrc[1] = 0.;ivrc[2] = 0.;if(r[0]>0.000001) {	ivrc[1] = r[1]/r[0];	ivrc[2] = (r[2]-ivrc[1]*r[1]) / (r[0]-ivrc[1]*r[1]);	pc1 = ivrc[1] - ivrc[1]*ivrc[2];	pc2 = ivrc[2];}/*  Inverse filter LPBUF into IVBUF	*/for(i=PWLEN+1-LFRAME;i<=PWLEN;i++) {	ivbuf[i] = lpbuf[i] - pc1*lpbuf[i-4] - pc2*lpbuf[i-8];}}

⌨️ 快捷键说明

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