KalmanSmoother Class Template Reference

Inheritance diagram for KalmanSmoother:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class T>
class indii::ml::filter::KalmanSmoother< T >

Kalman two-filter smoother.

Author:
Lawrence Murray <lawrence@indii.org>
Version:
Rev
Date:
Date
Parameters:
T The type of time.
The Kalman two-filter smoother performs both a forward and backwards filtering pass, fusing the estimates from the two passes into the smoothed estimate. The forwards filtering pass is identical to that of KalmanFilter. The backwards filtering pass requires the inverse of the state transition model, and works in an analogous fashion to the forwards pass, but with time reversed.

It is suitable for models with linear transition and measurement functions, approximating state and noise with indii::ml::aux::GaussianPdf distributions.

Bug:
Buggy, see test results. Consider RauchTungStriebelSmoother instead.
See also:
indii::ml::filter for general usage guidelines.

LinearModel for more detail on linear filters.

Definition at line 38 of file KalmanSmoother.hpp.


Public Member Functions

 KalmanSmoother (KalmanSmootherModel< T > *model, const T tT, const indii::ml::aux::GaussianPdf &p_xT)
 Create new Kalman two-filter smoother.
virtual ~KalmanSmoother ()
 Destructor.
virtual void smooth (const T tn, const indii::ml::aux::vector &ytn, const indii::ml::aux::GaussianPdf &p_xtn_ytn)
 Rewind system to time of previous measurement and smooth.
virtual
indii::ml::aux::GaussianPdf 
backwardMeasure ()
 Apply the measurement function to the current filtered state to obtain an estimated measurement.
virtual
indii::ml::aux::GaussianPdf 
smoothedMeasure ()
 Apply the measurement function to the current smoothed state to obtain an estimated measurement.

Constructor & Destructor Documentation

KalmanSmoother ( KalmanSmootherModel< T > *  model,
const T  tT,
const indii::ml::aux::GaussianPdf p_xT 
) [inline]

Create new Kalman two-filter smoother.

Parameters:
model Model to estimate.
tT $t_T$; starting time.
p_xT $p(\mathbf{x}_T)$; prior over the state at time $t_T$.

Definition at line 80 of file KalmanSmoother.hpp.

~KalmanSmoother (  )  [inline, virtual]

Destructor.

Definition at line 88 of file KalmanSmoother.hpp.


Member Function Documentation

void smooth ( const T  tn,
const indii::ml::aux::vector ytn,
const indii::ml::aux::GaussianPdf p_xtn_ytn 
) [inline, virtual]

Rewind system to time of previous measurement and smooth.

Performs the backward filtering step and fuses this with the given prediction from the forward filtering step to produce the smoothed prediction.

Parameters:
tn $t_n$; the time to which to rewind the system. This must be less than the current time $t_{n+1}$.
ytn $\mathbf{y}_n$; measurement at time $t_n$.
p_xtn_ytn $p(\mathbf{x}_n\,|\,\mathbf{y}_{1:n})$; forward filter density.

Implements TwoFilterSmoother< T >.

Definition at line 93 of file KalmanSmoother.hpp.

indii::ml::aux::GaussianPdf backwardMeasure (  )  [inline, virtual]

Apply the measurement function to the current filtered state to obtain an estimated measurement.

Returns:
The estimated measurement.

Implements TwoFilterSmoother< T >.

Definition at line 158 of file KalmanSmoother.hpp.

indii::ml::aux::GaussianPdf smoothedMeasure (  )  [inline, virtual]

Apply the measurement function to the current smoothed state to obtain an estimated measurement.

Returns:
The estimated measurement.

Implements Smoother.

Definition at line 152 of file KalmanSmoother.hpp.


Generated on Wed Dec 17 15:11:58 2008 for dysii Dynamical Systems Library by  doxygen 1.5.3