polefilt_s.c

来自「this the source code of addio compressio」· C语言 代码 · 共 42 行

C
42
字号
/**************************************************************************
*
* ROUTINE
*               polefilt_S
*
* FUNCTION
*               Direct form all-pole filter
*
* SYNOPSIS
*               subroutine polefilt_S(a, n, z, xy, len)
*
*   formal
*
*                       data    I/O
*       name            type    type    function
*       -------------------------------------------------------------------
*       a               float   i       N+1 filter coefficients
*       n               int     i       Filter order
*       z               float   i/o     N+1 filter delay elements
*                                       (maintained by the user)
*                                       (z[0] is a dummy delay)
*       xy              float   i/o     Input/Output data array
*       len             int     i       Number of samples to filter
*
***************************************************************************/

polefilt_S(a, n, z, xy, len)
int n, len;
float a[], z[], xy[];
{
  register int t, j;

  for (t = 0; t < len; t++)
  {
    z[0] = xy[t];
    for (j = n; j > 0; j--) z[0] -= a[j] * z[j];
    memmove( (char *)(z+1), (char *)(z), n*sizeof(float) );
    xy[t] = z[0];
  }

}

⌨️ 快捷键说明

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