1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-05-04 00:14:11 +00:00

Rename GPS_L1_CA_KF_Tracking implementation to GPS_L1_CA_Gaussian_Tracking

This commit is contained in:
Carles Fernandez 2022-08-30 11:30:53 +02:00
parent 4a6f29453a
commit 858ea91ca8
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
11 changed files with 94 additions and 94 deletions

View File

@ -42,7 +42,7 @@ Acquisition_1C.dump=false
Acquisition_1C.dump_filename=../data/kalman/acq_dump Acquisition_1C.dump_filename=../data/kalman/acq_dump
;######### TRACKING GLOBAL CONFIG ############ ;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_KF_Tracking Tracking_1C.implementation=GPS_L1_CA_Gaussian_Tracking
Tracking_1C.item_type=gr_complex Tracking_1C.item_type=gr_complex
Tracking_1C.pll_bw_hz=40.0; Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=4.0; Tracking_1C.dll_bw_hz=4.0;

View File

@ -165,7 +165,7 @@ Acquisition_1C.doppler_step=100
;######### TRACKING GPS CONFIG ############ ;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_KF_Tracking Tracking_1C.implementation=GPS_L1_CA_Gaussian_Tracking
Tracking_1C.item_type=gr_complex Tracking_1C.item_type=gr_complex
Tracking_1C.if=0 Tracking_1C.if=0
Tracking_1C.dump=true Tracking_1C.dump=true

View File

