GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
galileo_e6_signal_replica.h
Go to the documentation of this file.
1 /*!
2  * \file galileo_e6_signal_replica.h
3  * \brief This library implements various functions for Galileo E6 signal
4  * replica generation
5  * \author Carles Fernandez-Prades, 2020. cfernandez(at)cttc.es
6  *
7  *
8  * -----------------------------------------------------------------------------
9  *
10  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
11  * This file is part of GNSS-SDR.
12  *
13  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
14  * SPDX-License-Identifier: GPL-3.0-or-later
15  *
16  * -----------------------------------------------------------------------------
17  */
18 
19 #ifndef GNSS_SDR_GALILEO_E6_SIGNAL_REPLICA_H
20 #define GNSS_SDR_GALILEO_E6_SIGNAL_REPLICA_H
21 
22 #include <array>
23 #include <complex>
24 #include <cstdint>
25 #include <string>
26 #if HAS_STD_SPAN
27 #include <span>
28 namespace own = std;
29 #else
30 #include <gsl/gsl-lite.hpp>
31 namespace own = gsl;
32 #endif
33 
34 /** \addtogroup Algorithms_Library
35  * \{ */
36 /** \addtogroup Algorithm_libs algorithms_libs
37  * \{ */
38 
39 
40 /*!
41  * \brief Generates Galileo E6B code at 1 sample/chip
42  */
43 void galileo_e6_b_code_gen_complex_primary(own::span<std::complex<float>> dest,
44  int32_t prn);
45 
46 
47 /*!
48  * \brief Generates Galileo E6B code at 1 sample/chip
49  */
50 void galileo_e6_b_code_gen_float_primary(own::span<float> dest, int32_t prn);
51 
52 
53 /*!
54  * \brief Generates Galileo E6B complex code, shifted to the desired chip and
55  * sampled at a frequency sampling_freq
56  */
57 void galileo_e6_b_code_gen_complex_sampled(own::span<std::complex<float>> dest,
58  uint32_t prn,
59  int32_t sampling_freq,
60  uint32_t chip_shift);
61 
62 
63 /*!
64  * \brief Generates Galileo E6C codes at 1 sample/chip
65  */
66 void galileo_e6_c_code_gen_complex_primary(own::span<std::complex<float>> dest,
67  int32_t prn);
68 
69 
70 /*!
71  * \brief Generates Galileo E6C codes at 1 sample/chip
72  */
73 void galileo_e6_c_code_gen_float_primary(own::span<float> dest, int32_t prn);
74 
75 
76 /*!
77  * \brief Generates Galileo E6C complex codes, shifted to the desired chip and
78  * sampled at a frequency sampling_freq
79  */
80 void galileo_e6_c_code_gen_complex_sampled(own::span<std::complex<float>> dest,
81  uint32_t prn,
82  int32_t sampling_freq,
83  uint32_t chip_shift);
84 
85 
86 /*!
87  * \brief Generates Galileo E6C secondary codes at 1 sample/chip
88  */
89 void galileo_e6_c_secondary_code_gen_complex(own::span<std::complex<float>> dest,
90  int32_t prn);
91 
92 
93 /*!
94  * \brief Generates Galileo E6C secondary codes at 1 sample/chip
95  */
96 void galileo_e6_c_secondary_code_gen_float(own::span<float> dest,
97  int32_t prn);
98 
99 
100 /*!
101  * \brief Generates a string with Galileo E6C secondary codes at 1 sample/chip
102  */
103 std::string galileo_e6_c_secondary_code(int32_t prn);
104 
105 
106 /** \} */
107 /** \} */
108 #endif // GNSS_SDR_GALILEO_E6_SIGNAL_REPLICA_H
void galileo_e6_c_code_gen_complex_primary(own::span< std::complex< float >> dest, int32_t prn)
Generates Galileo E6C codes at 1 sample/chip.
void galileo_e6_b_code_gen_complex_sampled(own::span< std::complex< float >> dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
Generates Galileo E6B complex code, shifted to the desired chip and sampled at a frequency sampling_f...
STL namespace.
void galileo_e6_c_secondary_code_gen_complex(own::span< std::complex< float >> dest, int32_t prn)
Generates Galileo E6C secondary codes at 1 sample/chip.
void galileo_e6_c_code_gen_float_primary(own::span< float > dest, int32_t prn)
Generates Galileo E6C codes at 1 sample/chip.
std::string galileo_e6_c_secondary_code(int32_t prn)
Generates a string with Galileo E6C secondary codes at 1 sample/chip.
void galileo_e6_c_code_gen_complex_sampled(own::span< std::complex< float >> dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
Generates Galileo E6C complex codes, shifted to the desired chip and sampled at a frequency sampling_...
void galileo_e6_c_secondary_code_gen_float(own::span< float > dest, int32_t prn)
Generates Galileo E6C secondary codes at 1 sample/chip.
void galileo_e6_b_code_gen_complex_primary(own::span< std::complex< float >> dest, int32_t prn)
Generates Galileo E6B code at 1 sample/chip.
void galileo_e6_b_code_gen_float_primary(own::span< float > dest, int32_t prn)
Generates Galileo E6B code at 1 sample/chip.