Public Member Functions | Protected Member Functions | Protected Attributes

FilterModel Struct Reference

Interface for implementation of a signal model. More...

#include <filter_model.h>

Inheritance diagram for FilterModel:
Full1T Full1T_FW Full2T Full2T_FW Full3T Simple1T Simple1T_FW Simple2T Simple2T_FW Simple3T

List of all members.

Public Member Functions

 FilterModel (int state_dim, double rs, const std::vector< double > &weights_on_tensors, bool constrained)
virtual ~FilterModel ()
virtual void F (vnl_matrix< double > &X)=0
virtual void H (const vnl_matrix< double > &X, vnl_matrix< double > &Y)=0
virtual void State2Tensor (const State &x, vec_t &m, vec_t &l)
virtual void State2Tensor (const State &x, const vec_t &old_m, vec_t &m1, vec_t &l1, vec_t &m2, vec_t &l2)
virtual void State2Tensor (const State &x, const vec_t &old_m, vec_t &m1, vec_t &l1, vec_t &m2, vec_t &l2, vec_t &m3, vec_t &l3)
int state_dim () const
void set_signal_dim (int dim)
int signal_dim () const
const vnl_matrix< double > & Q () const
const vnl_matrix< double > & R () const
const vnl_matrix< double > & D ()
const vnl_vector< double > & d ()
bool isConstrained ()
void set_signal_data (ISignalData *signal_data)

Protected Member Functions

double CheckZero (const double &d)

Protected Attributes

const int _state_dim
double _rs
int _signal_dim
ISignalData_signal_data
vnl_matrix< double > _Q
vnl_matrix< double > _R
vnl_matrix< double > _D
vnl_vector< double > _d
const std::vector< double > weights_on_tensors_
bool _constrained

Detailed Description

Interface for implementation of a signal model.

Todo:
IMO rename to SignalModel, FilterModel is confusing. A generic class that defines the transition function and the observation model to be used in the Kalman filter.

Constructor & Destructor Documentation

FilterModel::FilterModel ( int  state_dim,
double  rs,
const std::vector< double > &  weights_on_tensors,
bool  constrained 
) [inline]

Constructor

virtual FilterModel::~FilterModel (  )  [inline, virtual]

Destructor


Member Function Documentation

double FilterModel::CheckZero ( const double &  d  )  [protected]

Checks if d is smaller than a small negative threshold. If yes an error is returned. Otherwise d is rounded to 0.0

const vnl_matrix<double>& FilterModel::D (  )  [inline]

The inequality constraint matrix for the constrained UKF

const vnl_vector<double>& FilterModel::d (  )  [inline]

The inequality constraint right hand side for the constrained UKF

virtual void FilterModel::F ( vnl_matrix< double > &  X  )  [pure virtual]

state transition function

Implemented in Full1T_FW, Full1T, Full2T, Full2T_FW, Full3T, Simple1T_FW, Simple1T, Simple2T, Simple2T_FW, and Simple3T.

virtual void FilterModel::H ( const vnl_matrix< double > &  X,
vnl_matrix< double > &  Y 
) [pure virtual]

observation, i.e. signal reconstruction

Implemented in Full1T_FW, Full1T, Full2T, Full2T_FW, Full3T, Simple1T_FW, Simple1T, Simple2T, Simple2T_FW, and Simple3T.

bool FilterModel::isConstrained (  )  [inline]

Are we running the contrained version of the filter?

const vnl_matrix<double>& FilterModel::Q (  )  const [inline]

The noise in the state transfer function used by the UKF.

const vnl_matrix<double>& FilterModel::R (  )  const [inline]

The noise in the signal reconstruction used by the UKF.

void FilterModel::set_signal_data ( ISignalData signal_data  )  [inline]

Set the pointer to the diffusion signal data

void FilterModel::set_signal_dim ( int  dim  )  [inline]

Set the dimension of the signal, and resize the corresponding matrices correspondigly

int FilterModel::signal_dim (  )  const [inline]

Returns the dimension of the signal

virtual void FilterModel::State2Tensor ( const State x,
const vec_t old_m,
vec_t m1,
vec_t l1,
vec_t m2,
vec_t l2,
vec_t m3,
vec_t l3 
) [inline, virtual]

Extracts principal diffusion direction and eigen values from the state for the 3T cases

Reimplemented in Full3T, and Simple3T.

virtual void FilterModel::State2Tensor ( const State x,
const vec_t old_m,
vec_t m1,
vec_t l1,
vec_t m2,
vec_t l2 
) [inline, virtual]

Extracts principal diffusion direction and eigen values from the state for the 2T cases

Reimplemented in Full2T, Full2T_FW, Simple2T, and Simple2T_FW.

virtual void FilterModel::State2Tensor ( const State x,
vec_t m,
vec_t l 
) [inline, virtual]

Extracts principal diffusion direction and eigen values from the state for the 1T cases

Reimplemented in Full1T_FW, Full1T, Simple1T_FW, and Simple1T.

int FilterModel::state_dim (  )  const [inline]

Returns the dimension of the state


Member Data Documentation

bool FilterModel::_constrained [protected]

Are we using the constrained filter

vnl_matrix<double> FilterModel::_D [protected]

Inequality constraint matrix, only used for constrained UKF

vnl_vector<double> FilterModel::_d [protected]

Inequality right hand side, only used for constrained UKF

vnl_matrix<double> FilterModel::_Q [protected]

Process noise

vnl_matrix<double> FilterModel::_R [protected]

Signal reconstruction noise

double FilterModel::_rs [protected]

The constant signal noise for each signal component

Pointer to the diffusion signal data

int FilterModel::_signal_dim [protected]

The dimension of the signal

const int FilterModel::_state_dim [protected]

The dimension of the state

const std::vector<double> FilterModel::weights_on_tensors_ [protected]

The weights of each tensor. (Most commonly equal all are equal)


The documentation for this struct was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Defines