低通巴特沃斯滤波C语言实现
二阶低通巴特沃斯滤波C语言实现2013-06-06 10:10:07分享:=你给的要求太少,但是怎么说也能设计了,先给你个吧。=你可以自己使用fdatool去弄以下一个结果:通带 5Hz,1db, 阻带8Hz,40dbb=0.0117 -0.0329 0.0451 -0.0329 0.0117a=1.0000 -3.6048 4.9787 -3.1156 0.7447int filterBegin=5;double xBuf5;double yBuf5;double filter(double x) for(int i=4;i>0;i-) yBufi = yBufi-1; xBufi = xBufi-1; xBuf0 = x; if(filterBegin>0) filterBegin =0; yBuf0 = x; return x; yBuf0 = 0.0117* ( xBuf0 +xBuf4) -0.0329 * (xBuf1 +xBuf3) +0.0451*xBuf2 -( -3.6048* yBuf1 + 4.9787*yBuf2 -3.1156*yBuf3 + 0.7447*yBuf4); return yBuf0;提问者评 /、/ 有问题的程序!double aL = 1.0000, -1.0893, 1.6925, -1.0804, 0.7329, -0.2722, 0.0916, -0.0174, 0.0024, -0.0001;double bL = 0.0021, 0.0186, 0.0745, 0.1739, 0.2609, 0.2609, 0.1739, 0.0745, 0.0186, 0.0021; read(&input); /输入范围:-10V+10V ,量化范围 065535x0 = input-32767; for (i=0; i<=L-1; i+)b_sum = bi*xi + b_sum;a_sum = ai+1*yi+1 + a_sum;y0 = b_sum - a_sum;output = y0;for (i=L-1; i>=1; i-)xi = xi-1;yi = yi-1;write(output);