pf
|
A class template for Kalman filtering. More...
#include <cf_filters.h>
Public Types | |
using | ssv = Eigen::Matrix< float_t, dimstate, 1 > |
using | osv = Eigen::Matrix< float_t, dimobs, 1 > |
using | isv = Eigen::Matrix< float_t, diminput, 1 > |
using | ssMat = Eigen::Matrix< float_t, dimstate, dimstate > |
using | osMat = Eigen::Matrix< float_t, dimobs, dimobs > |
using | siMat = Eigen::Matrix< float_t, dimstate, diminput > |
using | oiMat = Eigen::Matrix< float_t, dimobs, diminput > |
using | obsStateSizeMat = Eigen::Matrix< float_t, dimobs, dimstate > |
using | stateObsSizeMat = Eigen::Matrix< float_t, dimstate, dimobs > |
![]() | |
using | obs_sized_vec = Eigen::Matrix< float_t, dimobs, 1 > |
using | state_sized_vec = Eigen::Matrix< float_t, dimstate, 1 > |
Public Member Functions | |
kalman () | |
Default constructor. More... | |
kalman (const ssv &initStateMean, const ssMat &initStateVar) | |
Non-default constructor. More... | |
virtual | ~kalman () |
The (virtual) destructor. | |
float_t | getLogCondLike () const |
returns the log of the latest conditional likelihood. More... | |
ssv | getFiltMean () const |
Get the current filter mean. More... | |
ssMat | getFiltVar () const |
Get the current filter variance-covariance matrix. More... | |
osv | getPredYMean (const ssMat &stateTrans, const obsStateSizeMat &obsMat, const siMat &stateInptAffector, const oiMat &obsInptAffector, const isv &inputData) const |
get the one-step-ahead point forecast for y More... | |
osMat | getPredYVar (const ssMat &stateTrans, const ssMat &cholStateVar, const obsStateSizeMat &obsMat, const osMat &cholObsVar) const |
get the one-step-ahead forecast variance More... | |
void | update (const osv &yt, const ssMat &stateTrans, const ssMat &cholStateVar, const siMat &stateInptAffector, const isv &inputData, const obsStateSizeMat &obsMat, const oiMat &obsInptAffector, const osMat &cholObsVar) |
Perform a Kalman filter predict-and-update. More... | |
![]() | |
virtual | ~cf_filter () |
The (virtual) destructor. | |
Private Member Functions | |
void | updatePrior (const ssMat &stateTransMat, const ssMat &cholStateVar, const siMat &stateInptAffector, const isv &inputData) |
Predicts the next state. More... | |
void | updatePosterior (const osv &yt, const obsStateSizeMat &obsMat, const oiMat &obsInptAffector, const isv &inputData, const osMat &cholObsVar) |
Turns prediction into new filtering distribution. More... | |
Private Attributes | |
ssv | m_predMean |
predictive state mean | |
ssv | m_filtMean |
filter mean | |
ssMat | m_predVar |
predictive var matrix | |
ssMat | m_filtVar |
filter var matrix | |
float_t | m_lastLogCondLike |
latest log conditional likelihood | |
bool | m_fresh |
has data been observed? | |
const float_t | m_pi |
pi | |
A class template for Kalman filtering.
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::isv = Eigen::Matrix<float_t,diminput,1> |
"input size vector" type alias for linear algebra stuff
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::obsStateSizeMat = Eigen::Matrix<float_t,dimobs,dimstate> |
"observation dimension by state dimension -sized matrix"
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::oiMat = Eigen::Matrix<float_t,dimobs,diminput> |
"observation dimension by input dim matrix"
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::osMat = Eigen::Matrix<float_t,dimobs,dimobs> |
"observation size matrix" type alias for linear algebra stuff
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::osv = Eigen::Matrix<float_t,dimobs,1> |
"observation size vector" type alias for linear algebra stuff
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::siMat = Eigen::Matrix<float_t,dimstate,diminput> |
"state dim by input dimension matrix"
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::ssMat = Eigen::Matrix<float_t,dimstate,dimstate> |
"state size matrix" type alias for linear algebra stuff
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::ssv = Eigen::Matrix<float_t,dimstate,1> |
"state size vector" type alias for linear algebra stuff
using pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::stateObsSizeMat = Eigen::Matrix<float_t,dimstate,dimobs> |
"state dimension by observation dimension matrix
pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::kalman |
Default constructor.
Need ths fir constructing default std::array<>s. Fills all vectors and matrices with zeros.
pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::kalman | ( | const ssv & | initStateMean, |
const ssMat & | initStateVar | ||
) |
Non-default constructor.
Non-default constructor.
auto pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::getFiltMean |
Get the current filter mean.
auto pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::getFiltVar |
Get the current filter variance-covariance matrix.
|
virtual |
returns the log of the latest conditional likelihood.
Implements pf::bases::cf_filter< dimstate, dimobs, float_t >.
auto pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::getPredYMean | ( | const ssMat & | stateTrans, |
const obsStateSizeMat & | obsMat, | ||
const siMat & | stateInptAffector, | ||
const oiMat & | obsInptAffector, | ||
const isv & | inputData | ||
) | const |
get the one-step-ahead point forecast for y
auto pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::getPredYVar | ( | const ssMat & | stateTrans, |
const ssMat & | cholStateVar, | ||
const obsStateSizeMat & | obsMat, | ||
const osMat & | cholObsVar | ||
) | const |
get the one-step-ahead forecast variance
void pf::filters::kalman< dimstate, dimobs, diminput, float_t, debug >::update | ( | const osv & | yt, |
const ssMat & | stateTrans, | ||
const ssMat & | cholStateVar, | ||
const siMat & | stateInptAffector, | ||
const isv & | inputData, | ||
const obsStateSizeMat & | obsMat, | ||
const oiMat & | obsInptAffector, | ||
const osMat & | cholObsVar | ||
) |
Perform a Kalman filter predict-and-update.
yt | the new data point. |
stateTrans | the transition matrix of the state |
cholStateVar | the Cholesky Decomposition of the state noise covariance matrix. |
stateInptAffector | the matrix affecting how input data affects state transition. |
inputData | exogenous input data |
obsMat | the observation/emission matrix of the observation's conditional (on the state) distn. |
obsInptAffector | the matrix affecting how input data affects the observational distribution. |
cholObsVar | the Cholesky Decomposition of the observatio noise covariance matrix. |
|
private |
Turns prediction into new filtering distribution.
yt | |
obsMat | |
obsInptAffector | |
inputData | |
cholObsVar |
|
private |
Predicts the next state.
stateTransMat | |
cholStateVar | |
stateInptAffector | |
inputData |