EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
ImmFilter.h File Reference

ImmRecursion and ImmFilter (decisions.md [switching-models], [imm], [filters-and-recursions]): a Hybrid state mixed through a Markov chain, predicted through each mode's model, and updated per mode, with Markov outlier states when a measurement's noise is by mode axis (ModeNoise) and a measurement per mode through a SwitchingMeasurement; the recursion that does this to a hybrid passed in, keeping the scratch it mixes and updates into, the filter that owns a hybrid and runs the recursion on it. More...

Go to the source code of this file.

Classes

struct  Emrys::ImmFilterUpdate< ModeUpdate, Scalar_, Allocator >
 What an IMM filter's update did: each mode's update before reduction, the observation's log-likelihood over every mode, and whether any mode accepted the measurement. More...
struct  Emrys::HybridPredictedJoint< Space_, ModeSpace_, Scalar_, Allocator_ >
 One IMM prediction as its smoother needs it: the mode probabilities the step started from, each mode's Gaussian predicted through its own model as a PredictedJoint, and the chain's transition matrix. More...
class  Emrys::ImmRecursion< Component_, Model_, Method_, Allocator_ >
 The interacting multiple model (IMM) filter's steps over a hybrid state, without the state: a switching process model, the method that predicts the modes whose models carry none of their own, and the scratch the modes are mixed and updated into, acting on a Hybrid passed in (decisions.md [filters-and-recursions]). More...
struct  Emrys::ImmRecursion< Component_, Model_, Method_, Allocator_ >::UpdateTypeOf< M >
 UpdateType<M>, named without being formed (see internal::UnlessGivenBlock). More...
class  Emrys::ImmFilter< Component_, Model_, Method_, Allocator_, Upkeep_ >
 An interacting multiple model (IMM) filter: a hybrid state with one component per mode, and the ImmRecursion that mixes it through a switching process model and updates it per mode. More...

Detailed Description

ImmRecursion and ImmFilter (decisions.md [switching-models], [imm], [filters-and-recursions]): a Hybrid state mixed through a Markov chain, predicted through each mode's model, and updated per mode, with Markov outlier states when a measurement's noise is by mode axis (ModeNoise) and a measurement per mode through a SwitchingMeasurement; the recursion that does this to a hybrid passed in, keeping the scratch it mixes and updates into, the filter that owns a hybrid and runs the recursion on it.

predictJoint() records a step as a HybridPredictedJoint for the IMM smoother in HybridGaussianHistory.h [smoothing], and a MixtureFilter of hybrids runs the recursion on each of its components. Read AmmFilter.h next; the design review is docs/guide/imm-filter.md.