estimator-1.1.0.0: State-space estimation algorithms such as Kalman Filters

Safe HaskellNone
LanguageHaskell2010

Numeric.Estimator.Augment

Description

Some system models are best handled by injecting some measurements into the process model. These measurements are not truly part of the filter state, and so shouldn't appear in the state vector. However, when the process model runs, the state needs to be augmented with these measurements, and the process uncertainty needs to be augmented with their noise covariance.

As currently implemented, this only works for process models where the Filter type is a GaussianFilter instance. Generalizing this interface would be useful future work.

Synopsis

Documentation

data AugmentState state extra a Source

Holder for the basic state vector plus the augmented extra state.

Constructors

AugmentState 

Fields

getState :: state a
 
getExtra :: extra a
 

Instances

(Applicative state, Applicative extra) => Functor (AugmentState state extra) 
(Applicative state, Applicative extra) => Applicative (AugmentState state extra) 
(Applicative state, Applicative extra, Traversable state, Traversable extra) => Foldable (AugmentState state extra) 
(Applicative state, Applicative extra, Traversable state, Traversable extra) => Traversable (AugmentState state extra) 
(Applicative state, Applicative extra, Distributive state, Distributive extra) => Distributive (AugmentState state extra) 
(Applicative state, Applicative extra) => Additive (AugmentState state extra) 

augmentProcess Source

Arguments

:: (Num (Var t), Applicative state, Applicative extra, Process t, GaussianFilter (Filter t), State t ~ AugmentState state extra) 
=> t

base process model

-> extra (Var t)

extra state

-> state (state (Var t))

base process uncertainty

-> extra (extra (Var t))

extra process uncertainty

-> Filter t state (Var t)

prior (unaugmented) state

-> Filter t state (Var t)

posterior (unaugmented) state

Run an augmented process model with the given extra data.