ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
itk::KalmanLinearEstimator< T, VEstimatorDimension > Class Template Reference

#include <itkKalmanLinearEstimator.h>

Detailed Description

template<typename T, unsigned int VEstimatorDimension>
class itk::KalmanLinearEstimator< T, VEstimatorDimension >

Implement a linear recursive estimator.

KalmanLinearEstimator class implements a linear recursive estimator. The class is templated over the type of the parameters to be estimated and over the number of parameters. Recursive estimation is a fast mechanism for getting information about a system for which we only have access to measures that are linearly related with the parameters we want to estimate.

Definition at line 43 of file itkKalmanLinearEstimator.h.

Public Types

using MatrixType = vnl_matrix_fixed< T, VEstimatorDimension, VEstimatorDimension >
 
using ValueType = T
 
using VectorType = vnl_vector_fixed< T, VEstimatorDimension >
 

Public Member Functions

void ClearEstimation ()
 
void ClearVariance ()
 
const VectorTypeGetEstimator () const
 
const MatrixTypeGetVariance () const
 
void SetVariance (const MatrixType &m)
 
void UpdateWithNewMeasure (const ValueType &newMeasure, const VectorType &newPredictor)
 
void SetVariance (const ValueType &var=1.0)
 

Static Public Attributes

static constexpr unsigned int Dimension = VEstimatorDimension
 

Private Member Functions

void UpdateVariance (const VectorType &)
 

Private Attributes

VectorType m_Estimator
 
MatrixType m_Variance
 

Member Typedef Documentation

◆ MatrixType

template<typename T , unsigned int VEstimatorDimension>
using itk::KalmanLinearEstimator< T, VEstimatorDimension >::MatrixType = vnl_matrix_fixed<T, VEstimatorDimension, VEstimatorDimension>

Matrix type defines a generic matrix type that is used for the matricial operations performed during estimation.

Definition at line 57 of file itkKalmanLinearEstimator.h.

◆ ValueType

template<typename T , unsigned int VEstimatorDimension>
using itk::KalmanLinearEstimator< T, VEstimatorDimension >::ValueType = T

Type is the type associated with the parameters to be estimated. All the parameters are of the same type. Natural choices could be floats and doubles, because Type also is used for all the internal computations.

Definition at line 63 of file itkKalmanLinearEstimator.h.

◆ VectorType

template<typename T , unsigned int VEstimatorDimension>
using itk::KalmanLinearEstimator< T, VEstimatorDimension >::VectorType = vnl_vector_fixed<T, VEstimatorDimension>

Vector type defines a generic vector type that is used for the matricial operations performed during estimation.

Definition at line 53 of file itkKalmanLinearEstimator.h.

Member Function Documentation

◆ ClearEstimation()

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::ClearEstimation ( )
inline

This method resets the estimator. It set all the parameters to null. The covariance matrix is not changed.

See also
Estimator
Variance
ClearVariance

Definition at line 76 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Estimator.

◆ ClearVariance()

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::ClearVariance ( )
inline

This method resets the covariance matrix. It is set to an identity matrix

See also
Estimator
Variance
ClearEstimation

Definition at line 84 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Variance.

◆ GetEstimator()

template<typename T , unsigned int VEstimatorDimension>
const VectorType& itk::KalmanLinearEstimator< T, VEstimatorDimension >::GetEstimator ( ) const
inline

This method returns the vector of estimated parameters

See also
Estimator

Definition at line 117 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Estimator.

◆ GetVariance()

template<typename T , unsigned int VEstimatorDimension>
const MatrixType& itk::KalmanLinearEstimator< T, VEstimatorDimension >::GetVariance ( ) const
inline

This method returns the covariance matrix of the estimated parameters

See also
Variance

Definition at line 125 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Variance.

◆ SetVariance() [1/2]

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::SetVariance ( const MatrixType m)
inline

This method sets the covariance matrix to known matrix. It is intended to initialize the estimator with a priori information about the statistical distribution of the parameters. It can also be used to resume the operation of a previously used estimator using it last known state.

See also
Estimator
Variance
ClearEstimation

Definition at line 109 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Variance.

◆ SetVariance() [2/2]

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::SetVariance ( const ValueType var = 1.0)
inline

This method sets the covariance matrix to a diagonal matrix with equal values. It is useful when the variance of all the parameters be estimated are the same and the parameters are considered independents.

See also
Estimator
Variance
ClearEstimation

Definition at line 96 of file itkKalmanLinearEstimator.h.

References itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Variance.

◆ UpdateVariance()

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::UpdateVariance ( const VectorType newPredictor)
private

This methods performs the update of the parameter's covariance matrix. It is called by updateWithNewMeasure() method. Users are not expected to call this method directly.

See also
updateWithNewMeasure

Definition at line 172 of file itkKalmanLinearEstimator.h.

◆ UpdateWithNewMeasure()

template<typename T , unsigned int VEstimatorDimension>
void itk::KalmanLinearEstimator< T, VEstimatorDimension >::UpdateWithNewMeasure ( const ValueType newMeasure,
const VectorType newPredictor 
)

Update the estimation using the information provided by a new measure along with a new line of the linear predictor. This method is the one that should be called iteratively in order to estimate the parameter's vector. It internally updates the covariance matrix.

Definition at line 153 of file itkKalmanLinearEstimator.h.

Member Data Documentation

◆ Dimension

template<typename T , unsigned int VEstimatorDimension>
constexpr unsigned int itk::KalmanLinearEstimator< T, VEstimatorDimension >::Dimension = VEstimatorDimension
staticconstexpr

Dimension of the vector of parameters to be estimated. It is equivalent to the number of parameters to estimate.

Definition at line 49 of file itkKalmanLinearEstimator.h.

◆ m_Estimator

template<typename T , unsigned int VEstimatorDimension>
VectorType itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Estimator
private

◆ m_Variance

template<typename T , unsigned int VEstimatorDimension>
MatrixType itk::KalmanLinearEstimator< T, VEstimatorDimension >::m_Variance
private

Estimation of the parameter's covariance matrix. This matrix contains the information about the state of the estimator. It holds all the information obtained from previous measures provided to the estimator. The initialization of this matrix is critical to the behavior of the estimator, at least to ensure a short transient period for stabilizing the estimation.

See also
SetVariance
GetVariance

Definition at line 148 of file itkKalmanLinearEstimator.h.

Referenced by itk::KalmanLinearEstimator< T, VEstimatorDimension >::ClearVariance(), itk::KalmanLinearEstimator< T, VEstimatorDimension >::GetVariance(), and itk::KalmanLinearEstimator< T, VEstimatorDimension >::SetVariance().


The documentation for this class was generated from the following file: