gnss-sdr / gnss-sdr

GNSS-SDR, an open-source software-defined GNSS receiver
https://gnss-sdr.org
GNU General Public License v3.0
1.57k stars 574 forks source link

How to read two file in two different band? #410

Open Tanggeshi opened 4 years ago

Tanggeshi commented 4 years ago

I want to run gnss-sdr in dual-band mode by reading two different file in two different band, would you please give an example configure file ? Thank you!

carlesfernandez commented 4 years ago

Hi @Tanggeshi ,

this is the configuration example of a GPS L1 + Galileo E1 + GPS L5 + Galileo E5a receiver we use in our CI system, working with two files in different bands. They need to be captured synchronously and at the same sample frequency.

[GNSS-SDR]

;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=12500000
GNSS-SDR.use_acquisition_resampler=true
GNSS-SDR.assist_dual_frequency_acq=true

;######### SIGNAL_SOURCE 0 CONFIG ############
SignalSource.implementation=Multichannel_File_Signal_Source
SignalSource.RF_channels=2
SignalSource.total_channels=2
SignalSource.filename0=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat
SignalSource.filename1=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat
SignalSource.item_type=ibyte
SignalSource.sampling_frequency=12500000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.enable_throttle_control=false

;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner0.implementation=Signal_Conditioner

SignalConditioner1.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter0.implementation=Ibyte_To_Complex

DataTypeAdapter1.implementation=Ibyte_To_Complex

;######### INPUT_FILTER CONFIG ############
InputFilter0.implementation=Pass_Through
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter0.dat

InputFilter1.implementation=Pass_Through
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter1.dat

;######### RESAMPLER CONFIG ############
Resampler0.implementation=Pass_Through
Resampler0.item_type=gr_complex

Resampler1.implementation=Pass_Through
Resampler1.item_type=gr_complex

;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=10
Channels_1B.count=10
Channels_L5.count=10
Channels_5X.count=10

Channels.in_acquisition=5

; Connect channels to sources
;GPS L1 Channels
Channel0.RF_channel_ID=0
Channel1.RF_channel_ID=0
Channel2.RF_channel_ID=0
Channel3.RF_channel_ID=0
Channel4.RF_channel_ID=0
Channel5.RF_channel_ID=0
Channel6.RF_channel_ID=0
Channel7.RF_channel_ID=0
Channel8.RF_channel_ID=0
Channel9.RF_channel_ID=0
;GPS L5 Channels
Channel10.RF_channel_ID=1
Channel11.RF_channel_ID=1
Channel12.RF_channel_ID=1
Channel13.RF_channel_ID=1
Channel14.RF_channel_ID=1
Channel15.RF_channel_ID=1
Channel16.RF_channel_ID=1
Channel17.RF_channel_ID=1
Channel18.RF_channel_ID=1
Channel19.RF_channel_ID=1
;Galileo E1 Channels
Channel20.RF_channel_ID=0
Channel21.RF_channel_ID=0
Channel22.RF_channel_ID=0
Channel23.RF_channel_ID=0
Channel24.RF_channel_ID=0
Channel25.RF_channel_ID=0
Channel26.RF_channel_ID=0
Channel27.RF_channel_ID=0
Channel28.RF_channel_ID=0
Channel29.RF_channel_ID=0
;Galileo E5 Channels
Channel30.RF_channel_ID=1
Channel31.RF_channel_ID=1
Channel32.RF_channel_ID=1
Channel33.RF_channel_ID=1
Channel34.RF_channel_ID=1
Channel35.RF_channel_ID=1
Channel36.RF_channel_ID=1
Channel37.RF_channel_ID=1
Channel38.RF_channel_ID=1
Channel39.RF_channel_ID=1

;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.threshold=3.0
Acquisition_1C.blocking=true
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=250
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat

;# GPS L5
Acquisition_L5.implementation=GPS_L5i_PCPS_Acquisition
Acquisition_L5.item_type=gr_complex
Acquisition_L5.threshold=2.8
Acquisition_L5.blocking=true
Acquisition_L5.doppler_max=500
Acquisition_L5.doppler_step=50 
Acquisition_L5.max_dwells=5
Acquisition_L5.dump=false
Acquisition_L5.dump_filename=./acq_dump_l5

;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
Acquisition_1B.threshold=3.0
Acquisition_1B.blocking=true
Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=125
Acquisition_1B.dump=false
Acquisition_1B.dump_filename=./acq_dump.dat

