Alleen demo met EMG, geen state machine, geen calibratie
Dependencies: BiQuad4th_order Biquad FastPWM MODSERIAL QEI biquadFilter mbed
Filter/FilterDesign.cpp
- Committer:
- Duif
- Date:
- 2018-11-02
- Revision:
- 0:0fd6a09e85d9
File content as of revision 0:0fd6a09e85d9:
#include "FilterDesign.h" #include "BiQuad.h" #include "BiQuad4.h" // Notch filter op 50 Hz double nb0 = 0.999103206817809; double nb1 = -1.994263409725146; double nb2 = 0.999103206817809; double na1 = -1.994263409725146; double na2 = 0.998206413635618; // 4th order Butterworth High pass 10 Hz double hpb0 = 0.922946103200875; double hpb1 = -3.691784412803501; double hpb2 = 5.537676619205252; double hpb3 = -3.691784412803501; double hpb4 = 0.922946103200875; double hpa1 = -3.839672788481732; double hpa2 = 5.531745865737864; double hpa3 = -3.543889487580057; double hpa4 = 0.851829509414351; /* // 4th order Butterworth Low pass 6 Hz double lpb0 = 0.000000109473538449645 ; double lpb1 = 0.000000437894153798579 ; double lpb2 = 0.000000656841230697869; double lpb3 = 0.000000437894153798579; double lpb4 = 0.000000109473538449645; double lpa1 = -3.903798995738811; double lpa2 = 5.715997307717368; double lpa3 = -3.720469814151233; double lpa4 = 0.908273253749291; */ //4th order Butterworth low pass 9 Hz double lpb0 = 0.00000054134117189603 ; double lpb1 = 0.00000216536468758410 ; double lpb2 = 0.00000324804703137616; double lpb3 = 0.00000216536468758410; double lpb4 = 0.00000054134117189603; double lpa1 = -3.855703428197204; double lpa2 = 5.577429961461492; double lpa3 = -3.587322565783154; double lpa4 = 0.865604693977616; double gain = 10.00000; BiQuad notch50(nb0, nb1, nb2, na1, na2); BiQuad4 highpass(hpb0, hpb1, hpb2, hpb3, hpb4, hpa1, hpa2, hpa3, hpa4); BiQuad4 lowpass(lpb0, lpb1, lpb2, lpb3, lpb4, lpa1, lpa2, lpa3, lpa4); double FilterDesign(double u) { double y_n = notch50.step(u); double y_hp = highpass.step(y_n); double y_abs = abs(y_hp); double y_lp = lowpass.step(y_abs); double y_gain = y_lp*gain; return y_gain; }