General Kalman filter
Dependents: HealthCare_Graduation
Fork of KalmanFilter by
KalmanFilterPulse.h@1:f696623db4b5, 2018-06-05 (annotated)
- Committer:
- DuyLionTran
- Date:
- Tue Jun 05 04:17:31 2018 +0000
- Revision:
- 1:f696623db4b5
General Kalman Filter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DuyLionTran | 1:f696623db4b5 | 1 | /* |
DuyLionTran | 1:f696623db4b5 | 2 | * File: KalmanFilterPulse.h |
DuyLionTran | 1:f696623db4b5 | 3 | * Author: longdh |
DuyLionTran | 1:f696623db4b5 | 4 | * |
DuyLionTran | 1:f696623db4b5 | 5 | * Created on July 12, 2016, 1:04 PM |
DuyLionTran | 1:f696623db4b5 | 6 | */ |
DuyLionTran | 1:f696623db4b5 | 7 | |
DuyLionTran | 1:f696623db4b5 | 8 | #ifndef _KALMANFILTERPULSE_H_ |
DuyLionTran | 1:f696623db4b5 | 9 | #define _KALMANFILTERPULSE_H_ |
DuyLionTran | 1:f696623db4b5 | 10 | |
DuyLionTran | 1:f696623db4b5 | 11 | class KalmanFilterPulse { |
DuyLionTran | 1:f696623db4b5 | 12 | public: |
DuyLionTran | 1:f696623db4b5 | 13 | KalmanFilterPulse(double q, double r, double p); |
DuyLionTran | 1:f696623db4b5 | 14 | virtual ~KalmanFilterPulse(); |
DuyLionTran | 1:f696623db4b5 | 15 | |
DuyLionTran | 1:f696623db4b5 | 16 | void init(double x){ _x = x ;} |
DuyLionTran | 1:f696623db4b5 | 17 | void setProcessNoiseCovariance(double i){ _q = i; _q_init = i;} |
DuyLionTran | 1:f696623db4b5 | 18 | void setMeasurementNoiseCovariance(double i){_r = i; _r_init = i ;} |
DuyLionTran | 1:f696623db4b5 | 19 | void setEstimatiomErrorCovariance(double i){_p = i; _p_init = i ;} |
DuyLionTran | 1:f696623db4b5 | 20 | virtual double kalmanUpdate(double measurement); |
DuyLionTran | 1:f696623db4b5 | 21 | void reset(){_q = _q_init; _r = _r_init ; _p = _p_init;}; |
DuyLionTran | 1:f696623db4b5 | 22 | |
DuyLionTran | 1:f696623db4b5 | 23 | double getProcessNoiseCovariance(){ return _q;} |
DuyLionTran | 1:f696623db4b5 | 24 | double getMeasurementNoiseCovariance(){return _r;} |
DuyLionTran | 1:f696623db4b5 | 25 | double getEstimatiomErrorCovariance(){return _p;} |
DuyLionTran | 1:f696623db4b5 | 26 | double getKalmanGain() { return _k;} |
DuyLionTran | 1:f696623db4b5 | 27 | |
DuyLionTran | 1:f696623db4b5 | 28 | private: |
DuyLionTran | 1:f696623db4b5 | 29 | double _q; //process noise covariance |
DuyLionTran | 1:f696623db4b5 | 30 | double _q_init; |
DuyLionTran | 1:f696623db4b5 | 31 | double _r; //measurement noise covariance |
DuyLionTran | 1:f696623db4b5 | 32 | double _r_init; |
DuyLionTran | 1:f696623db4b5 | 33 | double _x; //value |
DuyLionTran | 1:f696623db4b5 | 34 | double _p; //estimation error covariance |
DuyLionTran | 1:f696623db4b5 | 35 | double _p_init; |
DuyLionTran | 1:f696623db4b5 | 36 | double _k; //kalman gain |
DuyLionTran | 1:f696623db4b5 | 37 | }; |
DuyLionTran | 1:f696623db4b5 | 38 | |
DuyLionTran | 1:f696623db4b5 | 39 | #endif /* _KALMANFILTERPULSE_H_ */ |