EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::ModeNoise< Axis, Part > Class Template Reference

Additive mixture noise whose components are the values of a mode axis, as additiveNoise(mixture).byMode<Axis>() declares it (decisions.md [imm]): the Markov outlier model, in which a sensor's outlier state is a mode of the target that persists as the mode chain says. More...

#include <EmrysFilter/Models/Policies.h>

Inheritance diagram for Emrys::ModeNoise< Axis, Part >:
Emrys::AdditiveNoise< Part >

Public Types

using ModeAxisType = Axis
 the path to the mode axis whose values the components are
Public Types inherited from Emrys::AdditiveNoise< Part >
using Distribution
 The one unplaced distribution's type, unqualified, or the covariance's.

Public Member Functions

 ModeNoise (AdditiveNoise< Part > noise)
 noise, with its components as the values of the mode axis.
Public Member Functions inherited from Emrys::AdditiveNoise< Part >
 AdditiveNoise (Parts... parts)
 The noise of parts.
std::tuple< Parts... > const & parts () const
Distribution const & distribution () const &
auto byMode () const &

Additional Inherited Members

Static Public Attributes inherited from Emrys::AdditiveNoise< Part >
static constexpr bool Placed
 whether the parts are placed by tag path, and so become one Gaussian in the output space
static constexpr bool ZeroMean
 whether the one unplaced part is a covariance alone, zero-mean noise with no space of its own
static constexpr bool HasOwnSpace
 whether the one unplaced part is a distribution, whose space a model's output may take

Detailed Description

template<typename Axis, typename Part>
class Emrys::ModeNoise< Axis, Part >

Additive mixture noise whose components are the values of a mode axis, as additiveNoise(mixture).byMode<Axis>() declares it (decisions.md [imm]): the Markov outlier model, in which a sensor's outlier state is a mode of the target that persists as the mode chain says.

A filter whose state has the mode axis Axis, such as an ImmFilter whose mode space has it, updates each mode with the one component that the mode's value in Axis names, in the order of the axis's values, and reweights the mode by that component's likelihood; the components' weights are not used, since the chain gives the probabilities. A filter whose state has no mode space, such as a KalmanFilter or a GaussianMixtureFilter, reads it as the AdditiveNoise it derives from, a mixture whose weights are the outliers' rate at each measurement, independent of the last: the memoryless outlier model. A filter whose state has a mode space without Axis refuses it at compile time. So one measurement serves the outlier-robust filter and the IMM, and an IMM always updates the axis the measurement names. The weights the memoryless reading uses should match the chain's stationary probabilities on Axis, for the two readings to describe one sensor.

Template Parameters
Axisthe path to the mode axis, a tag or a TagPath
Partthe mixture, as held
See also
AdditiveNoise::byMode(), ImmFilter

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