32 #ifndef GNSS_SDR_NONLINEAR_TRACKING_H 33 #define GNSS_SDR_NONLINEAR_TRACKING_H 35 #if ARMA_NO_BOUND_CHECKING 36 #define ARMA_NO_DEBUG 1 40 #include <gnuradio/gr_complex.h> 47 virtual arma::vec operator()(
const arma::vec& input) = 0;
57 CubatureFilter(
const arma::vec& x_pred_0,
const arma::mat& P_x_pred_0);
61 void initialize(
const arma::mat& x_pred_0,
const arma::mat& P_x_pred_0);
64 void predict_sequential(
const arma::vec& x_post,
const arma::mat& P_x_post,
ModelFunction* transition_fcn,
const arma::mat& noise_covariance);
65 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);
68 arma::mat get_x_pred()
const;
69 arma::mat get_P_x_pred()
const;
70 arma::mat get_x_est()
const;
71 arma::mat get_P_x_est()
const;
75 arma::mat P_x_pred_out;
86 UnscentedFilter(
const arma::vec& x_pred_0,
const arma::mat& P_x_pred_0);
90 void initialize(
const arma::mat& x_pred_0,
const arma::mat& P_x_pred_0);
93 void predict_sequential(
const arma::vec& x_post,
const arma::mat& P_x_post,
ModelFunction* transition_fcn,
const arma::mat& noise_covariance);
94 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);
97 arma::mat get_x_pred()
const;
98 arma::mat get_P_x_pred()
const;
99 arma::mat get_x_est()
const;
100 arma::mat get_P_x_est()
const;
103 arma::vec x_pred_out;
104 arma::mat P_x_pred_out;