void Configure( unsigned int s, unsigned int i, unsigned int m );
- /// Iteration methods
- virtual void Initialize( );
- virtual void Predict( );
- virtual void Innovate( );
- virtual void Filtrate( );
- virtual void OneStep( )
+ // Iteration methods
+ virtual void Initialize( );
+ virtual void Predict( );
+ virtual void Innovate( );
+ virtual void Filtrate( );
+ virtual void OneStep( )
{
this->Predict( );
this->Innovate( );
this->Filtrate( );
}
- virtual void NSteps( unsigned int n )
+ virtual void NSteps( unsigned int n )
{
for( unsigned int i = 0; i < n; i++ )
this->OneStep( );
}
- unsigned int CurrentIteration( ) const
+ unsigned int CurrentIteration( ) const
{ return( this->m_I ); }
- unsigned char CurrentStep( ) const
+ unsigned char CurrentStep( ) const
{ return( this->m_Step ); }
protected:
- KalmanFilter( );
- virtual ~KalmanFilter( );
+ KalmanFilter( );
+ virtual ~KalmanFilter( );
private:
- // Purposely not implemented
- KalmanFilter( const Self& );
- void operator=( const Self& );
+ // Purposely not implemented
+ KalmanFilter( const Self& );
+ void operator=( const Self& );
protected:
- // Filter dimensions
- unsigned int m_StateSize;
- unsigned int m_InputSize;
- unsigned int m_MeasureSize;
-
- // Transition matrices
- TMatrix m_A; /// Transition
- TMatrix m_B; /// Input control
- TMatrix m_H; /// Measure
- TMatrix m_Id; /// Identity matrix
-
- // Noise matrices
- TMatrix m_Q; /// Process noise covariance
- TMatrix m_R; /// Measure noise covariance
-
- // Initial values
- TVector m_x0; /// Initial state
- TMatrix m_P0; /// Initial error covariance
-
- // Loop vectors
- TVector m_u; /// Last real input
- TVector m_m; /// Last real measure
- TVector m_xm; /// A priori state
- TVector m_xp; /// A posteriori state
-
- // Loop matrices
- TMatrix m_K; /// kalman gain
- TMatrix m_Pm; /// A priori error
- TMatrix m_Pp; /// A posteriori error
-
- // Loop values
- unsigned int m_I; /// Current iteration
- unsigned char m_Step; /// Current step within current iteration
-
- // -----------------------------------------------------------------
- // Classic kronecker product operator
- // -----------------------------------------------------------------
- template< class M >
- static void Kronecker( M& AkB, const M& A, const M& B );
+ // Filter dimensions
+ unsigned int m_StateSize;
+ unsigned int m_InputSize;
+ unsigned int m_MeasureSize;
+
+ // Transition matrices
+ TMatrix m_A; // Transition
+ TMatrix m_B; // Input control
+ TMatrix m_H; // Measure
+ TMatrix m_Id; // Identity matrix
+
+ // Noise matrices
+ TMatrix m_Q; // Process noise covariance
+ TMatrix m_R; // Measure noise covariance
+
+ // Initial values
+ TVector m_x0; // Initial state
+ TMatrix m_P0; // Initial error covariance
+
+ // Loop vectors
+ TVector m_u; // Last real input
+ TVector m_m; // Last real measure
+ TVector m_xm; // A priori state
+ TVector m_xp; // A posteriori state
+
+ // Loop matrices
+ TMatrix m_K; // kalman gain
+ TMatrix m_Pm; // A priori error
+ TMatrix m_Pp; // A posteriori error
+
+ // Loop values
+ unsigned int m_I; // Current iteration
+ unsigned char m_Step; // Current step within current iteration
+
+ // -------------------------------------------------------------------
+ // Classic kronecker product operator
+ // -------------------------------------------------------------------
+ template< class M >
+ static void Kronecker( M& AkB, const M& A, const M& B );
};
} // ecapseman
} // ecapseman
+#ifndef ITK_MANUAL_INSTANTIATION
#include <cpExtensions/Algorithms/KalmanFilter.hxx>
+#endif // ITK_MANUAL_INSTANTIATION
#endif // __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__H__