template<typename Path_, Measurement... Measurements>
class Emrys::SwitchingMeasurement< Path_, Measurements >
A measurement that switches between modes: one Measurement per value of a mode axis, so that a filter over a Hybrid updates each mode by the measurement that its value in that axis names [imm].
A sensor may see the state differently in each mode: with a bias or a scale factor that the mode sets, through a function that holds in one regime only, or not at all, when a blocked sensor reads clutter. switchingMeasurement<Sensor>(nominal, biased) on a mode space DiscreteProduct<Maneuver, Sensor> updates each mode whose Sensor value is the first by nominal and each other mode by biased, and each mode's own likelihood \( p(z \mid m) \) reweights it. The measurements may differ in model, function, noise, and method, as long as every mode's update has one type: one measurement space, and noise that is Gaussian in all of them or a mixture in all of them. None of them has noise by mode axis.
It is the counterpart of SwitchingModel for an update: where switchingModel<Maneuver>() selects the dynamics by an axis, switchingMeasurement<Sensor>() selects the measurement. Noise by mode axis, additiveNoise(mixture).byMode<Sensor>() (see ModeNoise), is the case in which the measurements differ in their noise alone, the components of one measurement's mixture noise being the axis's values.
- Template Parameters
-
| Path_ | the mode axis that selects the measurement, as a tag or TagPath |
| Measurements | the measurements, in the order of the axis's values |
- See also
- switchingMeasurement(), SwitchingModel, ImmFilter