[hamradio-commits] [gnss-sdr] 25/251: GPS L2C M acquisition and tracking ready. Old configuration file format. Bug fix on GPS L1 DLL PLL that prevented the output of gnss_synchro during the acqusition to tracking transition.

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.

commit d8d5daa5d8ce30e7f5c96342ede366e04c1544cc
Author: Javier <jarribas at cttc.es>
Date:   Wed May 6 16:33:51 2015 +0200

    GPS L2C M acquisition and tracking ready. Old configuration file format.
    Bug fix on GPS L1 DLL PLL that prevented the output of gnss_synchro
    during the acqusition to tracking transition.
---
 conf/gnss-sdr_GPS_L1_gr_complex.conf                  |   6 +++---
 ...ltichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf |   4 ++--
 src/algorithms/libs/gps_sdr_signal_processing.cc      |   7 +++----
 .../gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc  |   4 ++--
 .../gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc   |   2 +-
 src/core/receiver/gnss_flowgraph.cc                   |   2 +-
 src/tests/data/.gitignore                             |   1 -
 src/tests/data/gps_l2c_m_prn7_5msps.dat               | Bin 0 -> 8000000 bytes
 .../gnss_block/gps_l2_m_dll_pll_tracking_test.cc      |  16 ++++++++--------
 .../gnss_block/gps_l2_m_pcps_acquisition_test.cc      |  12 ++++++------
 10 files changed, 26 insertions(+), 28 deletions(-)

diff --git a/conf/gnss-sdr_GPS_L1_gr_complex.conf b/conf/gnss-sdr_GPS_L1_gr_complex.conf
index b921f1c..4b411a2 100644
--- a/conf/gnss-sdr_GPS_L1_gr_complex.conf
+++ b/conf/gnss-sdr_GPS_L1_gr_complex.conf
@@ -17,7 +17,7 @@ ControlThread.wait_for_flowgraph=false
 SignalSource.implementation=File_Signal_Source
 
 ;#filename: path to file with the captured GNSS signal samples to be processed
-SignalSource.filename=../data/agilent_cap2.dat
+SignalSource.filename=/datalogger/signals/Agilent/New York/4msps.dat
 
 ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
 SignalSource.item_type=gr_complex
@@ -210,7 +210,7 @@ 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
 ;#threshold: Acquisition threshold
-Acquisition_GPS.threshold=0.008
+Acquisition_GPS.threshold=0.005
 ;#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
 ;#doppler_max: Maximum expected Doppler shift [Hz]
@@ -289,7 +289,7 @@ PVT.dump_filename=./PVT
 PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
 
 ;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
-PVT.flag_nmea_tty_port=true;
+PVT.flag_nmea_tty_port=false;
 
 ;#nmea_dump_devname: serial device descriptor for NMEA logging
 PVT.nmea_dump_devname=/dev/pts/4
diff --git a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
index 887da30..b2aac0e 100644
--- a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
@@ -267,11 +267,11 @@ Resampler2.implementation=Pass_Through
 
 ;######### CHANNELS GLOBAL CONFIG ############
 ;#count: Number of available GPS satellite channels.
-Channels_GPS.count=9
+Channels_GPS.count=16
 ;#count: Number of available Galileo satellite channels.
 Channels_Galileo.count=0
 ;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
-Channels.in_acquisition=1
+Channels.in_acquisition=2
 ;#system: GPS, GLONASS, GALILEO, SBAS or COMPASS
 ;#if the option is disabled by default is assigned GPS
 Channel.system=GPS, GPS L2C M
