간단한 칼만 필터(Kalman Filter) 소스 코드와 사용 예제
칼만 필터(Kalman filter)는 노이즈가 포함된 측정치로 부터 실체 상태를 추정(推定, estimation)하는 도구다. 본 포스트의 칼만 필터 소스는 한 타겟의 위치를 추정하는 용도로 만들어 졌다. 위키피디아 페이지( https://en.wikipedia.org/wiki/Kalman_filter )와 “Human Target Tracking in Multistatic Ultra-Wideband Radar” 논문 등을 참조하여 칼만 필터의 공식을 구현하였다. F,H,Q,R matrix는 아래와 같은 값으로 정하여 사용하였다. 칼만 필터 c++ 소스는 아래와 같다. #include <malloc.h> #include <Eigen/Dense> __declspec(align(16)) class CKalmanFilter { private: BOOL mFirst; Eigen::MatrixXd mX; Eigen::Matrix4d mP; Eigen::Matrix4d mF; Eigen::MatrixXd mH; Eigen::Matrix2d mR; // measurement noise covariance Eigen::Matrix4d mQ; // process noise covariance public: void* operator new(size_t i) { return _mm_malloc(i, 16); } void operator delete(void* p) { _mm_free(p); } CKalmanFilter(double process_var, double measure_var, double T) { ...