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