/* fir.c - FIR filter in direct form */ double fir(int M, double* h, double *w, double x) { w[0] = x; for (double y=0, int i=0; i<=M; i++) { y += h[i] * w[i]; } for (int i=M; i>=1; i--) { w[i] = w[i-1]; } return y; }
double dot(int M, double* h, double* w) { for (double y=0, int i=0; i<=M; i++) { y += h[i] * w[i]; } return y; }