Emg filter function script for a uni project. Made by Teun van der Molen

Dependencies:   HIDScope MODSERIAL mbed

Fork of frdm_EMG by Teun van der Molen

Revision:
6:4cbf5c66e2fb
Parent:
5:56725d9362ee
Child:
7:43f2f7039841
--- a/main.cpp	Mon Sep 21 13:38:06 2015 +0000
+++ b/main.cpp	Wed Sep 23 12:17:14 2015 +0000
@@ -5,6 +5,7 @@
 HIDScope    scope(3);
 Ticker      scopeTimer;
 Ticker      biquadTicker;
+DigitalOut  light(LED1);
 
 double v1=0, v2=0, u=0, y=0,     fy=0, fv1=0, fv2=0, fu=0;
 
@@ -16,11 +17,14 @@
 //const double b0 = 0.956542835577484, b1 = -1.913085671154968, b2 = 0.956542835577484, a1 = -1.911196288237583, a2 = 0.914975054072353; //high-pass Fc  =  1hz fs = 100hz
 
 
-//const double b0 = 0.00034604125149151127,b1 = 0.0006920825029830225, b2 = 0.00034604125149151127 ,a1 = -1.9466970561224466 ,a2 = 0.9480812211284125; //low-pass Fc = 6Hz fs = 1000hz
-//const double fb0 = 0.9149684297741606, fb1 = -1.8299368595483212, fb2 = 0.9149684297741606 ,fa1 = -1.8226935021735358, fa2 = 0.8371802169231065; // High-pass Fc = 20Hz fs = 1000hz
+const double b0 = 0.00034604125149151127,b1 = 0.0006920825029830225, b2 = 0.00034604125149151127 ,a1 = -1.9466970561224466 ,a2 = 0.9480812211284125; //low-pass Fc = 6Hz fs = 1000hz
+const double fb0 = 0.9149684297741606, fb1 = -1.8299368595483212, fb2 = 0.9149684297741606 ,fa1 = -1.8226935021735358, fa2 = 0.8371802169231065; // High-pass Fc = 20Hz fs = 1000hz
 //const double fb0 = 0.8948577513857248 ,fb1 = -1.7897155027714495, fb2 = 0.8948577513857248,fa1 = -1.7786300789392977,fa2 = 0.8008009266036016; // High-pass Fc = 25Hz fs = 1000Hz
-const double b0 = 0.005542711916075981,b1 = 0.011085423832151962,b2 = 0.005542711916075981,a1 = -1.7786300789392977,a2 = 0.8008009266036016; //Low-pass Fc = 25Hz fs=1000Hz
-const double fb0 = 0.9780302754084559,fb1 = -1.9560605508169118,fb2 = 0.9780302754084559,fa1 = -1.9555778328194147,fa2 = 0.9565432688144089; //high-pass Fc = 6hz fs = 1000hz
+//const double b0 = 0.005542711916075981,b1 = 0.011085423832151962,b2 = 0.005542711916075981,a1 = -1.7786300789392977,a2 = 0.8008009266036016; //Low-pass Fc = 25Hz fs=1000Hz
+//const double fb0 = 0.9780302754084559,fb1 = -1.9560605508169118,fb2 = 0.9780302754084559,fa1 = -1.9555778328194147,fa2 = 0.9565432688144089; //high-pass Fc = 6hz fs = 1000hz
+//const double b0 = 0.9911535113858849,b1 = -1.9823070227717698,b2 = 0.9911535113858849,a1 = -1.9822287623675816,a2 = 0.982385283175958; //High-pass Fc = 2Hz fs = 1000Hz
+//const double fb0 = 0.0036216786873927774,fb1 = 0.007243357374785555,fb2 = 0.0036216786873927774,fa1 = -1.8226935021735358,fa2 = 0.8371802169231065; ///Low-pass Fc = 20 Hz Fs = 1000Hz
+
 
 
 // Read the analog input
@@ -43,6 +47,8 @@
     v2=v1;
     v1=v;
      
+     y = abs(y);
+     
      double fv = y - fa1*fv1 - fa2*fv2;
     fy= fb0*fv + fb1*fv1 + fb2*fv2;
     fv2=fv1;
@@ -52,11 +58,19 @@
  
 int main()
 {
+    light = 1;
     // Attach the data read and send function at 1000 Hz
     scopeTimer.attach_us(&scopeSend, 1e5);   
     biquadTicker.attach(&computeBiquad,0.0001f);
      //float i = 1;
     while(1) {
+      if (fy >=  0.12){
+          light = 0;
+          }
+        else{
+            light =1;
+            }
+      
       
     }
 }
\ No newline at end of file