General Kalman filter

Dependents:   HealthCare_Graduation

Fork of KalmanFilter by long dao

Committer:
DuyLionTran
Date:
Tue Jun 05 04:17:31 2018 +0000
Revision:
1:f696623db4b5
General Kalman Filter

Who changed what in which revision?

UserRevisionLine numberNew 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_ */