Jan-Willem Bisschop
/
EMG_filter
EMG filter. Waarden nog niet perfekt.
FilterDesign2.cpp@1:70dc835f3a37, 2016-10-28 (annotated)
- Committer:
- janwillembisschop
- Date:
- Fri Oct 28 08:55:20 2016 +0000
- Revision:
- 1:70dc835f3a37
EMG filter met goede waarden
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
janwillembisschop | 1:70dc835f3a37 | 1 | #include "FilterDesign2.h" |
janwillembisschop | 1:70dc835f3a37 | 2 | #include "Filter2.h" |
janwillembisschop | 1:70dc835f3a37 | 3 | |
janwillembisschop | 1:70dc835f3a37 | 4 | // Notch 50 Hz |
janwillembisschop | 1:70dc835f3a37 | 5 | double w1_50 = 0, w2_50 = 0; |
janwillembisschop | 1:70dc835f3a37 | 6 | const double a1_50 = -1.53713228931, a2_50 = 0.90250000000; |
janwillembisschop | 1:70dc835f3a37 | 7 | const double b0_50 = 1.00000000000, b1_50 = -1.61803398875, b2_50 = 1.00000000000; |
janwillembisschop | 1:70dc835f3a37 | 8 | const double gain_50 = 0.95500000000; |
janwillembisschop | 1:70dc835f3a37 | 9 | |
janwillembisschop | 1:70dc835f3a37 | 10 | // Notch 100 Hz |
janwillembisschop | 1:70dc835f3a37 | 11 | double w1_100 = 0, w2_100 = 0; |
janwillembisschop | 1:70dc835f3a37 | 12 | const double a1_100 = -0.58713228931, a2_100 = 0.90250000000; |
janwillembisschop | 1:70dc835f3a37 | 13 | const double b0_100 = 1.00000000000, b1_100 = -0.61803398875, b2_100 = 1.00000000000; |
janwillembisschop | 1:70dc835f3a37 | 14 | const double gain_100 = 0.95200000000; |
janwillembisschop | 1:70dc835f3a37 | 15 | |
janwillembisschop | 1:70dc835f3a37 | 16 | // Notch 200 Hz |
janwillembisschop | 1:70dc835f3a37 | 17 | double w1_200 = 0, w2_200 = 0; |
janwillembisschop | 1:70dc835f3a37 | 18 | const double a1_200 = 1.53713228931, a2_200 = 0.90250000000; |
janwillembisschop | 1:70dc835f3a37 | 19 | const double b0_200 = 1.00000000000, b1_200 = 1.61803398875, b2_200 = 1.00000000000; |
janwillembisschop | 1:70dc835f3a37 | 20 | const double gain_200 = 0.95500000000; |
janwillembisschop | 1:70dc835f3a37 | 21 | |
janwillembisschop | 1:70dc835f3a37 | 22 | // High pass 50 Hz |
janwillembisschop | 1:70dc835f3a37 | 23 | double w1_HP = 0, w2_HP = 0; |
janwillembisschop | 1:70dc835f3a37 | 24 | const double a1_HP = -1.47413760026, a2_HP = 0.60062500000; |
janwillembisschop | 1:70dc835f3a37 | 25 | const double b0_HP = 1.00000000000, b1_HP = -2.00000000000, b2_HP = 1.00000000000; |
janwillembisschop | 1:70dc835f3a37 | 26 | const double gain_HP = 0.77000000000; |
janwillembisschop | 1:70dc835f3a37 | 27 | |
janwillembisschop | 1:70dc835f3a37 | 28 | // Low pass 0.7 Hz |
janwillembisschop | 1:70dc835f3a37 | 29 | double w1_LP = 0, w2_LP = 0; |
janwillembisschop | 1:70dc835f3a37 | 30 | const double a1_LP = -1.80000000000, a2_LP = 0.81000000000; |
janwillembisschop | 1:70dc835f3a37 | 31 | const double b0_LP = 1.00000000000, b1_LP = 2.00000000000, b2_LP = 1.00000000000; |
janwillembisschop | 1:70dc835f3a37 | 32 | const double gain_LP = 0.0025100000000; |
janwillembisschop | 1:70dc835f3a37 | 33 | |
janwillembisschop | 1:70dc835f3a37 | 34 | double FilterDesign2(double u) |
janwillembisschop | 1:70dc835f3a37 | 35 | { |
janwillembisschop | 1:70dc835f3a37 | 36 | |
janwillembisschop | 1:70dc835f3a37 | 37 | double y_50 = Filter2(u,w1_50,w2_50,a1_50,a2_50,b0_50,b1_50,b2_50,gain_50); |
janwillembisschop | 1:70dc835f3a37 | 38 | double y_100 = Filter2(y_50,w1_100,w2_100,a1_100,a2_100,b0_100,b1_100,b2_100,gain_100); |
janwillembisschop | 1:70dc835f3a37 | 39 | double y_200 = Filter2(y_100,w1_200,w2_200,a1_200,a2_200,b0_200,b1_200,b2_200,gain_200); |
janwillembisschop | 1:70dc835f3a37 | 40 | double y_HP = Filter2(y_200,w1_HP,w2_HP,a1_HP,a2_HP,b0_HP,b1_HP,b2_HP,gain_HP); |
janwillembisschop | 1:70dc835f3a37 | 41 | double y_abs = fabs(y_HP); |
janwillembisschop | 1:70dc835f3a37 | 42 | double y_LP = Filter2(y_abs,w1_LP,w2_LP,a1_LP,a2_LP,b0_LP,b1_LP,b2_LP,gain_LP); |
janwillembisschop | 1:70dc835f3a37 | 43 | |
janwillembisschop | 1:70dc835f3a37 | 44 | double y = y_LP; |
janwillembisschop | 1:70dc835f3a37 | 45 | |
janwillembisschop | 1:70dc835f3a37 | 46 | return y; |
janwillembisschop | 1:70dc835f3a37 | 47 | |
janwillembisschop | 1:70dc835f3a37 | 48 | } |