⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zerofilt.c

📁 this the source code of addio compression standard CELP. Also, it is optimizied for the execution sp
💻 C
字号:
/**************************************************************************
*
* 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
*
***************************************************************************/

#include <string.h>
zerofilt(b, n, z, xy, len)
int n, len;
float b[], z[], xy[];
{
/*
  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];
  }
*/
  size_t  n_size = 40;
  register float ar;
#define   STEP(K)          z[0] = xy[K]; \
                            ar  = 0.0;    \
                            ar += b[0] * z[0];\
                            ar += b[1] * z[1];\
                            ar += b[2] * z[2];\
                            ar += b[3] * z[3];\
                            ar += b[4] * z[4];\
                            ar += b[5] * z[5];\
                            ar += b[6] * z[6];\
                            ar += b[7] * z[7];\
                            ar += b[8] * z[8];\
                            ar += b[9] * z[9];\
                            ar += b[10] * z[10];\
                            xy[K] = ar;\
memmove( (char *)(z+1), (char *)(z), n_size);

        STEP(0);  STEP(1);  STEP(2);  STEP(3);  STEP(4);  STEP(5);
        STEP(6);  STEP(7);  STEP(8);  STEP(9);  STEP(10); STEP(11);
        STEP(12); STEP(13); STEP(14); STEP(15); STEP(16); STEP(17);
        STEP(18); STEP(19); STEP(20); STEP(21); STEP(22); STEP(23);
        STEP(24); STEP(25); STEP(26); STEP(27); STEP(28); STEP(29);
        STEP(30); STEP(31); STEP(32); STEP(33); STEP(34); STEP(35);
        STEP(36); STEP(37); STEP(38); STEP(39); STEP(40); STEP(41);
        STEP(42); STEP(43); STEP(44); STEP(45); STEP(46); STEP(47);
        STEP(48); STEP(49); STEP(50); STEP(51); STEP(52); STEP(53);
        STEP(54); STEP(55); STEP(56); STEP(57); STEP(58); STEP(59);
}

⌨️ 快捷键说明

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