Switches 2.0

Dependencies:   mbed QEI HIDScope BiQuad4th_order biquadFilter MODSERIAL FastPWM

Committer:
JonaVonk
Date:
Fri Nov 01 10:23:02 2019 +0000
Revision:
9:0e838367ab6a
Child:
10:cbcb35182ef1
deze werkt bijna

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JonaVonk 9:0e838367ab6a 1 #include "FilterDesign.h"
JonaVonk 9:0e838367ab6a 2 #include "BiQuad.h"
JonaVonk 9:0e838367ab6a 3 #include "BiQuad4.h"
JonaVonk 9:0e838367ab6a 4
JonaVonk 9:0e838367ab6a 5
JonaVonk 9:0e838367ab6a 6
JonaVonk 9:0e838367ab6a 7 // Notch filter on 50 Hz
JonaVonk 9:0e838367ab6a 8 double nb0 = 0.999103206817809;
JonaVonk 9:0e838367ab6a 9 double nb1 = -1.994263409725146;
JonaVonk 9:0e838367ab6a 10 double nb2 = 0.999103206817809;
JonaVonk 9:0e838367ab6a 11 double na1 = -1.994263409725146;
JonaVonk 9:0e838367ab6a 12 double na2 = 0.998206413635618;
JonaVonk 9:0e838367ab6a 13
JonaVonk 9:0e838367ab6a 14 // 4th order Butterworth High pass 9 Hz
JonaVonk 9:0e838367ab6a 15 double hpb0 = 0.862550850547179;
JonaVonk 9:0e838367ab6a 16 double hpb1 = -3.45020340218871;
JonaVonk 9:0e838367ab6a 17 double hpb2 = 5.17530510328307;
JonaVonk 9:0e838367ab6a 18 double hpb3 = -3.45020340218871;
JonaVonk 9:0e838367ab6a 19 double hpb4 = 0.862550850547179;
JonaVonk 9:0e838367ab6a 20 double hpa1 = -3.70453845798319;
JonaVonk 9:0e838367ab6a 21 double hpa2 = 5.15648369715094;
JonaVonk 9:0e838367ab6a 22 double hpa3 = -3.1957974837626;
JonaVonk 9:0e838367ab6a 23 double hpa4 = 0.743993969858123;
JonaVonk 9:0e838367ab6a 24
JonaVonk 9:0e838367ab6a 25 //4th order Butterworth low pass 10 Hz
JonaVonk 9:0e838367ab6a 26 double lpb0 = 0.0000132937288987445 ;
JonaVonk 9:0e838367ab6a 27 double lpb1 = 0.0000531749155949779 ;
JonaVonk 9:0e838367ab6a 28 double lpb2 = 0.0000797623733924668;
JonaVonk 9:0e838367ab6a 29 double lpb3 = 0.0000531749155949779;
JonaVonk 9:0e838367ab6a 30 double lpb4 = 0.0000132937288987445;
JonaVonk 9:0e838367ab6a 31 double lpa1 = -3.67172908916193;
JonaVonk 9:0e838367ab6a 32 double lpa2 = 5.06799838673419;
JonaVonk 9:0e838367ab6a 33 double lpa3 = -3.11596692520174;
JonaVonk 9:0e838367ab6a 34 double lpa4 = 0.719910327291871;
JonaVonk 9:0e838367ab6a 35
JonaVonk 9:0e838367ab6a 36 // Multiplication with the gain
JonaVonk 9:0e838367ab6a 37 double gain = 10.00000;
JonaVonk 9:0e838367ab6a 38
JonaVonk 9:0e838367ab6a 39 BiQuad notch50(nb0, nb1, nb2, na1, na2);
JonaVonk 9:0e838367ab6a 40 BiQuad4 highpass(hpb0, hpb1, hpb2, hpb3, hpb4, hpa1, hpa2, hpa3, hpa4);
JonaVonk 9:0e838367ab6a 41 BiQuad4 lowpass(lpb0, lpb1, lpb2, lpb3, lpb4, lpa1, lpa2, lpa3, lpa4);
JonaVonk 9:0e838367ab6a 42
JonaVonk 9:0e838367ab6a 43 double FilterDesign(double u)
JonaVonk 9:0e838367ab6a 44 {
JonaVonk 9:0e838367ab6a 45 double y_n = notch50.step(u); // First the notchfilter
JonaVonk 9:0e838367ab6a 46 double y_hp = highpass.step(y_n); // Secondly the highpassfilter
JonaVonk 9:0e838367ab6a 47 double y_abs = abs(y_hp); // Make the signal values absolute
JonaVonk 9:0e838367ab6a 48 double y_lp = lowpass.step(y_abs); // Then a lowpass filter
JonaVonk 9:0e838367ab6a 49 double y_gain = y_lp*gain; // Multiply by a gain
JonaVonk 9:0e838367ab6a 50
JonaVonk 9:0e838367ab6a 51 return y_gain; // Return this filtered value
JonaVonk 9:0e838367ab6a 52 }