General Kalman filter

Dependents:   HealthCare_Graduation

Fork of KalmanFilter by long dao

Files at this revision

API Documentation at this revision

Comitter:
DuyLionTran
Date:
Tue Jun 05 04:17:31 2018 +0000
Parent:
0:dd8a94919e2e
Commit message:
General Kalman Filter

Changed in this revision

KalmaFilterPulse.cpp Show annotated file Show diff for this revision Revisions of this file
KalmanFilterPulse.h Show annotated file Show diff for this revision Revisions of this file
KamalFilterRSSI.cpp Show diff for this revision Revisions of this file
KamalFilterRSSI.h Show diff for this revision Revisions of this file
diff -r dd8a94919e2e -r f696623db4b5 KalmaFilterPulse.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/KalmaFilterPulse.cpp	Tue Jun 05 04:17:31 2018 +0000
@@ -0,0 +1,36 @@
+/* 
+ * File:   KalmanFilterPulse.cpp
+ * Author: Duy Lion Tran
+ * 
+ * Created on July 12, 2016, 1:04 PM
+ */
+
+#include "KalmanFilterPulse.h"
+
+KalmanFilterPulse::KalmanFilterPulse(double q, double r, double p)
+    : _q(q), _q_init(q), _r(r), _r_init(0), _x(0), _p(p), _p_init(p), _k(_p / (_p + _r))
+{
+
+}
+
+KalmanFilterPulse::~KalmanFilterPulse() {
+}
+
+/**
+ * update data
+ * 
+ * @param measurement
+ * @return 
+ */
+double KalmanFilterPulse::kalmanUpdate(double measurement) {
+    //prediction update
+    //omit _x = _x
+    _p = _p + _q;
+
+    //measurement update
+    _k = _p / (_p + _r);
+    _x = _x + _k * (measurement - _x);
+    _p = (1 - _k) * _p;
+
+    return _x;
+}
diff -r dd8a94919e2e -r f696623db4b5 KalmanFilterPulse.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/KalmanFilterPulse.h	Tue Jun 05 04:17:31 2018 +0000
@@ -0,0 +1,39 @@
+/* 
+ * File:   KalmanFilterPulse.h
+ * Author: longdh
+ *
+ * Created on July 12, 2016, 1:04 PM
+ */
+
+#ifndef _KALMANFILTERPULSE_H_
+#define _KALMANFILTERPULSE_H_
+
+class KalmanFilterPulse {
+public:
+    KalmanFilterPulse(double q, double r, double p);
+    virtual ~KalmanFilterPulse();
+    
+    void init(double x){ _x = x ;}
+    void setProcessNoiseCovariance(double i){ _q = i; _q_init = i;}
+    void setMeasurementNoiseCovariance(double i){_r = i; _r_init = i ;}
+    void setEstimatiomErrorCovariance(double i){_p = i; _p_init = i ;}
+    virtual double kalmanUpdate(double measurement);
+    void reset(){_q = _q_init; _r = _r_init ; _p = _p_init;};
+    
+    double getProcessNoiseCovariance(){ return _q;}
+    double getMeasurementNoiseCovariance(){return _r;}
+    double getEstimatiomErrorCovariance(){return _p;} 
+    double getKalmanGain() { return _k;}
+    
+private:
+    double _q; //process noise covariance
+    double _q_init;
+    double _r; //measurement noise covariance
+    double _r_init;
+    double _x; //value
+    double _p; //estimation error covariance
+    double _p_init;
+    double _k; //kalman gain
+};
+
+#endif /* _KALMANFILTERPULSE_H_ */
diff -r dd8a94919e2e -r f696623db4b5 KamalFilterRSSI.cpp
--- a/KamalFilterRSSI.cpp	Tue Aug 02 18:06:10 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* 
- * File:   KamalFilterRSSI.cpp
- * Author: longdh
- * 
- * Created on July 12, 2016, 1:04 PM
- */
-
-#include "KamalFilterRSSI.h"
-
-KamalFilterRSSI::KamalFilterRSSI(double q, double r, double p)
-    : _q(q), _q_init(q), _r(r), _r_init(0), _x(0), _p(p), _p_init(p), _k(_p / (_p + _r))
-{
-
-}
-
-KamalFilterRSSI::~KamalFilterRSSI() {
-}
-
-/**
- * update data
- * 
- * @param measurement
- * @return 
- */
-double KamalFilterRSSI::kalmanUpdate(double measurement) {
-    //prediction update
-    //omit _x = _x
-    _p = _p + _q;
-
-    //measurement update
-    _k = _p / (_p + _r);
-    _x = _x + _k * (measurement - _x);
-    _p = (1 - _k) * _p;
-
-    return _x;
-}
diff -r dd8a94919e2e -r f696623db4b5 KamalFilterRSSI.h
--- a/KamalFilterRSSI.h	Tue Aug 02 18:06:10 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* 
- * File:   KamalFilterRSSI.h
- * Author: longdh
- *
- * Created on July 12, 2016, 1:04 PM
- */
-
-#ifndef KAMALFILTERRSSI_H
-#define KAMALFILTERRSSI_H
-
-class KamalFilterRSSI {
-public:
-    KamalFilterRSSI(double q, double r, double p);
-    virtual ~KamalFilterRSSI();
-    
-    void init(double x){ _x = x ;}
-    void setProcessNoiseCovariance(double i){ _q = i; _q_init = i;}
-    void setMeasurementNoiseCovariance(double i){_r = i; _r_init = i ;}
-    void setEstimatiomErrorCovariance(double i){_p = i; _p_init = i ;}
-    virtual double kalmanUpdate(double measurement);
-    void reset(){_q = _q_init; _r = _r_init ; _p = _p_init;};
-    
-    double getProcessNoiseCovariance(){ return _q;}
-    double getMeasurementNoiseCovariance(){return _r;}
-    double getEstimatiomErrorCovariance(){return _p;} 
-    double getKalmanGain() { return _k;}
-    
-private:
-    double _q; //process noise covariance
-    double _q_init;
-    double _r; //measurement noise covariance
-    double _r_init;
-    double _x; //value
-    double _p; //estimation error covariance
-    double _p_init;
-    double _k; //kalman gain
-};
-
-#endif /* KAMALFILTERRSSI_H */