![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Switches 2.0
Dependencies: mbed QEI HIDScope BiQuad4th_order biquadFilter MODSERIAL FastPWM
Filter/FilterDesign.cpp@10:cbcb35182ef1, 2019-11-05 (annotated)
- Committer:
- sanou8
- Date:
- Tue Nov 05 13:23:20 2019 +0000
- Revision:
- 10:cbcb35182ef1
- Parent:
- 9:0e838367ab6a
Met mijn commentaar erbij
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JonaVonk | 9:0e838367ab6a | 1 | #include "FilterDesign.h" |
JonaVonk | 9:0e838367ab6a | 2 | #include "BiQuad.h" |
JonaVonk | 9:0e838367ab6a | 3 | #include "BiQuad4.h" |
JonaVonk | 9:0e838367ab6a | 4 | |
JonaVonk | 9:0e838367ab6a | 5 | |
JonaVonk | 9:0e838367ab6a | 6 | |
sanou8 | 10:cbcb35182ef1 | 7 | |
JonaVonk | 9:0e838367ab6a | 8 | |
JonaVonk | 9:0e838367ab6a | 9 | // 4th order Butterworth High pass 9 Hz |
JonaVonk | 9:0e838367ab6a | 10 | double hpb0 = 0.862550850547179; |
JonaVonk | 9:0e838367ab6a | 11 | double hpb1 = -3.45020340218871; |
JonaVonk | 9:0e838367ab6a | 12 | double hpb2 = 5.17530510328307; |
JonaVonk | 9:0e838367ab6a | 13 | double hpb3 = -3.45020340218871; |
JonaVonk | 9:0e838367ab6a | 14 | double hpb4 = 0.862550850547179; |
JonaVonk | 9:0e838367ab6a | 15 | double hpa1 = -3.70453845798319; |
JonaVonk | 9:0e838367ab6a | 16 | double hpa2 = 5.15648369715094; |
JonaVonk | 9:0e838367ab6a | 17 | double hpa3 = -3.1957974837626; |
JonaVonk | 9:0e838367ab6a | 18 | double hpa4 = 0.743993969858123; |
JonaVonk | 9:0e838367ab6a | 19 | |
JonaVonk | 9:0e838367ab6a | 20 | //4th order Butterworth low pass 10 Hz |
JonaVonk | 9:0e838367ab6a | 21 | double lpb0 = 0.0000132937288987445 ; |
JonaVonk | 9:0e838367ab6a | 22 | double lpb1 = 0.0000531749155949779 ; |
JonaVonk | 9:0e838367ab6a | 23 | double lpb2 = 0.0000797623733924668; |
JonaVonk | 9:0e838367ab6a | 24 | double lpb3 = 0.0000531749155949779; |
JonaVonk | 9:0e838367ab6a | 25 | double lpb4 = 0.0000132937288987445; |
JonaVonk | 9:0e838367ab6a | 26 | double lpa1 = -3.67172908916193; |
JonaVonk | 9:0e838367ab6a | 27 | double lpa2 = 5.06799838673419; |
JonaVonk | 9:0e838367ab6a | 28 | double lpa3 = -3.11596692520174; |
JonaVonk | 9:0e838367ab6a | 29 | double lpa4 = 0.719910327291871; |
JonaVonk | 9:0e838367ab6a | 30 | |
JonaVonk | 9:0e838367ab6a | 31 | // Multiplication with the gain |
JonaVonk | 9:0e838367ab6a | 32 | double gain = 10.00000; |
JonaVonk | 9:0e838367ab6a | 33 | |
JonaVonk | 9:0e838367ab6a | 34 | BiQuad notch50(nb0, nb1, nb2, na1, na2); |
JonaVonk | 9:0e838367ab6a | 35 | BiQuad4 highpass(hpb0, hpb1, hpb2, hpb3, hpb4, hpa1, hpa2, hpa3, hpa4); |
JonaVonk | 9:0e838367ab6a | 36 | BiQuad4 lowpass(lpb0, lpb1, lpb2, lpb3, lpb4, lpa1, lpa2, lpa3, lpa4); |
JonaVonk | 9:0e838367ab6a | 37 | |
JonaVonk | 9:0e838367ab6a | 38 | double FilterDesign(double u) |
JonaVonk | 9:0e838367ab6a | 39 | { |
sanou8 | 10:cbcb35182ef1 | 40 | double y_hp = highpass.step(y_n); // First the highpassfilter |
JonaVonk | 9:0e838367ab6a | 41 | double y_abs = abs(y_hp); // Make the signal values absolute |
JonaVonk | 9:0e838367ab6a | 42 | double y_lp = lowpass.step(y_abs); // Then a lowpass filter |
JonaVonk | 9:0e838367ab6a | 43 | double y_gain = y_lp*gain; // Multiply by a gain |
JonaVonk | 9:0e838367ab6a | 44 | |
JonaVonk | 9:0e838367ab6a | 45 | return y_gain; // Return this filtered value |
JonaVonk | 9:0e838367ab6a | 46 | } |