zerofilt.c

来自「语音CELP压缩解压源代码(C语音)」· C语言 代码 · 共 81 行

C
81
字号
/**************************************************************************** ROUTINE*               zerofilt** FUNCTION*               Direct form all-zero filter** SYNOPSIS*               subroutine zerofilt(b, n, z, xy, len)**   formal **                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*	b		real	i	N+1 filter coefficients*	n		int	i	Filter order *	z		real	i/o	N+1 filter delay elements *					(maintained by the user)*	xy		real	i/o	Input/Output data array *	len		int	i	Number of samples to filter*****************************************************************************       * DESCRIPTION**	Nonrecursive all-zero in-place time-domain filter.*	The filter is implemented in a direct form realisation.**               N       -i*       H(z) = SUM b(i)z*              i=0**       x(t) ->---(z0)----- b0 >------+-----> y(t)*                  |                  |*                  z1------ b1 >------+*                  |                  |*                  z2------ b2 >------+*                  |                  |*                  :                  :*                  |                  |*                  zN------ bN >------+****************************************************************************** CALLED BY**	celp	confg	postfilt** CALLS******************************************************************************** REFERENCES**	Oppenheim & Schafer, Digital Signal Processing, PH, 1975, p. 149.***************************************************************************/zerofilt(b, n, z, xy, len)int n, len;float b[], z[], xy[];{  register float ar;  int t, j;  for (t = 0; t < len; t++)  {    z[0] = xy[t];    ar   = 0.0;    for (j = n; j > 0; j--)    {      ar  += z[j] * b[j];      z[j] = z[j-1];    }    xy[t] = ar + z[0] * b[0];  }}

⌨️ 快捷键说明

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