[an error occurred while processing this directive]
|
buflen - длина фильтра.
unsigned char low_pass_filter (unsigned char sample)
{
unsigned char i;
unsigned long int out_lp;out_lp=0;
buffer_lp[offset_input]=sample;
ncyc=offset_input+1;
for (i=0;i<ncyc;i++) out_lp=out_lp + (unsigned long int)buffer_lp[(offset_input-i)]*coeffs_lp[i];
ncyc=buflen-offset_input-1;
for (i=0;i<ncyc;i++) out_lp=out_lp + (unsigned long int)buffer_lp[(buflen-1-i)]*coeffs_lp[i];
offset_input++;
if(offset_input>=buflen) offset_input-=buflen;
return (out_lp>>12);
}