first test of done filter
Dependencies: biquadFilter mbed HIDScope
Diff: main.cpp
- Revision:
- 12:b7025b3a111b
- Parent:
- 11:50ef30ca2b59
--- a/main.cpp Mon Oct 31 13:31:41 2016 +0000 +++ b/main.cpp Wed Nov 02 16:34:51 2016 +0000 @@ -10,9 +10,11 @@ AnalogIn emg0(A0); AnalogIn emg1(A1); DigitalOut led1(LED1); -HIDScope scope( 2 ); +DigitalOut led3(LED3); +HIDScope scope( 3 ); +int counter; -Ticker emgticker; +Ticker emgticker; BiQuadChain bqc; BiQuad bq1( 8.17310e-01, 0.00000e+00, -8.17310e-01, -1.57627e-01, -6.34619e-01 ); //bandpass @@ -22,47 +24,65 @@ BiQuadChain bqc2; BiQuad bq3( 2.00834e-02, 4.01667e-02, 2.00834e-02, -1.56102e+00, 6.41352e-01 ); //lowpass - + double a; void Sample () { + -double emgSignal = emg0.read(); + double emgSignal = emg0.read(); + + + double emgFiltered1 = bqc.step(emgSignal); //chain1 + double emgFiltered2 = fabs(emgFiltered1); //rectifier + double emgFiltered3 = bqc2.step(emgFiltered2); //chain2 + + scope.set(0, emgSignal); //hidscope channel 1 + scope.set(1, emgFiltered3); + scope.set(2, a); //hidscope channel 2 + scope.send(); + + if (counter == 0) { + a = emgFiltered3; + } -double emgFiltered1 = bqc.step(emgSignal); -double emgFiltered2 = fabs(emgFiltered1); -double emgFiltered3 = bqc2.step(emgFiltered2); + if (a >= 0.1) //threshold value -scope.set(0, emgSignal); -scope.set(1, emgFiltered3); -scope.send(); + { + + a = 0; - if (emgFiltered3 >= 0.1) - - { -led1 = !led1; + led1 = !led1; + counter++; //change LED on/off + } else if (a == 0) { + counter++; - - emgFiltered3 = true; - } + + if (counter == 1000) { + led3 = !led3; + counter = 0; } -int main() -{ -led1 = 1; +} + -bqc.add( &bq1 ).add( &bq2 ); -bqc2.add( &bq3 ); -emgticker.attach(&Sample, 0.001); +int main() +{ + counter = 0; + led1 = 1; //off + led3 = 1; //off + bqc.add( &bq1 ).add( &bq2 ); + bqc2.add( &bq3 ); //add both biquad chains + emgticker.attach(&Sample, 0.001); //attach ticker -while (true) { + while (true) { - } - } + } +}