#include <math.h>
/* apply a filter */
double filter( double s[], double y[],double A[]
double a[],int n, int N)
{
double sum=0.; int k;
for(k=0;k<n;k++) sum += a[k]*s[n-k];
for(k=1;k<N;k++) sum += A[k]*y[N-k];
return (y[n] =sum);
}
/* Set coefficients for two typical low-pass
windowing filters */
/* window size 2n-1 */
hamming(double a[],int n)
{
int k,m=(n<<1)-1;double c;
c=3.14159265358979323/n;
for(k=0;k<m;k++) a[k]=.54+.46*cos( c*k );
}
/* the Hanning window is another possible
winder choice*/
hanning(double a[],int n)
{
int k,m=(n<<1)-1;double c;
c=3.14159265358979323/n;
for(k:0;k<m;k++) a[k]=.5+.5*cos( c*k );
}