CQ Publishing
/
FftTest
Interface 2015年4月号 第1部 第7章のプログラム
Embed:
(wiki syntax)
Show/hide line numbers
FilterTest.h
Go to the documentation of this file.
00001 /** 00002 * @file FilterTest.h 00003 * @brief Header file for FilterTest.cpp 00004 * @date 2015.07.30 00005 * @version 1.0.2.1 00006 */ 00007 #ifndef _INC_FilterTest 00008 #define _INC_FilterTest 00009 00010 #include "mbed.h" 00011 00012 /* High pass filter fc = 0.5 Hz, fs = 1000 Hz */ 00013 #define INIT_HB (0.998431665916719) /* HPF numerator coefficient */ 00014 #define INIT_HA (-0.996863331833438) /* HPF denominator coefficient */ 00015 00016 /* Low pass filter fc = 30 Hz, fs = 1000 Hz */ 00017 #define INIT_LB (0.007820208033497) /* LPF numerator coefficient */ 00018 #define INIT_LA1 (-1.734725768809275) /* LPF denominator coefficient 1 */ 00019 #define INIT_LA2 (0.766006600943264) /* LPF denominator coefficient 2 */ 00020 00021 /* Notch filter fc = 50 Hz, fs = 1000 Hz */ 00022 // #define INIT_NB (0.820675769028781) /* BRF numerator coefficient */ 00023 // #define INIT_NA1 (-1.561018075800720) /* BRF denominator coefficient 1 */ 00024 // #define INIT_NA2 (0.641351538057563) /* BRF denominator coefficient 2 */ 00025 00026 // /* Notch filter fc = 60 Hz, fs = 1000 Hz */ 00027 #define INIT_NB (0.793459754030595) /* BRF numerator coefficient */ 00028 #define INIT_NA1 (-1.475480443592650) /* BRF denominator coefficient 1 */ 00029 #define INIT_NA2 (0.586919508061190) /* BRF denominator coefficient 2 */ 00030 00031 /** Filter test 00032 */ 00033 class FilterTest 00034 { 00035 00036 public: 00037 FilterTest(); 00038 double calc(double val, int hpf_on, int lpf_on, int brf_on); 00039 bool set_hpf_coef(double hb, double ha); 00040 bool set_lpf_coef(double lb, double la1, double la2); 00041 bool set_brf_coef(double nb, double na1, double na2); 00042 00043 private: 00044 00045 /* Coefficient */ 00046 double _hb; /* High pass filter numerator coefficient */ 00047 double _ha; /* High pass filter denominator coefficient */ 00048 double _lb; /* Low pass filter numerator coefficient */ 00049 double _la1; /* Low pass filter denominator coefficient 1 */ 00050 double _la2; /* Low pass filter denominator coefficient 2 */ 00051 double _nb; /* Notch filter numerator coefficient */ 00052 double _na1; /* Notch filter denominator coefficient 1 */ 00053 double _na2; /* Notch filter denominator coefficient 2 */ 00054 00055 /* Delay buffer */ 00056 double _hw; /* High pass filter delay buffer */ 00057 double _lw1; /* Low pass filter delay buffer 1 */ 00058 double _lw2; /* Low pass filter delay buffer 2 */ 00059 double _nw1; /* Notch filter delay buffer 1 */ 00060 double _nw2; /* Notch filter delay buffer 2 */ 00061 00062 /* Member functions */ 00063 void reset_hpf_buf(); 00064 void reset_lpf_buf(); 00065 void reset_brf_buf(); 00066 double hpf(double x); 00067 double lpf(double x); 00068 double brf(double x); 00069 }; 00070 #endif /* INC_FilterTest */
Generated on Wed Jul 13 2022 17:36:59 by 1.7.2