diff --git a/src/algorithms/libs/gps_sdr_signal_processing.cc b/src/algorithms/libs/gps_sdr_signal_processing.cc
index 4b3ad17..eecbd99 100644
--- a/src/algorithms/libs/gps_sdr_signal_processing.cc
+++ b/src/algorithms/libs/gps_sdr_signal_processing.cc
@@ -54,13 +54,12 @@ void gps_l1_ca_code_gen_complex(std::complex<float>* _dest, signed int _prn, uns
     // compute delay array index for given PRN number
     if(120 <= _prn && _prn <= 138)
     {
-    	//prn_idx = _prn - 88;	// SBAS PRNs are at array indices 31 to 50 (offset: -120+33-1 =-88)
-    	prn_idx = _prn - 87;	// SBAS PRNs are at array indices 31 to 50 (offset: -120+33 =-87)
+    	prn_idx = _prn - 88;	// SBAS PRNs are at array indices 31 to 50 (offset: -120+33-1 =-88)
+    	//prn_idx = _prn - 87;	// SBAS PRNs are at array indices 31 to 50 (offset: -120+33 =-87)
     }
     else
     {
-    	//prn_idx = _prn-1;
-    	prn_idx = _prn;
+    	prn_idx = _prn-1;
     }
 
     /* A simple error check */
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
index 586cb54..fa13a6b 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
@@ -509,7 +509,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_cc::general_work (int noutput_items, gr_vector_in
                         {
                             d_last_seg = floor(d_sample_counter / d_fs_in);
                             std::cout << "Current input signal time = " << d_last_seg << " [s]" << std::endl;
-                            std::cout << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
+                            DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
                                       << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]" << std::endl;
                             //if (d_last_seg==5) d_carrier_lock_fail_counter=500; //DEBUG: force unlock!
                         }
@@ -519,7 +519,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_cc::general_work (int noutput_items, gr_vector_in
                     if (floor(d_sample_counter / d_fs_in) != d_last_seg)
                         {
                             d_last_seg = floor(d_sample_counter / d_fs_in);
-                            std::cout<< "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
+                            DLOG(INFO) << "GPS L1 C/A Tracking CH " << d_channel <<  ": Satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
                                                     << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]"<< std::endl;
                             //std::cout<<"TRK CH "<<d_channel<<" Carrier_lock_test="<<d_carrier_lock_test<< std::endl;
                         }
diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
index 6349e5a..3137325 100644
--- a/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
@@ -521,7 +521,7 @@ int gps_l2_m_dll_pll_tracking_cc::general_work (int noutput_items, gr_vector_int
                     if (floor(d_sample_counter / d_fs_in) != d_last_seg)
                         {
                             d_last_seg = floor(d_sample_counter / d_fs_in);
-                            std::cout << "GPS L2C M Tracking CH " << d_channel <<  ": Satellite "
+                            std::cout  << "GPS L2C M Tracking CH " << d_channel <<  ": Satellite "
                             << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN)
                             << ", CN0 = " << d_CN0_SNV_dB_Hz << " [dB-Hz]"<<std::endl;
                             //std::cout<<"TRK CH "<<d_channel<<" Carrier_lock_test="<<d_carrier_lock_test<< std::endl;
diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc
index c635faa..3f17959 100644
--- a/src/core/receiver/gnss_flowgraph.cc
+++ b/src/core/receiver/gnss_flowgraph.cc
@@ -440,7 +440,7 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what)
         for (unsigned int i = 0; i < channels_count_; i++)
             {
                 LOG(INFO) << "Channel " << i << " in state " << channels_state_[i] << std::endl;
-            }channels_.at(who)->set_signal(available_GNSS_signals_.front());
+            }
         break;
 
     case 2:
diff --git a/src/tests/data/.gitignore b/src/tests/data/.gitignore
deleted file mode 100644
index a7004ac..0000000
--- a/src/tests/data/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/gps_l2c_m_prn7_5msps.dat
diff --git a/src/tests/data/gps_l2c_m_prn7_5msps.dat b/src/tests/data/gps_l2c_m_prn7_5msps.dat
new file mode 100644
index 0000000..9dbab62
Binary files /dev/null and b/src/tests/data/gps_l2c_m_prn7_5msps.dat differ
diff --git a/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc b/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
index f135388..3849d79 100644
--- a/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
+++ b/src/tests/gnss_block/gps_l2_m_dll_pll_tracking_test.cc
@@ -85,9 +85,9 @@ void GpsL2MDllPllTrackingTest::init()
     gnss_synchro.System = 'G';
     std::string signal = "2S";
     signal.copy(gnss_synchro.Signal, 2, 0);
-    gnss_synchro.PRN = 15;
+    gnss_synchro.PRN = 7;
 
-    config->set_property("GNSS-SDR.internal_fs_hz", "4000000");
+    config->set_property("GNSS-SDR.internal_fs_hz", "5000000");
     config->set_property("Tracking_GPS.item_type", "gr_complex");
     config->set_property("Tracking_GPS.dump", "true");
     config->set_property("Tracking_GPS.dump_filename", "../data/L2m_tracking_ch_");
@@ -103,8 +103,8 @@ TEST_F(GpsL2MDllPllTrackingTest, ValidationOfResults)
     struct timeval tv;
     long long int begin = 0;
     long long int end = 0;
