mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-31 03:14:56 +00:00
Rename GPS_L1_CA_KF_Tracking implementation to GPS_L1_CA_Gaussian_Tracking
This commit is contained in:
parent
4a6f29453a
commit
858ea91ca8
@ -42,7 +42,7 @@ Acquisition_1C.dump=false
|
||||
Acquisition_1C.dump_filename=../data/kalman/acq_dump
|
||||
|
||||
;######### 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.pll_bw_hz=40.0;
|
||||
Tracking_1C.dll_bw_hz=4.0;
|
||||
|
@ -165,7 +165,7 @@ Acquisition_1C.doppler_step=100
|
||||
|
||||
|
||||
;######### 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.if=0
|
||||
Tracking_1C.dump=true
|
@ -45,7 +45,7 @@ set(TRACKING_ADAPTER_SOURCES
|
||||
gps_l2_m_dll_pll_tracking.cc
|
||||
glonass_l1_ca_dll_pll_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
|
||||
glonass_l2_ca_dll_pll_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
|
||||
glonass_l1_ca_dll_pll_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
|
||||
glonass_l2_ca_dll_pll_tracking.h
|
||||
glonass_l2_ca_dll_pll_c_aid_tracking.h
|
||||
|
@ -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
|
||||
* tracking loop block for GPS L1 C/A signals
|
||||
* \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 "configuration_interface.h"
|
||||
#include "gnss_sdr_flags.h"
|
||||
#include <glog/logging.h>
|
||||
|
||||
|
||||
GpsL1CaKfTracking::GpsL1CaKfTracking(
|
||||
GpsL1CaGaussianTracking::GpsL1CaGaussianTracking(
|
||||
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)
|
||||
{
|
||||
@ -63,7 +63,7 @@ GpsL1CaKfTracking::GpsL1CaKfTracking(
|
||||
if (item_type == "gr_complex")
|
||||
{
|
||||
item_size_ = sizeof(gr_complex);
|
||||
tracking_ = gps_l1_ca_kf_make_tracking_cc(
|
||||
tracking_ = gps_l1_ca_gaussian_make_tracking_cc(
|
||||
order,
|
||||
fs_in,
|
||||
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();
|
||||
}
|
||||
@ -111,20 +111,20 @@ void GpsL1CaKfTracking::start_tracking()
|
||||
/*
|
||||
* Set tracking channel unique ID
|
||||
*/
|
||||
void GpsL1CaKfTracking::set_channel(unsigned int channel)
|
||||
void GpsL1CaGaussianTracking::set_channel(unsigned int channel)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
void GpsL1CaKfTracking::connect(gr::top_block_sptr top_block)
|
||||
void GpsL1CaGaussianTracking::connect(gr::top_block_sptr top_block)
|
||||
{
|
||||
if (top_block)
|
||||
{ /* 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)
|
||||
{ /* 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_;
|
||||
}
|
||||
|
||||
|
||||
gr::basic_block_sptr GpsL1CaKfTracking::get_right_block()
|
||||
gr::basic_block_sptr GpsL1CaGaussianTracking::get_right_block()
|
||||
{
|
||||
return tracking_;
|
||||
}
|
@ -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
|
||||
* tracking loop block for GPS L1 C/A signals
|
||||
* \author Javier Arribas, 2018. jarribas(at)cttc.es
|
||||
@ -23,10 +23,10 @@
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_H
|
||||
#define GNSS_SDR_GPS_L1_CA_KF_TRACKING_H
|
||||
#ifndef GNSS_SDR_GPS_L1_CA_GAUSSIAN_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 <string>
|
||||
|
||||
@ -41,26 +41,26 @@ class ConfigurationInterface;
|
||||
/*!
|
||||
* \brief This class implements a code DLL + carrier PLL tracking loop
|
||||
*/
|
||||
class GpsL1CaKfTracking : public TrackingInterface
|
||||
class GpsL1CaGaussianTracking : public TrackingInterface
|
||||
{
|
||||
public:
|
||||
GpsL1CaKfTracking(
|
||||
GpsL1CaGaussianTracking(
|
||||
const ConfigurationInterface* configuration,
|
||||
const std::string& role,
|
||||
unsigned int in_streams,
|
||||
unsigned int out_streams);
|
||||
|
||||
~GpsL1CaKfTracking() = default;
|
||||
~GpsL1CaGaussianTracking() = default;
|
||||
|
||||
inline std::string role() override
|
||||
{
|
||||
return role_;
|
||||
}
|
||||
|
||||
//! Returns "GPS_L1_CA_KF_Tracking"
|
||||
//! Returns "GPS_L1_CA_Gaussian_Tracking"
|
||||
inline std::string implementation() override
|
||||
{
|
||||
return "GPS_L1_CA_KF_Tracking";
|
||||
return "GPS_L1_CA_Gaussian_Tracking";
|
||||
}
|
||||
|
||||
inline size_t item_size() override
|
||||
@ -92,7 +92,7 @@ public:
|
||||
void stop_tracking() override;
|
||||
|
||||
private:
|
||||
gps_l1_ca_kf_tracking_cc_sptr tracking_;
|
||||
gps_l1_ca_gaussian_tracking_cc_sptr tracking_;
|
||||
size_t item_size_;
|
||||
unsigned int channel_;
|
||||
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
|
@ -34,7 +34,7 @@ set(TRACKING_GR_BLOCKS_SOURCES
|
||||
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_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_c_aid_tracking_cc.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_c_aid_tracking_cc.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_c_aid_tracking_cc.h
|
||||
glonass_l2_ca_dll_pll_c_aid_tracking_sc.h
|
||||
|
@ -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
|
||||
* tracking loop for GPS L1 C/A signals
|
||||
* \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 "gnss_satellite.h"
|
||||
#include "gnss_sdr_flags.h"
|
||||
@ -45,7 +45,7 @@
|
||||
#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,
|
||||
int64_t fs_in,
|
||||
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_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,
|
||||
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)
|
||||
{
|
||||
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,
|
||||
int64_t fs_in,
|
||||
uint32_t vector_length,
|
||||
@ -88,7 +88,7 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc(
|
||||
uint32_t bce_strans,
|
||||
int32_t bce_nu,
|
||||
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))),
|
||||
d_order(order),
|
||||
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;
|
||||
}
|
||||
|
||||
// Bayesian covariance estimator initialization
|
||||
// Gaussian covariance estimator initialization
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
@ -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())
|
||||
{
|
||||
@ -339,7 +339,7 @@ Gps_L1_Ca_Kf_Tracking_cc::~Gps_L1_Ca_Kf_Tracking_cc()
|
||||
}
|
||||
try
|
||||
{
|
||||
Gps_L1_Ca_Kf_Tracking_cc::save_matfile();
|
||||
Gps_L1_Ca_Gaussian_Tracking_cc::save_matfile();
|
||||
}
|
||||
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
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
// process vars
|
@ -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
|
||||
* tracking loop for GPS L1 C/A signals
|
||||
* \author Javier Arribas, 2018. jarribas(at)cttc.es
|
||||
@ -23,8 +23,8 @@
|
||||
* -----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H
|
||||
#define 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_GAUSSIAN_TRACKING_CC_H
|
||||
|
||||
#if ARMA_NO_BOUND_CHECKING
|
||||
#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_kf_make_tracking_cc(uint32_t order,
|
||||
gps_l1_ca_gaussian_tracking_cc_sptr
|
||||
gps_l1_ca_gaussian_make_tracking_cc(uint32_t order,
|
||||
int64_t fs_in,
|
||||
uint32_t vector_length,
|
||||
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
|
||||
*/
|
||||
class Gps_L1_Ca_Kf_Tracking_cc : public gr::block
|
||||
class Gps_L1_Ca_Gaussian_Tracking_cc : public gr::block
|
||||
{
|
||||
public:
|
||||
~Gps_L1_Ca_Kf_Tracking_cc();
|
||||
~Gps_L1_Ca_Gaussian_Tracking_cc();
|
||||
|
||||
void set_channel(uint32_t channel);
|
||||
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);
|
||||
|
||||
private:
|
||||
friend gps_l1_ca_kf_tracking_cc_sptr
|
||||
gps_l1_ca_kf_make_tracking_cc(uint32_t order,
|
||||
friend gps_l1_ca_gaussian_tracking_cc_sptr
|
||||
gps_l1_ca_gaussian_make_tracking_cc(uint32_t order,
|
||||
int64_t fs_in,
|
||||
uint32_t vector_length,
|
||||
bool dump,
|
||||
@ -100,7 +100,7 @@ private:
|
||||
int32_t bce_nu,
|
||||
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,
|
||||
uint32_t vector_length,
|
||||
bool dump,
|
||||
@ -148,7 +148,7 @@ private:
|
||||
arma::colvec kf_y; // measurement vector
|
||||
arma::mat kf_K; // Kalman gain matrix
|
||||
|
||||
// Bayesian estimator
|
||||
// Gaussian estimator
|
||||
Bayesian_estimator bayes_estimator;
|
||||
arma::mat kf_R_est; // measurement error covariance
|
||||
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
|
@ -72,7 +72,7 @@
|
||||
#include "gnss_sdr_make_unique.h"
|
||||
#include "gnss_sdr_string_literals.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_pcps_acquisition.h"
|
||||
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
|
||||
@ -1079,9 +1079,9 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetBlock(
|
||||
out_streams);
|
||||
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);
|
||||
block = std::move(block_);
|
||||
}
|
||||
@ -1535,9 +1535,9 @@ std::unique_ptr<TrackingInterface> GNSSBlockFactory::GetTrkBlock(
|
||||
out_streams);
|
||||
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);
|
||||
block = std::move(block_);
|
||||
}
|
||||
|
@ -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/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_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/tracking_pull-in_test.cc"
|
||||
#if FPGA_BLOCKS_TEST
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*!
|
||||
* \file gps_l1_ca_kf_tracking_test.cc
|
||||
* \brief This class implements a tracking test for GPS_L1_CA_KF_Tracking
|
||||
* \file gps_l1_ca_gaussian_tracking_test.cc
|
||||
* \brief This class implements a tracking test for GPS_L1_CA_Gaussian_Tracking
|
||||
* implementation based on some input parameters.
|
||||
* \author Carles Fernandez, 2018
|
||||
*
|
||||
@ -60,37 +60,37 @@ namespace wht = boost;
|
||||
namespace wht = std;
|
||||
#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 #########
|
||||
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:
|
||||
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);
|
||||
GpsL1CAKfTrackingTest_msg_rx();
|
||||
GpsL1CAGaussianTrackingTest_msg_rx();
|
||||
|
||||
public:
|
||||
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
|
||||
{
|
||||
@ -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->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); });
|
||||
#else
|
||||
#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
|
||||
boost::bind(&GpsL1CAKfTrackingTest_msg_rx::msg_handler_channel_events, this, _1));
|
||||
boost::bind(&GpsL1CAGaussianTrackingTest_msg_rx::msg_handler_channel_events, this, _1));
|
||||
#endif
|
||||
#endif
|
||||
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:
|
||||
std::string generator_binary;
|
||||
@ -137,7 +137,7 @@ public:
|
||||
std::string p4;
|
||||
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;
|
||||
|
||||
@ -159,7 +159,7 @@ public:
|
||||
arma::vec& meas_time_s,
|
||||
arma::vec& meas_value);
|
||||
|
||||
GpsL1CAKfTrackingTest()
|
||||
GpsL1CAGaussianTrackingTest()
|
||||
{
|
||||
factory = std::make_shared<GNSSBlockFactory>();
|
||||
config = std::make_shared<InMemoryConfiguration>();
|
||||
@ -167,7 +167,7 @@ public:
|
||||
gnss_synchro = Gnss_Synchro();
|
||||
}
|
||||
|
||||
~GpsL1CAKfTrackingTest() = default;
|
||||
~GpsL1CAGaussianTrackingTest() = default;
|
||||
|
||||
void configure_receiver();
|
||||
|
||||
@ -179,7 +179,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
int GpsL1CAKfTrackingTest::configure_generator()
|
||||
int GpsL1CAGaussianTrackingTest::configure_generator()
|
||||
{
|
||||
// Configure signal generator
|
||||
generator_binary = FLAGS_generator_binary;
|
||||
@ -200,7 +200,7 @@ int GpsL1CAKfTrackingTest::configure_generator()
|
||||
}
|
||||
|
||||
|
||||
int GpsL1CAKfTrackingTest::generate_signal()
|
||||
int GpsL1CAGaussianTrackingTest::generate_signal()
|
||||
{
|
||||
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.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& meas_time_s,
|
||||
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& meas_time_s,
|
||||
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& meas_time_s,
|
||||
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_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<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
|
||||
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::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);
|
||||
if (gnuplot_executable.empty())
|
Loading…
Reference in New Issue
Block a user