1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-10-30 14:53:03 +00:00

Use by default the new fast local code resampler

This commit is contained in:
Javier Arribas
2018-08-03 11:40:11 +02:00
parent 47e1ba1923
commit 83021ccfff
2 changed files with 32 additions and 9 deletions

View File

@@ -37,7 +37,6 @@
#include <volk_gnsssdr/volk_gnsssdr.h> #include <volk_gnsssdr/volk_gnsssdr.h>
#include <cmath> #include <cmath>
cpu_multicorrelator_real_codes::cpu_multicorrelator_real_codes() cpu_multicorrelator_real_codes::cpu_multicorrelator_real_codes()
{ {
d_sig_in = nullptr; d_sig_in = nullptr;
@@ -47,6 +46,7 @@ cpu_multicorrelator_real_codes::cpu_multicorrelator_real_codes()
d_local_codes_resampled = nullptr; d_local_codes_resampled = nullptr;
d_code_length_chips = 0; d_code_length_chips = 0;
d_n_correlators = 0; d_n_correlators = 0;
d_use_fast_resampler = true;
} }
@@ -84,6 +84,7 @@ bool cpu_multicorrelator_real_codes::set_local_code_and_taps(
d_local_code_in = local_code_in; d_local_code_in = local_code_in;
d_shifts_chips = shifts_chips; d_shifts_chips = shifts_chips;
d_code_length_chips = code_length_chips; d_code_length_chips = code_length_chips;
return true; return true;
} }
@@ -98,6 +99,19 @@ bool cpu_multicorrelator_real_codes::set_input_output_vectors(std::complex<float
void cpu_multicorrelator_real_codes::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips) void cpu_multicorrelator_real_codes::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips)
{
if (d_use_fast_resampler)
{
volk_gnsssdr_32f_xn_fast_resampler_32f_xn(d_local_codes_resampled,
d_local_code_in,
rem_code_phase_chips,
code_phase_step_chips,
d_shifts_chips,
d_code_length_chips,
d_n_correlators,
correlator_length_samples);
}
else
{ {
volk_gnsssdr_32f_xn_resampler_32f_xn(d_local_codes_resampled, volk_gnsssdr_32f_xn_resampler_32f_xn(d_local_codes_resampled,
d_local_code_in, d_local_code_in,
@@ -108,6 +122,7 @@ void cpu_multicorrelator_real_codes::update_local_code(int correlator_length_sam
d_n_correlators, d_n_correlators,
correlator_length_samples); correlator_length_samples);
} }
}
bool cpu_multicorrelator_real_codes::Carrier_wipeoff_multicorrelator_resampler( bool cpu_multicorrelator_real_codes::Carrier_wipeoff_multicorrelator_resampler(
@@ -141,3 +156,9 @@ bool cpu_multicorrelator_real_codes::free()
} }
return true; return true;
} }
void cpu_multicorrelator_real_codes::set_fast_resampler(
bool use_fast_resampler)
{
d_use_fast_resampler = use_fast_resampler;
}

View File

@@ -46,6 +46,7 @@ class cpu_multicorrelator_real_codes
{ {
public: public:
cpu_multicorrelator_real_codes(); cpu_multicorrelator_real_codes();
void set_fast_resampler(bool use_fast_resampler);
~cpu_multicorrelator_real_codes(); ~cpu_multicorrelator_real_codes();
bool init(int max_signal_length_samples, int n_correlators); bool init(int max_signal_length_samples, int n_correlators);
bool set_local_code_and_taps(int code_length_chips, const float *local_code_in, float *shifts_chips); bool set_local_code_and_taps(int code_length_chips, const float *local_code_in, float *shifts_chips);
@@ -61,6 +62,7 @@ private:
const float *d_local_code_in; const float *d_local_code_in;
std::complex<float> *d_corr_out; std::complex<float> *d_corr_out;
float *d_shifts_chips; float *d_shifts_chips;
bool d_use_fast_resampler;
int d_code_length_chips; int d_code_length_chips;
int d_n_correlators; int d_n_correlators;
}; };