1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-10-24 12:07:40 +00:00

Merge branch 'next' of https://github.com/mmajoral/gnss-sdr into fpga_extended_coherent_integration

This commit is contained in:
Marc Majoral
2019-07-22 17:53:26 +02:00
395 changed files with 2718 additions and 3145 deletions

View File

@@ -6,10 +6,10 @@
* the properties of a stochastic process based on a sequence of
* discrete samples of the sequence.
*
* [1]: LaMountain, Gerald, Vilà-Valls, Jordi, Closas, Pau, "Bayesian
* Covariance Estimation for Kalman Filter based Digital Carrier
* [1]: LaMountain, Gerald, Vilà-Valls, Jordi, Closas, Pau, "Bayesian
* Covariance Estimation for Kalman Filter based Digital Carrier
* Synchronization," Proceedings of the 31st International Technical Meeting
* of the Satellite Division of The Institute of Navigation
* of the Satellite Division of The Institute of Navigation
* (ION GNSS+ 2018), Miami, Florida, September 2018, pp. 3575-3586.
* https://doi.org/10.33012/2018.15911
*
@@ -57,6 +57,7 @@ Bayesian_estimator::Bayesian_estimator()
Psi_est = Psi_prior;
}
Bayesian_estimator::Bayesian_estimator(int ny)
{
mu_prior = arma::zeros(ny, 1);
@@ -68,6 +69,7 @@ Bayesian_estimator::Bayesian_estimator(int ny)
Psi_est = Psi_prior;
}
Bayesian_estimator::Bayesian_estimator(const arma::vec& mu_prior_0, int kappa_prior_0, int nu_prior_0, const arma::mat& Psi_prior_0)
{
mu_prior = mu_prior_0;
@@ -79,7 +81,6 @@ Bayesian_estimator::Bayesian_estimator(const arma::vec& mu_prior_0, int kappa_pr
Psi_est = Psi_prior;
}
Bayesian_estimator::~Bayesian_estimator() = default;
void Bayesian_estimator::init(const arma::mat& mu_prior_0, int kappa_prior_0, int nu_prior_0, const arma::mat& Psi_prior_0)
{
@@ -92,6 +93,7 @@ void Bayesian_estimator::init(const arma::mat& mu_prior_0, int kappa_prior_0, in
Psi_est = Psi_prior;
}
/*
* Perform Bayesian noise estimation using the normal-inverse-Wishart priors stored in
* the class structure, and update the priors according to the computed posteriors
@@ -179,11 +181,13 @@ void Bayesian_estimator::update_sequential(const arma::vec& data, const arma::ve
Psi_prior = Psi_posterior;
}
arma::mat Bayesian_estimator::get_mu_est() const
{
return mu_est;
}
arma::mat Bayesian_estimator::get_Psi_est() const
{
return Psi_est;

View File

@@ -6,10 +6,10 @@
* the properties of a stochastic process based on a sequence of
* discrete samples of the sequence.
*
* [1]: LaMountain, Gerald, Vilà-Valls, Jordi, Closas, Pau, "Bayesian
* Covariance Estimation for Kalman Filter based Digital Carrier
* [1]: LaMountain, Gerald, Vilà-Valls, Jordi, Closas, Pau, "Bayesian
* Covariance Estimation for Kalman Filter based Digital Carrier
* Synchronization," Proceedings of the 31st International Technical Meeting
* of the Satellite Division of The Institute of Navigation
* of the Satellite Division of The Institute of Navigation
* (ION GNSS+ 2018), Miami, Florida, September 2018, pp. 3575-3586.
* https://doi.org/10.33012/2018.15911
*
@@ -67,7 +67,7 @@ public:
Bayesian_estimator();
Bayesian_estimator(int ny);
Bayesian_estimator(const arma::vec& mu_prior_0, int kappa_prior_0, int nu_prior_0, const arma::mat& Psi_prior_0);
~Bayesian_estimator();
~Bayesian_estimator() = default;
void init(const arma::mat& mu_prior_0, int kappa_prior_0, int nu_prior_0, const arma::mat& Psi_prior_0);

View File

@@ -75,9 +75,6 @@ CubatureFilter::CubatureFilter(const arma::vec& x_pred_0, const arma::mat& P_x_p
}
CubatureFilter::~CubatureFilter() = default;
void CubatureFilter::initialize(const arma::mat& x_pred_0, const arma::mat& P_x_pred_0)
{
x_pred_out = x_pred_0;
@@ -236,9 +233,6 @@ UnscentedFilter::UnscentedFilter(const arma::vec& x_pred_0, const arma::mat& P_x
}
UnscentedFilter::~UnscentedFilter() = default;
void UnscentedFilter::initialize(const arma::mat& x_pred_0, const arma::mat& P_x_pred_0)
{
x_pred_out = x_pred_0;
@@ -274,7 +268,6 @@ void UnscentedFilter::predict_sequential(const arma::vec& x_post, const arma::ma
arma::mat Xi_post = arma::zeros(nx, np);
arma::mat Xi_pred = arma::zeros(nx, np);
Xi_post.col(0) = x_post;
Xi_pred.col(0) = (*transition_fcn)(Xi_post.col(0));
for (uint8_t i = 1; i <= nx; i++)

View File

@@ -62,7 +62,7 @@ public:
CubatureFilter();
CubatureFilter(int nx);
CubatureFilter(const arma::vec& x_pred_0, const arma::mat& P_x_pred_0);
~CubatureFilter();
~CubatureFilter() = default;
// Reinitialization function
void initialize(const arma::mat& x_pred_0, const arma::mat& P_x_pred_0);
@@ -91,7 +91,7 @@ public:
UnscentedFilter();
UnscentedFilter(int nx);
UnscentedFilter(const arma::vec& x_pred_0, const arma::mat& P_x_pred_0);
~UnscentedFilter();
~UnscentedFilter() = default;
// Reinitialization function
void initialize(const arma::mat& x_pred_0, const arma::mat& P_x_pred_0);

View File

@@ -38,9 +38,6 @@
Tcp_Communication::Tcp_Communication() : tcp_socket_(io_context_) {} // NOLINT
Tcp_Communication::~Tcp_Communication() = default;
int Tcp_Communication::listen_tcp_connection(size_t d_port_, size_t d_port_ch0_)
{
try
@@ -76,7 +73,7 @@ int Tcp_Communication::listen_tcp_connection(size_t d_port_, size_t d_port_ch0_)
void Tcp_Communication::send_receive_tcp_packet_galileo_e1(boost::array<float, NUM_TX_VARIABLES_GALILEO_E1> buf, Tcp_Packet_Data* tcp_data_)
{
int controlc = 0;
boost::array<float, NUM_RX_VARIABLES> readbuf;
boost::array<float, NUM_RX_VARIABLES> readbuf{};
float d_control_id_ = buf.data()[0];
try
@@ -111,7 +108,7 @@ void Tcp_Communication::send_receive_tcp_packet_galileo_e1(boost::array<float, N
void Tcp_Communication::send_receive_tcp_packet_gps_l1_ca(boost::array<float, NUM_TX_VARIABLES_GPS_L1_CA> buf, Tcp_Packet_Data* tcp_data_)
{
int controlc = 0;
boost::array<float, NUM_RX_VARIABLES> readbuf;
boost::array<float, NUM_RX_VARIABLES> readbuf{};
float d_control_id_ = buf.data()[0];
try

View File

@@ -53,7 +53,7 @@ class Tcp_Communication
{
public:
Tcp_Communication();
~Tcp_Communication();
~Tcp_Communication() = default;
int listen_tcp_connection(size_t d_port_, size_t d_port_ch0_);
void send_receive_tcp_packet_galileo_e1(boost::array<float, NUM_TX_VARIABLES_GALILEO_E1> buf, Tcp_Packet_Data *tcp_data_);

View File

@@ -36,5 +36,3 @@ Tcp_Packet_Data::Tcp_Packet_Data()
proc_pack_carr_error = 0;
proc_pack_carrier_doppler_hz = 0;
}
Tcp_Packet_Data::~Tcp_Packet_Data() = default;

View File

@@ -39,7 +39,7 @@ class Tcp_Packet_Data
{
public:
Tcp_Packet_Data();
~Tcp_Packet_Data();
~Tcp_Packet_Data() = default;
float proc_pack_code_error;
float proc_pack_carr_error;
float proc_pack_carrier_doppler_hz;

View File

@@ -50,7 +50,7 @@ void Tracking_2nd_DLL_filter::calculate_lopp_coef(float* tau1, float* tau2, floa
void Tracking_2nd_DLL_filter::set_DLL_BW(float dll_bw_hz)
{
//Calculate filter coefficient values
// Calculate filter coefficient values
d_dllnoisebandwidth = dll_bw_hz;
calculate_lopp_coef(&d_tau1_code, &d_tau2_code, d_dllnoisebandwidth, d_dlldampingratio, 1.0); // Calculate filter coefficient values
}
@@ -87,9 +87,6 @@ Tracking_2nd_DLL_filter::Tracking_2nd_DLL_filter()
}
Tracking_2nd_DLL_filter::~Tracking_2nd_DLL_filter() = default;
void Tracking_2nd_DLL_filter::set_pdi(float pdi_code)
{
d_pdi_code = pdi_code; // Summation interval for code

View File

@@ -54,7 +54,7 @@ public:
float get_code_nco(float DLL_discriminator); //!< Numerically controlled oscillator
Tracking_2nd_DLL_filter(float pdi_code);
Tracking_2nd_DLL_filter();
~Tracking_2nd_DLL_filter();
~Tracking_2nd_DLL_filter() = default;
private:
// PLL filter parameters

View File

@@ -93,9 +93,6 @@ Tracking_2nd_PLL_filter::Tracking_2nd_PLL_filter()
}
Tracking_2nd_PLL_filter::~Tracking_2nd_PLL_filter() = default;
void Tracking_2nd_PLL_filter::set_pdi(float pdi_carr)
{
d_pdi_carr = pdi_carr; // Summation interval for code

View File

@@ -53,7 +53,7 @@ public:
float get_carrier_nco(float PLL_discriminator);
Tracking_2nd_PLL_filter(float pdi_carr);
Tracking_2nd_PLL_filter();
~Tracking_2nd_PLL_filter();
~Tracking_2nd_PLL_filter() = default;
private:
// PLL filter parameters

View File

@@ -50,9 +50,6 @@ Tracking_FLL_PLL_filter::Tracking_FLL_PLL_filter()
}
Tracking_FLL_PLL_filter::~Tracking_FLL_PLL_filter() = default;
void Tracking_FLL_PLL_filter::set_params(float fll_bw_hz, float pll_bw_hz, int order)
{
/*

View File

@@ -41,7 +41,7 @@ public:
void initialize(float d_acq_carrier_doppler_hz);
float get_carrier_error(float FLL_discriminator, float PLL_discriminator, float correlation_time_s);
Tracking_FLL_PLL_filter();
~Tracking_FLL_PLL_filter();
~Tracking_FLL_PLL_filter() = default;
private:
// FLL + PLL filter parameters