GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
GPS_L5.h
Go to the documentation of this file.
1 /*!
2  * \file GPS_L5.h
3  * \brief Defines system parameters for GPS L5 signal
4  * \author Javier Arribas, 2017. jarribas(at)cttc.es
5  *
6  * -----------------------------------------------------------------------------
7  *
8  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9  * This file is part of GNSS-SDR.
10  *
11  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12  * SPDX-License-Identifier: GPL-3.0-or-later
13  *
14  * -----------------------------------------------------------------------------
15  */
16 
17 
18 #ifndef GNSS_SDR_GPS_L5_H
19 #define GNSS_SDR_GPS_L5_H
20 
21 #include "GPS_CNAV.h"
22 #include "gnss_frequencies.h"
23 #include <cstdint>
24 
25 /** \addtogroup Core
26  * \{ */
27 /** \addtogroup System_Parameters
28  * \{ */
29 
30 
31 // carrier and code frequencies
32 constexpr double GPS_L5_FREQ_HZ = FREQ5; //!< L5 [Hz]
33 constexpr double GPS_L5I_CODE_RATE_CPS = 10.23e6; //!< GPS L5I code rate [chips/s]
34 constexpr double GPS_L5I_PERIOD_S = 0.001; //!< GPS L5I code period [seconds]
35 constexpr double GPS_L5I_SYMBOL_PERIOD_S = 0.01; //!< GPS L5I symbol period [seconds]
36 constexpr double GPS_L5Q_CODE_RATE_CPS = 10.23e6; //!< GPS L5Q code rate [chips/s]
37 constexpr double GPS_L5Q_PERIOD_S = 0.001; //!< GPS L5Q code period [seconds]
38 constexpr int32_t GPS_L5Q_CODE_LENGTH_CHIPS = 10230; //!< GPS L5Q code length [chips]
39 constexpr int32_t GPS_L5I_CODE_LENGTH_CHIPS = 10230; //!< GPS L5I code length [chips]
40 constexpr int32_t GPS_L5I_PERIOD_MS = 1; //!< GPS L5I code period [ms]
41 constexpr int32_t GPS_L5I_SYMBOL_PERIOD_MS = 10; //!< GPS L5I symbol period [ms]
42 
43 constexpr int32_t GPS_L5_HISTORY_DEEP = 5;
44 
45 // optimum parameters
46 constexpr uint32_t GPS_L5_OPT_ACQ_FS_SPS = 10000000; //!< Sampling frequency that maximizes the acquisition SNR while using a non-multiple of chip rate
47 
48 constexpr int32_t GPS_L5I_INIT_REG[210] =
49  {266, 365, 804, 1138,
50  1509, 1559, 1756, 2084,
51  2170, 2303, 2527, 2687,
52  2930, 3471, 3940, 4132,
53  4332, 4924, 5343, 5443,
54  5641, 5816, 5898, 5918,
55  5955, 6243, 6345, 6477,
56  6518, 6875, 7168, 7187,
57  7329, 7577, 7720, 7777,
58  8057, 5358, 3550, 3412,
59  819,
60  4608, 3698, 962, 3001,
61  4441, 4937, 3717, 4730,
62  7291, 2279, 7613, 5723,
63  7030, 1475, 2593, 2904,
64  2056, 2757, 3756, 6205,
65  5053, 6437,
66  7789, 2311, 7432, 5155,
67  1593, 5841, 5014, 1545,
68  3016, 4875, 2119, 229,
69  7634, 1406, 4506, 1819,
70  7580, 5446, 6053, 7958,
71  5267, 2956, 3544, 1277,
72  2996, 1758, 3360, 2718,
73  3754, 7440, 2781, 6756,
74  7314, 208, 5252, 696,
75  527, 1399, 5879, 6868,
76  217, 7681, 3788, 1337,
77  2424, 4243, 5686, 1955,
78  4791, 492, 1518, 6566,
79  5349, 506, 113, 1953,
80  2797, 934, 3023, 3632,
81  1330, 4909, 4867, 1183,
82  3990, 6217, 1224, 1733,
83  2319, 3928, 2380, 841,
84  5049, 7027, 1197, 7208,
85  8000, 152, 6762, 3745,
86  4723, 5502, 4796, 123,
87  8142, 5091, 7875, 330,
88  5272, 4912, 374, 2045,
89  6616, 6321, 7605, 2570,
90  2419, 1234, 1922, 4317,
91  5110, 825, 958, 1089,
92  7813, 6058, 7703, 6702,
93  1714, 6371, 2281, 1986,
94  6282, 3201, 3760, 1056,
95  6233, 1150, 2823, 6250,
96  645, 2401, 1639, 2946,
97  7091, 923, 7045, 6493,
98  1706, 5836, 926, 6086,
99  950, 5905, 3240, 6675,
100  3197, 1555, 3589, 4555,
101  5671, 6948, 4664, 2086,
102  5950, 5521, 1515};
103 
104 
105 constexpr int32_t GPS_L5Q_INIT_REG[210] =
106  {
107  1701, 323, 5292, 2020,
108  5429, 7136, 1041, 5947,
109  4315, 148, 535, 1939,
110  5206, 5910, 3595, 5135,
111  6082, 6990, 3546, 1523,
112  4548, 4484, 1893, 3961,
113  7106, 5299, 4660, 276,
114  4389, 3783, 1591, 1601,
115  749, 1387, 1661, 3210,
116  708,
117  4226, 5604, 6375, 3056,
118  1772, 3662, 4401, 5218,
119  2838, 6913, 1685, 1194,
120  6963, 5001, 6694, 991,
121  7489, 2441, 639, 2097,
122  2498, 6470, 2399, 242,
123  3768, 1186,
124  5246, 4259, 5907, 3870,
125  3262, 7387, 3069, 2999,
126  7993, 7849, 4157, 5031,
127  5986, 4833, 5739, 7846,
128  898, 2022, 7446, 6404,
129  155, 7862, 7795, 6121,
130  4840, 6585, 429, 6020,
131  200, 1664, 1499, 7298,
132  1305, 7323, 7544, 4438,
133  2485, 3387, 7319, 1853,
134  5781, 1874, 7555, 2132,
135  6441, 6722, 1192, 2588,
136  2188, 297, 1540, 4138,
137  5231, 4789, 659, 871,
138  6837, 1393, 7383, 611,
139  4920, 5416, 1611, 2474,
140  118, 1382, 1092, 7950,
141  7223, 1769, 4721, 1252,
142  5147, 2165, 7897, 4054,
143  3498, 6571, 2858, 8126,
144  7017, 1901, 181, 1114,
145  5195, 7479, 4186, 3904,
146  7128, 1396, 4513, 5967,
147  2580, 2575, 7961, 2598,
148  4508, 2090, 3685, 7748,
149  684, 913, 5558, 2894,
150  5858, 6432, 3813, 3573,
151  7523, 5280, 3376, 7424,
152  2918, 5793, 1747, 7079,
153  2921, 2490, 4119, 3373,
154  977, 681, 4273, 5419,
155  5626, 1266, 5804, 2414,
156  6444, 4757, 427, 5452,
157  5182, 6606, 6531, 4268,
158  3115, 6835, 862, 4856,
159  2765, 37, 1943, 7977,
160  2512, 4451, 4071};
161 
162 constexpr int32_t GPS_L5_CNAV_DATA_PAGE_BITS = 300; //!< GPS L5 CNAV page length, including preamble and CRC [bits]
163 constexpr int32_t GPS_L5_SYMBOLS_PER_BIT = 2;
164 constexpr int32_t GPS_L5_SAMPLES_PER_SYMBOL = 10;
165 constexpr int32_t GPS_L5_CNAV_DATA_PAGE_SYMBOLS = 600;
166 constexpr int32_t GPS_L5_CNAV_DATA_PAGE_DURATION_S = 6;
167 constexpr int32_t GPS_L5I_NH_CODE_LENGTH = 10;
168 constexpr int32_t GPS_L5I_NH_CODE[10] = {0, 0, 0, 0, 1, 1, 0, 1, 0, 1};
169 constexpr int32_t GPS_L5Q_NH_CODE_LENGTH = 20;
170 constexpr int32_t GPS_L5Q_NH_CODE[20] = {0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0};
171 constexpr char GPS_L5I_NH_CODE_STR[11] = "0000110101";
172 constexpr char GPS_L5Q_NH_CODE_STR[21] = "00000100110101001110";
173 
174 
175 /** \} */
176 /** \} */
177 #endif // GNSS_SDR_GPS_L5_H
constexpr int32_t GPS_L5Q_CODE_LENGTH_CHIPS
GPS L5Q code length [chips].
Definition: GPS_L5.h:38
Defines parameters for GPS CNAV.
constexpr double GPS_L5I_SYMBOL_PERIOD_S
GPS L5I symbol period [seconds].
Definition: GPS_L5.h:35
constexpr double FREQ5
L5/E5a frequency (Hz)
constexpr int32_t GPS_L5I_PERIOD_MS
GPS L5I code period [ms].
Definition: GPS_L5.h:40
constexpr uint32_t GPS_L5_OPT_ACQ_FS_SPS
Sampling frequency that maximizes the acquisition SNR while using a non-multiple of chip rate...
Definition: GPS_L5.h:46
constexpr double GPS_L5Q_PERIOD_S
GPS L5Q code period [seconds].
Definition: GPS_L5.h:37
GNSS Frequencies.
constexpr double GPS_L5I_CODE_RATE_CPS
GPS L5I code rate [chips/s].
Definition: GPS_L5.h:33
constexpr int32_t GPS_L5_CNAV_DATA_PAGE_BITS
GPS L5 CNAV page length, including preamble and CRC [bits].
Definition: GPS_L5.h:162
constexpr double GPS_L5_FREQ_HZ
L5 [Hz].
Definition: GPS_L5.h:32
constexpr double GPS_L5I_PERIOD_S
GPS L5I code period [seconds].
Definition: GPS_L5.h:34
constexpr double GPS_L5Q_CODE_RATE_CPS
GPS L5Q code rate [chips/s].
Definition: GPS_L5.h:36
constexpr int32_t GPS_L5I_SYMBOL_PERIOD_MS
GPS L5I symbol period [ms].
Definition: GPS_L5.h:41
constexpr int32_t GPS_L5I_CODE_LENGTH_CHIPS
GPS L5I code length [chips].
Definition: GPS_L5.h:39