From a31542cbf6dacf22e69f747263d8b45ec3d3b15d Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 17 Jun 2015 18:07:36 +0200 Subject: [PATCH] Added support to select the frontend clock reference source in UHD signal source (i.e. internal or external clock reference) --- conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf | 36 +++++++++---------- .../adapters/uhd_signal_source.cc | 4 +-- .../adapters/uhd_signal_source.h | 1 + 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf index 35c5ad115..eaa4d666a 100644 --- a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf +++ b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf @@ -7,7 +7,7 @@ ;######### GLOBAL OPTIONS ################## ;internal_fs_hz: Internal signal sampling frequency after the signal conditioning stage [Hz]. -GNSS-SDR.internal_fs_hz=2000000 +GNSS-SDR.internal_fs_hz=4000000 ;######### CONTROL_THREAD CONFIG ############ ControlThread.wait_for_flowgraph=false @@ -28,8 +28,10 @@ GNSS-SDR.SUPL_CI=0x31b0 SignalSource.implementation=UHD_Signal_Source SignalSource.device_address=192.168.50.2 SignalSource.item_type=cshort -SignalSource.sampling_frequency=2000000 +SignalSource.sampling_frequency=4000000 SignalSource.freq=1227600000 +;### Options: internal, external, or MIMO +SignalSource.clock_source=internal SignalSource.gain=35 SignalSource.subdevice=A:0 SignalSource.samples=0 @@ -71,7 +73,7 @@ InputFilter.band2_error=1.0 InputFilter.filter_type=bandpass InputFilter.grid_density=16 -InputFilter.sampling_frequency=2000000 +InputFilter.sampling_frequency=4000000 InputFilter.IF=0 ;######### RESAMPLER CONFIG ############ @@ -79,13 +81,13 @@ Resampler.implementation=Pass_Through Resampler.dump=false Resampler.dump_filename=../data/resampler.dat Resampler.item_type=gr_complex -Resampler.sample_freq_in=2000000 -Resampler.sample_freq_out=2000000 +Resampler.sample_freq_in=4000000 +Resampler.sample_freq_out=4000000 ;######### CHANNELS GLOBAL CONFIG ############ ;#count: Number of available GPS satellite channels. -Channels_2S.count=2 +Channels_2S.count=1 ;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver Channels.in_acquisition=1 @@ -108,32 +110,28 @@ Channel7.signal=2S ;######### ACQUISITION GLOBAL CONFIG ############ +;# GPS L2C M Acquisition_2S.dump=false Acquisition_2S.dump_filename=./acq_dump.dat Acquisition_2S.item_type=gr_complex Acquisition_2S.if=0 -Acquisition_2S.coherent_integration_time_ms=1 Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition -Acquisition_2S.threshold=0.001 -;Acquisition_2S.pfa=0.00001 +Acquisition_2S.threshold=0.0015 +;Acquisition_2S.pfa=0.001 Acquisition_2S.doppler_max=5000 -Acquisition_2S.doppler_step=30 -Acquisition_2S.bit_transition_flag=false +Acquisition_2S.doppler_min=-5000 +Acquisition_2S.doppler_step=60 Acquisition_2S.max_dwells=1 - - -;######### TRACKING GLOBAL CONFIG ############ - Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking -Tracking_2S.item_type=gr_complex +Tracking_2S.item_type=gr_complex Tracking_2S.if=0 Tracking_2S.dump=true Tracking_2S.dump_filename=./tracking_ch_ Tracking_2S.pll_bw_hz=2.0; -Tracking_2S.dll_bw_hz=0.3; -Tracking_2S.fll_bw_hz=2.0; -Tracking_2S.order=3; +Tracking_2S.dll_bw_hz=0.25; +Tracking_2S.fll_bw_hz=0.0; +Tracking_2S.order=2; Tracking_2S.early_late_space_chips=0.5; ;######### TELEMETRY DECODER GPS CONFIG ############ diff --git a/src/algorithms/signal_source/adapters/uhd_signal_source.cc b/src/algorithms/signal_source/adapters/uhd_signal_source.cc index dc3502f5c..4728543d3 100644 --- a/src/algorithms/signal_source/adapters/uhd_signal_source.cc +++ b/src/algorithms/signal_source/adapters/uhd_signal_source.cc @@ -64,6 +64,7 @@ UhdSignalSource::UhdSignalSource(ConfigurationInterface* configuration, } subdevice_ = configuration->property(role + ".subdevice", empty); + clock_source_ = configuration->property(role + ".clock_source", std::string("internal")); RF_channels_ = configuration->property(role + ".RF_channels", 1); sample_rate_ = configuration->property(role + ".sampling_frequency", (double)4.0e6); item_type_ = configuration->property(role + ".item_type", default_item_type); @@ -152,8 +153,7 @@ UhdSignalSource::UhdSignalSource(ConfigurationInterface* configuration, // 2.1 set sampling clock reference // Set the clock source for the usrp device. // Options: internal, external, or MIMO - std::string clk_reference = "internal"; - uhd_source_->set_clock_source(clk_reference); + uhd_source_->set_clock_source(clock_source_); // 2.2 set the sample rate for the usrp device uhd_source_->set_samp_rate(sample_rate_); diff --git a/src/algorithms/signal_source/adapters/uhd_signal_source.h b/src/algorithms/signal_source/adapters/uhd_signal_source.h index 0a248b544..cda8c0270 100644 --- a/src/algorithms/signal_source/adapters/uhd_signal_source.h +++ b/src/algorithms/signal_source/adapters/uhd_signal_source.h @@ -94,6 +94,7 @@ private: size_t item_size_; std::string subdevice_; + std::string clock_source_; std::vector freq_; std::vector gain_;