//Band pass butterworth filter order=4 alpha1=0.037453183520599 alpha2=0.063670411985019 class FilterBuBp4 { public: FilterBuBp4() { for(int i=0; i <= 8; i++) v[i]=0.0; } private: float v[9]; public: float step(float x) //class II { v[0] = v[1]; v[1] = v[2]; v[2] = v[3]; v[3] = v[4]; v[4] = v[5]; v[5] = v[6]; v[6] = v[7]; v[7] = v[8]; v[8] = (3.743561515783600305e-5 * x) + (-0.64984203758803527062 * v[0]) + (5.22187801143368535151 * v[1]) + (-18.62939109557171590836 * v[2]) + (38.51794268736599491376 * v[3]) + (-50.46701448849155724474 * v[4]) + (42.90303533134298419327 * v[5]) + (-23.11211667933892854876 * v[6]) + (7.21544634991835387439 * v[7]); return (v[0] + v[8]) - 4 * (v[2] + v[6]) +6 * v[4]; } };