can3.c

来自「实现各种滤波器和改进型」· C语言 代码 · 共 24 行

C
24
字号
/* can3.c - IIR filtering in canonical form, emulating a DSP chip */double can3(M, a, b, w, x)                /* usage: y = can3(M, a, b, w, x); */double *a, *b, *w, x;                     /* \(w\) = internal state vector */int M;                                    /* \(a,b\) have common order \(M\) */{       int i;       double y;       w[0] = x;                                 /* read input sample */       for (i=1; i<=M; i++)                      /* forward order */              w[0] -= a[i] * w[i];               /* MAC instruction */       y = b[M] * w[M];       for (i=M-1; i>=0; i--) {                  /* backward order */              w[i+1] = w[i];                     /* data shift instruction */              y += b[i] * w[i];                  /* MAC instruction */              }       return y;                                 /* output sample */}

⌨️ 快捷键说明

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