29 #ifndef GNSS_SDR_NONLINEAR_TRACKING_H 30 #define GNSS_SDR_NONLINEAR_TRACKING_H 32 #if ARMA_NO_BOUND_CHECKING 33 #define ARMA_NO_DEBUG 1 37 #include <gnuradio/gr_complex.h> 50 virtual arma::vec operator()(
const arma::vec& input) = 0;
60 CubatureFilter(
const arma::vec& x_pred_0,
const arma::mat& P_x_pred_0);
64 void initialize(
const arma::mat& x_pred_0,
const arma::mat& P_x_pred_0);
67 void predict_sequential(
const arma::vec& x_post,
const arma::mat& P_x_post,
ModelFunction* transition_fcn,
const arma::mat& noise_covariance);
68 void update_sequential(
const arma::vec& z_upd,
const arma::vec& x_pred,
const arma::mat& P_x_pred,
ModelFunction* measurement_fcn,
const arma::mat& noise_covariance);
71 arma::mat get_x_pred()
const;
72 arma::mat get_P_x_pred()
const;
73 arma::mat get_x_est()
const;
74 arma::mat get_P_x_est()
const;
78 arma::mat P_x_pred_out;
89 UnscentedFilter(
const arma::vec& x_pred_0,
const arma::mat& P_x_pred_0);
93 void initialize(
const arma::mat& x_pred_0,
const arma::mat& P_x_pred_0);
96 void predict_sequential(
const arma::vec& x_post,
const arma::mat& P_x_post,
ModelFunction* transition_fcn,
const arma::mat& noise_covariance);
97 void update_sequential(
const arma::vec& z_upd,
const arma::vec& x_pred,
const arma::mat& P_x_pred,
ModelFunction* measurement_fcn,
const arma::mat& noise_covariance);
100 arma::mat get_x_pred()
const;
101 arma::mat get_P_x_pred()
const;
102 arma::mat get_x_est()
const;
103 arma::mat get_P_x_est()
const;
106 arma::vec x_pred_out;
107 arma::mat P_x_pred_out;
115 #endif // GNSS_SDR_NONLINEAR_TRACKING_H