Jan-Willem Bisschop
/
EMG_filter
EMG filter. Waarden nog niet perfekt.
FilterDesign.cpp@0:2956e3501f8a, 2016-10-21 (annotated)
- Committer:
- janwillembisschop
- Date:
- Fri Oct 21 12:11:52 2016 +0000
- Revision:
- 0:2956e3501f8a
- Child:
- 1:70dc835f3a37
EMG filter. Waarde nog niet perfekt.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
janwillembisschop | 0:2956e3501f8a | 1 | #include "FilterDesign.h" |
janwillembisschop | 0:2956e3501f8a | 2 | #include "Filter.h" |
janwillembisschop | 0:2956e3501f8a | 3 | |
janwillembisschop | 0:2956e3501f8a | 4 | double v1_50 = 0, v2_50 = 0; |
janwillembisschop | 0:2956e3501f8a | 5 | const double a1_50 = -1.52337295428, a2_50 = 0.93195385841; |
janwillembisschop | 0:2956e3501f8a | 6 | const double b0_50 = 1.00000000000, b1_50 = -1.61854514929, b2_50 = 1.00000000000; |
janwillembisschop | 0:2956e3501f8a | 7 | const double gain_50 = 1.00000000000; |
janwillembisschop | 0:2956e3501f8a | 8 | |
janwillembisschop | 0:2956e3501f8a | 9 | double v1_LP = 0, v2_LP = 0; |
janwillembisschop | 0:2956e3501f8a | 10 | const double a1_LP = -1.93503824887, a2_LP = 0.93708289663; |
janwillembisschop | 0:2956e3501f8a | 11 | const double b0_LP = 1.00000000000, b1_LP = 2.00000000000, b2_LP = 1.00000000000; |
janwillembisschop | 0:2956e3501f8a | 12 | const double gain_LP = 0.000511; |
janwillembisschop | 0:2956e3501f8a | 13 | |
janwillembisschop | 0:2956e3501f8a | 14 | double v1_HP = 0, v2_HP = 0; |
janwillembisschop | 0:2956e3501f8a | 15 | const double a1_HP = -0.76475499450, a2_HP = 0.27692273367; |
janwillembisschop | 0:2956e3501f8a | 16 | const double b0_HP = 1.00000000000, b1_HP = -2.0, b2_HP = 1.00000000000; |
janwillembisschop | 0:2956e3501f8a | 17 | const double gain_HP = 0.510419; |
janwillembisschop | 0:2956e3501f8a | 18 | |
janwillembisschop | 0:2956e3501f8a | 19 | double FilterDesign(double u) |
janwillembisschop | 0:2956e3501f8a | 20 | { |
janwillembisschop | 0:2956e3501f8a | 21 | |
janwillembisschop | 0:2956e3501f8a | 22 | double y_50 = Filter(u,v1_50,v2_50,a1_50,a2_50,b0_50,b1_50,b2_50,gain_50); |
janwillembisschop | 0:2956e3501f8a | 23 | double y_HP = Filter(y_50,v1_HP,v2_HP,a1_HP,a2_HP,b0_HP,b1_HP,b2_HP,gain_HP); |
janwillembisschop | 0:2956e3501f8a | 24 | double y_abs = fabs(y_HP); |
janwillembisschop | 0:2956e3501f8a | 25 | double y_LP = Filter(y_abs,v1_LP,v2_LP,a1_LP,a2_LP,b0_LP,b1_LP,b2_LP,gain_LP); |
janwillembisschop | 0:2956e3501f8a | 26 | double y = 10 + y_LP; |
janwillembisschop | 0:2956e3501f8a | 27 | |
janwillembisschop | 0:2956e3501f8a | 28 | return y; |
janwillembisschop | 0:2956e3501f8a | 29 | |
janwillembisschop | 0:2956e3501f8a | 30 | } |