Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope MODSERIAL mbed
Fork of Signal Filter by
Diff: main.cpp
- Revision:
- 3:04f3cca82b22
- Parent:
- 2:e30dbfec6d1e
- Child:
- 4:d6a3b318c744
--- a/main.cpp Mon Sep 21 09:06:32 2015 +0000 +++ b/main.cpp Mon Sep 21 10:30:38 2015 +0000 @@ -18,35 +18,40 @@ // Define the storage variables and filter coeicients for two filters double f1_v1 = 0, f1_v2 = 0, f2_v1 = 0, f2_v2 = 0; - const double f1_a1 = 1.0, f1_a2 = 2.0, f1_b0 = 1.0, f1_b1 = 3.0, f1_b2 = 4.0; - const double f2_a1 = 1.5, f2_a2 = 1.0, f2_b0 = 0.2, f2_b1 = 1.5, f2_b2 = 3.0; + const double f1_a1 = 0.25071442433, f1_a2 = 0.21711875780, f1_b0 = 1.0, f1_b1 = -1.62432585007, f1_b2 = 1.0; + const double f2_a1 = -1.77682226139, f2_a2 = 0.80213897411, f2_b0 = 1.0, f2_b1 = -1.62432585007, f2_b2 = 1.0; - double biquad( double u, double &v1, double &v2, // Input and storage variables - 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; + 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; } // This is your controller, call it using a Ticker - void myController() { - // double u1 = ..., u2 = ... ; - double y1 = biquad( u1, f1_v1, f1_v2, f1_a1, f1_a2, f1_b0, f1_b1, f1_b2 ); - double y2 = biquad( u2, f2_v1, f2_v2, f2_a1, f2_a2, f2_b0, f2_b1, f2_b2 ); - } +// void myController() { + //double u1 = EMG, u2 = y1 ; + //double y1 = biquad( u1, f1_v1, f1_v2, f1_a1, f1_a2, f1_b0, f1_b1, f1_b2 ); + //double y2 = biquad( u2, f2_v1, f2_v2, f2_a1, f2_a2, f2_b0, f2_b1, f2_b2 ); + //} void scopeSend(){ -u1=EMG; -u2=y1 ; -scope.set(0,y2.read()); + double u1 = EMG ; + double y1 = biquad( u1, f1_v1, f1_v2, f1_a1, f1_a2, f1_b0, f1_b1, f1_b2 ); + double u2 = y1; + double y2 = biquad( u2, f2_v1, f2_v2, f2_a1, f2_a2, f2_b0, f2_b1, f2_b2 ); +scope.set(0,y2); scope.send(); } + int main() -{ scopeTimer.attach_us(&scopeSend,1e4); +{ + + scopeTimer.attach_us(&scopeSend,1e4); while(1){} } \ No newline at end of file