GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
galileo_e5_signal_replica.h
Go to the documentation of this file.
1 /*!
2  * \file galileo_e5_signal_replica.h
3  * \brief This library implements various functions for Galileo E5 signal
4  * replica 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  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
13  * This file is part of GNSS-SDR.
14  *
15  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
16  * SPDX-License-Identifier: GPL-3.0-or-later
17  *
18  * -----------------------------------------------------------------------------
19  */
20 
21 #ifndef GNSS_SDR_GALILEO_E5_SIGNAL_REPLICA_H
22 #define GNSS_SDR_GALILEO_E5_SIGNAL_REPLICA_H
23 
24 #include <array>
25 #include <complex>
26 #include <cstdint>
27 #if HAS_STD_SPAN
28 #include <span>
29 namespace own = std;
30 #else
31 #include <gsl/gsl-lite.hpp>
32 namespace own = gsl;
33 #endif
34 
35 /** \addtogroup Algorithms_Library
36  * \{ */
37 /** \addtogroup Algorithm_libs algorithms_libs
38  * \{ */
39 
40 
41 /*!
42  * \brief Generates Galileo E5a code at 1 sample/chip
43  */
44 void galileo_e5_a_code_gen_complex_primary(own::span<std::complex<float>> dest,
45  int32_t prn,
46  const std::array<char, 3>& signal_id);
47 
48 
49 /*!
50  * \brief Generates Galileo E5a complex code, shifted to the desired chip and
51  * sampled at a frequency sampling_freq
52  */
53 void galileo_e5_a_code_gen_complex_sampled(own::span<std::complex<float>> dest,
54  uint32_t prn,
55  const std::array<char, 3>& signal_id,
56  int32_t sampling_freq,
57  uint32_t chip_shift);
58 
59 
60 /*!
61  * \brief Generates Galileo E5b code at 1 sample/chip
62  */
63 void galileo_e5_b_code_gen_complex_primary(own::span<std::complex<float>> dest,
64  int32_t prn,
65  const std::array<char, 3>& signal_id);
66 
67 
68 /*!
69  * \brief Generates Galileo E5b complex code, shifted to the desired chip and
70  * sampled at a frequency sampling_freq
71  */
72 void galileo_e5_b_code_gen_complex_sampled(own::span<std::complex<float>> dest,
73  uint32_t prn,
74  const std::array<char, 3>& signal_id,
75  int32_t sampling_freq,
76  uint32_t chip_shift);
77 
78 
79 /** \} */
80 /** \} */
81 #endif // GNSS_SDR_GALILEO_E5_SIGNAL_REPLICA_H
void galileo_e5_b_code_gen_complex_sampled(own::span< std::complex< float >> dest, uint32_t prn, const std::array< char, 3 > &signal_id, int32_t sampling_freq, uint32_t chip_shift)
Generates Galileo E5b complex code, shifted to the desired chip and sampled at a frequency sampling_f...
void galileo_e5_b_code_gen_complex_primary(own::span< std::complex< float >> dest, int32_t prn, const std::array< char, 3 > &signal_id)
Generates Galileo E5b code at 1 sample/chip.
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_id)
Generates Galileo E5a 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_id, int32_t sampling_freq, uint32_t chip_shift)
Generates Galileo E5a complex code, shifted to the desired chip and sampled at a frequency sampling_f...