-    int fs_in = 4000000;
-    int nsamples = fs_in*30;
+    int fs_in = 5000000;
+    int nsamples = fs_in*9;
     init();
     queue = gr::msg_queue::make(0);
     top_block = gr::make_top_block("Tracking test");
@@ -112,8 +112,8 @@ TEST_F(GpsL2MDllPllTrackingTest, ValidationOfResults)
     std::shared_ptr<TrackingInterface> tracking = std::make_shared<GpsL2MDllPllTracking>(config.get(), "Tracking_GPS", 1, 1, queue);
 
     //REAL
-    gnss_synchro.Acq_delay_samples = 2004;
-    gnss_synchro.Acq_doppler_hz = 2980;//1200;
+    gnss_synchro.Acq_delay_samples = 1;
+    gnss_synchro.Acq_doppler_hz = 1200;//1200;
     gnss_synchro.Acq_samplestamp_samples = 0;
 
     ASSERT_NO_THROW( {
@@ -138,8 +138,8 @@ TEST_F(GpsL2MDllPllTrackingTest, ValidationOfResults)
 
         std::string path = std::string(TEST_PATH);
         //std::string file = path + "signal_samples/GSoC_CTTC_capture_2012_07_26_4Msps_4ms.dat";
-        std::string file = "/datalogger/signals/Fraunhofer/L125_III1b_210s_L2_resampled.bin";
-        //std::string file = "/home/gnss/git/gnss-sdr/src/tests/data/gps_l2c_m_prn7_5msps.dat";
+        //std::string file = "/datalogger/signals/Fraunhofer/L125_III1b_210s_L2_resampled.bin";
+        std::string file =  path + "/data/gps_l2c_m_prn7_5msps.dat";
         const char * file_name = file.c_str();
         gr::blocks::file_source::sptr file_source = gr::blocks::file_source::make(sizeof(gr_complex), file_name, false);
 
diff --git a/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc b/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
index 355f452..56e4e7e 100644
--- a/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
+++ b/src/tests/gnss_block/gps_l2_m_pcps_acquisition_test.cc
@@ -99,9 +99,9 @@ void GpsL2MPcpsAcquisitionTest::init()
     gnss_synchro.System = 'G';
     std::string signal = "2S";
     strcpy(gnss_synchro.Signal,signal.c_str());
-    gnss_synchro.PRN = 15;
+    gnss_synchro.PRN = 7;
 
-    sampling_freqeuncy_hz  = 4000000;
+    sampling_freqeuncy_hz  = 5000000;
     nsamples=round((double)sampling_freqeuncy_hz*GPS_L2_M_PERIOD)*2;
     config->set_property("GNSS-SDR.internal_fs_hz", std::to_string(sampling_freqeuncy_hz));
     config->set_property("Acquisition.item_type", "gr_complex");
@@ -186,8 +186,8 @@ TEST_F(GpsL2MPcpsAcquisitionTest, ValidationOfResults)
     queue = gr::msg_queue::make(0);
 
 
-    double expected_delay_samples = 2004;
-    double expected_doppler_hz = 3000;
+    double expected_delay_samples = 1;//2004;
+    double expected_doppler_hz = 1200;//3000;
     init();
     start_queue();
     std::shared_ptr<GpsL2MPcpsAcquisition> acquisition = std::make_shared<GpsL2MPcpsAcquisition>(config.get(), "Acquisition", 1, 1, queue);
@@ -224,8 +224,8 @@ TEST_F(GpsL2MPcpsAcquisitionTest, ValidationOfResults)
     ASSERT_NO_THROW( {
         std::string path = std::string(TEST_PATH);
         //std::string file = path + "signal_samples/GSoC_CTTC_capture_2012_07_26_4Msps_4ms.dat";
-        //std::string file = "/home/gnss/git/gnss-sdr/src/tests/data/gps_l2c_m_prn7_5msps.dat";
-        std::string file = "/datalogger/signals/Fraunhofer/L125_III1b_210s_L2_resampled.bin";
+        std::string file = path + "/data/gps_l2c_m_prn7_5msps.dat";
+        //std::string file = "/datalogger/signals/Fraunhofer/L125_III1b_210s_L2_resampled.bin";
         const char * file_name = file.c_str();
         gr::blocks::file_source::sptr file_source = gr::blocks::file_source::make(sizeof(gr_complex), file_name, false);
         //gr::blocks::interleaved_short_to_complex::sptr gr_interleaved_short_to_complex_ = gr::blocks::interleaved_short_to_complex::make();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git



More information about the pkg-hamradio-commits mailing list