GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
galileo_e5_signal_processing.h
Go to the documentation of this file.
1 /*!
2  * \file galileo_e5_signal_processing.h
3  * \brief This library implements various functions for Galileo E5 signals such
4  * as replica code generation
5  * \author Marc Sales, 2014. marcsales92(at)gmail.com
6  * \author Piyush Gupta, 2020. piyush04111999@gmail.com
7  * \note Code added as part of GSoC 2020 Program.
8  *
9  *
10  * -----------------------------------------------------------------------------
11  *
12  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13  *
14  * GNSS-SDR is a software defined Global Navigation
15  * Satellite Systems receiver
16  *
17  * This file is part of GNSS-SDR.
18  *
19  * SPDX-License-Identifier: GPL-3.0-or-later
20  *
21  * -----------------------------------------------------------------------------
22  */
23 
24 #ifndef GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H
25 #define GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H
26 
27 #include <array>
28 #include <complex>
29 #include <cstdint>
30 #if HAS_STD_SPAN
31 #include <span>
32 namespace own = std;
33 #else
34 #include <gsl/gsl>
35 namespace own = gsl;
36 #endif
37 
38 /*!
39  * \brief Generates Galileo E5a code at 1 sample/chip
40  */
41 void galileo_e5_a_code_gen_complex_primary(own::span<std::complex<float>> _dest,
42  int32_t _prn,
43  const std::array<char, 3>& _Signal);
44 
45 
46 /*!
47  * \brief Generates Galileo E5a complex code, shifted to the desired chip and
48  * sampled at a frequency fs
49  */
50 void galileo_e5_a_code_gen_complex_sampled(own::span<std::complex<float>> _dest,
51  uint32_t _prn,
52  const std::array<char, 3>& _Signal,
53  int32_t _fs,
54  uint32_t _chip_shift);
55 
56 
57 /*!
58  * \brief Generates Galileo E5b code at 1 sample/chip
59  */
60 void galileo_e5_b_code_gen_complex_primary(own::span<std::complex<float>> _dest,
61  int32_t _prn,
62  const std::array<char, 3>& _Signal);
63 
64 
65 /*!
66  * \brief Generates Galileo E5b complex code, shifted to the desired chip and
67  * sampled at a frequency fs
68  */
69 void galileo_e5_b_code_gen_complex_sampled(own::span<std::complex<float>> _dest,
70  uint32_t _prn,
71  const std::array<char, 3>& _Signal,
72  int32_t _fs,
73  uint32_t _chip_shift);
74 
75 #endif // GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H
STL namespace.
void galileo_e5_a_code_gen_complex_primary(own::span< std::complex< float >> _dest, int32_t _prn, const std::array< char, 3 > &_Signal)
Generates Galileo E5a code at 1 sample/chip.
void galileo_e5_b_code_gen_complex_primary(own::span< std::complex< float >> _dest, int32_t _prn, const std::array< char, 3 > &_Signal)
Generates Galileo E5b code at 1 sample/chip.
void galileo_e5_a_code_gen_complex_sampled(own::span< std::complex< float >> _dest, uint32_t _prn, const std::array< char, 3 > &_Signal, int32_t _fs, uint32_t _chip_shift)
Generates Galileo E5a complex code, shifted to the desired chip and sampled at a frequency fs...
void galileo_e5_b_code_gen_complex_sampled(own::span< std::complex< float >> _dest, uint32_t _prn, const std::array< char, 3 > &_Signal, int32_t _fs, uint32_t _chip_shift)
Generates Galileo E5b complex code, shifted to the desired chip and sampled at a frequency fs...