;# Galileo E5a
Acquisition_5X.implementation=Galileo_E5a_Pcps_Acquisition
Acquisition_5X.item_type=gr_complex
Acquisition_5X.threshold=2.8
Acquisition_5X.blocking=true
Acquisition_5X.doppler_max=500
Acquisition_5X.doppler_step=50
Acquisition_5X.max_dwells=1
Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump_x5
Acquisition_5X.blocking=true

;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.extend_correlation_symbols=20
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.early_late_space_narrow_chips=0.1
Tracking_1C.pll_bw_hz=35
Tracking_1C.dll_bw_hz=2.0
Tracking_1C.pll_bw_narrow_hz=5.0
Tracking_1C.dll_bw_narrow_hz=0.50
Tracking_1C.fll_bw_hz=10
Tracking_1C.enable_fll_pull_in=true;
Tracking_1C.enable_fll_steady_state=false
Tracking_1C.dump=false
Tracking_1C.dump_filename=tracking_ch_

;######### GPS L5 TRK CONFIG ############
Tracking_L5.implementation=GPS_L5_DLL_PLL_Tracking
Tracking_L5.item_type=gr_complex
Tracking_L5.track_pilot=true
Tracking_L5.pll_bw_hz=20.0
Tracking_L5.dll_bw_hz=1.5
Tracking_L5.extend_correlation_symbols=20
Tracking_L5.pll_bw_narrow_hz=6.0
Tracking_L5.dll_bw_narrow_hz=0.5
Tracking_L5.enable_fll_pull_in=true
Tracking_L5.enable_fll_steady_state=false
Tracking_L5.fll_bw_hz=4.0
Tracking_L5.early_late_space_chips=0.5;
Tracking_L5.early_late_space_narrow_chips=0.1
Tracking_L5.dump=false
Tracking_L5.dump_filename=./tracking_ch_

;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
Tracking_1B.track_pilot=true
Tracking_1B.pll_bw_hz=15.0
Tracking_1B.dll_bw_hz=0.75
Tracking_1B.early_late_space_chips=0.25
Tracking_1B.early_late_space_narrow_chips=0.15
Tracking_1B.very_early_late_space_chips=0.5
Tracking_1B.very_early_late_space_narrow_chips=0.5
Tracking_1B.pll_bw_narrow_hz=5.0
Tracking_1B.dll_bw_narrow_hz=0.2
Tracking_1B.extend_correlation_symbols=5
Tracking_1B.enable_fll_pull_in=true;
Tracking_1B.enable_fll_steady_state=false
Tracking_1B.fll_bw_hz=10
Tracking_1B.dump=false
Tracking_1B.dump_filename=tracking_ch_

;######### GALILEO E5 TRK CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
Tracking_5X.track_pilot=true
Tracking_5X.pll_bw_hz=20.0
Tracking_5X.dll_bw_hz=1.5
Tracking_5X.extend_correlation_symbols=20
Tracking_5X.pll_bw_narrow_hz=5.0
Tracking_5X.dll_bw_narrow_hz=0.5
Tracking_5X.early_late_space_chips=0.5
Tracking_5X.early_late_space_chips_narrow=0.1
Tracking_5X.fll_bw_hz=4.0
Tracking_5X.enable_fll_pull_in=true;
Tracking_5X.enable_fll_steady_state=false
Tracking_5X.dump=false
Tracking_5X.dump_filename=./tracking_ch_

;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false

TelemetryDecoder_L5.implementation=GPS_L5_Telemetry_Decoder
TelemetryDecoder_L5.dump=false

TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false

TelemetryDecoder_5X.implementation=Galileo_E5a_Telemetry_Decoder
TelemetryDecoder_5X.dump=false

;######### OBSERVABLES CONFIG ############
;#implementation:
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat

;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=Single  ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=OFF ; options: OFF, Broadcast, SBAS, Iono-Free-LC, Estimate_STEC, IONEX
PVT.trop_model=OFF ; options: OFF, Saastamoinen, SBAS, Estimate_ZTD, Estimate_ZTD_Grad
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.elevation_mask=10
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.dump=true
PVT.dump_filename=./PVT
Tanggeshi commented 4 years ago

@carlesfernandez Thank you so much! It can run in two band mode now! But I cannot get Rinex file after it stop normally. I can get Rinex file when I use one file and one band. Is there any advice to check this problem?