mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-31 11:19:18 +00:00
Add option to enable/disable carrier aiding in the code loop (enabled by default)
This commit is contained in:
parent
0986e4a66e
commit
ba7a938304
@ -991,7 +991,11 @@ void dll_pll_veml_tracking::run_dll_pll()
|
|||||||
// 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(d_code_error_chips); // [chips/second]
|
||||||
// New code Doppler frequency estimation
|
// 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
|
// Experimental: detect Carrier Doppler vs. Code Doppler incoherence and correct the Carrier Doppler
|
||||||
if (trk_parameters.enable_doppler_correction == true)
|
if (trk_parameters.enable_doppler_correction == true)
|
||||||
|
@ -738,7 +738,11 @@ void dll_pll_veml_tracking_fpga::run_dll_pll()
|
|||||||
// 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(d_code_error_chips); // [chips/second]
|
||||||
// New code Doppler frequency estimation
|
// 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
|
// Experimental: detect Carrier Doppler vs. Code Doppler incoherence and correct the Carrier Doppler
|
||||||
if (trk_parameters.enable_doppler_correction == true)
|
if (trk_parameters.enable_doppler_correction == true)
|
||||||
|
@ -55,6 +55,7 @@ Dll_Pll_Conf::Dll_Pll_Conf()
|
|||||||
slope = 1.0;
|
slope = 1.0;
|
||||||
spc = 0.5;
|
spc = 0.5;
|
||||||
y_intercept = 1.0;
|
y_intercept = 1.0;
|
||||||
|
carrier_aiding = true;
|
||||||
extend_correlation_symbols = 1;
|
extend_correlation_symbols = 1;
|
||||||
cn0_samples = FLAGS_cn0_samples;
|
cn0_samples = FLAGS_cn0_samples;
|
||||||
cn0_smoother_samples = 200;
|
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_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);
|
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_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
|
// tracking lock tests smoother parameters
|
||||||
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);
|
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);
|
||||||
|
@ -60,6 +60,7 @@ public:
|
|||||||
float spc;
|
float spc;
|
||||||
float y_intercept;
|
float y_intercept;
|
||||||
int32_t extend_correlation_symbols;
|
int32_t extend_correlation_symbols;
|
||||||
|
bool carrier_aiding;
|
||||||
bool high_dyn;
|
bool high_dyn;
|
||||||
std::string item_type;
|
std::string item_type;
|
||||||
int32_t cn0_samples;
|
int32_t cn0_samples;
|
||||||
|
@ -56,6 +56,7 @@ Dll_Pll_Conf_Fpga::Dll_Pll_Conf_Fpga()
|
|||||||
slope = 1.0;
|
slope = 1.0;
|
||||||
spc = 0.5;
|
spc = 0.5;
|
||||||
y_intercept = 1.0;
|
y_intercept = 1.0;
|
||||||
|
carrier_aiding = true;
|
||||||
extend_correlation_symbols = 1;
|
extend_correlation_symbols = 1;
|
||||||
cn0_samples = FLAGS_cn0_samples;
|
cn0_samples = FLAGS_cn0_samples;
|
||||||
cn0_smoother_samples = 200;
|
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);
|
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);
|
extend_correlation_symbols = configuration->property(role + ".extend_correlation_symbols", extend_correlation_symbols);
|
||||||
cn0_samples = configuration->property(role + ".cn0_samples", cn0_samples);
|
cn0_samples = configuration->property(role + ".cn0_samples", cn0_samples);
|
||||||
|
carrier_aiding = configuration->property(role + ".carrier_aiding", carrier_aiding);
|
||||||
|
|
||||||
// tracking lock tests smoother parameters
|
// tracking lock tests smoother parameters
|
||||||
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);
|
cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", cn0_smoother_samples);
|
||||||
|
@ -63,6 +63,7 @@ public:
|
|||||||
float spc;
|
float spc;
|
||||||
float y_intercept;
|
float y_intercept;
|
||||||
int32_t extend_correlation_symbols;
|
int32_t extend_correlation_symbols;
|
||||||
|
bool carrier_aiding;
|
||||||
bool high_dyn;
|
bool high_dyn;
|
||||||
int32_t cn0_samples;
|
int32_t cn0_samples;
|
||||||
int32_t cn0_min;
|
int32_t cn0_min;
|
||||||
|
Loading…
Reference in New Issue
Block a user