mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 15:23:04 +00:00 
			
		
		
		
	Remove all warnings raised by bugprone-* clang-tidy checks in tracking blocks
This commit is contained in:
		| @@ -143,7 +143,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_code_chip_rate = GPS_L1_CA_CODE_RATE_CPS; |                     d_code_chip_rate = GPS_L1_CA_CODE_RATE_CPS; | ||||||
|                     d_correlation_length_ms = 1; |                     d_correlation_length_ms = 1; | ||||||
|                     d_code_samples_per_chip = 1; |                     d_code_samples_per_chip = 1; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(GPS_L1_CA_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(GPS_L1_CA_CODE_LENGTH_CHIPS); | ||||||
|                     // GPS L1 C/A does not have pilot component nor secondary code |                     // GPS L1 C/A does not have pilot component nor secondary code | ||||||
|                     d_secondary = false; |                     d_secondary = false; | ||||||
|                     d_trk_parameters.track_pilot = false; |                     d_trk_parameters.track_pilot = false; | ||||||
| @@ -161,7 +161,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_signal_carrier_freq = GPS_L2_FREQ_HZ; |                     d_signal_carrier_freq = GPS_L2_FREQ_HZ; | ||||||
|                     d_code_period = GPS_L2_M_PERIOD_S; |                     d_code_period = GPS_L2_M_PERIOD_S; | ||||||
|                     d_code_chip_rate = GPS_L2_M_CODE_RATE_CPS; |                     d_code_chip_rate = GPS_L2_M_CODE_RATE_CPS; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(GPS_L2_M_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(GPS_L2_M_CODE_LENGTH_CHIPS); | ||||||
|                     // GPS L2C has 1 trk symbol (20 ms) per tlm bit, no symbol integration required |                     // GPS L2C has 1 trk symbol (20 ms) per tlm bit, no symbol integration required | ||||||
|                     d_symbols_per_bit = GPS_L2_SAMPLES_PER_SYMBOL; |                     d_symbols_per_bit = GPS_L2_SAMPLES_PER_SYMBOL; | ||||||
|                     d_correlation_length_ms = 20; |                     d_correlation_length_ms = 20; | ||||||
| @@ -182,7 +182,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_symbols_per_bit = GPS_L5_SAMPLES_PER_SYMBOL; |                     d_symbols_per_bit = GPS_L5_SAMPLES_PER_SYMBOL; | ||||||
|                     d_correlation_length_ms = 1; |                     d_correlation_length_ms = 1; | ||||||
|                     d_code_samples_per_chip = 1; |                     d_code_samples_per_chip = 1; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(GPS_L5I_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(GPS_L5I_CODE_LENGTH_CHIPS); | ||||||
|                     d_secondary = true; |                     d_secondary = true; | ||||||
|                     d_trk_parameters.slope = 1.0; |                     d_trk_parameters.slope = 1.0; | ||||||
|                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; |                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; | ||||||
| @@ -216,7 +216,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_secondary = false; |                     d_secondary = false; | ||||||
|                     d_signal_carrier_freq = 0.0; |                     d_signal_carrier_freq = 0.0; | ||||||
|                     d_code_period = 0.0; |                     d_code_period = 0.0; | ||||||
|                     d_code_length_chips = 0U; |                     d_code_length_chips = 0; | ||||||
|                     d_code_samples_per_chip = 0U; |                     d_code_samples_per_chip = 0U; | ||||||
|                     d_symbols_per_bit = 0; |                     d_symbols_per_bit = 0; | ||||||
|                 } |                 } | ||||||
| @@ -229,15 +229,15 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_signal_carrier_freq = GALILEO_E1_FREQ_HZ; |                     d_signal_carrier_freq = GALILEO_E1_FREQ_HZ; | ||||||
|                     d_code_period = GALILEO_E1_CODE_PERIOD_S; |                     d_code_period = GALILEO_E1_CODE_PERIOD_S; | ||||||
|                     d_code_chip_rate = GALILEO_E1_CODE_CHIP_RATE_CPS; |                     d_code_chip_rate = GALILEO_E1_CODE_CHIP_RATE_CPS; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(GALILEO_E1_B_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(GALILEO_E1_B_CODE_LENGTH_CHIPS); | ||||||
|                     // Galileo E1b has 1 trk symbol (4 ms) per tlm bit, no symbol integration required |                     // Galileo E1b has 1 trk symbol (4 ms) per tlm bit, no symbol integration required | ||||||
|                     d_symbols_per_bit = 1; |                     d_symbols_per_bit = 1; | ||||||
|                     d_correlation_length_ms = 4; |                     d_correlation_length_ms = 4; | ||||||
|                     d_code_samples_per_chip = 2;  // CBOC disabled: 2 samples per chip. CBOC enabled: 12 samples per chip |                     d_code_samples_per_chip = 2;  // CBOC disabled: 2 samples per chip. CBOC enabled: 12 samples per chip | ||||||
|                     d_veml = true; |                     d_veml = true; | ||||||
|                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; |                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; | ||||||
|                     d_trk_parameters.slope = -CalculateSlopeAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc); |                     d_trk_parameters.slope = static_cast<float>(-CalculateSlopeAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc)); | ||||||
|                     d_trk_parameters.y_intercept = GetYInterceptAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc); |                     d_trk_parameters.y_intercept = static_cast<float>(GetYInterceptAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc)); | ||||||
|                     if (d_trk_parameters.track_pilot) |                     if (d_trk_parameters.track_pilot) | ||||||
|                         { |                         { | ||||||
|                             d_secondary = true; |                             d_secondary = true; | ||||||
| @@ -260,7 +260,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_symbols_per_bit = 20; |                     d_symbols_per_bit = 20; | ||||||
|                     d_correlation_length_ms = 1; |                     d_correlation_length_ms = 1; | ||||||
|                     d_code_samples_per_chip = 1; |                     d_code_samples_per_chip = 1; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(GALILEO_E5A_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(GALILEO_E5A_CODE_LENGTH_CHIPS); | ||||||
|                     d_secondary = true; |                     d_secondary = true; | ||||||
|                     d_trk_parameters.slope = 1.0; |                     d_trk_parameters.slope = 1.0; | ||||||
|                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; |                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; | ||||||
| @@ -291,7 +291,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_secondary = false; |                     d_secondary = false; | ||||||
|                     d_signal_carrier_freq = 0.0; |                     d_signal_carrier_freq = 0.0; | ||||||
|                     d_code_period = 0.0; |                     d_code_period = 0.0; | ||||||
|                     d_code_length_chips = 0U; |                     d_code_length_chips = 0; | ||||||
|                     d_code_samples_per_chip = 0U; |                     d_code_samples_per_chip = 0U; | ||||||
|                     d_symbols_per_bit = 0; |                     d_symbols_per_bit = 0; | ||||||
|                 } |                 } | ||||||
| @@ -305,7 +305,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_signal_carrier_freq = BEIDOU_B1I_FREQ_HZ; |                     d_signal_carrier_freq = BEIDOU_B1I_FREQ_HZ; | ||||||
|                     d_code_period = BEIDOU_B1I_CODE_PERIOD_S; |                     d_code_period = BEIDOU_B1I_CODE_PERIOD_S; | ||||||
|                     d_code_chip_rate = BEIDOU_B1I_CODE_RATE_CPS; |                     d_code_chip_rate = BEIDOU_B1I_CODE_RATE_CPS; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(BEIDOU_B1I_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(BEIDOU_B1I_CODE_LENGTH_CHIPS); | ||||||
|                     d_symbols_per_bit = BEIDOU_B1I_TELEMETRY_SYMBOLS_PER_BIT;  // todo: enable after fixing beidou symbol synchronization |                     d_symbols_per_bit = BEIDOU_B1I_TELEMETRY_SYMBOLS_PER_BIT;  // todo: enable after fixing beidou symbol synchronization | ||||||
|                     d_correlation_length_ms = 1; |                     d_correlation_length_ms = 1; | ||||||
|                     d_code_samples_per_chip = 1; |                     d_code_samples_per_chip = 1; | ||||||
| @@ -326,7 +326,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|                     d_signal_carrier_freq = BEIDOU_B3I_FREQ_HZ; |                     d_signal_carrier_freq = BEIDOU_B3I_FREQ_HZ; | ||||||
|                     d_code_period = BEIDOU_B3I_CODE_PERIOD_S; |                     d_code_period = BEIDOU_B3I_CODE_PERIOD_S; | ||||||
|                     d_code_chip_rate = BEIDOU_B3I_CODE_RATE_CPS; |                     d_code_chip_rate = BEIDOU_B3I_CODE_RATE_CPS; | ||||||
|                     d_code_length_chips = static_cast<uint32_t>(BEIDOU_B3I_CODE_LENGTH_CHIPS); |                     d_code_length_chips = static_cast<int32_t>(BEIDOU_B3I_CODE_LENGTH_CHIPS); | ||||||
|                     d_symbols_per_bit = BEIDOU_B3I_TELEMETRY_SYMBOLS_PER_BIT;  // todo: enable after fixing beidou symbol synchronization |                     d_symbols_per_bit = BEIDOU_B3I_TELEMETRY_SYMBOLS_PER_BIT;  // todo: enable after fixing beidou symbol synchronization | ||||||
|                     d_correlation_length_ms = 1; |                     d_correlation_length_ms = 1; | ||||||
|                     d_code_samples_per_chip = 1; |                     d_code_samples_per_chip = 1; | ||||||
| @@ -361,7 +361,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|             d_secondary = false; |             d_secondary = false; | ||||||
|             d_signal_carrier_freq = 0.0; |             d_signal_carrier_freq = 0.0; | ||||||
|             d_code_period = 0.0; |             d_code_period = 0.0; | ||||||
|             d_code_length_chips = 0U; |             d_code_length_chips = 0; | ||||||
|             d_code_samples_per_chip = 0U; |             d_code_samples_per_chip = 0U; | ||||||
|             d_symbols_per_bit = 0; |             d_symbols_per_bit = 0; | ||||||
|         } |         } | ||||||
| @@ -371,7 +371,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|     d_K_blk_samples = 0.0; |     d_K_blk_samples = 0.0; | ||||||
|  |  | ||||||
|     // Initialize tracking  ========================================== |     // Initialize tracking  ========================================== | ||||||
|     d_code_loop_filter = Tracking_loop_filter(d_code_period, d_trk_parameters.dll_bw_hz, d_trk_parameters.dll_filter_order, false); |     d_code_loop_filter = Tracking_loop_filter(static_cast<float>(d_code_period), d_trk_parameters.dll_bw_hz, d_trk_parameters.dll_filter_order, false); | ||||||
|     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); |     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); | ||||||
|  |  | ||||||
|     // Initialization of local code replica |     // Initialization of local code replica | ||||||
| @@ -419,7 +419,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|             d_prompt_data_shift = &d_local_code_shift_chips[1]; |             d_prompt_data_shift = &d_local_code_shift_chips[1]; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     d_multicorrelator_cpu.init(2 * d_trk_parameters.vector_length, d_n_correlator_taps); |     d_multicorrelator_cpu.init(static_cast<int>(2 * d_trk_parameters.vector_length), d_n_correlator_taps); | ||||||
|  |  | ||||||
|     if (d_trk_parameters.extend_correlation_symbols > 1) |     if (d_trk_parameters.extend_correlation_symbols > 1) | ||||||
|         { |         { | ||||||
| @@ -435,7 +435,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|     if (d_trk_parameters.track_pilot) |     if (d_trk_parameters.track_pilot) | ||||||
|         { |         { | ||||||
|             // Extra correlator for the data component |             // Extra correlator for the data component | ||||||
|             d_correlator_data_cpu.init(2 * d_trk_parameters.vector_length, 1); |             d_correlator_data_cpu.init(static_cast<int>(2 * d_trk_parameters.vector_length), 1); | ||||||
|             d_correlator_data_cpu.set_high_dynamics_resampler(d_trk_parameters.high_dyn); |             d_correlator_data_cpu.set_high_dynamics_resampler(d_trk_parameters.high_dyn); | ||||||
|             d_data_code.resize(2 * d_code_length_chips, 0.0); |             d_data_code.resize(2 * d_code_length_chips, 0.0); | ||||||
|         } |         } | ||||||
| @@ -643,7 +643,7 @@ void dll_pll_veml_tracking::start_tracking() | |||||||
|             if (d_trk_parameters.track_pilot) |             if (d_trk_parameters.track_pilot) | ||||||
|                 { |                 { | ||||||
|                     d_secondary_code_string = GALILEO_E5A_Q_SECONDARY_CODE[d_acquisition_gnss_synchro->PRN - 1]; |                     d_secondary_code_string = GALILEO_E5A_Q_SECONDARY_CODE[d_acquisition_gnss_synchro->PRN - 1]; | ||||||
|                     for (uint32_t i = 0; i < d_code_length_chips; i++) |                     for (int32_t i = 0; i < d_code_length_chips; i++) | ||||||
|                         { |                         { | ||||||
|                             d_tracking_code[i] = aux_code[i].imag(); |                             d_tracking_code[i] = aux_code[i].imag(); | ||||||
|                             d_data_code[i] = aux_code[i].real();  // the same because it is generated the full signal (E5aI + E5aQ) |                             d_data_code[i] = aux_code[i].real();  // the same because it is generated the full signal (E5aI + E5aQ) | ||||||
| @@ -653,7 +653,7 @@ void dll_pll_veml_tracking::start_tracking() | |||||||
|                 } |                 } | ||||||
|             else |             else | ||||||
|                 { |                 { | ||||||
|                     for (uint32_t i = 0; i < d_code_length_chips; i++) |                     for (int32_t i = 0; i < d_code_length_chips; i++) | ||||||
|                         { |                         { | ||||||
|                             d_tracking_code[i] = aux_code[i].real(); |                             d_tracking_code[i] = aux_code[i].real(); | ||||||
|                         } |                         } | ||||||
| @@ -756,7 +756,7 @@ void dll_pll_veml_tracking::start_tracking() | |||||||
|     // Initialize tracking  ========================================== |     // Initialize tracking  ========================================== | ||||||
|     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); |     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); | ||||||
|     d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_hz); |     d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_hz); | ||||||
|     d_code_loop_filter.set_update_interval(d_code_period); |     d_code_loop_filter.set_update_interval(static_cast<float>(d_code_period)); | ||||||
|     // DLL/PLL filter initialization |     // DLL/PLL filter initialization | ||||||
|     d_carrier_loop_filter.initialize(static_cast<float>(d_acq_carrier_doppler_hz));  // initialize the carrier filter |     d_carrier_loop_filter.initialize(static_cast<float>(d_acq_carrier_doppler_hz));  // initialize the carrier filter | ||||||
|     d_code_loop_filter.initialize();                                                 // initialize the code filter |     d_code_loop_filter.initialize();                                                 // initialize the code filter | ||||||
| @@ -925,7 +925,7 @@ void dll_pll_veml_tracking::do_correlation_step(const gr_complex *input_samples) | |||||||
|     d_multicorrelator_cpu.set_input_output_vectors(d_correlator_outs.data(), input_samples); |     d_multicorrelator_cpu.set_input_output_vectors(d_correlator_outs.data(), input_samples); | ||||||
|     d_multicorrelator_cpu.Carrier_wipeoff_multicorrelator_resampler( |     d_multicorrelator_cpu.Carrier_wipeoff_multicorrelator_resampler( | ||||||
|         d_rem_carr_phase_rad, |         d_rem_carr_phase_rad, | ||||||
|         d_carrier_phase_step_rad, d_carrier_phase_rate_step_rad, |         static_cast<float>(d_carrier_phase_step_rad), static_cast<float>(d_carrier_phase_rate_step_rad), | ||||||
|         static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|         static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|         static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
| @@ -937,7 +937,7 @@ void dll_pll_veml_tracking::do_correlation_step(const gr_complex *input_samples) | |||||||
|             d_correlator_data_cpu.set_input_output_vectors(d_Prompt_Data.data(), input_samples); |             d_correlator_data_cpu.set_input_output_vectors(d_Prompt_Data.data(), input_samples); | ||||||
|             d_correlator_data_cpu.Carrier_wipeoff_multicorrelator_resampler( |             d_correlator_data_cpu.Carrier_wipeoff_multicorrelator_resampler( | ||||||
|                 d_rem_carr_phase_rad, |                 d_rem_carr_phase_rad, | ||||||
|                 d_carrier_phase_step_rad, d_carrier_phase_rate_step_rad, |                 static_cast<float>(d_carrier_phase_step_rad), static_cast<float>(d_carrier_phase_rate_step_rad), | ||||||
|                 static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), |                 static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|                 static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), |                 static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|                 static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), |                 static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
| @@ -973,18 +973,18 @@ void dll_pll_veml_tracking::run_dll_pll() | |||||||
|             if ((d_pull_in_transitory == true and d_trk_parameters.enable_fll_pull_in == true)) |             if ((d_pull_in_transitory == true and d_trk_parameters.enable_fll_pull_in == true)) | ||||||
|                 { |                 { | ||||||
|                     // pure FLL, disable PLL |                     // pure FLL, disable PLL | ||||||
|                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(d_carr_freq_error_hz, 0, d_current_correlation_time_s); |                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(static_cast<float>(d_carr_freq_error_hz), 0.0F, static_cast<float>(d_current_correlation_time_s)); | ||||||
|                 } |                 } | ||||||
|             else |             else | ||||||
|                 { |                 { | ||||||
|                     // FLL-aided PLL |                     // FLL-aided PLL | ||||||
|                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(d_carr_freq_error_hz, d_carr_phase_error_hz, d_current_correlation_time_s); |                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(static_cast<float>(d_carr_freq_error_hz), static_cast<float>(d_carr_phase_error_hz), static_cast<float>(d_current_correlation_time_s)); | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|     else |     else | ||||||
|         { |         { | ||||||
|             // Carrier discriminator filter |             // Carrier discriminator filter | ||||||
|             d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(0, d_carr_phase_error_hz, d_current_correlation_time_s); |             d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(0, static_cast<float>(d_carr_phase_error_hz), static_cast<float>(d_current_correlation_time_s)); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     // New carrier Doppler frequency estimation |     // New carrier Doppler frequency estimation | ||||||
| @@ -1004,7 +1004,7 @@ void dll_pll_veml_tracking::run_dll_pll() | |||||||
|             d_code_error_chips = dll_nc_e_minus_l_normalized(d_E_accu, d_L_accu, d_trk_parameters.spc, d_trk_parameters.slope, d_trk_parameters.y_intercept);  // [chips/Ti] |             d_code_error_chips = dll_nc_e_minus_l_normalized(d_E_accu, d_L_accu, d_trk_parameters.spc, d_trk_parameters.slope, d_trk_parameters.y_intercept);  // [chips/Ti] | ||||||
|         } |         } | ||||||
|     // Code discriminator filter |     // Code discriminator filter | ||||||
|     d_code_error_filt_chips = d_code_loop_filter.apply(d_code_error_chips);  // [chips/second] |     d_code_error_filt_chips = d_code_loop_filter.apply(static_cast<float>(d_code_error_chips));  // [chips/second] | ||||||
|     // New code Doppler frequency estimation |     // New code Doppler frequency estimation | ||||||
|     d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips; |     d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips; | ||||||
|     if (d_trk_parameters.carrier_aiding) |     if (d_trk_parameters.carrier_aiding) | ||||||
| @@ -1021,12 +1021,12 @@ void dll_pll_veml_tracking::run_dll_pll() | |||||||
|  |  | ||||||
|                     if (d_dll_filt_history.full()) |                     if (d_dll_filt_history.full()) | ||||||
|                         { |                         { | ||||||
|                             float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity()); |                             float avg_code_error_chips_s = static_cast<float>(std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0)) / static_cast<float>(d_dll_filt_history.capacity()); | ||||||
|                             if (std::fabs(avg_code_error_chips_s) > 1.0) |                             if (std::fabs(avg_code_error_chips_s) > 1.0) | ||||||
|                                 { |                                 { | ||||||
|                                     float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate); |                                     float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate); | ||||||
|                                     LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN); |                                     LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN); | ||||||
|                                     d_carrier_loop_filter.initialize(d_carrier_doppler_hz - carrier_doppler_error_hz); |                                     d_carrier_loop_filter.initialize(static_cast<float>(d_carrier_doppler_hz) - carrier_doppler_error_hz); | ||||||
|                                     d_corrected_doppler = true; |                                     d_corrected_doppler = true; | ||||||
|                                 } |                                 } | ||||||
|                             d_dll_filt_history.clear(); |                             d_dll_filt_history.clear(); | ||||||
| @@ -1769,7 +1769,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) | |||||||
|                                                   << d_channel |                                                   << d_channel | ||||||
|                                                   << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN) << '\n'; |                                                   << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN) << '\n'; | ||||||
|                                         // Set narrow taps delay values [chips] |                                         // Set narrow taps delay values [chips] | ||||||
|                                         d_code_loop_filter.set_update_interval(d_current_correlation_time_s); |                                         d_code_loop_filter.set_update_interval(static_cast<float>(d_current_correlation_time_s)); | ||||||
|                                         d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_narrow_hz); |                                         d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_narrow_hz); | ||||||
|                                         d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_narrow_hz, d_trk_parameters.pll_filter_order); |                                         d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_narrow_hz, d_trk_parameters.pll_filter_order); | ||||||
|                                         if (d_veml) |                                         if (d_veml) | ||||||
|   | |||||||
| @@ -182,12 +182,12 @@ private: | |||||||
|     int32_t d_cn0_estimation_counter; |     int32_t d_cn0_estimation_counter; | ||||||
|     int32_t d_carrier_lock_fail_counter; |     int32_t d_carrier_lock_fail_counter; | ||||||
|     int32_t d_code_lock_fail_counter; |     int32_t d_code_lock_fail_counter; | ||||||
|  |     int32_t d_code_samples_per_chip;  // All signals have 1 sample per chip code except Gal. E1 which has 2 (CBOC disabled) or 12 (CBOC enabled) | ||||||
|  |     int32_t d_code_length_chips; | ||||||
|  |  | ||||||
|     uint32_t d_channel; |     uint32_t d_channel; | ||||||
|     uint32_t d_secondary_code_length; |     uint32_t d_secondary_code_length; | ||||||
|     uint32_t d_data_secondary_code_length; |     uint32_t d_data_secondary_code_length; | ||||||
|     uint32_t d_code_length_chips; |  | ||||||
|     uint32_t d_code_samples_per_chip;  // All signals have 1 sample per chip code except Gal. E1 which has 2 (CBOC disabled) or 12 (CBOC enabled) |  | ||||||
|  |  | ||||||
|     bool d_pull_in_transitory; |     bool d_pull_in_transitory; | ||||||
|     bool d_corrected_doppler; |     bool d_corrected_doppler; | ||||||
|   | |||||||
| @@ -228,8 +228,8 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga & | |||||||
|                     d_correlation_length_ms = 4; |                     d_correlation_length_ms = 4; | ||||||
|                     d_veml = true; |                     d_veml = true; | ||||||
|                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; |                     d_trk_parameters.spc = d_trk_parameters.early_late_space_chips; | ||||||
|                     d_trk_parameters.slope = -CalculateSlopeAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc); |                     d_trk_parameters.slope = static_cast<float>(-CalculateSlopeAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc)); | ||||||
|                     d_trk_parameters.y_intercept = GetYInterceptAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc); |                     d_trk_parameters.y_intercept = static_cast<float>(GetYInterceptAbs(&SinBocCorrelationFunction<1, 1>, d_trk_parameters.spc)); | ||||||
|                     if (d_trk_parameters.track_pilot) |                     if (d_trk_parameters.track_pilot) | ||||||
|                         { |                         { | ||||||
|                             d_secondary = true; |                             d_secondary = true; | ||||||
| @@ -309,7 +309,7 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga & | |||||||
|     d_K_blk_samples = 0.0; |     d_K_blk_samples = 0.0; | ||||||
|  |  | ||||||
|     // Initialize tracking  ========================================== |     // Initialize tracking  ========================================== | ||||||
|     d_code_loop_filter = Tracking_loop_filter(d_code_period, d_trk_parameters.dll_bw_hz, d_trk_parameters.dll_filter_order, false); |     d_code_loop_filter = Tracking_loop_filter(static_cast<float>(d_code_period), d_trk_parameters.dll_bw_hz, d_trk_parameters.dll_filter_order, false); | ||||||
|     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); |     d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); | ||||||
|  |  | ||||||
|     // correlator outputs (scalar) |     // correlator outputs (scalar) | ||||||
| @@ -682,7 +682,7 @@ void dll_pll_veml_tracking_fpga::do_correlation_step() | |||||||
|  |  | ||||||
|     d_multicorrelator_fpga->Carrier_wipeoff_multicorrelator_resampler( |     d_multicorrelator_fpga->Carrier_wipeoff_multicorrelator_resampler( | ||||||
|         d_rem_carr_phase_rad, |         d_rem_carr_phase_rad, | ||||||
|         d_carrier_phase_step_rad, d_carrier_phase_rate_step_rad, |         static_cast<float>(d_carrier_phase_step_rad), static_cast<float>(d_carrier_phase_rate_step_rad), | ||||||
|         static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_rem_code_phase_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|         static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_code_phase_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
|         static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), |         static_cast<float>(d_code_phase_rate_step_chips) * static_cast<float>(d_code_samples_per_chip), | ||||||
| @@ -717,18 +717,18 @@ void dll_pll_veml_tracking_fpga::run_dll_pll() | |||||||
|             if ((d_pull_in_transitory == true and d_trk_parameters.enable_fll_pull_in == true)) |             if ((d_pull_in_transitory == true and d_trk_parameters.enable_fll_pull_in == true)) | ||||||
|                 { |                 { | ||||||
|                     // pure FLL, disable PLL |                     // pure FLL, disable PLL | ||||||
|                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(d_carr_freq_error_hz, 0, d_current_correlation_time_s); |                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(static_cast<float>(d_carr_freq_error_hz), 0, static_cast<float>(d_current_correlation_time_s)); | ||||||
|                 } |                 } | ||||||
|             else |             else | ||||||
|                 { |                 { | ||||||
|                     // FLL-aided PLL |                     // FLL-aided PLL | ||||||
|                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(d_carr_freq_error_hz, d_carr_phase_error_hz, d_current_correlation_time_s); |                     d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(static_cast<float>(d_carr_freq_error_hz), static_cast<float>(d_carr_phase_error_hz), static_cast<float>(d_current_correlation_time_s)); | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|     else |     else | ||||||
|         { |         { | ||||||
|             // Carrier discriminator filter |             // Carrier discriminator filter | ||||||
|             d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(0, d_carr_phase_error_hz, d_current_correlation_time_s); |             d_carr_error_filt_hz = d_carrier_loop_filter.get_carrier_error(0, static_cast<float>(d_carr_phase_error_hz), static_cast<float>(d_current_correlation_time_s)); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     // New carrier Doppler frequency estimation |     // New carrier Doppler frequency estimation | ||||||
| @@ -748,7 +748,7 @@ void dll_pll_veml_tracking_fpga::run_dll_pll() | |||||||
|             d_code_error_chips = dll_nc_e_minus_l_normalized(d_E_accu, d_L_accu, d_trk_parameters.spc, d_trk_parameters.slope, d_trk_parameters.y_intercept);  // [chips/Ti] |             d_code_error_chips = dll_nc_e_minus_l_normalized(d_E_accu, d_L_accu, d_trk_parameters.spc, d_trk_parameters.slope, d_trk_parameters.y_intercept);  // [chips/Ti] | ||||||
|         } |         } | ||||||
|     // Code discriminator filter |     // Code discriminator filter | ||||||
|     d_code_error_filt_chips = d_code_loop_filter.apply(d_code_error_chips);  // [chips/second] |     d_code_error_filt_chips = d_code_loop_filter.apply(static_cast<float>(d_code_error_chips));  // [chips/second] | ||||||
|     // New code Doppler frequency estimation |     // New code Doppler frequency estimation | ||||||
|     d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips; |     d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips; | ||||||
|     if (d_trk_parameters.carrier_aiding) |     if (d_trk_parameters.carrier_aiding) | ||||||
| @@ -765,12 +765,12 @@ void dll_pll_veml_tracking_fpga::run_dll_pll() | |||||||
|  |  | ||||||
|                     if (d_dll_filt_history.full()) |                     if (d_dll_filt_history.full()) | ||||||
|                         { |                         { | ||||||
|                             float avg_code_error_chips_s = std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0) / static_cast<float>(d_dll_filt_history.capacity()); |                             float avg_code_error_chips_s = static_cast<float>(std::accumulate(d_dll_filt_history.begin(), d_dll_filt_history.end(), 0.0)) / static_cast<float>(d_dll_filt_history.capacity()); | ||||||
|                             if (fabs(avg_code_error_chips_s) > 1.0) |                             if (fabs(avg_code_error_chips_s) > 1.0) | ||||||
|                                 { |                                 { | ||||||
|                                     float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate); |                                     float carrier_doppler_error_hz = static_cast<float>(d_signal_carrier_freq) * avg_code_error_chips_s / static_cast<float>(d_code_chip_rate); | ||||||
|                                     LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN); |                                     LOG(INFO) << "Detected and corrected carrier doppler error: " << carrier_doppler_error_hz << " [Hz] on sat " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN); | ||||||
|                                     d_carrier_loop_filter.initialize(d_carrier_doppler_hz - carrier_doppler_error_hz); |                                     d_carrier_loop_filter.initialize(static_cast<float>(d_carrier_doppler_hz) - carrier_doppler_error_hz); | ||||||
|                                     d_corrected_doppler = true; |                                     d_corrected_doppler = true; | ||||||
|                                 } |                                 } | ||||||
|                             d_dll_filt_history.clear(); |                             d_dll_filt_history.clear(); | ||||||
| @@ -1400,14 +1400,7 @@ void dll_pll_veml_tracking_fpga::set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) | |||||||
|             d_code_ph_history.clear(); |             d_code_ph_history.clear(); | ||||||
|             d_carr_ph_history.clear(); |             d_carr_ph_history.clear(); | ||||||
|  |  | ||||||
|             if (d_systemName == "GPS" and d_signal_type == "L5") |             if ((d_systemName == "GPS" and d_signal_type == "L5") || (d_systemName == "Galileo" and d_signal_type == "1B")) | ||||||
|                 { |  | ||||||
|                     if (d_trk_parameters.track_pilot) |  | ||||||
|                         { |  | ||||||
|                             d_Prompt_Data[0] = gr_complex(0.0, 0.0); |  | ||||||
|                         } |  | ||||||
|                 } |  | ||||||
|             else if (d_systemName == "Galileo" and d_signal_type == "1B") |  | ||||||
|                 { |                 { | ||||||
|                     if (d_trk_parameters.track_pilot) |                     if (d_trk_parameters.track_pilot) | ||||||
|                         { |                         { | ||||||
| @@ -1464,7 +1457,7 @@ void dll_pll_veml_tracking_fpga::set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) | |||||||
|             // DLL/PLL filter initialization |             // DLL/PLL filter initialization | ||||||
|             d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); |             d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_hz, d_trk_parameters.pll_filter_order); | ||||||
|             d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_hz); |             d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_hz); | ||||||
|             d_code_loop_filter.set_update_interval(d_code_period); |             d_code_loop_filter.set_update_interval(static_cast<float>(d_code_period)); | ||||||
|             d_code_loop_filter.initialize();  // initialize the code filter |             d_code_loop_filter.initialize();  // initialize the code filter | ||||||
|  |  | ||||||
|             d_multicorrelator_fpga->set_local_code_and_taps(d_local_code_shift_chips.data(), d_prompt_data_shift, d_acquisition_gnss_synchro->PRN); |             d_multicorrelator_fpga->set_local_code_and_taps(d_local_code_shift_chips.data(), d_prompt_data_shift, d_acquisition_gnss_synchro->PRN); | ||||||
| @@ -1759,7 +1752,7 @@ int dll_pll_veml_tracking_fpga::general_work(int noutput_items __attribute__((un | |||||||
|                                                           << d_channel |                                                           << d_channel | ||||||
|                                                           << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN) << '\n'; |                                                           << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN) << '\n'; | ||||||
|                                                 // Set narrow taps delay values [chips] |                                                 // Set narrow taps delay values [chips] | ||||||
|                                                 d_code_loop_filter.set_update_interval(d_current_correlation_time_s); |                                                 d_code_loop_filter.set_update_interval(static_cast<float>(d_current_correlation_time_s)); | ||||||
|                                                 d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_narrow_hz); |                                                 d_code_loop_filter.set_noise_bandwidth(d_trk_parameters.dll_bw_narrow_hz); | ||||||
|                                                 d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_narrow_hz, d_trk_parameters.pll_filter_order); |                                                 d_carrier_loop_filter.set_params(d_trk_parameters.fll_bw_hz, d_trk_parameters.pll_bw_narrow_hz, d_trk_parameters.pll_filter_order); | ||||||
|                                                 if (d_veml) |                                                 if (d_veml) | ||||||
|   | |||||||
| @@ -178,7 +178,7 @@ void Gps_L1_Ca_Tcp_Connector_Tracking_cc::start_tracking() | |||||||
|     acq_trk_diff_seconds = static_cast<float>(acq_trk_diff_samples) / static_cast<float>(d_fs_in); |     acq_trk_diff_seconds = static_cast<float>(acq_trk_diff_samples) / static_cast<float>(d_fs_in); | ||||||
|     // doppler effect |     // doppler effect | ||||||
|     // Fd=(C/(C+Vr))*F |     // Fd=(C/(C+Vr))*F | ||||||
|     float radial_velocity = static_cast<float>((GPS_L1_FREQ_HZ + d_acq_carrier_doppler_hz) / GPS_L1_FREQ_HZ); |     auto radial_velocity = static_cast<float>((GPS_L1_FREQ_HZ + d_acq_carrier_doppler_hz) / GPS_L1_FREQ_HZ); | ||||||
|     // new chip and prn sequence periods based on acq Doppler |     // new chip and prn sequence periods based on acq Doppler | ||||||
|     float T_chip_mod_seconds; |     float T_chip_mod_seconds; | ||||||
|     float T_prn_mod_seconds; |     float T_prn_mod_seconds; | ||||||
|   | |||||||
| @@ -306,7 +306,7 @@ void Fpga_Multicorrelator_8sc::fpga_compute_code_shift_parameters() | |||||||
|             frac_part = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, 1.0); |             frac_part = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, 1.0); | ||||||
|             if (frac_part < 0) |             if (frac_part < 0) | ||||||
|                 { |                 { | ||||||
|                     frac_part = frac_part + 1.0;  // fmod operator does not work as in Matlab with negative numbers |                     frac_part = frac_part + 1.0F;  // fmod operator does not work as in Matlab with negative numbers | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|             d_initial_interp_counter[i] = static_cast<uint32_t>(std::floor(max_code_resampler_counter * frac_part)); |             d_initial_interp_counter[i] = static_cast<uint32_t>(std::floor(max_code_resampler_counter * frac_part)); | ||||||
| @@ -324,7 +324,7 @@ void Fpga_Multicorrelator_8sc::fpga_compute_code_shift_parameters() | |||||||
|             frac_part = fmod(d_prompt_data_shift[0] - d_rem_code_phase_chips, 1.0); |             frac_part = fmod(d_prompt_data_shift[0] - d_rem_code_phase_chips, 1.0); | ||||||
|             if (frac_part < 0) |             if (frac_part < 0) | ||||||
|                 { |                 { | ||||||
|                     frac_part = frac_part + 1.0;  // fmod operator does not work as in Matlab with negative numbers |                     frac_part = frac_part + 1.0F;  // fmod operator does not work as in Matlab with negative numbers | ||||||
|                 } |                 } | ||||||
|             d_initial_interp_counter[d_n_correlators] = static_cast<uint32_t>(std::floor(max_code_resampler_counter * frac_part)); |             d_initial_interp_counter[d_n_correlators] = static_cast<uint32_t>(std::floor(max_code_resampler_counter * frac_part)); | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez