1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-01-27 09:24:52 +00:00

- Bug correction in Galileo telemetry decoder.

- Improved Galileo configuration to work with real-life captures (4 IOV SV)

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@434 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Javier Arribas 2013-11-07 15:15:20 +00:00
parent 87c5c212a4
commit 4ebeb950fc
2 changed files with 271 additions and 267 deletions

View File

@ -277,9 +277,9 @@ Acquisition.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
;#threshold: Acquisition threshold ;#threshold: Acquisition threshold
;Acquisition.threshold=0 ;Acquisition.threshold=0
;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition] ;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition.pfa=0.00005 Acquisition.pfa=0.00003
;#doppler_max: Maximum expected Doppler shift [Hz] ;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition.doppler_max=10000 Acquisition.doppler_max=15000
;#doppler_max: Doppler step in the grid search [Hz] ;#doppler_max: Doppler step in the grid search [Hz]
Acquisition.doppler_step=125 Acquisition.doppler_step=125
@ -288,7 +288,11 @@ Acquisition.doppler_step=125
;######### ACQUISITION CH 0 CONFIG ############ ;######### ACQUISITION CH 0 CONFIG ############
;#repeat_satellite: Use only jointly with the satellite PRN ID option. The default value is false ;#repeat_satellite: Use only jointly with the satellite PRN ID option. The default value is false
;Acquisition0.repeat_satellite = false Acquisition0.repeat_satellite = true
Acquisition1.repeat_satellite = true
Acquisition2.repeat_satellite = true
Acquisition3.repeat_satellite = true
;#cboc: Only for [Galileo_E1_PCPS_Ambiguous_Acquisition]. This option allows you to choose between acquiring with CBOC signal [true] or sinboc(1,1) signal [false]. ;#cboc: Only for [Galileo_E1_PCPS_Ambiguous_Acquisition]. This option allows you to choose between acquiring with CBOC signal [true] or sinboc(1,1) signal [false].
;#Use only if GNSS-SDR.internal_fs_hz is greater than or equal to 6138000 ;#Use only if GNSS-SDR.internal_fs_hz is greater than or equal to 6138000
Acquisition0.cboc=false Acquisition0.cboc=false
@ -314,7 +318,7 @@ Tracking.dump=true
Tracking.dump_filename=../data/veml_tracking_ch_ Tracking.dump_filename=../data/veml_tracking_ch_
;#pll_bw_hz: PLL loop filter bandwidth [Hz] ;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking.pll_bw_hz=15.0; Tracking.pll_bw_hz=20.0;
;#dll_bw_hz: DLL loop filter bandwidth [Hz] ;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking.dll_bw_hz=2.0; Tracking.dll_bw_hz=2.0;
@ -341,7 +345,7 @@ TelemetryDecoder.dump=false
Observables.implementation=Galileo_E1B_Observables Observables.implementation=Galileo_E1B_Observables
;#dump: Enable or disable the Observables internal binary data file logging [true] or [false] ;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=true Observables.dump=false
;#dump_filename: Log path and filename. ;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat Observables.dump_filename=./observables.dat

View File

@ -300,8 +300,7 @@ int galileo_e1b_telemetry_decoder_cc::general_work (int noutput_items, gr_vector
std::cout << "Preamble detection for Galileo SAT " << this->d_satellite << std::endl; std::cout << "Preamble detection for Galileo SAT " << this->d_satellite << std::endl;
d_stat = 1; // enter into frame pre-detection status d_stat = 1; // enter into frame pre-detection status
} }
} }else if (d_stat == 1) // posible preamble lock
else if (d_stat == 1) // posible preamble lock
{ {
if (abs(corr_value) >= d_symbols_per_preamble) if (abs(corr_value) >= d_symbols_per_preamble)
{ {
@ -314,12 +313,13 @@ int galileo_e1b_telemetry_decoder_cc::general_work (int noutput_items, gr_vector
d_preamble_index=d_sample_counter;//record the preamble sample stamp d_preamble_index=d_sample_counter;//record the preamble sample stamp
d_stat=2; d_stat=2;
} }
}else{ else{
if (preamble_diff>GALILEO_INAV_PREAMBLE_PERIOD_SYMBOLS) if (preamble_diff>GALILEO_INAV_PREAMBLE_PERIOD_SYMBOLS)
{ {
d_stat=0; // start again d_stat=0; // start again
} }
} }
}
}else if (d_stat==2) }else if (d_stat==2)
{ {
if (d_sample_counter==d_preamble_index+GALILEO_INAV_PREAMBLE_PERIOD_SYMBOLS) if (d_sample_counter==d_preamble_index+GALILEO_INAV_PREAMBLE_PERIOD_SYMBOLS)
@ -341,17 +341,17 @@ int galileo_e1b_telemetry_decoder_cc::general_work (int noutput_items, gr_vector
} }
//debug //debug
//std::cout<<"ch["<<d_channel<<"] Decoder call at preamble index "<<d_sample_counter<<std::endl; //std::cout<<"ch["<<d_channel<<"] Decoder call at preamble index "<<d_sample_counter<<std::endl;
// std::cout<<"ch["<<d_channel<<"] frame symbols: "; // std::cout<<"ch["<<d_channel<<"] frame symbols: ";
// for (int j=0;j<frame_length;j++) // for (int j=0;j<frame_length;j++)
// { // {
// if (page_part_symbols[j]>0) // if (page_part_symbols[j]>0)
// { // {
// std::cout<<"1"; // std::cout<<"1";
// }else{ // }else{
// std::cout<<"0"; // std::cout<<"0";
// } // }
// } // }
// std::cout<<std::endl; // std::cout<<std::endl;
//end debug //end debug
//call the decoder //call the decoder
decode_word(page_part_symbols,frame_length); decode_word(page_part_symbols,frame_length);