Defines a second order section of a biquadChain

Committer:
tvlogman
Date:
Fri Oct 20 16:29:01 2017 +0000
Revision:
1:8589bd80071d
Parent:
0:5484e3da74be
Should now work, doesn't give compile errors but not tested with a real EMG signal;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tvlogman 0:5484e3da74be 1 #include "biquadFilter.h"
tvlogman 0:5484e3da74be 2 #include "mbed.h"
tvlogman 0:5484e3da74be 3
tvlogman 0:5484e3da74be 4 // Member function definitions
tvlogman 0:5484e3da74be 5 biquadFilter::biquadFilter(double B0, double B1, double B2, double A0, double A1, double A2):b0(B0),b1(B1),b2(B2),a0(A0),a1(A1),a2(A2){
tvlogman 0:5484e3da74be 6 // Initializing filter coefficients
tvlogman 0:5484e3da74be 7 v = 0;
tvlogman 0:5484e3da74be 8 y = 0;
tvlogman 0:5484e3da74be 9 v1 = 0;
tvlogman 0:5484e3da74be 10 v2 = 0;
tvlogman 0:5484e3da74be 11 }
tvlogman 0:5484e3da74be 12
tvlogman 0:5484e3da74be 13 double biquadFilter :: filterInput(double u){
tvlogman 0:5484e3da74be 14 v = u - a1*v1 - a2*v2;
tvlogman 0:5484e3da74be 15 y = b0*v + b1*v1 + b2*v2;
tvlogman 0:5484e3da74be 16
tvlogman 0:5484e3da74be 17 // Prepare for next sample
tvlogman 0:5484e3da74be 18 v2 = v1;
tvlogman 0:5484e3da74be 19 v1 = v;
tvlogman 0:5484e3da74be 20
tvlogman 0:5484e3da74be 21 return y;
tvlogman 0:5484e3da74be 22 }