blob: 279bd3a8ec395af365cbf8c6a56458aeefcf4677 [file] [log] [blame]
Vadim Yanitskiy15492bc2016-11-10 17:10:42 +07001#!/usr/bin/python2
2
3from conv_gen import ConvolutionalCode
4from conv_gen import poly
5
6# Polynomials according to 3GPP TS 05.03 Annex B
7G0 = poly(0, 3, 4)
8G1 = poly(0, 1, 3, 4)
9G2 = poly(0, 2, 4)
10G3 = poly(0, 1, 2, 3, 4)
11G4 = poly(0, 2, 3, 5, 6)
12G5 = poly(0, 1, 4, 6)
13G6 = poly(0, 1, 2, 3, 4, 6)
14G7 = poly(0, 1, 2, 3, 6)
15
16# Shared polynomials
17shared_polys = {
18 "xcch" : [
19 ( G0, 1 ),
20 ( G1, 1 ),
21 ],
22 "mcs" : [
23 ( G4, 1 ),
24 ( G7, 1 ),
25 ( G5, 1 ),
26 ],
27}
28
29# Convolutional code definitions
30conv_codes = [
31 # xCCH definition
32 ConvolutionalCode(
33 224,
34 shared_polys["xcch"],
35 name = "xcch",
36 description = [
37 "xCCH convolutional code:",
38 "228 bits blocks, rate 1/2, k = 5",
39 "G0 = 1 + D3 + D4",
40 "G1 = 1 + D + D3 + D4",
41 ]
42 ),
43
44 # RACH definition
45 ConvolutionalCode(
46 14,
47 shared_polys["xcch"],
48 name = "rach",
49 description = ["RACH convolutional code"]
50 ),
51
52 # SCH definition
53 ConvolutionalCode(
54 35,
55 shared_polys["xcch"],
56 name = "sch",
57 description = ["SCH convolutional code"]
58 ),
59
60 # CS2 definition
61 ConvolutionalCode(
62 290,
63 shared_polys["xcch"],
64 puncture = [
65 15, 19, 23, 27, 31, 35, 43, 47, 51, 55, 59, 63, 67, 71,
66 75, 79, 83, 91, 95, 99, 103, 107, 111, 115, 119, 123, 127, 131,
67 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 187, 191, 195,
68 199, 203, 207, 211, 215, 219, 223, 227, 235, 239, 243, 247, 251, 255,
69 259, 263, 267, 271, 275, 283, 287, 291, 295, 299, 303, 307, 311, 315,
70 319, 323, 331, 335, 339, 343, 347, 351, 355, 359, 363, 367, 371, 379,
71 383, 387, 391, 395, 399, 403, 407, 411, 415, 419, 427, 431, 435, 439,
72 443, 447, 451, 455, 459, 463, 467, 475, 479, 483, 487, 491, 495, 499,
73 503, 507, 511, 515, 523, 527, 531, 535, 539, 543, 547, 551, 555, 559,
74 563, 571, 575, 579, 583, 587, -1
75 ],
76 name = "cs2",
77 description = [
78 "CS2 convolutional code:",
79 "G0 = 1 + D3 + D4",
80 "G1 = 1 + D + D3 + D4",
81 ]
82 ),
83
84 # CS3 definition
85 ConvolutionalCode(
86 334,
87 shared_polys["xcch"],
88 puncture = [
89 15, 17, 21, 23, 27, 29, 33, 35, 39, 41, 45, 47, 51, 53,
90 57, 59, 63, 65, 69, 71, 75, 77, 81, 83, 87, 89, 93, 95,
91 99, 101, 105, 107, 111, 113, 117, 119, 123, 125, 129, 131, 135, 137,
92 141, 143, 147, 149, 153, 155, 159, 161, 165, 167, 171, 173, 177, 179,
93 183, 185, 189, 191, 195, 197, 201, 203, 207, 209, 213, 215, 219, 221,
94 225, 227, 231, 233, 237, 239, 243, 245, 249, 251, 255, 257, 261, 263,
95 267, 269, 273, 275, 279, 281, 285, 287, 291, 293, 297, 299, 303, 305,
96 309, 311, 315, 317, 321, 323, 327, 329, 333, 335, 339, 341, 345, 347,
97 351, 353, 357, 359, 363, 365, 369, 371, 375, 377, 381, 383, 387, 389,
98 393, 395, 399, 401, 405, 407, 411, 413, 417, 419, 423, 425, 429, 431,
99 435, 437, 441, 443, 447, 449, 453, 455, 459, 461, 465, 467, 471, 473,
100 477, 479, 483, 485, 489, 491, 495, 497, 501, 503, 507, 509, 513, 515,
101 519, 521, 525, 527, 531, 533, 537, 539, 543, 545, 549, 551, 555, 557,
102 561, 563, 567, 569, 573, 575, 579, 581, 585, 587, 591, 593, 597, 599,
103 603, 605, 609, 611, 615, 617, 621, 623, 627, 629, 633, 635, 639, 641,
104 645, 647, 651, 653, 657, 659, 663, 665, 669, 671, -1
105 ],
106 name = "cs3",
107 description = [
108 "CS3 convolutional code:",
109 "G0 = 1 + D3 + D4",
110 "G1 = 1 + D + D3 + D4",
111 ]
112 ),
113
Vadim Yanitskiy3262f822016-09-23 01:48:59 +0700114 # CS2 definition (non-punctured)
115 ConvolutionalCode(
116 290,
117 shared_polys["xcch"],
118 name = "cs2_np",
119 description = [
120 "CS2 convolutional code (non-punctured):",
121 "G0 = 1 + D3 + D4",
122 "G1 = 1 + D + D3 + D4",
123 ]
124 ),
125
126 # CS3 definition (non-punctured)
127 ConvolutionalCode(
128 334,
129 shared_polys["xcch"],
130 name = "cs3_np",
131 description = [
132 "CS3 convolutional code (non-punctured):",
133 "G0 = 1 + D3 + D4",
134 "G1 = 1 + D + D3 + D4",
135 ]
136 ),
137
Vadim Yanitskiy15492bc2016-11-10 17:10:42 +0700138 # TCH_AFS_12_2 definition
139 ConvolutionalCode(
140 250,
141 [
142 ( 1, 1 ),
143 ( G1, G0 ),
144 ],
145 puncture = [
146 321, 325, 329, 333, 337, 341, 345, 349, 353, 357, 361, 363,
147 365, 369, 373, 377, 379, 381, 385, 389, 393, 395, 397, 401,
148 405, 409, 411, 413, 417, 421, 425, 427, 429, 433, 437, 441,
149 443, 445, 449, 453, 457, 459, 461, 465, 469, 473, 475, 477,
150 481, 485, 489, 491, 493, 495, 497, 499, 501, 503, 505, 507,
151 -1
152 ],
153 name = 'tch_afs_12_2',
154 description = [
155 "TCH/AFS 12.2 kbits convolutional code:",
156 "250 bits block, rate 1/2, punctured",
157 "G0/G0 = 1",
158 "G1/G0 = 1 + D + D3 + D4 / 1 + D3 + D4",
159 ]
160 ),
161
162 # TCH_AFS_10_2 definition
163 ConvolutionalCode(
164 210,
165 [
166 ( G1, G3 ),
167 ( G2, G3 ),
168 ( 1, 1 ),
169 ],
170 puncture = [
171 1, 4, 7, 10, 16, 19, 22, 28, 31, 34, 40, 43,
172 46, 52, 55, 58, 64, 67, 70, 76, 79, 82, 88, 91,
173 94, 100, 103, 106, 112, 115, 118, 124, 127, 130, 136, 139,
174 142, 148, 151, 154, 160, 163, 166, 172, 175, 178, 184, 187,
175 190, 196, 199, 202, 208, 211, 214, 220, 223, 226, 232, 235,
176 238, 244, 247, 250, 256, 259, 262, 268, 271, 274, 280, 283,
177 286, 292, 295, 298, 304, 307, 310, 316, 319, 322, 325, 328,
178 331, 334, 337, 340, 343, 346, 349, 352, 355, 358, 361, 364,
179 367, 370, 373, 376, 379, 382, 385, 388, 391, 394, 397, 400,
180 403, 406, 409, 412, 415, 418, 421, 424, 427, 430, 433, 436,
181 439, 442, 445, 448, 451, 454, 457, 460, 463, 466, 469, 472,
182 475, 478, 481, 484, 487, 490, 493, 496, 499, 502, 505, 508,
183 511, 514, 517, 520, 523, 526, 529, 532, 535, 538, 541, 544,
184 547, 550, 553, 556, 559, 562, 565, 568, 571, 574, 577, 580,
185 583, 586, 589, 592, 595, 598, 601, 604, 607, 609, 610, 613,
186 616, 619, 621, 622, 625, 627, 628, 631, 633, 634, 636, 637,
187 639, 640, -1
188 ],
189 name = 'tch_afs_10_2',
190 description = [
191 "TCH/AFS 10.2 kbits convolutional code:",
192 "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
193 "G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4",
194 "G3/G3 = 1",
195 ]
196 ),
197
198 # TCH_AFS_7_95 definition
199 ConvolutionalCode(
200 165,
201 [
202 ( 1, 1 ),
203 ( G5, G4 ),
204 ( G6, G4 ),
205 ],
206 puncture = [
207 1, 2, 4, 5, 8, 22, 70, 118, 166, 214, 262, 310,
208 317, 319, 325, 332, 334, 341, 343, 349, 356, 358, 365, 367,
209 373, 380, 382, 385, 389, 391, 397, 404, 406, 409, 413, 415,
210 421, 428, 430, 433, 437, 439, 445, 452, 454, 457, 461, 463,
211 469, 476, 478, 481, 485, 487, 490, 493, 500, 502, 503, 505,
212 506, 508, 509, 511, 512, -1
213 ],
214 name = 'tch_afs_7_95',
215 description = [
216 "TCH/AFS 7.95 kbits convolutional code:",
217 "G4/G4 = 1",
218 "G5/G4 = 1 + D + D4 + D6 / 1 + D2 + D3 + D5 + D6",
219 "G6/G4 = 1 + D + D2 + D3 + D4 + D6 / 1 + D2 + D3 + D5 + D6",
220 ]
221 ),
222
223 # TCH_AFS_7_4 definition
224 ConvolutionalCode(
225 154,
226 [
227 ( G1, G3 ),
228 ( G2, G3 ),
229 ( 1, 1 ),
230 ],
231 puncture = [
232 0, 355, 361, 367, 373, 379, 385, 391, 397, 403, 409, 415,
233 421, 427, 433, 439, 445, 451, 457, 460, 463, 466, 468, 469,
234 471, 472, -1
235 ],
236 name = 'tch_afs_7_4',
237 description = [
238 "TCH/AFS 7.4 kbits convolutional code:",
239 "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
240 "G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4",
241 "G3/G3 = 1",
242 ]
243 ),
244
245 # TCH_AFS_6_7 definition
246 ConvolutionalCode(
247 140,
248 [
249 ( G1, G3 ),
250 ( G2, G3 ),
251 ( 1, 1 ),
252 ( 1, 1 ),
253 ],
254 puncture = [
255 1, 3, 7, 11, 15, 27, 39, 55, 67, 79, 95, 107,
256 119, 135, 147, 159, 175, 187, 199, 215, 227, 239, 255, 267,
257 279, 287, 291, 295, 299, 303, 307, 311, 315, 319, 323, 327,
258 331, 335, 339, 343, 347, 351, 355, 359, 363, 367, 369, 371,
259 375, 377, 379, 383, 385, 387, 391, 393, 395, 399, 401, 403,
260 407, 409, 411, 415, 417, 419, 423, 425, 427, 431, 433, 435,
261 439, 441, 443, 447, 449, 451, 455, 457, 459, 463, 465, 467,
262 471, 473, 475, 479, 481, 483, 487, 489, 491, 495, 497, 499,
263 503, 505, 507, 511, 513, 515, 519, 521, 523, 527, 529, 531,
264 535, 537, 539, 543, 545, 547, 549, 551, 553, 555, 557, 559,
265 561, 563, 565, 567, 569, 571, 573, 575, -1
266 ],
267 name = 'tch_afs_6_7',
268 description = [
269 "TCH/AFS 6.7 kbits convolutional code:",
270 "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
271 "G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4",
272 "G3/G3 = 1",
273 "G3/G3 = 1",
274 ]
275 ),
276
277 # TCH_AFS_5_9 definition
278 ConvolutionalCode(
279 124,
280 [
281 ( G4, G6 ),
282 ( G5, G6 ),
283 ( 1, 1),
284 ( 1, 1),
285 ],
286 puncture = [
287 0, 1, 3, 5, 7, 11, 15, 31, 47, 63, 79, 95,
288 111, 127, 143, 159, 175, 191, 207, 223, 239, 255, 271, 287,
289 303, 319, 327, 331, 335, 343, 347, 351, 359, 363, 367, 375,
290 379, 383, 391, 395, 399, 407, 411, 415, 423, 427, 431, 439,
291 443, 447, 455, 459, 463, 467, 471, 475, 479, 483, 487, 491,
292 495, 499, 503, 507, 509, 511, 512, 513, 515, 516, 517, 519,
293 -1
294 ],
295 name = 'tch_afs_5_9',
296 description = [
297 "TCH/AFS 5.9 kbits convolutional code:",
298 "124 bits",
299 "G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6",
300 "G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6",
301 "G6/G6 = 1",
302 "G6/G6 = 1",
303 ]
304 ),
305
306 # TCH_AFS_5_15 definition
307 ConvolutionalCode(
308 109,
309 [
310 ( G1, G3 ),
311 ( G1, G3 ),
312 ( G2, G3 ),
313 ( 1, 1 ),
314 ( 1, 1 ),
315 ],
316 puncture = [
317 0, 4, 5, 9, 10, 14, 15, 20, 25, 30, 35, 40,
318 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160,
319 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280,
320 290, 300, 310, 315, 320, 325, 330, 334, 335, 340, 344, 345,
321 350, 354, 355, 360, 364, 365, 370, 374, 375, 380, 384, 385,
322 390, 394, 395, 400, 404, 405, 410, 414, 415, 420, 424, 425,
323 430, 434, 435, 440, 444, 445, 450, 454, 455, 460, 464, 465,
324 470, 474, 475, 480, 484, 485, 490, 494, 495, 500, 504, 505,
325 510, 514, 515, 520, 524, 525, 529, 530, 534, 535, 539, 540,
326 544, 545, 549, 550, 554, 555, 559, 560, 564, -1
327 ],
328 name = 'tch_afs_5_15',
329 description = [
330 "TCH/AFS 5.15 kbits convolutional code:",
331 "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
332 "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
333 "G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4",
334 "G3/G3 = 1",
335 "G3/G3 = 1",
336 ]
337 ),
338
339 # TCH_AFS_4_75 definition
340 ConvolutionalCode(
341 101,
342 [
343 ( G4, G6 ),
344 ( G4, G6 ),
345 ( G5, G6 ),
346 ( 1, 1 ),
347 ( 1, 1 ),
348 ],
349 puncture = [
350 0, 1, 2, 4, 5, 7, 9, 15, 25, 35, 45, 55,
351 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, 165, 175,
352 185, 195, 205, 215, 225, 235, 245, 255, 265, 275, 285, 295,
353 305, 315, 325, 335, 345, 355, 365, 375, 385, 395, 400, 405,
354 410, 415, 420, 425, 430, 435, 440, 445, 450, 455, 459, 460,
355 465, 470, 475, 479, 480, 485, 490, 495, 499, 500, 505, 509,
356 510, 515, 517, 519, 520, 522, 524, 525, 526, 527, 529, 530,
357 531, 532, 534, -1
358 ],
359 name = 'tch_afs_4_75',
360 description = [
361 "TCH/AFS 4.75 kbits convolutional code:",
362 "G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6",
363 "G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6",
364 "G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6",
365 "G6/G6 = 1",
366 "G6/G6 = 1",
367 ]
368 ),
369
370 # TCH_FR definition
371 ConvolutionalCode(
372 185,
373 shared_polys["xcch"],
374 name = "tch_fr",
375 description = ["TCH/F convolutional code"]
376 ),
377
378 # TCH_HR definition
379 ConvolutionalCode(
380 98,
381 [
382 ( G4, 1 ),
383 ( G5, 1 ),
384 ( G6, 1 ),
385 ],
386 puncture = [
387 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34,
388 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70,
389 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106,
390 109, 112, 115, 118, 121, 124, 127, 130, 133, 136, 139, 142,
391 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178,
392 181, 184, 187, 190, 193, 196, 199, 202, 205, 208, 211, 214,
393 217, 220, 223, 226, 229, 232, 235, 238, 241, 244, 247, 250,
394 253, 256, 259, 262, 265, 268, 271, 274, 277, 280, 283, 295,
395 298, 301, 304, 307, 310, -1,
396 ],
397 name = "tch_hr",
398 description = ["TCH/H convolutional code"]
399 ),
400
401 # TCH_AHS_7_95 definition
402 ConvolutionalCode(
403 129,
404 [
405 ( 1, 1 ),
406 ( G1, G0 ),
407 ],
408 puncture = [
409 1, 3, 5, 7, 11, 15, 19, 23, 27, 31, 35, 43,
410 47, 51, 55, 59, 63, 67, 71, 79, 83, 87, 91, 95,
411 99, 103, 107, 115, 119, 123, 127, 131, 135, 139, 143, 151,
412 155, 159, 163, 167, 171, 175, 177, 179, 183, 185, 187, 191,
413 193, 195, 197, 199, 203, 205, 207, 211, 213, 215, 219, 221,
414 223, 227, 229, 231, 233, 235, 239, 241, 243, 247, 249, 251,
415 255, 257, 259, 261, 263, 265, -1,
416 ],
417 name = "tch_ahs_7_95",
418 description = ["TCH/AHS 7.95 kbits convolutional code"]
419 ),
420
421 # TCH_AHS_7_4 definition
422 ConvolutionalCode(
423 126,
424 [
425 ( 1, 1 ),
426 ( G1, G0 ),
427 ],
428 puncture = [
429 1, 3, 7, 11, 19, 23, 27, 35, 39, 43, 51, 55,
430 59, 67, 71, 75, 83, 87, 91, 99, 103, 107, 115, 119,
431 123, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171,
432 175, 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, 219,
433 221, 223, 227, 229, 231, 235, 237, 239, 243, 245, 247, 251,
434 253, 255, 257, 259, -1,
435 ],
436 name = "tch_ahs_7_4",
437 description = ["TCH/AHS 7.4 kbits convolutional code"]
438 ),
439
440 # TCH_AHS_6_7 definition
441 ConvolutionalCode(
442 116,
443 [
444 ( 1, 1 ),
445 ( G1, G0 ),
446 ],
447 puncture = [
448 1, 3, 9, 19, 29, 39, 49, 59, 69, 79, 89, 99,
449 109, 119, 129, 139, 149, 159, 167, 169, 177, 179, 187, 189,
450 197, 199, 203, 207, 209, 213, 217, 219, 223, 227, 229, 231,
451 233, 235, 237, 239, -1,
452 ],
453 name = "tch_ahs_6_7",
454 description = ["TCH/AHS 6.7 kbits convolutional code"]
455 ),
456
457 # TCH_AHS_5_9 definition
458 ConvolutionalCode(
459 108,
460 [
461 ( 1, 1 ),
462 ( G1, G0 ),
463 ],
464 puncture = [
465 1, 15, 71, 127, 139, 151, 163, 175, 187, 195, 203, 211,
466 215, 219, 221, 223, -1,
467 ],
468 name = "tch_ahs_5_9",
469 description = ["TCH/AHS 5.9 kbits convolutional code"]
470 ),
471
472 # TCH_AHS_5_15 definition
473 ConvolutionalCode(
474 97,
475 [
476 ( G1, G3 ),
477 ( G2, G3 ),
478 ( 1, 1 ),
479 ],
480 puncture = [
481 0, 1, 3, 4, 6, 9, 12, 15, 18, 21, 27, 33,
482 39, 45, 51, 54, 57, 63, 69, 75, 81, 87, 90, 93,
483 99, 105, 111, 117, 123, 126, 129, 135, 141, 147, 153, 159,
484 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195,
485 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231,
486 234, 237, 240, 243, 244, 246, 249, 252, 255, 256, 258, 261,
487 264, 267, 268, 270, 273, 276, 279, 280, 282, 285, 288, 289,
488 291, 294, 295, 297, 298, 300, 301, -1,
489 ],
490 name = "tch_ahs_5_15",
491 description = ["TCH/AHS 5.15 kbits convolutional code"]
492 ),
493
494 # TCH_AHS_4_75 definition
495 ConvolutionalCode(
496 89,
497 [
498 ( 1, 1 ),
499 ( G5, G4 ),
500 ( G6, G4 ),
501 ],
502 puncture = [
503 1, 2, 4, 5, 7, 8, 10, 13, 16, 22, 28, 34,
504 40, 46, 52, 58, 64, 70, 76, 82, 88, 94, 100, 106,
505 112, 118, 124, 130, 136, 142, 148, 151, 154, 160, 163, 166,
506 172, 175, 178, 184, 187, 190, 196, 199, 202, 208, 211, 214,
507 220, 223, 226, 232, 235, 238, 241, 244, 247, 250, 253, 256,
508 259, 262, 265, 268, 271, 274, 275, 277, 278, 280, 281, 283,
509 284, -1,
510 ],
511 name = "tch_ahs_4_75",
512 description = ["TCH/AHS 4.75 kbits convolutional code"]
513 ),
514
515 # EDGE MCS1_DL_HDR definition
516 ConvolutionalCode(
517 36,
518 shared_polys["mcs"],
519 name = "mcs1_dl_hdr",
520 term_type = "CONV_TERM_TAIL_BITING",
521 description = [
522 "EDGE MCS-1 DL header convolutional code:",
523 "42 bits blocks, rate 1/3, k = 7",
524 "G4 = 1 + D2 + D3 + D5 + D6",
525 "G7 = 1 + D + D2 + D3 + D6",
526 "G5 = 1 + D + D4 + D6"
527 ]
528 ),
529
530 # EDGE MCS1_UL_HDR definition
531 ConvolutionalCode(
532 39,
533 shared_polys["mcs"],
534 name = "mcs1_ul_hdr",
535 term_type = "CONV_TERM_TAIL_BITING",
536 description = [
537 "EDGE MCS-1 UL header convolutional code:",
538 "45 bits blocks, rate 1/3, k = 7",
539 "G4 = 1 + D2 + D3 + D5 + D6",
540 "G7 = 1 + D + D2 + D3 + D6",
541 "G5 = 1 + D + D4 + D6"
542 ]
543 ),
544
545 # EDGE MCS1 definition
546 ConvolutionalCode(
547 190,
548 shared_polys["mcs"],
549 name = "mcs1",
550 description = [
551 "EDGE MCS-1 data convolutional code:",
552 "196 bits blocks, rate 1/3, k = 7",
553 "G4 = 1 + D2 + D3 + D5 + D6",
554 "G7 = 1 + D + D2 + D3 + D6",
555 "G5 = 1 + D + D4 + D6"
556 ]
557 ),
558
559 # EDGE MCS2 definition
560 ConvolutionalCode(
561 238,
562 shared_polys["mcs"],
563 name = "mcs2",
564 description = [
565 "EDGE MCS-2 data convolutional code:",
566 "244 bits blocks, rate 1/3, k = 7",
567 "G4 = 1 + D2 + D3 + D5 + D6",
568 "G7 = 1 + D + D2 + D3 + D6",
569 "G5 = 1 + D + D4 + D6"
570 ]
571 ),
572
573 # EDGE MCS3 definition
574 ConvolutionalCode(
575 310,
576 shared_polys["mcs"],
577 name = "mcs3",
578 description = [
579 "EDGE MCS-3 data convolutional code:",
580 "316 bits blocks, rate 1/3, k = 7",
581 "G4 = 1 + D2 + D3 + D5 + D6",
582 "G7 = 1 + D + D2 + D3 + D6",
583 "G5 = 1 + D + D4 + D6"
584 ]
585 ),
586
587 # EDGE MCS4 definition
588 ConvolutionalCode(
589 366,
590 shared_polys["mcs"],
591 name = "mcs4",
592 description = [
593 "EDGE MCS-4 data convolutional code:",
594 "372 bits blocks, rate 1/3, k = 7",
595 "G4 = 1 + D2 + D3 + D5 + D6",
596 "G7 = 1 + D + D2 + D3 + D6",
597 "G5 = 1 + D + D4 + D6"
598 ]
599 ),
600
601 # EDGE MCS5_DL_HDR definition
602 ConvolutionalCode(
603 33,
604 shared_polys["mcs"],
605 name = "mcs5_dl_hdr",
606 term_type = "CONV_TERM_TAIL_BITING",
607 description = [
608 "EDGE MCS-5 DL header convolutional code:",
609 "39 bits blocks, rate 1/3, k = 7",
610 "G4 = 1 + D2 + D3 + D5 + D6",
611 "G7 = 1 + D + D2 + D3 + D6",
612 "G5 = 1 + D + D4 + D6"
613 ]
614 ),
615
616 # EDGE MCS5_UL_HDR definition
617 ConvolutionalCode(
618 45,
619 shared_polys["mcs"],
620 name = "mcs5_ul_hdr",
621 term_type = "CONV_TERM_TAIL_BITING",
622 description = [
623 "EDGE MCS-5 UL header convolutional code:",
624 "51 bits blocks, rate 1/3, k = 7",
625 "G4 = 1 + D2 + D3 + D5 + D6",
626 "G7 = 1 + D + D2 + D3 + D6",
627 "G5 = 1 + D + D4 + D6"
628 ]
629 ),
630
631 # EDGE MCS5 definition
632 ConvolutionalCode(
633 462,
634 shared_polys["mcs"],
635 name = "mcs5",
636 description = [
637 "EDGE MCS-5 data convolutional code:",
638 "468 bits blocks, rate 1/3, k = 7",
639 "G4 = 1 + D2 + D3 + D5 + D6",
640 "G7 = 1 + D + D2 + D3 + D6",
641 "G5 = 1 + D + D4 + D6"
642 ]
643 ),
644
645 # EDGE MCS6 definition
646 ConvolutionalCode(
647 606,
648 shared_polys["mcs"],
649 name = "mcs6",
650 description = [
651 "EDGE MCS-6 data convolutional code:",
652 "612 bits blocks, rate 1/3, k = 7",
653 "G4 = 1 + D2 + D3 + D5 + D6",
654 "G7 = 1 + D + D2 + D3 + D6",
655 "G5 = 1 + D + D4 + D6"
656 ]
657 ),
658
659 # EDGE MCS7_DL_HDR definition
660 ConvolutionalCode(
661 45,
662 shared_polys["mcs"],
663 name = "mcs7_dl_hdr",
664 term_type = "CONV_TERM_TAIL_BITING",
665 description = [
666 "EDGE MCS-7 DL header convolutional code:",
667 "51 bits blocks, rate 1/3, k = 7",
668 "G4 = 1 + D2 + D3 + D5 + D6",
669 "G7 = 1 + D + D2 + D3 + D6",
670 "G5 = 1 + D + D4 + D6"
671 ]
672 ),
673
674 # EDGE MCS7_UL_HDR definition
675 ConvolutionalCode(
676 54,
677 shared_polys["mcs"],
678 name = "mcs7_ul_hdr",
679 term_type = "CONV_TERM_TAIL_BITING",
680 description = [
681 "EDGE MCS-7 UL header convolutional code:",
682 "60 bits blocks, rate 1/3, k = 7",
683 "G4 = 1 + D2 + D3 + D5 + D6",
684 "G7 = 1 + D + D2 + D3 + D6",
685 "G5 = 1 + D + D4 + D6"
686 ]
687 ),
688
689 # EDGE MCS7 definition
690 ConvolutionalCode(
691 462,
692 shared_polys["mcs"],
693 name = "mcs7",
694 description = [
695 "EDGE MCS-7 data convolutional code:",
696 "468 bits blocks, rate 1/3, k = 7",
697 "G4 = 1 + D2 + D3 + D5 + D6",
698 "G7 = 1 + D + D2 + D3 + D6",
699 "G5 = 1 + D + D4 + D6"
700 ]
701 ),
702
703 # EDGE MCS8 definition
704 ConvolutionalCode(
705 558,
706 shared_polys["mcs"],
707 name = "mcs8",
708 description = [
709 "EDGE MCS-8 data convolutional code:",
710 "564 bits blocks, rate 1/3, k = 7",
711 "G4 = 1 + D2 + D3 + D5 + D6",
712 "G7 = 1 + D + D2 + D3 + D6",
713 "G5 = 1 + D + D4 + D6"
714 ]
715 ),
716
717 # EDGE MCS9 definition
718 ConvolutionalCode(
719 606,
720 shared_polys["mcs"],
721 name = "mcs9",
722 description = [
723 "EDGE MCS-9 data convolutional code:",
724 "612 bits blocks, rate 1/3, k = 7",
725 "G4 = 1 + D2 + D3 + D5 + D6",
726 "G7 = 1 + D + D2 + D3 + D6",
727 "G5 = 1 + D + D4 + D6"
728 ]
729 ),
730]