Alleen demo met EMG, geen state machine, geen calibratie

Dependencies:   BiQuad4th_order Biquad FastPWM MODSERIAL QEI biquadFilter mbed

Committer:
Duif
Date:
Fri Nov 02 08:23:22 2018 +0000
Revision:
0:0fd6a09e85d9
Demo met EMG, deze zou het moeten doen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Duif 0:0fd6a09e85d9 1 #include "FilterDesign.h"
Duif 0:0fd6a09e85d9 2 #include "BiQuad.h"
Duif 0:0fd6a09e85d9 3 #include "BiQuad4.h"
Duif 0:0fd6a09e85d9 4
Duif 0:0fd6a09e85d9 5 // Notch filter op 50 Hz
Duif 0:0fd6a09e85d9 6 double nb0 = 0.999103206817809;
Duif 0:0fd6a09e85d9 7 double nb1 = -1.994263409725146;
Duif 0:0fd6a09e85d9 8 double nb2 = 0.999103206817809;
Duif 0:0fd6a09e85d9 9 double na1 = -1.994263409725146;
Duif 0:0fd6a09e85d9 10 double na2 = 0.998206413635618;
Duif 0:0fd6a09e85d9 11
Duif 0:0fd6a09e85d9 12 // 4th order Butterworth High pass 10 Hz
Duif 0:0fd6a09e85d9 13 double hpb0 = 0.922946103200875;
Duif 0:0fd6a09e85d9 14 double hpb1 = -3.691784412803501;
Duif 0:0fd6a09e85d9 15 double hpb2 = 5.537676619205252;
Duif 0:0fd6a09e85d9 16 double hpb3 = -3.691784412803501;
Duif 0:0fd6a09e85d9 17 double hpb4 = 0.922946103200875;
Duif 0:0fd6a09e85d9 18 double hpa1 = -3.839672788481732;
Duif 0:0fd6a09e85d9 19 double hpa2 = 5.531745865737864;
Duif 0:0fd6a09e85d9 20 double hpa3 = -3.543889487580057;
Duif 0:0fd6a09e85d9 21 double hpa4 = 0.851829509414351;
Duif 0:0fd6a09e85d9 22
Duif 0:0fd6a09e85d9 23 /*
Duif 0:0fd6a09e85d9 24 // 4th order Butterworth Low pass 6 Hz
Duif 0:0fd6a09e85d9 25 double lpb0 = 0.000000109473538449645 ;
Duif 0:0fd6a09e85d9 26 double lpb1 = 0.000000437894153798579 ;
Duif 0:0fd6a09e85d9 27 double lpb2 = 0.000000656841230697869;
Duif 0:0fd6a09e85d9 28 double lpb3 = 0.000000437894153798579;
Duif 0:0fd6a09e85d9 29 double lpb4 = 0.000000109473538449645;
Duif 0:0fd6a09e85d9 30 double lpa1 = -3.903798995738811;
Duif 0:0fd6a09e85d9 31 double lpa2 = 5.715997307717368;
Duif 0:0fd6a09e85d9 32 double lpa3 = -3.720469814151233;
Duif 0:0fd6a09e85d9 33 double lpa4 = 0.908273253749291;
Duif 0:0fd6a09e85d9 34 */
Duif 0:0fd6a09e85d9 35
Duif 0:0fd6a09e85d9 36 //4th order Butterworth low pass 9 Hz
Duif 0:0fd6a09e85d9 37 double lpb0 = 0.00000054134117189603 ;
Duif 0:0fd6a09e85d9 38 double lpb1 = 0.00000216536468758410 ;
Duif 0:0fd6a09e85d9 39 double lpb2 = 0.00000324804703137616;
Duif 0:0fd6a09e85d9 40 double lpb3 = 0.00000216536468758410;
Duif 0:0fd6a09e85d9 41 double lpb4 = 0.00000054134117189603;
Duif 0:0fd6a09e85d9 42 double lpa1 = -3.855703428197204;
Duif 0:0fd6a09e85d9 43 double lpa2 = 5.577429961461492;
Duif 0:0fd6a09e85d9 44 double lpa3 = -3.587322565783154;
Duif 0:0fd6a09e85d9 45 double lpa4 = 0.865604693977616;
Duif 0:0fd6a09e85d9 46
Duif 0:0fd6a09e85d9 47 double gain = 10.00000;
Duif 0:0fd6a09e85d9 48
Duif 0:0fd6a09e85d9 49 BiQuad notch50(nb0, nb1, nb2, na1, na2);
Duif 0:0fd6a09e85d9 50 BiQuad4 highpass(hpb0, hpb1, hpb2, hpb3, hpb4, hpa1, hpa2, hpa3, hpa4);
Duif 0:0fd6a09e85d9 51 BiQuad4 lowpass(lpb0, lpb1, lpb2, lpb3, lpb4, lpa1, lpa2, lpa3, lpa4);
Duif 0:0fd6a09e85d9 52
Duif 0:0fd6a09e85d9 53 double FilterDesign(double u)
Duif 0:0fd6a09e85d9 54 {
Duif 0:0fd6a09e85d9 55 double y_n = notch50.step(u);
Duif 0:0fd6a09e85d9 56 double y_hp = highpass.step(y_n);
Duif 0:0fd6a09e85d9 57 double y_abs = abs(y_hp);
Duif 0:0fd6a09e85d9 58 double y_lp = lowpass.step(y_abs);
Duif 0:0fd6a09e85d9 59 double y_gain = y_lp*gain;
Duif 0:0fd6a09e85d9 60
Duif 0:0fd6a09e85d9 61 return y_gain;
Duif 0:0fd6a09e85d9 62 }