confg.c

来自「4.8kcelp语音压缩编码程序」· C语言 代码 · 共 79 行

C
79
字号
/**************************************************************************** ROUTINE*               confg** FUNCTION*               computes initial states (direct form filters)** SYNOPSIS**       subroutine confg(s,l,d1,d2,d3,d4,isw1,isw2,isw3,isw4)**   formal **                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*	s(l)		float	i	speech or residual segment*	l		int	i	segment size*	d1		float	i/o	memory 1/P(z)*	d2		float	i/o	memory 1/A(z)*	d3		float	i/o	memory A(z)*	d4		float	i/o	memory 1/A(z/gamma)*	isw1		int	i	= 1 enable 1/P(z)*	isw2		int	i	= 1 enable 1/A(z)*	isw3		int	i	= 1 enable A(z)*	isw4		int	i	= 1 enable 1/A(z/gamma)**   external *                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*	idb			i*	no			i*	bb[]			i*	e0[]			i/o*	fc[]			i*	gamma2		i****************************************************************************** CALLED BY**	csub	fndpp** CALLS**	bwexp	zerofilt	polefilt	pitchvq***************************************************************************/#include "ccsub.h"extern int idb, no;extern float bb[MAXNP+1], e0[MAXLP], fc[MAXNO+1], gamma2;confg(s,l,d1,d2,d3,d4,isw1,isw2,isw3,isw4)int l, isw1, isw2, isw3, isw4;float s[], d1[],d2[],d3[],d4[];{  float fctemp[MAXNO+1];  int i;  setr(MAXNO+1, 0.0, fctemp);  if (isw1 != 0)    pitchvq(e0, l, d1, idb, bb, "long");  if (isw2 != 0)    polefilt(fc, no, d2, e0, l);  for (i = 0; i < l; i++)    e0[i] = s[i] - e0[i];  if (isw3 != 0)    zerofilt(fc,no,d3,e0,l);  if (isw4 != 0)  {    bwexp(gamma2, fc, fctemp, no);    polefilt(fctemp, no, d4, e0, l);  }}

⌨️ 快捷键说明

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