mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-15 04:30:33 +00:00
Expose tracking lock detectors smoothers control parameters in config files
This commit is contained in:
parent
4bedcc7dae
commit
a40f954cb9
@ -171,6 +171,13 @@ GalileoE1DllPllVemlTracking::GalileoE1DllPllVemlTracking(
|
|||||||
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
||||||
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
if (item_type == "gr_complex")
|
if (item_type == "gr_complex")
|
||||||
{
|
{
|
||||||
|
@ -254,6 +254,14 @@ GalileoE1DllPllVemlTrackingFpga::GalileoE1DllPllVemlTrackingFpga(
|
|||||||
trk_param_fpga.extended_correlation_in_fpga = false;
|
trk_param_fpga.extended_correlation_in_fpga = false;
|
||||||
trk_param_fpga.extend_fpga_integration_periods = 1; // (number of FPGA integrations that are combined in the SW)
|
trk_param_fpga.extend_fpga_integration_periods = 1; // (number of FPGA integrations that are combined in the SW)
|
||||||
trk_param_fpga.fpga_integration_period = 1; // (number of symbols that are effectively integrated in the FPGA)
|
trk_param_fpga.fpga_integration_period = 1; // (number of symbols that are effectively integrated in the FPGA)
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
//################# MAKE TRACKING GNURadio object ###################
|
//################# MAKE TRACKING GNURadio object ###################
|
||||||
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
||||||
channel_ = 0;
|
channel_ = 0;
|
||||||
|
@ -166,6 +166,13 @@ GalileoE5aDllPllTracking::GalileoE5aDllPllTracking(
|
|||||||
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
||||||
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
if (item_type == "gr_complex")
|
if (item_type == "gr_complex")
|
||||||
{
|
{
|
||||||
|
@ -262,6 +262,13 @@ GalileoE5aDllPllTrackingFpga::GalileoE5aDllPllTrackingFpga(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
||||||
channel_ = 0;
|
channel_ = 0;
|
||||||
|
@ -172,6 +172,12 @@ GpsL1CaDllPllTracking::GpsL1CaDllPllTracking(
|
|||||||
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
||||||
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
if (item_type == "gr_complex")
|
if (item_type == "gr_complex")
|
||||||
{
|
{
|
||||||
|
@ -216,6 +216,13 @@ GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
||||||
channel_ = 0;
|
channel_ = 0;
|
||||||
|
@ -148,6 +148,13 @@ GpsL2MDllPllTracking::GpsL2MDllPllTracking(
|
|||||||
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
||||||
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
if (item_type == "gr_complex")
|
if (item_type == "gr_complex")
|
||||||
{
|
{
|
||||||
|
@ -168,6 +168,12 @@ GpsL5DllPllTracking::GpsL5DllPllTracking(
|
|||||||
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail);
|
||||||
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th);
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
// ################# MAKE TRACKING GNURadio object ###################
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
if (item_type == "gr_complex")
|
if (item_type == "gr_complex")
|
||||||
{
|
{
|
||||||
|
@ -286,6 +286,13 @@ GpsL5DllPllTrackingFpga::GpsL5DllPllTrackingFpga(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//tracking lock tests smoother parameters
|
||||||
|
trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples);
|
||||||
|
trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha);
|
||||||
|
trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples);
|
||||||
|
trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha);
|
||||||
|
|
||||||
|
// ################# MAKE TRACKING GNURadio object ###################
|
||||||
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga);
|
||||||
channel_ = 0;
|
channel_ = 0;
|
||||||
DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")";
|
DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")";
|
||||||
|
@ -445,16 +445,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl
|
|||||||
d_carrier_lock_threshold = trk_parameters.carrier_lock_th;
|
d_carrier_lock_threshold = trk_parameters.carrier_lock_th;
|
||||||
d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment()));
|
d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment()));
|
||||||
d_cn0_smoother = Exponential_Smoother();
|
d_cn0_smoother = Exponential_Smoother();
|
||||||
|
d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha);
|
||||||
|
|
||||||
if (d_code_period > 0.0)
|
if (d_code_period > 0.0)
|
||||||
{
|
{
|
||||||
d_cn0_smoother.set_samples_for_initialization(200 / static_cast<int>(d_code_period * 1000.0));
|
d_cn0_smoother.set_samples_for_initialization(trk_parameters.cn0_smoother_samples / static_cast<int>(d_code_period * 1000.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
d_carrier_lock_test_smoother = Exponential_Smoother();
|
d_carrier_lock_test_smoother = Exponential_Smoother();
|
||||||
d_carrier_lock_test_smoother.set_alpha(0.002);
|
d_carrier_lock_test_smoother.set_alpha(trk_parameters.carrier_lock_test_smoother_alpha);
|
||||||
d_carrier_lock_test_smoother.set_min_value(-1.0);
|
d_carrier_lock_test_smoother.set_min_value(-1.0);
|
||||||
d_carrier_lock_test_smoother.set_offset(0.0);
|
d_carrier_lock_test_smoother.set_offset(0.0);
|
||||||
d_carrier_lock_test_smoother.set_samples_for_initialization(25);
|
d_carrier_lock_test_smoother.set_samples_for_initialization(trk_parameters.carrier_lock_test_smoother_samples);
|
||||||
|
|
||||||
d_acquisition_gnss_synchro = nullptr;
|
d_acquisition_gnss_synchro = nullptr;
|
||||||
d_channel = 0;
|
d_channel = 0;
|
||||||
|
@ -375,16 +375,17 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga &
|
|||||||
d_carrier_lock_threshold = trk_parameters.carrier_lock_th;
|
d_carrier_lock_threshold = trk_parameters.carrier_lock_th;
|
||||||
d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment()));
|
d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment()));
|
||||||
d_cn0_smoother = Exponential_Smoother();
|
d_cn0_smoother = Exponential_Smoother();
|
||||||
|
d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha);
|
||||||
if (d_code_period > 0.0)
|
if (d_code_period > 0.0)
|
||||||
{
|
{
|
||||||
d_cn0_smoother.set_samples_for_initialization(200 / static_cast<int>(d_code_period * 1000.0));
|
d_cn0_smoother.set_samples_for_initialization(trk_parameters.cn0_smoother_samples / static_cast<int>(d_code_period * 1000.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
d_carrier_lock_test_smoother = Exponential_Smoother();
|
d_carrier_lock_test_smoother = Exponential_Smoother();
|
||||||
d_carrier_lock_test_smoother.set_alpha(0.002);
|
d_carrier_lock_test_smoother.set_alpha(trk_parameters.carrier_lock_test_smoother_alpha);
|
||||||
d_carrier_lock_test_smoother.set_min_value(-1.0);
|
d_carrier_lock_test_smoother.set_min_value(-1.0);
|
||||||
d_carrier_lock_test_smoother.set_offset(0.0);
|
d_carrier_lock_test_smoother.set_offset(0.0);
|
||||||
d_carrier_lock_test_smoother.set_samples_for_initialization(25);
|
d_carrier_lock_test_smoother.set_samples_for_initialization(trk_parameters.carrier_lock_test_smoother_samples);
|
||||||
|
|
||||||
d_acquisition_gnss_synchro = nullptr;
|
d_acquisition_gnss_synchro = nullptr;
|
||||||
d_channel = 0;
|
d_channel = 0;
|
||||||
|
@ -63,7 +63,10 @@ Dll_Pll_Conf::Dll_Pll_Conf()
|
|||||||
very_early_late_space_narrow_chips = 0.1;
|
very_early_late_space_narrow_chips = 0.1;
|
||||||
extend_correlation_symbols = 5;
|
extend_correlation_symbols = 5;
|
||||||
cn0_samples = FLAGS_cn0_samples;
|
cn0_samples = FLAGS_cn0_samples;
|
||||||
carrier_lock_det_mav_samples = FLAGS_cn0_samples;
|
cn0_smoother_samples=200;
|
||||||
|
cn0_smoother_alpha=0.002;
|
||||||
|
carrier_lock_test_smoother_alpha=0.002;
|
||||||
|
carrier_lock_test_smoother_samples=25;
|
||||||
cn0_min = FLAGS_cn0_min;
|
cn0_min = FLAGS_cn0_min;
|
||||||
max_carrier_lock_fail = FLAGS_max_carrier_lock_fail;
|
max_carrier_lock_fail = FLAGS_max_carrier_lock_fail;
|
||||||
max_code_lock_fail = FLAGS_max_lock_fail;
|
max_code_lock_fail = FLAGS_max_lock_fail;
|
||||||
|
@ -68,7 +68,11 @@ public:
|
|||||||
int32_t extend_correlation_symbols;
|
int32_t extend_correlation_symbols;
|
||||||
bool high_dyn;
|
bool high_dyn;
|
||||||
int32_t cn0_samples;
|
int32_t cn0_samples;
|
||||||
int32_t carrier_lock_det_mav_samples;
|
int32_t cn0_smoother_samples;
|
||||||
|
float cn0_smoother_alpha;
|
||||||
|
int32_t carrier_lock_test_smoother_samples;
|
||||||
|
float carrier_lock_test_smoother_alpha;
|
||||||
|
//int32_t carrier_lock_det_mav_samples;
|
||||||
int32_t cn0_min;
|
int32_t cn0_min;
|
||||||
int32_t max_code_lock_fail;
|
int32_t max_code_lock_fail;
|
||||||
int32_t max_carrier_lock_fail;
|
int32_t max_carrier_lock_fail;
|
||||||
|
@ -65,6 +65,10 @@ Dll_Pll_Conf_Fpga::Dll_Pll_Conf_Fpga()
|
|||||||
very_early_late_space_narrow_chips = 0.1;
|
very_early_late_space_narrow_chips = 0.1;
|
||||||
extend_correlation_symbols = 5;
|
extend_correlation_symbols = 5;
|
||||||
cn0_samples = FLAGS_cn0_samples;
|
cn0_samples = FLAGS_cn0_samples;
|
||||||
|
cn0_smoother_samples=200;
|
||||||
|
cn0_smoother_alpha=0.002;
|
||||||
|
carrier_lock_test_smoother_alpha=0.002;
|
||||||
|
carrier_lock_test_smoother_samples=25;
|
||||||
cn0_min = FLAGS_cn0_min;
|
cn0_min = FLAGS_cn0_min;
|
||||||
max_carrier_lock_fail = FLAGS_max_carrier_lock_fail;
|
max_carrier_lock_fail = FLAGS_max_carrier_lock_fail;
|
||||||
max_code_lock_fail = FLAGS_max_lock_fail;
|
max_code_lock_fail = FLAGS_max_lock_fail;
|
||||||
|
@ -73,6 +73,12 @@ public:
|
|||||||
int32_t cn0_min;
|
int32_t cn0_min;
|
||||||
int32_t max_code_lock_fail;
|
int32_t max_code_lock_fail;
|
||||||
int32_t max_carrier_lock_fail;
|
int32_t max_carrier_lock_fail;
|
||||||
|
|
||||||
|
int32_t cn0_smoother_samples;
|
||||||
|
float cn0_smoother_alpha;
|
||||||
|
int32_t carrier_lock_test_smoother_samples;
|
||||||
|
float carrier_lock_test_smoother_alpha;
|
||||||
|
|
||||||
// int32_t max_lock_fail;
|
// int32_t max_lock_fail;
|
||||||
uint32_t smoother_length;
|
uint32_t smoother_length;
|
||||||
double carrier_lock_th;
|
double carrier_lock_th;
|
||||||
|
Loading…
Reference in New Issue
Block a user