mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	Expose tracking lock detectors smoothers control parameters in config files
This commit is contained in:
		| @@ -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.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 ################### | ||||
|     if (item_type == "gr_complex") | ||||
|         { | ||||
|   | ||||
| @@ -254,6 +254,14 @@ GalileoE1DllPllVemlTrackingFpga::GalileoE1DllPllVemlTrackingFpga( | ||||
|     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.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 ################### | ||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||
|     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.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 ################### | ||||
|     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 ################### | ||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||
|     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.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 ################### | ||||
|     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 ################### | ||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||
|     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.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 ################### | ||||
|     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.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 ################### | ||||
|     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); | ||||
|     channel_ = 0; | ||||
|     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_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); | ||||
|     d_cn0_smoother = Exponential_Smoother(); | ||||
|     d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha); | ||||
|  | ||||
|     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.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_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_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_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); | ||||
|     d_cn0_smoother = Exponential_Smoother(); | ||||
|     d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha); | ||||
|     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.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_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_channel = 0; | ||||
|   | ||||
| @@ -63,7 +63,10 @@ Dll_Pll_Conf::Dll_Pll_Conf() | ||||
|     very_early_late_space_narrow_chips = 0.1; | ||||
|     extend_correlation_symbols = 5; | ||||
|     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; | ||||
|     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; | ||||
|     max_code_lock_fail = FLAGS_max_lock_fail; | ||||
|   | ||||
| @@ -68,7 +68,11 @@ public: | ||||
|     int32_t extend_correlation_symbols; | ||||
|     bool high_dyn; | ||||
|     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 max_code_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; | ||||
|     extend_correlation_symbols = 5; | ||||
|     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; | ||||
|     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; | ||||
|     max_code_lock_fail = FLAGS_max_lock_fail; | ||||
|   | ||||
| @@ -73,6 +73,12 @@ public: | ||||
|     int32_t cn0_min; | ||||
|     int32_t max_code_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; | ||||
|     uint32_t smoother_length; | ||||
|     double carrier_lock_th; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Javier
					Javier