[hamradio-commits] [gnss-sdr] 104/126: Replaced fix point NCO by VOLK phase rotator in CPU multicorrelator (around 5% faster). This optimization is enabled at this time only in Tracking_DLL_PLL_C_Aid. Sample config can be found in gnss-sdr_Hybrid_byte_sim.conf

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Sat Dec 26 18:38:06 UTC 2015


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

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

commit 9acc7e7a206369ef15bebffdd4e417910989185e
Author: Javier Arribas <javiarribas at gmail.com>
Date:   Mon Dec 21 11:59:15 2015 +0100

    Replaced fix point NCO by VOLK phase rotator in CPU multicorrelator
    (around 5% faster).
    This optimization is enabled at this time only in
    Tracking_DLL_PLL_C_Aid. Sample config can be found in
    gnss-sdr_Hybrid_byte_sim.conf
---
 conf/gnss-sdr_Hybrid_byte_sim.conf                  | 4 ++--
 src/algorithms/tracking/libs/cpu_multicorrelator.cc | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/conf/gnss-sdr_Hybrid_byte_sim.conf b/conf/gnss-sdr_Hybrid_byte_sim.conf
index 5102e35..aa4d546 100644
--- a/conf/gnss-sdr_Hybrid_byte_sim.conf
+++ b/conf/gnss-sdr_Hybrid_byte_sim.conf
@@ -198,7 +198,7 @@ Acquisition_1C.sampled_ms=1
 ;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
 Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
 ;#threshold: Acquisition threshold
-Acquisition_1C.threshold=0.035
+Acquisition_1C.threshold=0.045
 ;#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_1C.pfa=0.01
 ;#doppler_max: Maximum expected Doppler shift [Hz]
@@ -233,7 +233,7 @@ Acquisition_1B.doppler_step=125
 ;######### TRACKING GPS CONFIG ############
 
 ;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] or [GPS_L1_CA_TCP_CONNECTOR_Tracking] or [Galileo_E1_DLL_PLL_VEML_Tracking]
-Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
+Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
 ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
 Tracking_1C.item_type=gr_complex
 
diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator.cc b/src/algorithms/tracking/libs/cpu_multicorrelator.cc
index ac8cfcf..04ce9d5 100644
--- a/src/algorithms/tracking/libs/cpu_multicorrelator.cc
+++ b/src/algorithms/tracking/libs/cpu_multicorrelator.cc
@@ -125,11 +125,12 @@ bool cpu_multicorrelator::Carrier_wipeoff_multicorrelator_resampler(
         float code_phase_step_chips,
         int signal_length_samples)
 {
+    //update_local_carrier(signal_length_samples, rem_carrier_phase_in_rad, phase_step_rad); //replaced by VOLK phase rotator
+    //volk_32fc_x2_multiply_32fc(d_sig_doppler_wiped, d_sig_in, d_nco_in, signal_length_samples); //replaced by VOLK phase rotator
 
-    update_local_carrier(signal_length_samples, rem_carrier_phase_in_rad, phase_step_rad);
+    lv_32fc_t phase_offset_as_complex[1]= lv_cmake(std::cos(rem_carrier_phase_in_rad),-std::sin(rem_carrier_phase_in_rad));
+    volk_32fc_s32fc_x2_rotator_32fc(d_sig_doppler_wiped, d_sig_in, std::exp(lv_32fc_t(0, -phase_step_rad)),phase_offset_as_complex, signal_length_samples);
     update_local_code(signal_length_samples,rem_code_phase_chips, code_phase_step_chips);
-
-    volk_32fc_x2_multiply_32fc(d_sig_doppler_wiped, d_sig_in, d_nco_in, signal_length_samples);
     for (int current_correlator_tap = 0; current_correlator_tap < d_n_correlators; current_correlator_tap++)
         {
             volk_32fc_x2_dot_prod_32fc(&d_corr_out[current_correlator_tap], d_sig_doppler_wiped, d_local_codes_resampled[current_correlator_tap], signal_length_samples);

-- 
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