Coverage for src/gncpy/filters/ukf_gaussian_scale_mixture_filter.py: 78%
36 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-19 05:48 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-19 05:48 +0000
1from gncpy.filters.gsm_filter_base import GSMFilterBase
2from gncpy.filters.unscented_kalman_filter import UnscentedKalmanFilter
5class UKFGaussianScaleMixtureFilter(GSMFilterBase):
6 """Implementation of a UKF Gaussian Scale Mixture filter.
8 Notes
9 -----
10 This is based on the SKQF GSM derivation in
11 :cite:`VilaValls2012_NonlinearBayesianFilteringintheGaussianScaleMixtureContext`
12 but utilizes a UKF as the core filter instead.
13 """
15 def __init__(self, sigmaPoints=None, **kwargs):
16 """Initialize the object."""
17 super().__init__(**kwargs)
19 self._coreFilter = UnscentedKalmanFilter(sigmaPoints=sigmaPoints)
21 def set_state_model(self, **kwargs):
22 """Wrapper for the core filter; see :meth:`.UnscentedKalmanFilter.set_state_model` for details."""
23 super().set_state_model(**kwargs)
25 def set_measurement_model(self, **kwargs):
26 """Wrapper for the core filter; see :meth:`.UnscentedKalmanFilter.set_measurement_model` for details."""
27 super().set_measurement_model(**kwargs)
29 def init_sigma_points(self, *args, **kwargs):
30 """Wrapper for the core filter; see :meth:`.UnscentedKalmanFilter.init_sigma_points` for details."""
31 self._coreFilter.init_sigma_points(*args, **kwargs)
33 @property
34 def dt(self):
35 """Wrapper for the core filter: see :attr:`.UnscentedKalmanFilter.dt` for details."""
36 return self._coreFilter.dt
38 @dt.setter
39 def dt(self, val):
40 self._coreFilter.dt = val
42 @property
43 def alpha(self):
44 """Wrapper for the core filter: see :attr:`.UnscentedKalmanFilter.alpha` for details."""
45 return self._coreFilter.alpha
47 @alpha.setter
48 def alpha(self, val):
49 self._coreFilter.alpha = val
51 @property
52 def beta(self):
53 """Wrapper for the core filter: see :attr:`.UnscentedKalmanFilter.beta` for details."""
54 return self._coreFilter.beta
56 @beta.setter
57 def beta(self, val):
58 self._coreFilter.beta = val
60 @property
61 def kappa(self):
62 """Wrapper for the core filter: see :attr:`.UnscentedKalmanFilter.kappa` for details."""
63 return self._coreFilter.kappa
65 @kappa.setter
66 def kappa(self, val):
67 self._coreFilter.kappa = val