@ -45,7 +45,7 @@ set(TRACKING_ADAPTER_SOURCES
gps_l2_m_dll_pll_tracking.cc gps_l2_m_dll_pll_tracking.cc
glonass_l1_ca_dll_pll_tracking.cc glonass_l1_ca_dll_pll_tracking.cc
glonass_l1_ca_dll_pll_c_aid_tracking.cc glonass_l1_ca_dll_pll_c_aid_tracking.cc
gps_l1_ca_kf_tracking.cc gps_l1_ca_gaussian_tracking.cc
gps_l5_dll_pll_tracking.cc gps_l5_dll_pll_tracking.cc
glonass_l2_ca_dll_pll_tracking.cc glonass_l2_ca_dll_pll_tracking.cc
glonass_l2_ca_dll_pll_c_aid_tracking.cc glonass_l2_ca_dll_pll_c_aid_tracking.cc
@ -66,7 +66,7 @@ set(TRACKING_ADAPTER_HEADERS
gps_l2_m_dll_pll_tracking.h gps_l2_m_dll_pll_tracking.h
glonass_l1_ca_dll_pll_tracking.h glonass_l1_ca_dll_pll_tracking.h
glonass_l1_ca_dll_pll_c_aid_tracking.h glonass_l1_ca_dll_pll_c_aid_tracking.h
gps_l1_ca_kf_tracking.h gps_l1_ca_gaussian_tracking.h
gps_l5_dll_pll_tracking.h gps_l5_dll_pll_tracking.h
glonass_l2_ca_dll_pll_tracking.h glonass_l2_ca_dll_pll_tracking.h
glonass_l2_ca_dll_pll_c_aid_tracking.h glonass_l2_ca_dll_pll_c_aid_tracking.h

View File

@ -1,5 +1,5 @@
/*! /*!
* \file gps_l1_ca_kf_tracking.cc * \file gps_l1_ca_gaussian_tracking.cc
* \brief Implementation of an adapter of a DLL + Kalman carrier * \brief Implementation of an adapter of a DLL + Kalman carrier
* tracking loop block for GPS L1 C/A signals * tracking loop block for GPS L1 C/A signals
* \author Javier Arribas, 2018. jarribas(at)cttc.es * \author Javier Arribas, 2018. jarribas(at)cttc.es
@ -24,14 +24,14 @@
*/ */
#include "gps_l1_ca_kf_tracking.h" #include "gps_l1_ca_gaussian_tracking.h"
#include "GPS_L1_CA.h" #include "GPS_L1_CA.h"
#include "configuration_interface.h" #include "configuration_interface.h"
#include "gnss_sdr_flags.h" #include "gnss_sdr_flags.h"
#include <glog/logging.h> #include <glog/logging.h>
GpsL1CaKfTracking::GpsL1CaKfTracking( GpsL1CaGaussianTracking::GpsL1CaGaussianTracking(
const ConfigurationInterface* configuration, const std::string& role, const ConfigurationInterface* configuration, const std::string& role,
unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams)
{ {
@ -63,7 +63,7 @@ GpsL1CaKfTracking::GpsL1CaKfTracking(
if (item_type == "gr_complex") if (item_type == "gr_complex")
{ {
item_size_ = sizeof(gr_complex); item_size_ = sizeof(gr_complex);
tracking_ = gps_l1_ca_kf_make_tracking_cc( tracking_ = gps_l1_ca_gaussian_make_tracking_cc(
order, order,
fs_in, fs_in,
vector_length, vector_length,
@ -97,12 +97,12 @@ GpsL1CaKfTracking::GpsL1CaKfTracking(
} }
void GpsL1CaKfTracking::stop_tracking() void GpsL1CaGaussianTracking::stop_tracking()
{ {
} }
void GpsL1CaKfTracking::start_tracking() void GpsL1CaGaussianTracking::start_tracking()
{ {
tracking_->start_tracking(); tracking_->start_tracking();
} }
@ -111,20 +111,20 @@ void GpsL1CaKfTracking::start_tracking()
/* /*
* Set tracking channel unique ID * Set tracking channel unique ID
*/ */
void GpsL1CaKfTracking::set_channel(unsigned int channel) void GpsL1CaGaussianTracking::set_channel(unsigned int channel)
{ {
channel_ = channel; channel_ = channel;
tracking_->set_channel(channel); tracking_->set_channel(channel);
} }
void GpsL1CaKfTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) void GpsL1CaGaussianTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
{ {
tracking_->set_gnss_synchro(p_gnss_synchro); tracking_->set_gnss_synchro(p_gnss_synchro);
} }
void GpsL1CaKfTracking::connect(gr::top_block_sptr top_block) void GpsL1CaGaussianTracking::connect(gr::top_block_sptr top_block)
{ {
if (top_block) if (top_block)
{ /* top_block is not null */ { /* top_block is not null */
@ -133,7 +133,7 @@ void GpsL1CaKfTracking::connect(gr::top_block_sptr top_block)
} }
void GpsL1CaKfTracking::disconnect(gr::top_block_sptr top_block) void GpsL1CaGaussianTracking::disconnect(gr::top_block_sptr top_block)
{ {
if (top_block) if (top_block)
{ /* top_block is not null */ { /* top_block is not null */
@ -142,13 +142,13 @@ void GpsL1CaKfTracking::disconnect(gr::top_block_sptr top_block)
} }
gr::basic_block_sptr GpsL1CaKfTracking::get_left_block() gr::basic_block_sptr GpsL1CaGaussianTracking::get_left_block()
{ {
return tracking_; return tracking_;
} }
gr::basic_block_sptr GpsL1CaKfTracking::get_right_block() gr::basic_block_sptr GpsL1CaGaussianTracking::get_right_block()
{ {
return tracking_; return tracking_;
} }

View File

@ -1,5 +1,5 @@
/*! /*!
* \file gps_l1_ca_kf_tracking.h * \file gps_l1_ca_gaussian_tracking.h
* \brief Interface of an adapter of a DLL + Kalman carrier * \brief Interface of an adapter of a DLL + Kalman carrier
* tracking loop block for GPS L1 C/A signals * tracking loop block for GPS L1 C/A signals
* \author Javier Arribas, 2018. jarribas(at)cttc.es * \author Javier Arribas, 2018. jarribas(at)cttc.es
@ -23,10 +23,10 @@
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
*/ */
#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_H #ifndef GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H
#define GNSS_SDR_GPS_L1_CA_KF_TRACKING_H #define GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H
#include "gps_l1_ca_kf_tracking_cc.h" #include "gps_l1_ca_gaussian_tracking_cc.h"
#include "tracking_interface.h" #include "tracking_interface.h"
#include <string> #include <string>
@ -41,26 +41,26 @@ class ConfigurationInterface;
/*! /*!
* \brief This class implements a code DLL + carrier PLL tracking loop * \brief This class implements a code DLL + carrier PLL tracking loop
*/ */
class GpsL1CaKfTracking : public TrackingInterface class GpsL1CaGaussianTracking : public TrackingInterface
{ {
public: public:
GpsL1CaKfTracking( GpsL1CaGaussianTracking(
const ConfigurationInterface* configuration, const ConfigurationInterface* configuration,
const std::string& role, const std::string& role,
unsigned int in_streams, unsigned int in_streams,
unsigned int out_streams); unsigned int out_streams);
~GpsL1CaKfTracking() = default; ~GpsL1CaGaussianTracking() = default;
inline std::string role() override inline std::string role() override
{ {
return role_; return role_;
} }
//! Returns "GPS_L1_CA_KF_Tracking" //! Returns "GPS_L1_CA_Gaussian_Tracking"
inline std::string implementation() override inline std::string implementation() override
{ {
return "GPS_L1_CA_KF_Tracking"; return "GPS_L1_CA_Gaussian_Tracking";
} }
inline size_t item_size() override inline size_t item_size() override
@ -92,7 +92,7 @@ public:
void stop_tracking() override; void stop_tracking() override;
private: private:
gps_l1_ca_kf_tracking_cc_sptr tracking_; gps_l1_ca_gaussian_tracking_cc_sptr tracking_;
size_t item_size_; size_t item_size_;
unsigned int channel_; unsigned int channel_;
std::string role_; std::string role_;
@ -103,4 +103,4 @@ private:
/** \} */ /** \} */
/** \} */ /** \} */
#endif // GNSS_SDR_GPS_L1_CA_KF_TRACKING_H #endif // GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H

View File

@ -34,7 +34,7 @@ set(TRACKING_GR_BLOCKS_SOURCES
glonass_l1_ca_dll_pll_tracking_cc.cc glonass_l1_ca_dll_pll_tracking_cc.cc
glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc
glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc
gps_l1_ca_kf_tracking_cc.cc gps_l1_ca_gaussian_tracking_cc.cc
glonass_l2_ca_dll_pll_tracking_cc.cc glonass_l2_ca_dll_pll_tracking_cc.cc
glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc
glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc
@ -49,7 +49,7 @@ set(TRACKING_GR_BLOCKS_HEADERS
glonass_l1_ca_dll_pll_tracking_cc.h glonass_l1_ca_dll_pll_tracking_cc.h
glonass_l1_ca_dll_pll_c_aid_tracking_cc.h glonass_l1_ca_dll_pll_c_aid_tracking_cc.h
glonass_l1_ca_dll_pll_c_aid_tracking_sc.h glonass_l1_ca_dll_pll_c_aid_tracking_sc.h
gps_l1_ca_kf_tracking_cc.h gps_l1_ca_gaussian_tracking_cc.h
glonass_l2_ca_dll_pll_tracking_cc.h glonass_l2_ca_dll_pll_tracking_cc.h
glonass_l2_ca_dll_pll_c_aid_tracking_cc.h glonass_l2_ca_dll_pll_c_aid_tracking_cc.h
glonass_l2_ca_dll_pll_c_aid_tracking_sc.h glonass_l2_ca_dll_pll_c_aid_tracking_sc.h

View File

@ -1,5 +1,5 @@
/*! /*!
* \file gps_l1_ca_kf_tracking_cc.cc * \file gps_l1_ca_gaussian_tracking_cc.cc
* \brief Implementation of a processing block of a DLL + Kalman carrier * \brief Implementation of a processing block of a DLL + Kalman carrier
* tracking loop for GPS L1 C/A signals * tracking loop for GPS L1 C/A signals
* \author Javier Arribas, 2018. jarribas(at)cttc.es * \author Javier Arribas, 2018. jarribas(at)cttc.es
@ -23,7 +23,7 @@
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
*/ */
#include "gps_l1_ca_kf_tracking_cc.h" #include "gps_l1_ca_gaussian_tracking_cc.h"
#include "GPS_L1_CA.h" #include "GPS_L1_CA.h"
#include "gnss_satellite.h" #include "gnss_satellite.h"
#include "gnss_sdr_flags.h" #include "gnss_sdr_flags.h"
@ -45,7 +45,7 @@
#include <vector> #include <vector>
gps_l1_ca_kf_tracking_cc_sptr gps_l1_ca_kf_make_tracking_cc( gps_l1_ca_gaussian_tracking_cc_sptr gps_l1_ca_gaussian_make_tracking_cc(
uint32_t order, uint32_t order,
int64_t fs_in, int64_t fs_in,
uint32_t vector_length, uint32_t vector_length,
@ -59,13 +59,13 @@ gps_l1_ca_kf_tracking_cc_sptr gps_l1_ca_kf_make_tracking_cc(
int32_t bce_nu, int32_t bce_nu,
int32_t bce_kappa) int32_t bce_kappa)
{ {
return gps_l1_ca_kf_tracking_cc_sptr(new Gps_L1_Ca_Kf_Tracking_cc(order, return gps_l1_ca_gaussian_tracking_cc_sptr(new Gps_L1_Ca_Gaussian_Tracking_cc(order,
fs_in, vector_length, dump, dump_filename, dll_bw_hz, early_late_space_chips, fs_in, vector_length, dump, dump_filename, dll_bw_hz, early_late_space_chips,
bce_run, bce_ptrans, bce_strans, bce_nu, bce_kappa)); bce_run, bce_ptrans, bce_strans, bce_nu, bce_kappa));
} }
void Gps_L1_Ca_Kf_Tracking_cc::forecast(int noutput_items, void Gps_L1_Ca_Gaussian_Tracking_cc::forecast(int noutput_items,
gr_vector_int &ninput_items_required) gr_vector_int &ninput_items_required)
{ {
if (noutput_items != 0) if (noutput_items != 0)
@ -75,7 +75,7 @@ void Gps_L1_Ca_Kf_Tracking_cc::forecast(int noutput_items,
} }
Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc( Gps_L1_Ca_Gaussian_Tracking_cc::Gps_L1_Ca_Gaussian_Tracking_cc(
uint32_t order, uint32_t order,
int64_t fs_in, int64_t fs_in,
uint32_t vector_length, uint32_t vector_length,
@ -88,7 +88,7 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc(
uint32_t bce_strans, uint32_t bce_strans,
int32_t bce_nu, int32_t bce_nu,
int32_t bce_kappa) int32_t bce_kappa)
: gr::block("Gps_L1_Ca_Kf_Tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)), : gr::block("Gps_L1_Ca_Gaussian_Tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)),
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))),
d_order(order), d_order(order),
d_vector_length(vector_length), d_vector_length(vector_length),
@ -222,14 +222,14 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc(
kf_x(2, 0) = 0.0; kf_x(2, 0) = 0.0;
} }
// Bayesian covariance estimator initialization // Gaussian covariance estimator initialization
kf_R_est = kf_R; kf_R_est = kf_R;
bayes_estimator.init(arma::zeros(1, 1), bayes_kappa, bayes_nu, (kf_H * kf_P_x_ini * kf_H.t() + kf_R) * (bayes_nu + 2)); bayes_estimator.init(arma::zeros(1, 1), bayes_kappa, bayes_nu, (kf_H * kf_P_x_ini * kf_H.t() + kf_R) * (bayes_nu + 2));
} }
void Gps_L1_Ca_Kf_Tracking_cc::start_tracking() void Gps_L1_Ca_Gaussian_Tracking_cc::start_tracking()
{ {
/* /*
* correct the code phase according to the delay between acq and trk * correct the code phase according to the delay between acq and trk
@ -318,7 +318,7 @@ void Gps_L1_Ca_Kf_Tracking_cc::start_tracking()
} }
Gps_L1_Ca_Kf_Tracking_cc::~Gps_L1_Ca_Kf_Tracking_cc() Gps_L1_Ca_Gaussian_Tracking_cc::~Gps_L1_Ca_Gaussian_Tracking_cc()
{ {
if (d_dump_file.is_open()) if (d_dump_file.is_open())
{ {
@ -339,7 +339,7 @@ Gps_L1_Ca_Kf_Tracking_cc::~Gps_L1_Ca_Kf_Tracking_cc()
} }
try try
{ {
Gps_L1_Ca_Kf_Tracking_cc::save_matfile(); Gps_L1_Ca_Gaussian_Tracking_cc::save_matfile();
} }
catch (const std::exception &ex) catch (const std::exception &ex)
{ {
@ -362,7 +362,7 @@ Gps_L1_Ca_Kf_Tracking_cc::~Gps_L1_Ca_Kf_Tracking_cc()
} }
int32_t Gps_L1_Ca_Kf_Tracking_cc::save_matfile() int32_t Gps_L1_Ca_Gaussian_Tracking_cc::save_matfile()
{ {
// READ DUMP FILE // READ DUMP FILE
std::ifstream::pos_type size; std::ifstream::pos_type size;
@ -557,7 +557,7 @@ int32_t Gps_L1_Ca_Kf_Tracking_cc::save_matfile()
} }
void Gps_L1_Ca_Kf_Tracking_cc::set_channel(uint32_t channel) void Gps_L1_Ca_Gaussian_Tracking_cc::set_channel(uint32_t channel)
{ {
gr::thread::scoped_lock l(d_setlock); gr::thread::scoped_lock l(d_setlock);
d_channel = channel; d_channel = channel;
@ -584,13 +584,13 @@ void Gps_L1_Ca_Kf_Tracking_cc::set_channel(uint32_t channel)
} }
void Gps_L1_Ca_Kf_Tracking_cc::set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) void Gps_L1_Ca_Gaussian_Tracking_cc::set_gnss_synchro(Gnss_Synchro *p_gnss_synchro)
{ {
d_acquisition_gnss_synchro = p_gnss_synchro; d_acquisition_gnss_synchro = p_gnss_synchro;
} }
int Gps_L1_Ca_Kf_Tracking_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), int Gps_L1_Ca_Gaussian_Tracking_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
{ {
// process vars // process vars

View File

@ -1,5 +1,5 @@
/*! /*!
* \file gps_l1_ca_kf_tracking_cc.h * \file gps_l1_ca_gaussian_tracking_cc.h
* \brief Interface of a processing block of a DLL + Kalman carrier * \brief Interface of a processing block of a DLL + Kalman carrier
* tracking loop for GPS L1 C/A signals * tracking loop for GPS L1 C/A signals
* \author Javier Arribas, 2018. jarribas(at)cttc.es * \author Javier Arribas, 2018. jarribas(at)cttc.es
@ -23,8 +23,8 @@
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
*/ */
#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H #ifndef GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_CC_H
#define GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H #define GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_CC_H
#if ARMA_NO_BOUND_CHECKING #if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1 #define ARMA_NO_DEBUG 1
@ -49,12 +49,12 @@
* \{ */ * \{ */
class Gps_L1_Ca_Kf_Tracking_cc; class Gps_L1_Ca_Gaussian_Tracking_cc;
using gps_l1_ca_kf_tracking_cc_sptr = gnss_shared_ptr<Gps_L1_Ca_Kf_Tracking_cc>; using gps_l1_ca_gaussian_tracking_cc_sptr = gnss_shared_ptr<Gps_L1_Ca_Gaussian_Tracking_cc>;
gps_l1_ca_kf_tracking_cc_sptr gps_l1_ca_gaussian_tracking_cc_sptr
gps_l1_ca_kf_make_tracking_cc(uint32_t order, gps_l1_ca_gaussian_make_tracking_cc(uint32_t order,
int64_t fs_in, int64_t fs_in,
uint32_t vector_length, uint32_t vector_length,
bool dump, bool dump,
@ -71,10 +71,10 @@ gps_l1_ca_kf_make_tracking_cc(uint32_t order,
/*! /*!
* \brief This class implements a DLL + PLL tracking loop block * \brief This class implements a DLL + PLL tracking loop block
*/ */
class Gps_L1_Ca_Kf_Tracking_cc : public gr::block class Gps_L1_Ca_Gaussian_Tracking_cc : public gr::block
{ {
public: public:
~Gps_L1_Ca_Kf_Tracking_cc(); ~Gps_L1_Ca_Gaussian_Tracking_cc();
void set_channel(uint32_t channel); void set_channel(uint32_t channel);
void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro); void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro);
@ -86,8 +86,8 @@ public:
void forecast(int noutput_items, gr_vector_int& ninput_items_required); void forecast(int noutput_items, gr_vector_int& ninput_items_required);
private: private:
friend gps_l1_ca_kf_tracking_cc_sptr friend gps_l1_ca_gaussian_tracking_cc_sptr
gps_l1_ca_kf_make_tracking_cc(uint32_t order, gps_l1_ca_gaussian_make_tracking_cc(uint32_t order,
int64_t fs_in, int64_t fs_in,
uint32_t vector_length, uint32_t vector_length,
bool dump, bool dump,
@ -100,7 +100,7 @@ private:
int32_t bce_nu, int32_t bce_nu,
int32_t bce_kappa); int32_t bce_kappa);
Gps_L1_Ca_Kf_Tracking_cc(uint32_t order, Gps_L1_Ca_Gaussian_Tracking_cc(uint32_t order,
int64_t fs_in, int64_t fs_in,
uint32_t vector_length, uint32_t vector_length,
bool dump, bool dump,
@ -148,7 +148,7 @@ private:
arma::colvec kf_y; // measurement vector arma::colvec kf_y; // measurement vector
arma::mat kf_K; // Kalman gain matrix arma::mat kf_K; // Kalman gain matrix
// Bayesian estimator // Gaussian estimator
Bayesian_estimator bayes_estimator; Bayesian_estimator bayes_estimator;
arma::mat kf_R_est; // measurement error covariance arma::mat kf_R_est; // measurement error covariance
uint32_t bayes_ptrans; uint32_t bayes_ptrans;
@ -218,4 +218,4 @@ private:
/** \} */ /** \} */
/** \} */ /** \} */
#endif // GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H #endif // GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_CC_H

View File

@ -72,7 +72,7 @@
#include "gnss_sdr_make_unique.h" #include "gnss_sdr_make_unique.h"
#include "gnss_sdr_string_literals.h" #include "gnss_sdr_string_literals.h"
#include "gps_l1_ca_dll_pll_tracking.h" #include "gps_l1_ca_dll_pll_tracking.h"
#include "gps_l1_ca_kf_tracking.h" #include "gps_l1_ca_gaussian_tracking.h"
#include "gps_l1_ca_kf_vtl_tracking.h" #include "gps_l1_ca_kf_vtl_tracking.h"
#include "gps_l1_ca_pcps_acquisition.h" #include "gps_l1_ca_pcps_acquisition.h"
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h" #include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
@ -1079,9 +1079,9 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetBlock(
out_streams); out_streams);
block = std::move(block_); block = std::move(block_);
} }
else if (implementation == "GPS_L1_CA_KF_Tracking") else if (implementation == "GPS_L1_CA_Gaussian_Tracking")
{ {
std::unique_ptr<GNSSBlockInterface> block_ = std::make_unique<GpsL1CaKfTracking>(configuration, role, in_streams, std::unique_ptr<GNSSBlockInterface> block_ = std::make_unique<GpsL1CaGaussianTracking>(configuration, role, in_streams,
out_streams); out_streams);
block = std::move(block_); block = std::move(block_);
} }
@ -1535,9 +1535,9 @@ std::unique_ptr<TrackingInterface> GNSSBlockFactory::GetTrkBlock(
out_streams); out_streams);
block = std::move(block_); block = std::move(block_);
} }
else if (implementation == "GPS_L1_CA_KF_Tracking") else if (implementation == "GPS_L1_CA_Gaussian_Tracking")
{ {
std::unique_ptr<TrackingInterface> block_ = std::make_unique<GpsL1CaKfTracking>(configuration, role, in_streams, std::unique_ptr<TrackingInterface> block_ = std::make_unique<GpsL1CaGaussianTracking>(configuration, role, in_streams,
out_streams); out_streams);
block = std::move(block_); block = std::move(block_);
} }

View File

@ -141,7 +141,7 @@ DECLARE_string(log_dir);
#include "unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc" #include "unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc"
// #include "unit-tests/signal-processing-blocks/pvt/rtklib_solver_test.cc" // #include "unit-tests/signal-processing-blocks/pvt/rtklib_solver_test.cc"
#include "unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc" #include "unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc"
#include "unit-tests/signal-processing-blocks/tracking/gps_l1_ca_kf_tracking_test.cc" #include "unit-tests/signal-processing-blocks/tracking/gps_l1_ca_gaussian_tracking_test.cc"
#include "unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc" #include "unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc"
#include "unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc" #include "unit-tests/signal-processing-blocks/tracking/tracking_pull-in_test.cc"
#if FPGA_BLOCKS_TEST #if FPGA_BLOCKS_TEST

View File

@ -1,6 +1,6 @@
/*! /*!
* \file gps_l1_ca_kf_tracking_test.cc * \file gps_l1_ca_gaussian_tracking_test.cc
* \brief This class implements a tracking test for GPS_L1_CA_KF_Tracking * \brief This class implements a tracking test for GPS_L1_CA_Gaussian_Tracking
* implementation based on some input parameters. * implementation based on some input parameters.
* \author Carles Fernandez, 2018 * \author Carles Fernandez, 2018
* *
@ -60,37 +60,37 @@ namespace wht = boost;
namespace wht = std; namespace wht = std;
#endif #endif
DEFINE_bool(plot_gps_l1_kf_tracking_test, false, "Plots results of GpsL1CAKfTrackingTest with gnuplot"); DEFINE_bool(plot_gps_l1_gaussian_tracking_test, false, "Plots results of GpsL1CAGaussianTrackingTest with gnuplot");
// ######## GNURADIO BLOCK MESSAGE RECEVER ######### // ######## GNURADIO BLOCK MESSAGE RECEVER #########
class GpsL1CAKfTrackingTest_msg_rx; class GpsL1CAGaussianTrackingTest_msg_rx;
using GpsL1CAKfTrackingTest_msg_rx_sptr = gnss_shared_ptr<GpsL1CAKfTrackingTest_msg_rx>; using GpsL1CAGaussianTrackingTest_msg_rx_sptr = gnss_shared_ptr<GpsL1CAGaussianTrackingTest_msg_rx>;
GpsL1CAKfTrackingTest_msg_rx_sptr GpsL1CAKfTrackingTest_msg_rx_make(); GpsL1CAGaussianTrackingTest_msg_rx_sptr GpsL1CAGaussianTrackingTest_msg_rx_make();
class GpsL1CAKfTrackingTest_msg_rx : public gr::block class GpsL1CAGaussianTrackingTest_msg_rx : public gr::block
{ {
private: private:
friend GpsL1CAKfTrackingTest_msg_rx_sptr GpsL1CAKfTrackingTest_msg_rx_make(); friend GpsL1CAGaussianTrackingTest_msg_rx_sptr GpsL1CAGaussianTrackingTest_msg_rx_make();
void msg_handler_channel_events(const pmt::pmt_t msg); void msg_handler_channel_events(const pmt::pmt_t msg);
GpsL1CAKfTrackingTest_msg_rx(); GpsL1CAGaussianTrackingTest_msg_rx();
public: public:
int rx_message; int rx_message;
~GpsL1CAKfTrackingTest_msg_rx(); //!< Default destructor ~GpsL1CAGaussianTrackingTest_msg_rx(); //!< Default destructor
}; };
GpsL1CAKfTrackingTest_msg_rx_sptr GpsL1CAKfTrackingTest_msg_rx_make() GpsL1CAGaussianTrackingTest_msg_rx_sptr GpsL1CAGaussianTrackingTest_msg_rx_make()
{ {
return GpsL1CAKfTrackingTest_msg_rx_sptr(new GpsL1CAKfTrackingTest_msg_rx()); return GpsL1CAGaussianTrackingTest_msg_rx_sptr(new GpsL1CAGaussianTrackingTest_msg_rx());
} }
void GpsL1CAKfTrackingTest_msg_rx::msg_handler_channel_events(const pmt::pmt_t msg) void GpsL1CAGaussianTrackingTest_msg_rx::msg_handler_channel_events(const pmt::pmt_t msg)
{ {
try try
{ {
@ -105,7 +105,7 @@ void GpsL1CAKfTrackingTest_msg_rx::msg_handler_channel_events(const pmt::pmt_t m
} }
GpsL1CAKfTrackingTest_msg_rx::GpsL1CAKfTrackingTest_msg_rx() : gr::block("GpsL1CAKfTrackingTest_msg_rx", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)) GpsL1CAGaussianTrackingTest_msg_rx::GpsL1CAGaussianTrackingTest_msg_rx() : gr::block("GpsL1CAGaussianTrackingTest_msg_rx", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0))
{ {
this->message_port_register_in(pmt::mp("events")); this->message_port_register_in(pmt::mp("events"));
this->set_msg_handler(pmt::mp("events"), this->set_msg_handler(pmt::mp("events"),
@ -113,21 +113,21 @@ GpsL1CAKfTrackingTest_msg_rx::GpsL1CAKfTrackingTest_msg_rx() : gr::block("GpsL1C
[this](auto&& PH1) { msg_handler_channel_events(PH1); }); [this](auto&& PH1) { msg_handler_channel_events(PH1); });
#else #else
#if USE_BOOST_BIND_PLACEHOLDERS #if USE_BOOST_BIND_PLACEHOLDERS
boost::bind(&GpsL1CAKfTrackingTest_msg_rx::msg_handler_channel_events, this, boost::placeholders::_1)); boost::bind(&GpsL1CAGaussianTrackingTest_msg_rx::msg_handler_channel_events, this, boost::placeholders::_1));
#else #else
boost::bind(&GpsL1CAKfTrackingTest_msg_rx::msg_handler_channel_events, this, _1)); boost::bind(&GpsL1CAGaussianTrackingTest_msg_rx::msg_handler_channel_events, this, _1));
#endif #endif
#endif #endif
rx_message = 0; rx_message = 0;
} }
GpsL1CAKfTrackingTest_msg_rx::~GpsL1CAKfTrackingTest_msg_rx() = default; GpsL1CAGaussianTrackingTest_msg_rx::~GpsL1CAGaussianTrackingTest_msg_rx() = default;
// ########################################################### // ###########################################################
class GpsL1CAKfTrackingTest : public ::testing::Test class GpsL1CAGaussianTrackingTest : public ::testing::Test
{ {
public: public:
std::string generator_binary; std::string generator_binary;
@ -137,7 +137,7 @@ public:
std::string p4; std::string p4;
std::string p5; std::string p5;
std::string implementation = "GPS_L1_CA_KF_Tracking"; std::string implementation = "GPS_L1_CA_Gaussian_Tracking";
const int baseband_sampling_freq = FLAGS_fs_gen_sps; const int baseband_sampling_freq = FLAGS_fs_gen_sps;
@ -159,7 +159,7 @@ public:
arma::vec& meas_time_s, arma::vec& meas_time_s,
arma::vec& meas_value); arma::vec& meas_value);
GpsL1CAKfTrackingTest() GpsL1CAGaussianTrackingTest()
{ {
factory = std::make_shared<GNSSBlockFactory>(); factory = std::make_shared<GNSSBlockFactory>();
config = std::make_shared<InMemoryConfiguration>(); config = std::make_shared<InMemoryConfiguration>();
@ -167,7 +167,7 @@ public:
gnss_synchro = Gnss_Synchro(); gnss_synchro = Gnss_Synchro();
} }
~GpsL1CAKfTrackingTest() = default; ~GpsL1CAGaussianTrackingTest() = default;
void configure_receiver(); void configure_receiver();
@ -179,7 +179,7 @@ public:
}; };
int GpsL1CAKfTrackingTest::configure_generator() int GpsL1CAGaussianTrackingTest::configure_generator()
{ {
// Configure signal generator // Configure signal generator
generator_binary = FLAGS_generator_binary; generator_binary = FLAGS_generator_binary;
@ -200,7 +200,7 @@ int GpsL1CAKfTrackingTest::configure_generator()
} }
int GpsL1CAKfTrackingTest::generate_signal() int GpsL1CAGaussianTrackingTest::generate_signal()
{ {
int child_status; int child_status;
@ -225,7 +225,7 @@ int GpsL1CAKfTrackingTest::generate_signal()
} }
void GpsL1CAKfTrackingTest::configure_receiver() void GpsL1CAGaussianTrackingTest::configure_receiver()
{ {
gnss_synchro.Channel_ID = 0; gnss_synchro.Channel_ID = 0;
gnss_synchro.System = 'G'; gnss_synchro.System = 'G';
@ -252,7 +252,7 @@ void GpsL1CAKfTrackingTest::configure_receiver()
} }
void GpsL1CAKfTrackingTest::check_results_doppler(arma::vec& true_time_s, void GpsL1CAGaussianTrackingTest::check_results_doppler(arma::vec& true_time_s,
arma::vec& true_value, arma::vec& true_value,
arma::vec& meas_time_s, arma::vec& meas_time_s,
arma::vec& meas_value) arma::vec& meas_value)
@ -291,7 +291,7 @@ void GpsL1CAKfTrackingTest::check_results_doppler(arma::vec& true_time_s,
} }
void GpsL1CAKfTrackingTest::check_results_acc_carrier_phase(arma::vec& true_time_s, void GpsL1CAGaussianTrackingTest::check_results_acc_carrier_phase(arma::vec& true_time_s,
arma::vec& true_value, arma::vec& true_value,
arma::vec& meas_time_s, arma::vec& meas_time_s,
arma::vec& meas_value) arma::vec& meas_value)
@ -330,7 +330,7 @@ void GpsL1CAKfTrackingTest::check_results_acc_carrier_phase(arma::vec& true_time
} }
void GpsL1CAKfTrackingTest::check_results_codephase(arma::vec& true_time_s, void GpsL1CAGaussianTrackingTest::check_results_codephase(arma::vec& true_time_s,
arma::vec& true_value, arma::vec& true_value,
arma::vec& meas_time_s, arma::vec& meas_time_s,
arma::vec& meas_value) arma::vec& meas_value)
@ -370,7 +370,7 @@ void GpsL1CAKfTrackingTest::check_results_codephase(arma::vec& true_time_s,
} }
TEST_F(GpsL1CAKfTrackingTest, ValidationOfResults) TEST_F(GpsL1CAGaussianTrackingTest, ValidationOfResults)
{ {
// Configure the signal generator // Configure the signal generator
configure_generator(); configure_generator();
@ -399,7 +399,7 @@ TEST_F(GpsL1CAKfTrackingTest, ValidationOfResults)
std::shared_ptr<GNSSBlockInterface> trk_ = factory->GetBlock(config.get(), "Tracking_1C", 1, 1); std::shared_ptr<GNSSBlockInterface> trk_ = factory->GetBlock(config.get(), "Tracking_1C", 1, 1);
std::shared_ptr<TrackingInterface> tracking = std::dynamic_pointer_cast<TrackingInterface>(trk_); // std::make_shared<GpsL1CaDllPllCAidTracking>(config.get(), "Tracking_1C", 1, 1); std::shared_ptr<TrackingInterface> tracking = std::dynamic_pointer_cast<TrackingInterface>(trk_); // std::make_shared<GpsL1CaDllPllCAidTracking>(config.get(), "Tracking_1C", 1, 1);
auto msg_rx = GpsL1CAKfTrackingTest_msg_rx_make(); auto msg_rx = GpsL1CAGaussianTrackingTest_msg_rx_make();
// load acquisition data based on the first epoch of the true observations // load acquisition data based on the first epoch of the true observations
ASSERT_EQ(true_obs_data.read_binary_obs(), true) ASSERT_EQ(true_obs_data.read_binary_obs(), true)
@ -523,7 +523,7 @@ TEST_F(GpsL1CAKfTrackingTest, ValidationOfResults)
std::chrono::duration<double> elapsed_seconds = end - start; std::chrono::duration<double> elapsed_seconds = end - start;
std::cout << "Signal tracking completed in " << elapsed_seconds.count() << " seconds.\n"; std::cout << "Signal tracking completed in " << elapsed_seconds.count() << " seconds.\n";
if (FLAGS_plot_gps_l1_kf_tracking_test == true) if (FLAGS_plot_gps_l1_gaussian_tracking_test == true)
{ {
const std::string gnuplot_executable(FLAGS_gnuplot_executable); const std::string gnuplot_executable(FLAGS_gnuplot_executable);
if (gnuplot_executable.empty()) if (gnuplot_executable.empty())