a biquad working

Dependencies:   HIDScope mbed QEI

Revision:
1:ee877d784c40
Parent:
0:fc207e186e8b
Child:
2:241b572207fb
--- a/main.cpp	Tue Oct 27 09:57:27 2015 +0000
+++ b/main.cpp	Tue Oct 27 10:13:02 2015 +0000
@@ -30,8 +30,12 @@
 double filter_signal_hid = 0;
 //double input_right = 0;
 
-double v1=0;
-double v2=0;
+double low_v11=0;
+double low_v21=0;
+double low_v12=0;
+double low_v22=0;
+double low_v13=0;
+double low_v23=0;
 //double v1_right=0;
 //double v2_right=0;
 
@@ -55,22 +59,26 @@
 
 /* lowpass filter consists of three cascaded biquads
 below the coefficients for those three biquads */
-//first high pass biquad
-const double lowp1_a1 = -1.75927361117;
-const double lowp1_a2 = 0.78528639300;
+//first low pass biquad
+const double lowp1_a1 = -1.05207469728;
+const double lowp1_a2 = 0.28586907478;
 const double lowp1_b0 = 1.00000000000;
 const double lowp1_b1 = 2.00000000000;
 const double lowp1_b2 = 1.00000000000;
 
-/*
-//second high pass biquad
+//second low pass biquad
 const double lowp2_a1 = -1.16338171052;
 const double lowp2_a2 = 0.42191097989;
 const double lowp2_b0 = 1.00000000000;
 const double lowp2_b1 = 2.00000000000;
 const double lowp2_b2 = 1.00000000000;
 
-*/
+//third low pass biquad
+const double lowp3_a1 = -1.42439823874;
+const double lowp3_a2 = 0.74093118112;
+const double lowp3_b0 = 1.00000000000;
+const double lowp3_b1 = 2.00000000000;
+const double lowp3_b2 = 1.00000000000;
 
 
 
@@ -107,7 +115,9 @@
     input = analog_emg_left.read();
     //input = input-0.45; //FIRST SUBTRACT MEAN THEN FILTER
     //input_right = analog_emg_right.read();
-    double filter_signal = biquad(input, v1, v2, lowp1_a1, lowp1_a2, lowp1_b0, lowp1_b1, lowp1_b2);
+  double y7 = biquad(input, low_v11, low_v21, lowp1_a1, lowp1_a2, lowp1_b0, lowp1_b1, lowp1_b2);
+    double y8 = biquad(y7, low_v12, low_v22, lowp2_a1, lowp2_a2, lowp2_b0, lowp2_b1, lowp2_b2);
+    double filter_signal = biquad(y8, low_v13, low_v23, lowp3_a1, lowp3_a2, lowp3_b0, lowp3_b1, lowp3_b2);
     //filter_right = filter(input_right, v1_right, v2_right);
     
 return(filter_signal);