diff --git a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf index bcb835f7c..1e12e4f3e 100644 --- a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf +++ b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf @@ -31,7 +31,7 @@ GNSS-SDR.SUPL_CI=0x31b0 SignalSource.implementation=Two_Bit_Cpx_File_Signal_Source ;#filename: path to file with the captured GNSS signal samples to be processed -SignalSource.filename=/datalogger/captures/ajith/test1_two_cpx_sig2_60.dat +SignalSource.filename=/datalogger/captures/ajith/test1_two_cpx_live.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. SignalSource.item_type=byte @@ -52,7 +52,7 @@ SignalSource.samples=0 SignalSource.repeat=false ;#dump: Dump the Signal source data to a file. Disable this option in this version -SignalSource.dump=true +SignalSource.dump=false SignalSource.dump_filename=../data/signal_source.dat @@ -86,7 +86,7 @@ DataTypeAdapter.item_type=gr_complex InputFilter.implementation=Freq_Xlating_Fir_Filter ;#dump: Dump the filtered data to a file. -InputFilter.dump=true +InputFilter.dump=false ;#dump_filename: Log path and filename. InputFilter.dump_filename=../data/input_filter.dat @@ -147,7 +147,7 @@ InputFilter.sampling_frequency=19200000 ;#The following options are used only in Freq_Xlating_Fir_Filter implementation. ;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz -InputFilter.IF=-4024000 +InputFilter.IF=4024000 ;# Decimation factor after the frequency tranaslating block InputFilter.decimation_factor=6 @@ -179,7 +179,7 @@ Resampler.sample_freq_out=2048000 ;######### CHANNELS GLOBAL CONFIG ############ ;#count: Number of available GPS satellite channels. -Channels_GPS.count=8 +Channels_GPS.count=6 ;#count: Number of available Galileo satellite channels. Channels_Galileo.count=0 ;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver @@ -195,26 +195,30 @@ Channel.signal=1C ;######### GPS ACQUISITION CONFIG ############ -;#dump: Enable or disable the acquisition internal data file logging [true] or [false] +;#dump: Enable or disable the acquisition internal data file logging [true] or [false] Acquisition_GPS.dump=false ;#filename: Log path and filename Acquisition_GPS.dump_filename=./acq_dump.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. Acquisition_GPS.item_type=gr_complex -;#if: Signal intermediate frequency in [Hz] +;#if: Signal intermediate frequency in [Hz] Acquisition_GPS.if=0 ;#sampled_ms: Signal block duration for the acquisition signal detection [ms] Acquisition_GPS.sampled_ms=1 ;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition] -Acquisition_GPS.implementation=GPS_L1_CA_PCPS_Acquisition +Acquisition_GPS.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler ;#threshold: Acquisition threshold -Acquisition_GPS.threshold=0.0075 -;#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_GPS.pfa=0.01 +Acquisition_GPS.threshold=0.007 +;#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_GPS.pfa=0.0001 ;#doppler_max: Maximum expected Doppler shift [Hz] Acquisition_GPS.doppler_max=10000 -;#doppler_max: Doppler step in the grid search [Hz] +;#doppler_max: Maximum expected Doppler shift [Hz] +Acquisition_GPS.doppler_min=-10000 +;#doppler_step Doppler step in the grid search [Hz] Acquisition_GPS.doppler_step=500 +;#maximum dwells +Acquisition_GPS.max_dwells=15 ;######### ACQUISITION CHANNELS CONFIG ###### ;#The following options are specific to each channel and overwrite the generic options @@ -231,16 +235,16 @@ Tracking_GPS.item_type=gr_complex Tracking_GPS.if=0 ;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false] -Tracking_GPS.dump=false +Tracking_GPS.dump=true ;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number. -Tracking_GPS.dump_filename=../data/epl_tracking_ch_ +Tracking_GPS.dump_filename=./tracking_ch_ ;#pll_bw_hz: PLL loop filter bandwidth [Hz] -Tracking_GPS.pll_bw_hz=45.0; +Tracking_GPS.pll_bw_hz=40.0; ;#dll_bw_hz: DLL loop filter bandwidth [Hz] -Tracking_GPS.dll_bw_hz=2.0; +Tracking_GPS.dll_bw_hz=1.5; ;#fll_bw_hz: FLL loop filter bandwidth [Hz] Tracking_GPS.fll_bw_hz=10.0; diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc index 542357ea3..617a25bfe 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc @@ -69,19 +69,35 @@ int unpack_byte_2bit_cpx_samples::work(int noutput_items, //* Most Significant Nibble - Sample n //* Least Significant Nibble - Sample n+1 //* Packing order in Nibble Q1 Q0 I1 I0 + //normal +// signed char c = in[i]; +// //Q[n] +// sample.two_bit_sample = (c>>6) & 3; +// out[n++] = (2*(short)sample.two_bit_sample+1); +// //I[n] +// sample.two_bit_sample = (c>>4) & 3; +// out[n++] = (2*(short)sample.two_bit_sample+1); +// //Q[n+1] +// sample.two_bit_sample = (c>>2) & 3; +// out[n++] = (2*(short)sample.two_bit_sample+1); +// //I[n+1] +// sample.two_bit_sample = c & 3; +// out[n++] = (2*(short)sample.two_bit_sample+1); + + //I/Q swap signed char c = in[i]; - //Q[n] - sample.two_bit_sample = (c>>6) & 3; - out[n++] = (short)sample.two_bit_sample; //I[n] sample.two_bit_sample = (c>>4) & 3; - out[n++] = (short)sample.two_bit_sample; - //Q[n+1] - sample.two_bit_sample = (c>>2) & 3; - out[n++] = (short)sample.two_bit_sample; + out[n++] = (2*(short)sample.two_bit_sample+1); + //Q[n] + sample.two_bit_sample = (c>>6) & 3; + out[n++] = (2*(short)sample.two_bit_sample+1); //I[n+1] sample.two_bit_sample = c & 3; - out[n++] = (short)sample.two_bit_sample; + out[n++] = (2*(short)sample.two_bit_sample+1); + //Q[n+1] + sample.two_bit_sample = (c>>2) & 3; + out[n++] = (2*(short)sample.two_bit_sample+1); } return noutput_items;