mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-11-04 01:03:04 +00:00 
			
		
		
		
	Correlator class librery now uses volk_profile information to select the best architecture for the SIMD enabled functions.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@184 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
		@@ -213,19 +213,19 @@ Channel0.satellite=2
 | 
			
		||||
 | 
			
		||||
Channel1.system=GPS
 | 
			
		||||
Channel1.signal=1C
 | 
			
		||||
Channel1.satellite=14
 | 
			
		||||
;Channel1.satellite=14
 | 
			
		||||
 | 
			
		||||
;######### CHANNEL 2 CONFIG ############
 | 
			
		||||
 | 
			
		||||
Channel2.system=GPS
 | 
			
		||||
Channel2.signal=1C
 | 
			
		||||
Channel2.satellite=21
 | 
			
		||||
;Channel2.satellite=21
 | 
			
		||||
 | 
			
		||||
;######### CHANNEL 3 CONFIG ############
 | 
			
		||||
 | 
			
		||||
Channel3.system=GPS
 | 
			
		||||
Channel3.signal=1C
 | 
			
		||||
Channel3.satellite=13
 | 
			
		||||
;Channel3.satellite=13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;######### ACQUISITION GLOBAL CONFIG ############
 | 
			
		||||
@@ -295,25 +295,33 @@ Acquisition4.doppler_step=250
 | 
			
		||||
 | 
			
		||||
;######### ACQUISITION CH 5 CONFIG ############
 | 
			
		||||
Acquisition5.implementation=GPS_L1_CA_PCPS_Acquisition
 | 
			
		||||
Acquisition5.threshold=70
 | 
			
		||||
Acquisition5.threshold=50
 | 
			
		||||
Acquisition5.doppler_max=10000
 | 
			
		||||
Acquisition5.doppler_step=250
 | 
			
		||||
;Acquisition5.repeat_satellite=true
 | 
			
		||||
 | 
			
		||||
;######### ACQUISITION CH 6 CONFIG ############
 | 
			
		||||
Acquisition6.implementation=GPS_L1_CA_PCPS_Acquisition
 | 
			
		||||
Acquisition6.threshold=70
 | 
			
		||||
Acquisition6.threshold=50
 | 
			
		||||
Acquisition6.doppler_max=10000
 | 
			
		||||
Acquisition6.doppler_step=250
 | 
			
		||||
;Acquisition6.repeat_satellite=true
 | 
			
		||||
 | 
			
		||||
;######### ACQUISITION CH 7 CONFIG ############
 | 
			
		||||
Acquisition7.implementation=GPS_L1_CA_PCPS_Acquisition
 | 
			
		||||
Acquisition7.threshold=70
 | 
			
		||||
Acquisition7.threshold=50
 | 
			
		||||
Acquisition7.doppler_max=10000
 | 
			
		||||
Acquisition7.doppler_step=250
 | 
			
		||||
;Acquisition7.repeat_satellite=true
 | 
			
		||||
 | 
			
		||||
;######### ACQUISITION CH 8 CONFIG ############
 | 
			
		||||
Acquisition8.implementation=GPS_L1_CA_PCPS_Acquisition
 | 
			
		||||
Acquisition8.threshold=50
 | 
			
		||||
Acquisition8.doppler_max=10000
 | 
			
		||||
Acquisition8.doppler_step=250
 | 
			
		||||
;Acquisition8.repeat_satellite=true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;######### TRACKING GLOBAL CONFIG ############
 | 
			
		||||
 | 
			
		||||
;#implementatiion: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking]
 | 
			
		||||
@@ -368,7 +376,7 @@ Observables.dump_filename=./observables.dat
 | 
			
		||||
PVT.implementation=GPS_L1_CA_PVT
 | 
			
		||||
 | 
			
		||||
;#averaging_depth: Number of PVT observations in the moving average algorithm
 | 
			
		||||
PVT.averaging_depth=2
 | 
			
		||||
PVT.averaging_depth=10
 | 
			
		||||
 | 
			
		||||
;#flag_average: Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] 
 | 
			
		||||
PVT.flag_averaging=true
 | 
			
		||||
 
 | 
			
		||||
@@ -91,10 +91,15 @@ void Correlator::Carrier_wipeoff_and_EPL_volk(int signal_length_samples,const gr
 | 
			
		||||
    memcpy(input_aligned,input,signal_length_samples * sizeof(gr_complex));
 | 
			
		||||
    //memcpy(carrier_aligned,carrier,signal_length_samples*sizeof(gr_complex));
 | 
			
		||||
 | 
			
		||||
    volk_32fc_x2_multiply_32fc_a_manual(bb_signal, input_aligned, carrier, signal_length_samples,  volk_32fc_x2_multiply_32fc_a_best_arch.c_str());
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a_manual(E_out, bb_signal, E_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a_manual(P_out, bb_signal, P_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a_manual(L_out, bb_signal, L_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
    //volk_32fc_x2_multiply_32fc_a_manual(bb_signal, input_aligned, carrier, signal_length_samples,  volk_32fc_x2_multiply_32fc_a_best_arch.c_str());
 | 
			
		||||
    //volk_32fc_x2_dot_prod_32fc_a_manual(E_out, bb_signal, E_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
    //volk_32fc_x2_dot_prod_32fc_a_manual(P_out, bb_signal, P_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
    //volk_32fc_x2_dot_prod_32fc_a_manual(L_out, bb_signal, L_code, signal_length_samples * sizeof(gr_complex),  volk_32fc_x2_dot_prod_32fc_a_best_arch.c_str());
 | 
			
		||||
 | 
			
		||||
    volk_32fc_x2_multiply_32fc_a(bb_signal, input_aligned, carrier, signal_length_samples);
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a(E_out, bb_signal, E_code, signal_length_samples * sizeof(gr_complex));
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a(P_out, bb_signal, P_code, signal_length_samples * sizeof(gr_complex));
 | 
			
		||||
    volk_32fc_x2_dot_prod_32fc_a(L_out, bb_signal, L_code, signal_length_samples * sizeof(gr_complex));
 | 
			
		||||
 | 
			
		||||
    free(bb_signal);
 | 
			
		||||
    free(input_aligned);
 | 
			
		||||
@@ -173,8 +178,8 @@ void Correlator::cpu_arch_test_volk_32fc_x2_multiply_32fc_a()
 | 
			
		||||
 | 
			
		||||
Correlator::Correlator ()
 | 
			
		||||
{
 | 
			
		||||
    cpu_arch_test_volk_32fc_x2_dot_prod_32fc_a();
 | 
			
		||||
    cpu_arch_test_volk_32fc_x2_multiply_32fc_a();
 | 
			
		||||
    //cpu_arch_test_volk_32fc_x2_dot_prod_32fc_a();
 | 
			
		||||
    //cpu_arch_test_volk_32fc_x2_multiply_32fc_a();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Correlator::~Correlator ()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user