jongens kijk eens wat een mooie biquad

Dependencies:   HIDScope mbed

Files at this revision

API Documentation at this revision

Comitter:
Paashaas
Date:
Mon Oct 12 14:00:57 2015 +0000
Commit message:
biquad om emg signalen te filteren

Changed in this revision

HIDScope.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HIDScope.lib	Mon Oct 12 14:00:57 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/tomlankhorst/code/HIDScope/#5020a2c0934b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Oct 12 14:00:57 2015 +0000
@@ -0,0 +1,76 @@
+#include "mbed.h"
+#include "HIDScope.h"
+
+AnalogIn emg1(A0); //onderste board
+AnalogIn emg2(A1); // 2e board
+AnalogIn emg3(A2); // 3e board
+AnalogIn emg4(A3); // bovenste board
+
+Ticker sample_ticker; // naam van de emg-ticker
+
+HIDScope scope(4);  // aantal kanalen voor je HIDScope
+
+//highpass filter 20 Hz
+const double numhigh_1 = 0.956543225556877;
+const double numhigh_2 = -1.91308645113754;
+const double numhigh_3 = 0.956543225556877;
+const double denhigh_2 = -1.91197067426073;
+const double denhigh_3 = 0.9149758348014341;
+
+//notchfilter 50Hz
+//biquad 1
+const double numnotch_1_1 = 1;
+const double numnotch_1_2 = -1.97538661427765;
+const double numnotch_1_3 = 1.00000018882502;
+const double dennotch_1_2 = -1.97024348390877;
+const double dennotch_1_3 = 0.995504923090779;
+
+//biquad 2
+const double numnotch_2_1 = 1;
+const double numnotch_2_2 = -1.97538624436946;
+const double numnotch_2_3 = 1.00000018882502;
+const double dennotch_2_2 = -1.97175302143845;
+const double dennotch_2_3 = 0.995629024908953;
+
+//lowpass filter 7 Hz  - envelop
+const double numlow_1 = 0.000119046743110057;
+const double numlow_2 = 0.000238093486220118;
+const double numlow_3 = 0.000119046743110057;
+const double denlow_2 = -1.968902268531908;
+const double denlow_3 = 0.9693784555043481;
+
+// storage variables definieren
+double f1_v1 = 0, f1_v2 = 0, f2_v1 = 0, f2_v2 = 0, f3_v1 = 0, f3_v2 = 0, f4_v1 = 0, f4_v2 = 0;
+
+double biquad( double u, double &v1, double &v2, const double a1, const double a2, const double b0, const double b1, const double b2)
+
+{
+    double v = u  - a1*v1 - a2*v2;
+    double y = b0*v + b1*v1 + b2*v2;
+    v2=v1;
+    v1=v;
+    return y;
+    }
+    
+void myController()
+{
+// double u1=..., u2...;
+double u1 = emg1.read();
+double y1 = biquad(u1, f1_v1, f1_v2, denhigh_2, denhigh_3, numhigh_1, numhigh_2, numhigh_3);
+double y2 = abs(y1);
+double y3 = biquad(y2, f2_v1, f2_v2, dennotch_1_2, dennotch_1_3, numnotch_1_1, numnotch_1_2, numnotch_1_3);
+double y4 = biquad(y3, f3_v1, f3_v2, dennotch_2_2, dennotch_2_3, numnotch_2_1, numnotch_2_2, numnotch_2_3);
+double y5 = biquad(y4, f4_v1, f4_v2, denlow_2, denlow_3, nomlow_1, numlow_2, numlow_3);
+scope.set(0,u1);
+scope.set(1,y5);
+scope.send();
+}
+   
+    
+     
+int main()
+{
+   sample_ticker.attach(&mycontroller,0.005);
+   while (true){   
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Oct 12 14:00:57 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/34e6b704fe68
\ No newline at end of file