Switches 2.0

Dependencies:   mbed QEI HIDScope BiQuad4th_order biquadFilter MODSERIAL FastPWM

Revision:
9:0e838367ab6a
Child:
10:cbcb35182ef1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Filter/FilterDesign.cpp	Fri Nov 01 10:23:02 2019 +0000
@@ -0,0 +1,52 @@
+#include "FilterDesign.h"
+#include "BiQuad.h"
+#include "BiQuad4.h"
+
+
+
+// Notch filter on 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 9 Hz
+double hpb0 = 0.862550850547179;
+double hpb1 = -3.45020340218871;
+double hpb2 = 5.17530510328307; 
+double hpb3 = -3.45020340218871;
+double hpb4 = 0.862550850547179;
+double hpa1 = -3.70453845798319;
+double hpa2 = 5.15648369715094;
+double hpa3 = -3.1957974837626;
+double hpa4 = 0.743993969858123;
+
+//4th order Butterworth low pass 10 Hz
+double lpb0 = 0.0000132937288987445 ;
+double lpb1 = 0.0000531749155949779 ;
+double lpb2 = 0.0000797623733924668; 
+double lpb3 = 0.0000531749155949779;
+double lpb4 = 0.0000132937288987445;
+double lpa1 = -3.67172908916193;
+double lpa2 = 5.06799838673419;
+double lpa3 = -3.11596692520174;
+double lpa4 = 0.719910327291871;
+
+// Multiplication with the gain
+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);       // First the notchfilter
+    double y_hp = highpass.step(y_n);   // Secondly the highpassfilter
+    double y_abs = abs(y_hp);           // Make the signal values absolute
+    double y_lp = lowpass.step(y_abs);  // Then a lowpass filter
+    double y_gain = y_lp*gain;          // Multiply by a gain
+        
+    return y_gain;                      // Return this filtered value
+}
\ No newline at end of file