diff --git a/src/algorithms/libs/galileo_e5_signal_processing.cc b/src/algorithms/libs/galileo_e5_signal_processing.cc index c2cd93fcc..8753b9ca4 100644 --- a/src/algorithms/libs/galileo_e5_signal_processing.cc +++ b/src/algorithms/libs/galileo_e5_signal_processing.cc @@ -130,7 +130,7 @@ void galileo_e5_a_code_gen_complex_sampled(own::span> _dest, void galileo_e5_b_code_gen_complex_primary(own::span> _dest, int32_t _prn, - const std::array& _Signal) // to differentiate between E5a and E5b signal + const std::array& _Signal) { uint32_t prn = _prn - 1; uint32_t index = 0; @@ -139,7 +139,7 @@ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, { return; } - if (_Signal[0] == '5' && _Signal[1] == 'b' && _Signal[2] == 'Q') + if (_Signal[0] == '5' && _Signal[1] == 'Q') { for (size_t i = 0; i < GALILEO_E5B_Q_PRIMARY_CODE[prn].length() - 1; i++) { @@ -154,8 +154,10 @@ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, hex_to_binary_converter(a, GALILEO_E5B_Q_PRIMARY_CODE[prn][GALILEO_E5B_Q_PRIMARY_CODE[prn].length() - 1]); _dest[index] = std::complex(static_cast(a[0]), 0.0); _dest[index + 1] = std::complex(static_cast(a[1]), 0.0); + _dest[index + 2] = std::complex(0.0, 0.0); + _dest[index + 3] = std::complex(0.0, 0.0); } - else if (_Signal[0] == '5' && _Signal[1] == 'b' && _Signal[2] == 'I') + else if (_Signal[0] == '5' && _Signal[1] == 'I') { for (size_t i = 0; i < GALILEO_E5B_I_PRIMARY_CODE[prn].length() - 1; i++) { @@ -170,8 +172,10 @@ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, hex_to_binary_converter(a, GALILEO_E5B_I_PRIMARY_CODE[prn][GALILEO_E5B_I_PRIMARY_CODE[prn].length() - 1]); _dest[index] = std::complex(static_cast(a[0]), 0.0); _dest[index + 1] = std::complex(static_cast(a[1]), 0.0); + _dest[index + 2] = std::complex(0.0, 0.0); + _dest[index + 3] = std::complex(0.0, 0.0); } - else if (_Signal[0] == '5' && _Signal[1] == 'b' && _Signal[2] == 'X') + else if (_Signal[0] == '5' && _Signal[1] == 'X') { std::array b{}; for (size_t i = 0; i < GALILEO_E5B_I_PRIMARY_CODE[prn].length() - 1; i++) @@ -189,13 +193,15 @@ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, hex_to_binary_converter(b, GALILEO_E5B_Q_PRIMARY_CODE[prn][GALILEO_E5B_Q_PRIMARY_CODE[prn].length() - 1]); _dest[index] = std::complex(static_cast(a[0]), static_cast(b[0])); _dest[index + 1] = std::complex(static_cast(a[1]), static_cast(b[1])); + _dest[index + 2] = std::complex(0.0, 0.0); + _dest[index + 3] = std::complex(0.0, 0.0); } } void galileo_e5_b_code_gen_complex_sampled(own::span> _dest, uint32_t _prn, - const std::array& _Signal, + const std::array& _Signal, int32_t _fs, uint32_t _chip_shift) { diff --git a/src/algorithms/libs/galileo_e5_signal_processing.h b/src/algorithms/libs/galileo_e5_signal_processing.h index ee8f6bc10..08426e878 100644 --- a/src/algorithms/libs/galileo_e5_signal_processing.h +++ b/src/algorithms/libs/galileo_e5_signal_processing.h @@ -59,7 +59,7 @@ void galileo_e5_a_code_gen_complex_sampled(own::span> _dest, */ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, int32_t _prn, - const std::array& _Signal); + const std::array& _Signal); /*! @@ -68,7 +68,7 @@ void galileo_e5_b_code_gen_complex_primary(own::span> _dest, */ void galileo_e5_b_code_gen_complex_sampled(own::span> _dest, uint32_t _prn, - const std::array& _Signal, + const std::array& _Signal, int32_t _fs, uint32_t _chip_shift);