root/doc/tutorial/kalman.dox @ 365

Revision 272, 2.0 kB (checked in by smidl, 16 years ago)

Examples

Line 
1/*!
2\page kalman Examples of (extended) Kalman filtering
3
4Kalman filtering and Extended Kalman filtering are special cases of Bayesian filtering.
5The Kalman filter is optimal for linear state space model with Gaussian disturbances, the extended Kalman filter
6is derived as linearization of non-linear state space models with Gaussian noises. Hence it is only sub-optimal filter.
7
8More advanced filtering algorithms for non-linear non-Gaussian models can be derived, see ...
9
10\section klm Kalman Filtering
11Kalman filtering is optimal estimation procedure for linear state space model:
12\f{eqnarray}
13x_t &= &A x_{t-1} + B u_{t} + v_t,\\
14y_t &= &C x_{t} + D u_{t} + w_t,
15\f}
16where \f$ x_t \f$ is the state, \f$ y_t \f$ is the system output, \f$ A, B, C, D\f$ are state matrices of appropriate dimensions, \f$v_t, w_t\f$ are zero mean Gaussian noises with covariance matrices \f$Q, R\f$, respectively.
17
18Both prior and posterior densities on the state are Gaussian, i.e. of the class enorm.
19
20There is a range of classes that implements this functionality, namely:
21- bdm::KalmanFull which implements the estimation algorithm on full matrices,
22- bdm::KalmanCh which implements the estimation algorithm using choleski decompositions and QR  algorithm.
23
24\section ekf Extended Kalman Filtering
25Extended Kalman filtering arise by linearization of non-linear state space model:
26\f{eqnarray}
27x_t &= &g( x_{t-1},  u_{t}) + v_t,\\
28y_t &= &h( x_{t} ,  u_{t}) + w_t,
29\f}
30where \f$ g(), h() \f$ are general non-linear functions which have finite derivatives. Remaining variables have the same meaning as in the Kalman Filter.
31
32In order to use this class, the non-linear functions and their derivatives must be defined as an instance of class \c diffbifn.
33
34Two classes are defined:
35- bdm::EKFfull on full size matrices,
36- bdm::EKFCh on Choleski decompositions and using QR algorithm.
37
38\section exa Examples of Use
39
40The classes can be used directly in C++ or via User Info. The latter example is illustrated in file \subpage estimator. A very short example of the former follows:
41
42\include kalman_simple.cpp
43
44*/
Note: See TracBrowser for help on using the browser.