1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-01-31 03:14:56 +00:00

Add option to enable/disable carrier aiding in the code loop (enabled by default)

This commit is contained in:
Carles Fernandez 2020-02-24 20:18:28 +01:00
parent 0986e4a66e
commit ba7a938304
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
6 changed files with 16 additions and 2 deletions

View File

@ -991,7 +991,11 @@ void dll_pll_veml_tracking::run_dll_pll()
// Code discriminator filter
d_code_error_filt_chips = d_code_loop_filter.apply(d_code_error_chips); // [chips/second]
// New code Doppler frequency estimation
d_code_freq_chips = (1.0 + (d_carrier_doppler_hz / d_signal_carrier_freq)) * d_code_chip_rate - d_code_error_filt_chips;
d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips;
if (trk_parameters.carrier_aiding)
{
d_code_freq_chips += d_carrier_doppler_hz * d_code_chip_rate / d_signal_carrier_freq;
}
// Experimental: detect Carrier Doppler vs. Code Doppler incoherence and correct the Carrier Doppler
if (trk_parameters.enable_doppler_correction == true)

View File

@ -738,7 +738,11 @@ void dll_pll_veml_tracking_fpga::run_dll_pll()
// Code discriminator filter
d_code_error_filt_chips = d_code_loop_filter.apply(d_code_error_chips); // [chips/second]
// New code Doppler frequency estimation
d_code_freq_chips = (1.0 + (d_carrier_doppler_hz / d_signal_carrier_freq)) * d_code_chip_rate - d_code_error_filt_chips;
d_code_freq_chips = d_code_chip_rate - d_code_error_filt_chips;
if (trk_parameters.carrier_aiding)
{
d_code_freq_chips += d_carrier_doppler_hz * d_code_chip_rate / d_signal_carrier_freq;
}
// Experimental: detect Carrier Doppler vs. Code Doppler incoherence and correct the Carrier Doppler
if (trk_parameters.enable_doppler_correction == true)

View File

@ -55,6 +55,7 @@ Dll_Pll_Conf::Dll_Pll_Conf()
slope = 1.0;
spc = 0.5;
y_intercept = 1.0;
carrier_aiding = true;
extend_correlation_symbols = 1;
cn0_samples = FLAGS_cn0_samples;
cn0_smoother_samples = 200;
@ -152,6 +153,7 @@ void Dll_Pll_Conf::SetFromConfiguration(ConfigurationInterface *configuration,
max_code_lock_fail = configuration->property(role + ".max_lock_fail", max_code_lock_fail);
max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", max_carrier_lock_fail);
carrier_lock_th = configuration->property(role + ".carrier_lock_th", carrier_lock_th);
carrier_aiding = configuration->property(role + ".carrier_aiding", carrier_aiding);
// tracking lock tests smoother parameters
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);

View File

@ -60,6 +60,7 @@ public:
float spc;
float y_intercept;
int32_t extend_correlation_symbols;
bool carrier_aiding;
bool high_dyn;
std::string item_type;
int32_t cn0_samples;

View File

@ -56,6 +56,7 @@ Dll_Pll_Conf_Fpga::Dll_Pll_Conf_Fpga()
slope = 1.0;
spc = 0.5;
y_intercept = 1.0;
carrier_aiding = true;
extend_correlation_symbols = 1;
cn0_samples = FLAGS_cn0_samples;
cn0_smoother_samples = 200;
@ -157,6 +158,7 @@ void Dll_Pll_Conf_Fpga::SetFromConfiguration(ConfigurationInterface *configurati
very_early_late_space_narrow_chips = configuration->property(role + ".very_early_late_space_narrow_chips", very_early_late_space_narrow_chips);
extend_correlation_symbols = configuration->property(role + ".extend_correlation_symbols", extend_correlation_symbols);
cn0_samples = configuration->property(role + ".cn0_samples", cn0_samples);
carrier_aiding = configuration->property(role + ".carrier_aiding", carrier_aiding);
// tracking lock tests smoother parameters
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);

View File

@ -63,6 +63,7 @@ public:
float spc;
float y_intercept;
int32_t extend_correlation_symbols;
bool carrier_aiding;
bool high_dyn;
int32_t cn0_samples;
int32_t cn0_min;