free5GRAN  V1.0
common_variables.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2020 Telecom Paris
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  */
16 
17 #include "common_variables.h"
18 #include "../common_structures/common_structures.h"
19 #include <map>
20 
21 
22 int free5GRAN::G_CRC_24_C[] = {1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1};
23 
24 int free5GRAN::G_CRC_24_A[] = {1,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,1,1};
25 
26 int free5GRAN::G_CRC_16[] = {1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1};
27 
28 int free5GRAN::PBCH_PAYLOAD_INTERLEAVER[] = {16, 23, 18, 17, 8, 30, 10, 6, 24, 7, 0, 5, 3, 2, 1, 4, 9, 11, 12, 13, 14, 15, 19, 20, 21, 22, 25, 26, 27, 28, 29, 31};
29 
30 int free5GRAN::SUB_BLOCK_INTERLEAVER_PATTERN[] = {0, 1, 2, 4, 3, 5, 6, 7, 8, 16, 9, 17, 10, 18, 11, 19, 12, 20, 13, 21, 14, 22, 15, 23, 24, 25, 26, 28, 27, 29, 30, 31};
31 
33  0,2,4,7,9,14,19,20,24,25,26,28,31,34,42,45,49,50,51,53,54,56,58,59,61,62,65,66,
34  67,69,70,71,72,76,77,81,82,83,87,88,89,91,93,95,98,101,104,106,108,110,111,113,115,118,119,120,
35  122,123,126,127,129,132,134,138,139,140,1,3,5,8,10,15,21,27,29,32,35,43,46,52,55,57,60,63,
36  68,73,78,84,90,92,94,96,99,102,105,107,109,112,114,116,121,124,128,130,133,135,141,6,11,16,22,30,
37  33,36,44,47,64,74,79,85,97,100,103,117,125,131,136,142,12,17,23,37,48,75,80,86,137,143,13,18,
38  38,144,39,145,40,146,41,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163
39 };
40 
42  0, 1, 2, 4, 8, 16, 32, 3, 5, 64, 9, 6, 17, 10, 18, 128, 12, 33, 65, 20, 256, 34, 24, 36, 7, 129, 66, 512,
43  11, 40, 68, 130, 19, 13, 48, 14, 72, 257, 21, 132, 35, 258, 26, 513, 80, 37, 25, 22, 136, 260, 264, 38, 514, 96, 67, 41,
44  144, 28, 69, 42, 516, 49, 74, 272, 160, 520, 288, 528, 192, 544, 70, 44, 131, 81, 50, 73, 15, 320, 133, 52, 23, 134, 384, 76,
45  137, 82, 56, 27, 97, 39, 259, 84, 138, 145, 261, 29, 43, 98, 515, 88, 140, 30, 146, 71, 262, 265, 161, 576, 45, 100, 640, 51,
46  148, 46, 75, 266, 273, 517, 104, 162, 53, 193, 152, 77, 164, 768, 268, 274, 518, 54, 83, 57, 521, 112, 135, 78, 289, 194, 85, 276,
47  522, 58, 168, 139, 99, 86, 60, 280, 89, 290, 529, 524, 196, 141, 101, 147, 176, 142, 530, 321, 31, 200, 90, 545, 292, 322, 532, 263,
48  149, 102, 105, 304, 296, 163, 92, 47, 267, 385, 546, 324, 208, 386, 150, 153, 165, 106, 55, 328, 536, 577, 548, 113, 154, 79, 269, 108,
49  578, 224, 166, 519, 552, 195, 270, 641, 523, 275, 580, 291, 59, 169, 560, 114, 277, 156, 87, 197, 116, 170, 61, 531, 525, 642, 281, 278,
50  526, 177, 293, 388, 91, 584, 769, 198, 172, 120, 201, 336, 62, 282, 143, 103, 178, 294, 93, 644, 202, 592, 323, 392, 297, 770, 107, 180,
51  151, 209, 284, 648, 94, 204, 298, 400, 608, 352, 325, 533, 155, 210, 305, 547, 300, 109, 184, 534, 537, 115, 167, 225, 326, 306, 772, 157,
52  656, 329, 110, 117, 212, 171, 776, 330, 226, 549, 538, 387, 308, 216, 416, 271, 279, 158, 337, 550, 672, 118, 332, 579, 540, 389, 173, 121,
53  553, 199, 784, 179, 228, 338, 312, 704, 390, 174, 554, 581, 393, 283, 122, 448, 353, 561, 203, 63, 340, 394, 527, 582, 556, 181, 295, 285,
54  232, 124, 205, 182, 643, 562, 286, 585, 299, 354, 211, 401, 185, 396, 344, 586, 645, 593, 535, 240, 206, 95, 327, 564, 800, 402, 356, 307,
55  301, 417, 213, 568, 832, 588, 186, 646, 404, 227, 896, 594, 418, 302, 649, 771, 360, 539, 111, 331, 214, 309, 188, 449, 217, 408, 609, 596,
56  551, 650, 229, 159, 420, 310, 541, 773, 610, 657, 333, 119, 600, 339, 218, 368, 652, 230, 391, 313, 450, 542, 334, 233, 555, 774, 175, 123,
57  658, 612, 341, 777, 220, 314, 424, 395, 673, 583, 355, 287, 183, 234, 125, 557, 660, 616, 342, 316, 241, 778, 563, 345, 452, 397, 403, 207,
58  674, 558, 785, 432, 357, 187, 236, 664, 624, 587, 780, 705, 126, 242, 565, 398, 346, 456, 358, 405, 303, 569, 244, 595, 189, 566, 676, 361,
59  706, 589, 215, 786, 647, 348, 419, 406, 464, 680, 801, 362, 590, 409, 570, 788, 597, 572, 219, 311, 708, 598, 601, 651, 421, 792, 802, 611,
60  602, 410, 231, 688, 653, 248, 369, 190, 364, 654, 659, 335, 480, 315, 221, 370, 613, 422, 425, 451, 614, 543, 235, 412, 343, 372, 775, 317,
61  222, 426, 453, 237, 559, 833, 804, 712, 834, 661, 808, 779, 617, 604, 433, 720, 816, 836, 347, 897, 243, 662, 454, 318, 675, 618, 898, 781,
62  376, 428, 665, 736, 567, 840, 625, 238, 359, 457, 399, 787, 591, 678, 434, 677, 349, 245, 458, 666, 620, 363, 127, 191, 782, 407, 436, 626,
63  571, 465, 681, 246, 707, 350, 599, 668, 790, 460, 249, 682, 573, 411, 803, 789, 709, 365, 440, 628, 689, 374, 423, 466, 793, 250, 371, 481,
64  574, 413, 603, 366, 468, 655, 900, 805, 615, 684, 710, 429, 794, 252, 373, 605, 848, 690, 713, 632, 482, 806, 427, 904, 414, 223, 663, 692,
65  835, 619, 472, 455, 796, 809, 714, 721, 837, 716, 864, 810, 606, 912, 722, 696, 377, 435, 817, 319, 621, 812, 484, 430, 838, 667, 488, 239,
66  378, 459, 622, 627, 437, 380, 818, 461, 496, 669, 679, 724, 841, 629, 351, 467, 438, 737, 251, 462, 442, 441, 469, 247, 683, 842, 738, 899,
67  670, 783, 849, 820, 728, 928, 791, 367, 901, 630, 685, 844, 633, 711, 253, 691, 824, 902, 686, 740, 850, 375, 444, 470, 483, 415, 485, 905,
68  795, 473, 634, 744, 852, 960, 865, 693, 797, 906, 715, 807, 474, 636, 694, 254, 717, 575, 913, 798, 811, 379, 697, 431, 607, 489, 866, 723,
69  486, 908, 718, 813, 476, 856, 839, 725, 698, 914, 752, 868, 819, 814, 439, 929, 490, 623, 671, 739, 916, 463, 843, 381, 497, 930, 821, 726,
70  961, 872, 492, 631, 729, 700, 443, 741, 845, 920, 382, 822, 851, 730, 498, 880, 742, 445, 471, 635, 932, 687, 903, 825, 500, 846, 745, 826,
71  732, 446, 962, 936, 475, 853, 867, 637, 907, 487, 695, 746, 828, 753, 854, 857, 504, 799, 255, 964, 909, 719, 477, 915, 638, 748, 944, 869,
72  491, 699, 754, 858, 478, 968, 383, 910, 815, 976, 870, 917, 727, 493, 873, 701, 931, 756, 860, 499, 731, 823, 922, 874, 918, 502, 933, 743,
73  760, 881, 494, 702, 921, 501, 876, 847, 992, 447, 733, 827, 934, 882, 937, 963, 747, 505, 855, 924, 734, 829, 965, 938, 884, 506, 749, 945,
74  966, 755, 859, 940, 830, 911, 871, 639, 888, 479, 946, 750, 969, 508, 861, 757, 970, 919, 875, 862, 758, 948, 977, 923, 972, 761, 877, 952,
75  495, 703, 935, 978, 883, 762, 503, 925, 878, 735, 993, 885, 939, 994, 980, 926, 764, 941, 967, 886, 831, 947, 507, 889, 984, 751, 942, 996,
76  971, 890, 509, 949, 973, 1000, 892, 950, 863, 759, 1008, 510, 979, 953, 763, 974, 954, 879, 981, 982, 927, 995, 765, 956, 887, 985, 997, 986,
77  943, 891, 998, 766, 511, 988, 1001, 951, 1002, 893, 975, 894, 1009, 955, 1004, 1010, 957, 983, 958, 987, 1012, 999, 1016, 767, 989, 1003, 990, 1005,
78  959, 1011, 1013, 895, 1006, 1014, 1017, 1018, 991, 1020, 1007, 1015, 1019, 1021, 1022, 1023
79 };
80 
82 
84 
86 
88 
90 
92 
94 
96 
98 
100 
102 
103 int free5GRAN::PSS_BASE_SEQUENCE[] = {0,1,1,0,1,1,1};
104 
105 int free5GRAN::SSS_BASE_X0_SEQUENCE[] = {1, 0, 0, 0, 0, 0, 0};
106 
107 int free5GRAN::SSS_BASE_X1_SEQUENCE[] = {1, 0, 0, 0, 0, 0, 0};
108 
110 
111 int free5GRAN::DMRS_BASE_X1_SEQUENCE[] = {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
112 
114 
116 
118  {1,24,2,0},
119  {1,24,2,2},
120  {1,24,2,4},
121  {1,24,3,0},
122  {1,24,3,2},
123  {1,24,3,4},
124  {1,48,1,12},
125  {1,48,1,16},
126  {1,48,2,12},
127  {1,48,2,16},
128  {1,48,3,12},
129  {1,48,3,16},
130  {1,96,1,38},
131  {1,96,2,38},
132  {1,96,3,38},
133  {0,0,0,0}
134 };
135 
137  {1,24,2,5},
138  {1,24,2,6},
139  {1,24,2,7},
140  {1,24,2,8},
141  {1,24,3,5},
142  {1,24,3,6},
143  {1,24,3,7},
144  {1,24,3,8},
145  {1,48,1,18},
146  {1,48,1,20},
147  {1,48,2,18},
148  {1,48,2,20},
149  {1,48,3,18},
150  {1,48,3,20},
151  {0,0,0,0},
152  {0,0,0,0},
153 };
154 
156  {1,48,1,2},
157  {1,48,1,6},
158  {1,48,2,2},
159  {1,48,2,6},
160  {1,48,3,2},
161  {1,48,3,6},
162  {1,96,1,28},
163  {1,96,2,28},
164  {1,96,3,28},
165  {0,0,0,0},
166  {0,0,0,0},
167  {0,0,0,0},
168  {0,0,0,0},
169  {0,0,0,0},
170  {0,0,0,0},
171  {0,0,0,0},
172 };
173 
175  {1,24,2,0},
176  {1,24,2,1},
177  {1,24,2,2},
178  {1,24,2,3},
179  {1,24,2,4},
180  {1,24,3,0},
181  {1,24,3,1},
182  {1,24,3,2},
183  {1,24,3,3},
184  {1,24,3,4},
185  {1,48,1,12},
186  {1,48,1,14},
187  {1,48,1,16},
188  {1,48,2,12},
189  {1,48,2,14},
190  {1,48,2,16},
191 };
192 
194  {0,1,1,0},
195  {0,2,0.5,-1},
196  {2,1,1,0},
197  {2,2,0.5,-1},
198  {5,1,1,0},
199  {5,1,0.5,-1},
200  {7,1,1,0},
201  {7,2,0.5,-1},
202  {0,1,2,0},
203  {5,1,2,0},
204  {0,1,1,1},
205  {0,1,1,2},
206  {2,1,1,1},
207  {2,1,1,2},
208  {5,1,1,1},
209  {5,1,1,2},
210 };
211 
213  {
214  {0,0,2,12},
215  {0,0,3,11},
216  },
217  {
218  {0,0,2,10},
219  {0,0,3,9},
220  },
221  {
222  {0,0,2,9},
223  {0,0,3,8},
224  },
225  {
226  {0,0,2,7},
227  {0,0,3,6},
228  },
229  {
230  {0,0,2,5},
231  {0,0,3,4},
232  },
233  {
234  {1,0,9,4},
235  {1,0,10,4},
236  },
237  {
238  {1,0,4,4},
239  {1,0,6,4},
240  },
241  {
242  {1,0,5,7},
243  {1,0,5,7},
244  },
245  {
246  {1,0,5,2},
247  {1,0,5,2},
248  },
249  {
250  {1,0,9,2},
251  {1,0,9,2},
252  },
253  {
254  {1,0,12,2},
255  {1,0,12,2},
256  },
257  {
258  {0,0,1,13},
259  {0,0,1,13},
260  }
261  ,
262  {
263  {0,0,1,6},
264  {0,0,1,6},
265  },
266  {
267  {0,0,2,4},
268  {0,0,2,4},
269  },
270  {
271  {1,0,4,7},
272  {1,0,4,7},
273  },
274  {
275  {1,0,8,4},
276  {1,0,8,4},
277  }
278 };
279 
281  {2,120},
282  {2,157},
283  {2,193},
284  {2,251},
285  {2,308},
286  {2,379},
287  {2,449},
288  {2,526},
289  {2,602},
290  {2,679},
291  {4,340},
292  {4,378},
293  {4,434},
294  {4,490},
295  {4,553},
296  {4,616},
297  {4,658},
298  {6,438},
299  {6,466},
300  {6,517},
301  {6,567},
302  {6,616},
303  {6,666},
304  {6,719},
305  {6,772},
306  {6,822},
307  {6,873},
308  {6,910},
309  {6,948},
310 };
311 
312 int free5GRAN::TS_38_214_TABLE_5_1_3_2_1[93] = {24, 32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,208,224,240,256,272,288,304,320,336,352,368,384,408,432,456,480,504,528,552,576,608,640,672,704,
313  736,768,808,848,888,928,984,1032,1064,1128,1160,1192,1224,1256,1288,1320,1352,1416,1480,1544,1608,1672,1736,1800,1864,1928,2024,2088,2152,2216,2280,2408,2472,2536,2600,2664,2728,
314  2792,2856,2976,3104,3240,3368,3496,3624,3752,3824};
315 
317  {2,4,8,16,32,64,128,256},
318  {3,6,12,24,48,96,192,384},
319  {-1,5,10,20,40,80,160,320},
320  {-1,-1,7,14,28,56,112,224},
321  {-1,-1,9,18,36,72,144,288},
322  {-1,-1,11,22,44,88,176,352},
323  {-1,-1,-1,13,26,52,105,208},
324  {-1,-1,-1,15,30,60,120,240}
325 };
326 
328 
330 
331 int free5GRAN::SI_RNTI[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
332 
334 
int TS_38_213_TABLE_13_4[16][4]
int NUMBER_SYMBOLS_PER_SLOT_NORMAL_CP
int G_CRC_24_A[25]
int TS_38_213_TABLE_13_1[16][4]
int TS_38_212_TABLE_5_3_2_1[8][8]
int SSS_BASE_X1_SEQUENCE[7]
int INTERVAL_SSB_NO_PBCH_DMRS[2]
int TS_38_214_TABLE_5_1_2_1_1_2[16][2][4]
int SIZE_SSB_DMRS_SYMBOLS
int SIZE_PBCH_POLAR_DECODED
int DMRS_BASE_X1_SEQUENCE[32]
int PBCH_PAYLOAD_INTERLEAVER[32]
int TS_38_214_TABLE_5_1_3_1_1[29][2]
int POLAR_SEQUENCE_QNMAX_AND_RELIABILITY[1024]
int SUB_BLOCK_INTERLEAVER_PATTERN[32]
int SSS_BASE_X0_SEQUENCE[7]
int SIZE_SSB_PBCH_SYMBOLS
int G_CRC_16[27]
int TS_38_213_TABLE_13_3[16][4]
float TS_38_213_TABLE_13_11[16][4]
int TS_38_213_TABLE_13_2[16][4]
int TS_38_214_TABLE_5_1_3_2_1[93]
int INTERLEAVING_PATTERN[164]
int PSS_BASE_SEQUENCE[7]
free5GRAN::band AVAILABLE_BANDS[7]
int G_CRC_24_C[25]