mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-11-04 17:16:26 +00:00
Added confguration option to set DLL and PLL bandwidth for 20 ms
extended correlation in C_Aid GPS L1 CA tracking (dll_bw_narrow_hz and pll_bw_narrow_hz)
This commit is contained in:
parent
d664dc63b3
commit
14e109983a
@ -60,7 +60,9 @@ GpsL1CaDllPllCAidTracking::GpsL1CaDllPllCAidTracking(
|
|||||||
std::string dump_filename;
|
std::string dump_filename;
|
||||||
std::string default_item_type = "gr_complex";
|
std::string default_item_type = "gr_complex";
|
||||||
float pll_bw_hz;
|
float pll_bw_hz;
|
||||||
|
float pll_bw_narrow_hz;
|
||||||
float dll_bw_hz;
|
float dll_bw_hz;
|
||||||
|
float dll_bw_narrow_hz;
|
||||||
float early_late_space_chips;
|
float early_late_space_chips;
|
||||||
item_type_ = configuration->property(role + ".item_type", default_item_type);
|
item_type_ = configuration->property(role + ".item_type", default_item_type);
|
||||||
//vector_length = configuration->property(role + ".vector_length", 2048);
|
//vector_length = configuration->property(role + ".vector_length", 2048);
|
||||||
@ -69,6 +71,8 @@ GpsL1CaDllPllCAidTracking::GpsL1CaDllPllCAidTracking(
|
|||||||
dump = configuration->property(role + ".dump", false);
|
dump = configuration->property(role + ".dump", false);
|
||||||
pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0);
|
pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0);
|
||||||
dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0);
|
dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0);
|
||||||
|
pll_bw_narrow_hz = configuration->property(role + ".pll_bw_narrow_hz", 20.0);
|
||||||
|
dll_bw_narrow_hz = configuration->property(role + ".dll_bw_narrow_hz", 2.0);
|
||||||
early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5);
|
early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5);
|
||||||
std::string default_dump_filename = "./track_ch";
|
std::string default_dump_filename = "./track_ch";
|
||||||
dump_filename = configuration->property(role + ".dump_filename",
|
dump_filename = configuration->property(role + ".dump_filename",
|
||||||
@ -88,6 +92,8 @@ GpsL1CaDllPllCAidTracking::GpsL1CaDllPllCAidTracking(
|
|||||||
dump_filename,
|
dump_filename,
|
||||||
pll_bw_hz,
|
pll_bw_hz,
|
||||||
dll_bw_hz,
|
dll_bw_hz,
|
||||||
|
pll_bw_narrow_hz,
|
||||||
|
dll_bw_narrow_hz,
|
||||||
early_late_space_chips);
|
early_late_space_chips);
|
||||||
DLOG(INFO) << "tracking(" << tracking_cc->unique_id() << ")";
|
DLOG(INFO) << "tracking(" << tracking_cc->unique_id() << ")";
|
||||||
}else if(item_type_.compare("cshort") == 0)
|
}else if(item_type_.compare("cshort") == 0)
|
||||||
@ -102,6 +108,8 @@ GpsL1CaDllPllCAidTracking::GpsL1CaDllPllCAidTracking(
|
|||||||
dump_filename,
|
dump_filename,
|
||||||
pll_bw_hz,
|
pll_bw_hz,
|
||||||
dll_bw_hz,
|
dll_bw_hz,
|
||||||
|
pll_bw_narrow_hz,
|
||||||
|
dll_bw_narrow_hz,
|
||||||
early_late_space_chips);
|
early_late_space_chips);
|
||||||
DLOG(INFO) << "tracking(" << tracking_sc->unique_id() << ")";
|
DLOG(INFO) << "tracking(" << tracking_sc->unique_id() << ")";
|
||||||
}else
|
}else
|
||||||
|
@ -67,10 +67,12 @@ gps_l1_ca_dll_pll_c_aid_make_tracking_cc(
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return gps_l1_ca_dll_pll_c_aid_tracking_cc_sptr(new gps_l1_ca_dll_pll_c_aid_tracking_cc(if_freq,
|
return gps_l1_ca_dll_pll_c_aid_tracking_cc_sptr(new gps_l1_ca_dll_pll_c_aid_tracking_cc(if_freq,
|
||||||
fs_in, vector_length, queue, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips));
|
fs_in, vector_length, queue, dump, dump_filename, pll_bw_hz, dll_bw_hz,pll_bw_narrow_hz, dll_bw_narrow_hz, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -106,6 +108,8 @@ gps_l1_ca_dll_pll_c_aid_tracking_cc::gps_l1_ca_dll_pll_c_aid_tracking_cc(
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips) :
|
float early_late_space_chips) :
|
||||||
gr::block("gps_l1_ca_dll_pll_c_aid_tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
gr::block("gps_l1_ca_dll_pll_c_aid_tracking_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)))
|
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)))
|
||||||
@ -129,6 +133,8 @@ gps_l1_ca_dll_pll_c_aid_tracking_cc::gps_l1_ca_dll_pll_c_aid_tracking_cc(
|
|||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
d_pll_bw_hz=pll_bw_hz;
|
d_pll_bw_hz=pll_bw_hz;
|
||||||
d_dll_bw_hz=dll_bw_hz;
|
d_dll_bw_hz=dll_bw_hz;
|
||||||
|
d_pll_bw_narrow_hz=pll_bw_narrow_hz;
|
||||||
|
d_dll_bw_narrow_hz=dll_bw_narrow_hz;
|
||||||
d_code_loop_filter.set_DLL_BW(d_dll_bw_hz);
|
d_code_loop_filter.set_DLL_BW(d_dll_bw_hz);
|
||||||
d_carrier_loop_filter.set_params(10.0, d_pll_bw_hz,2);
|
d_carrier_loop_filter.set_params(10.0, d_pll_bw_hz,2);
|
||||||
|
|
||||||
@ -394,8 +400,8 @@ int gps_l1_ca_dll_pll_c_aid_tracking_cc::general_work (int noutput_items, gr_vec
|
|||||||
current_synchro_data.symbol_integration_enabled=true;
|
current_synchro_data.symbol_integration_enabled=true;
|
||||||
// UPDATE INTEGRATION TIME
|
// UPDATE INTEGRATION TIME
|
||||||
CURRENT_INTEGRATION_TIME_S = static_cast<double>(GPS_CA_TELEMETRY_SYMBOLS_PER_BIT)*GPS_L1_CA_CODE_PERIOD;
|
CURRENT_INTEGRATION_TIME_S = static_cast<double>(GPS_CA_TELEMETRY_SYMBOLS_PER_BIT)*GPS_L1_CA_CODE_PERIOD;
|
||||||
d_code_loop_filter.set_DLL_BW(d_dll_bw_hz);
|
d_code_loop_filter.set_DLL_BW(d_dll_bw_narrow_hz);
|
||||||
d_carrier_loop_filter.set_params(10.0, d_pll_bw_hz/5,2);
|
d_carrier_loop_filter.set_params(10.0, d_pll_bw_narrow_hz,2);
|
||||||
enable_dll_pll=true;
|
enable_dll_pll=true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
@ -64,6 +64,8 @@ gps_l1_ca_dll_pll_c_aid_make_tracking_cc(long if_freq,
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
|
|
||||||
@ -96,6 +98,8 @@ private:
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
gps_l1_ca_dll_pll_c_aid_tracking_cc(long if_freq,
|
gps_l1_ca_dll_pll_c_aid_tracking_cc(long if_freq,
|
||||||
@ -106,6 +110,8 @@ private:
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
// tracking configuration vars
|
// tracking configuration vars
|
||||||
@ -145,6 +151,8 @@ private:
|
|||||||
// tracking vars
|
// tracking vars
|
||||||
float d_dll_bw_hz;
|
float d_dll_bw_hz;
|
||||||
float d_pll_bw_hz;
|
float d_pll_bw_hz;
|
||||||
|
float d_dll_bw_narrow_hz;
|
||||||
|
float d_pll_bw_narrow_hz;
|
||||||
double d_code_freq_chips;
|
double d_code_freq_chips;
|
||||||
double d_code_phase_step_chips;
|
double d_code_phase_step_chips;
|
||||||
double d_carrier_doppler_hz;
|
double d_carrier_doppler_hz;
|
||||||
|
@ -66,10 +66,12 @@ gps_l1_ca_dll_pll_c_aid_make_tracking_sc(
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips)
|
float early_late_space_chips)
|
||||||
{
|
{
|
||||||
return gps_l1_ca_dll_pll_c_aid_tracking_sc_sptr(new gps_l1_ca_dll_pll_c_aid_tracking_sc(if_freq,
|
return gps_l1_ca_dll_pll_c_aid_tracking_sc_sptr(new gps_l1_ca_dll_pll_c_aid_tracking_sc(if_freq,
|
||||||
fs_in, vector_length, queue, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips));
|
fs_in, vector_length, queue, dump, dump_filename, pll_bw_hz, dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, early_late_space_chips));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,6 +96,8 @@ gps_l1_ca_dll_pll_c_aid_tracking_sc::gps_l1_ca_dll_pll_c_aid_tracking_sc(
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips) :
|
float early_late_space_chips) :
|
||||||
gr::block("gps_l1_ca_dll_pll_c_aid_tracking_sc", gr::io_signature::make(1, 1, sizeof(lv_16sc_t)),
|
gr::block("gps_l1_ca_dll_pll_c_aid_tracking_sc", gr::io_signature::make(1, 1, sizeof(lv_16sc_t)),
|
||||||
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)))
|
gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)))
|
||||||
@ -108,6 +112,10 @@ gps_l1_ca_dll_pll_c_aid_tracking_sc::gps_l1_ca_dll_pll_c_aid_tracking_sc(
|
|||||||
d_correlation_length_samples = static_cast<int>(d_vector_length);
|
d_correlation_length_samples = static_cast<int>(d_vector_length);
|
||||||
|
|
||||||
// Initialize tracking ==========================================
|
// Initialize tracking ==========================================
|
||||||
|
d_pll_bw_hz=pll_bw_hz;
|
||||||
|
d_dll_bw_hz=dll_bw_hz;
|
||||||
|
d_pll_bw_narrow_hz=pll_bw_narrow_hz;
|
||||||
|
d_dll_bw_narrow_hz=dll_bw_narrow_hz;
|
||||||
d_code_loop_filter.set_DLL_BW(dll_bw_hz);
|
d_code_loop_filter.set_DLL_BW(dll_bw_hz);
|
||||||
d_carrier_loop_filter.set_params(10.0, pll_bw_hz,2);
|
d_carrier_loop_filter.set_params(10.0, pll_bw_hz,2);
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ gps_l1_ca_dll_pll_c_aid_make_tracking_sc(long if_freq,
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
|
|
||||||
@ -99,6 +101,8 @@ private:
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
gps_l1_ca_dll_pll_c_aid_tracking_sc(long if_freq,
|
gps_l1_ca_dll_pll_c_aid_tracking_sc(long if_freq,
|
||||||
@ -109,6 +113,8 @@ private:
|
|||||||
std::string dump_filename,
|
std::string dump_filename,
|
||||||
float pll_bw_hz,
|
float pll_bw_hz,
|
||||||
float dll_bw_hz,
|
float dll_bw_hz,
|
||||||
|
float pll_bw_narrow_hz,
|
||||||
|
float dll_bw_narrow_hz,
|
||||||
float early_late_space_chips);
|
float early_late_space_chips);
|
||||||
|
|
||||||
// tracking configuration vars
|
// tracking configuration vars
|
||||||
@ -148,6 +154,10 @@ private:
|
|||||||
double d_acq_carrier_doppler_hz;
|
double d_acq_carrier_doppler_hz;
|
||||||
|
|
||||||
// tracking vars
|
// tracking vars
|
||||||
|
float d_dll_bw_hz;
|
||||||
|
float d_pll_bw_hz;
|
||||||
|
float d_dll_bw_narrow_hz;
|
||||||
|
float d_pll_bw_narrow_hz;
|
||||||
double d_code_freq_chips;
|
double d_code_freq_chips;
|
||||||
double d_code_phase_step_chips;
|
double d_code_phase_step_chips;
|
||||||
double d_carrier_doppler_hz;
|
double d_carrier_doppler_hz;
|
||||||
|
Loading…
Reference in New Issue
Block a user