筋電センサプログラム

Dependencies:   mbed-rtos mbed

筋電

Committer:
dhpt
Date:
Thu Jan 04 06:30:00 2018 +0000
Revision:
13:94ce8bd0c0e1
Parent:
3:5d91bfe4a79d
???????????????; ????read?3.3????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dhpt 3:5d91bfe4a79d 1 /**
dhpt 3:5d91bfe4a79d 2 * @file FilterTest.h
dhpt 3:5d91bfe4a79d 3 * @brief Header file for FilterTest.cpp
dhpt 3:5d91bfe4a79d 4 * @date 2015.07.30
dhpt 3:5d91bfe4a79d 5 * @version 1.0.2.1
dhpt 3:5d91bfe4a79d 6 */
dhpt 3:5d91bfe4a79d 7 #ifndef _INC_FilterTest
dhpt 3:5d91bfe4a79d 8 #define _INC_FilterTest
dhpt 3:5d91bfe4a79d 9
dhpt 3:5d91bfe4a79d 10 #include "mbed.h"
dhpt 3:5d91bfe4a79d 11
dhpt 3:5d91bfe4a79d 12 /* High pass filter fc = 0.5 Hz, fs = 1000 Hz */
dhpt 3:5d91bfe4a79d 13 #define INIT_HB (0.998431665916719) /* HPF numerator coefficient */
dhpt 3:5d91bfe4a79d 14 #define INIT_HA (-0.996863331833438) /* HPF denominator coefficient */
dhpt 3:5d91bfe4a79d 15
dhpt 3:5d91bfe4a79d 16 /* Low pass filter fc = 30 Hz, fs = 1000 Hz */
dhpt 3:5d91bfe4a79d 17 #define INIT_LB (0.007820208033497) /* LPF numerator coefficient */
dhpt 3:5d91bfe4a79d 18 #define INIT_LA1 (-1.734725768809275) /* LPF denominator coefficient 1 */
dhpt 3:5d91bfe4a79d 19 #define INIT_LA2 (0.766006600943264) /* LPF denominator coefficient 2 */
dhpt 3:5d91bfe4a79d 20
dhpt 3:5d91bfe4a79d 21 /* Notch filter fc = 50 Hz, fs = 1000 Hz */
dhpt 3:5d91bfe4a79d 22 // #define INIT_NB (0.820675769028781) /* BRF numerator coefficient */
dhpt 3:5d91bfe4a79d 23 // #define INIT_NA1 (-1.561018075800720) /* BRF denominator coefficient 1 */
dhpt 3:5d91bfe4a79d 24 // #define INIT_NA2 (0.641351538057563) /* BRF denominator coefficient 2 */
dhpt 3:5d91bfe4a79d 25
dhpt 3:5d91bfe4a79d 26 // /* Notch filter fc = 60 Hz, fs = 1000 Hz */
dhpt 3:5d91bfe4a79d 27 #define INIT_NB (0.793459754030595) /* BRF numerator coefficient */
dhpt 3:5d91bfe4a79d 28 #define INIT_NA1 (-1.475480443592650) /* BRF denominator coefficient 1 */
dhpt 3:5d91bfe4a79d 29 #define INIT_NA2 (0.586919508061190) /* BRF denominator coefficient 2 */
dhpt 3:5d91bfe4a79d 30
dhpt 3:5d91bfe4a79d 31 /** Filter test
dhpt 3:5d91bfe4a79d 32 */
dhpt 3:5d91bfe4a79d 33 class FilterTest
dhpt 3:5d91bfe4a79d 34 {
dhpt 3:5d91bfe4a79d 35
dhpt 3:5d91bfe4a79d 36 public:
dhpt 3:5d91bfe4a79d 37 FilterTest();
dhpt 3:5d91bfe4a79d 38 double calc(double val, int hpf_on, int lpf_on, int brf_on);
dhpt 3:5d91bfe4a79d 39 bool set_hpf_coef(double hb, double ha);
dhpt 3:5d91bfe4a79d 40 bool set_lpf_coef(double lb, double la1, double la2);
dhpt 3:5d91bfe4a79d 41 bool set_brf_coef(double nb, double na1, double na2);
dhpt 3:5d91bfe4a79d 42
dhpt 3:5d91bfe4a79d 43 private:
dhpt 3:5d91bfe4a79d 44
dhpt 3:5d91bfe4a79d 45 /* Coefficient */
dhpt 3:5d91bfe4a79d 46 double _hb; /* High pass filter numerator coefficient */
dhpt 3:5d91bfe4a79d 47 double _ha; /* High pass filter denominator coefficient */
dhpt 3:5d91bfe4a79d 48 double _lb; /* Low pass filter numerator coefficient */
dhpt 3:5d91bfe4a79d 49 double _la1; /* Low pass filter denominator coefficient 1 */
dhpt 3:5d91bfe4a79d 50 double _la2; /* Low pass filter denominator coefficient 2 */
dhpt 3:5d91bfe4a79d 51 double _nb; /* Notch filter numerator coefficient */
dhpt 3:5d91bfe4a79d 52 double _na1; /* Notch filter denominator coefficient 1 */
dhpt 3:5d91bfe4a79d 53 double _na2; /* Notch filter denominator coefficient 2 */
dhpt 3:5d91bfe4a79d 54
dhpt 3:5d91bfe4a79d 55 /* Delay buffer */
dhpt 3:5d91bfe4a79d 56 double _hw; /* High pass filter delay buffer */
dhpt 3:5d91bfe4a79d 57 double _lw1; /* Low pass filter delay buffer 1 */
dhpt 3:5d91bfe4a79d 58 double _lw2; /* Low pass filter delay buffer 2 */
dhpt 3:5d91bfe4a79d 59 double _nw1; /* Notch filter delay buffer 1 */
dhpt 3:5d91bfe4a79d 60 double _nw2; /* Notch filter delay buffer 2 */
dhpt 3:5d91bfe4a79d 61
dhpt 3:5d91bfe4a79d 62 /* Member functions */
dhpt 3:5d91bfe4a79d 63 void reset_hpf_buf();
dhpt 3:5d91bfe4a79d 64 void reset_lpf_buf();
dhpt 3:5d91bfe4a79d 65 void reset_brf_buf();
dhpt 3:5d91bfe4a79d 66 double hpf(double x);
dhpt 3:5d91bfe4a79d 67 double lpf(double x);
dhpt 3:5d91bfe4a79d 68 double brf(double x);
dhpt 3:5d91bfe4a79d 69 };
dhpt 3:5d91bfe4a79d 70 #endif /* INC_FilterTest */