laforge has uploaded this change for review.
conv_codes_gsm: Cosmetic improvements
* Fix mixed tab/space indent
* Switch from 05.03 to 45.003
* give the 3GPP spec / section for each code
* make the "magic number" of input bits to the convolutional code
match the spec. The code always subtracts any known-zero tail bits
as this improves decoding.
Change-Id: I7cc6056114f997b5d4febf612ecd347b2d6d69b1
---
M utils/conv_codes_gsm.py
1 file changed, 41 insertions(+), 41 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/30261/1
diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py
index 42f340b..cee5efc 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -4,7 +4,7 @@
from conv_gen import ConvolutionalCode
from conv_gen import poly
-# Polynomials according to 3GPP TS 05.03 Annex B
+# Polynomials according to 3GPP TS 45.003 Annex B
G0 = poly(0, 3, 4)
G1 = poly(0, 1, 3, 4)
G2 = poly(0, 2, 4)
@@ -29,9 +29,9 @@
# Convolutional code definitions
conv_codes = [
- # xCCH definition
+ # xCCH definition, 3GPP TS 45.003 Section 4.1
ConvolutionalCode(
- 224,
+ 228 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
name = "xcch",
description = [
@@ -42,7 +42,7 @@
]
),
- # RACH definition
+ # RACH definition, 3GPP TS 45.003 Section 4.6.1
ConvolutionalCode(
14,
shared_polys["xcch"],
@@ -50,7 +50,7 @@
description = ["RACH convolutional code"]
),
- # Extended RACH definition from 3GPP TS 45.003 ยง5.3.2
+ # Extended RACH definition, 3GPP TS 45.003 Section 5.3.2
ConvolutionalCode(
17,
shared_polys["xcch"],
@@ -59,7 +59,7 @@
description = ["Extended RACH (11 bit) convolutional code"]
),
- # SCH definition
+ # SCH definition, 3GPP TS 45.003 Section 4.7
ConvolutionalCode(
35,
shared_polys["xcch"],
@@ -67,9 +67,9 @@
description = ["SCH convolutional code"]
),
- # CS2 definition
+ # CS2 definition, 3GPP TS 45.003 Section 5.1.2
ConvolutionalCode(
- 290,
+ 294 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
puncture = [
15, 19, 23, 27, 31, 35, 43, 47, 51, 55, 59, 63, 67, 71,
@@ -91,9 +91,9 @@
]
),
- # CS3 definition
+ # CS3 definition. 3GPP TS 45.003 Section 5.1.3
ConvolutionalCode(
- 334,
+ 338 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
puncture = [
15, 17, 21, 23, 27, 29, 33, 35, 39, 41, 45, 47, 51, 53,
@@ -123,7 +123,7 @@
# CS2 definition (non-punctured)
ConvolutionalCode(
- 290,
+ 294 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
name = "cs2_np",
description = [
@@ -135,7 +135,7 @@
# CS3 definition (non-punctured)
ConvolutionalCode(
- 334,
+ 338 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
name = "cs3_np",
description = [
@@ -377,17 +377,17 @@
]
),
- # TCH_FR definition
+ # TCH_FR definition, 3GPP TS 45.003 Section 3.1.2
ConvolutionalCode(
- 185,
+ 189 - 4, # 4 tail bits are known to be zero
shared_polys["xcch"],
name = "tch_fr",
description = ["TCH/F convolutional code"]
),
- # TCH_HR definition
+ # TCH_HR definition, 3GPP TS 45.003 Section 3.2
ConvolutionalCode(
- 98,
+ 98 - 6, # 6 tail bits are known to be zero
[
( G4, 1 ),
( G5, 1 ),
@@ -522,7 +522,7 @@
description = ["TCH/AHS 4.75 kbits convolutional code"]
),
- # TCH_AXS SID UPDATE definition
+ # TCH_AXS SID UPDATE definition, 3GPP TS 45.003 Section 3.9.1 + 3.10.1
ConvolutionalCode(
49,
[
@@ -541,7 +541,7 @@
]
),
- # EDGE MCS1_DL_HDR definition
+ # EDGE MCS1_DL_HDR definition, 3GPP TS 45.003 Section 5.1.5.1.3
ConvolutionalCode(
36,
shared_polys["mcs"],
@@ -556,7 +556,7 @@
]
),
- # EDGE MCS1_UL_HDR definition
+ # EDGE MCS1_UL_HDR definition, 3GPP TS 45.003 Section 5.1.5.2.2
ConvolutionalCode(
39,
shared_polys["mcs"],
@@ -571,9 +571,9 @@
]
),
- # EDGE MCS1 definition
+ # EDGE MCS1 definition, 3GPP TS 45.003 Section 5.1.5.1.4
ConvolutionalCode(
- 190,
+ 190 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs1",
description = [
@@ -585,9 +585,9 @@
]
),
- # EDGE MCS2 definition
+ # EDGE MCS2 definition, 3GPP TS 45.003 Section 5.1.6.1.4
ConvolutionalCode(
- 238,
+ 238 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs2",
description = [
@@ -599,9 +599,9 @@
]
),
- # EDGE MCS3 definition
+ # EDGE MCS3 definition, 3GPP TS 45.003 Section 5.1.7.1.4
ConvolutionalCode(
- 310,
+ 316 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs3",
description = [
@@ -613,9 +613,9 @@
]
),
- # EDGE MCS4 definition
+ # EDGE MCS4 definition, 3GPP TS 45.003 Section 5.1.8.1.4
ConvolutionalCode(
- 366,
+ 372 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs4",
description = [
@@ -627,7 +627,7 @@
]
),
- # EDGE MCS5_DL_HDR definition
+ # EDGE MCS5_DL_HDR definition, 3GPP TS 45.003 Section 5.1.9.1.3
ConvolutionalCode(
33,
shared_polys["mcs"],
@@ -642,7 +642,7 @@
]
),
- # EDGE MCS5_UL_HDR definition
+ # EDGE MCS5_UL_HDR definition, 3GPP TS 45.003 Section 5.1.9.2.3
ConvolutionalCode(
45,
shared_polys["mcs"],
@@ -657,9 +657,9 @@
]
),
- # EDGE MCS5 definition
+ # EDGE MCS5 definition, 3GPP TS 45.003 Section 5.1.9.1.4
ConvolutionalCode(
- 462,
+ 468 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs5",
description = [
@@ -671,9 +671,9 @@
]
),
- # EDGE MCS6 definition
+ # EDGE MCS6 definition, 3GPP TS 45.003 Section 5.1.10.1.4
ConvolutionalCode(
- 606,
+ 612 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs6",
description = [
@@ -685,7 +685,7 @@
]
),
- # EDGE MCS7_DL_HDR definition
+ # EDGE MCS7_DL_HDR definition, 3GPP TS 45.003 Section 5.1.11.1.3
ConvolutionalCode(
45,
shared_polys["mcs"],
@@ -700,7 +700,7 @@
]
),
- # EDGE MCS7_UL_HDR definition
+ # EDGE MCS7_UL_HDR definition, 3GPP TS 45.003 Section 5.1.11.2.3
ConvolutionalCode(
54,
shared_polys["mcs"],
@@ -715,9 +715,9 @@
]
),
- # EDGE MCS7 definition
+ # EDGE MCS7 definition, 3GPP TS 45.003 Section 5.1.11.1.4
ConvolutionalCode(
- 462,
+ 468 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs7",
description = [
@@ -729,9 +729,9 @@
]
),
- # EDGE MCS8 definition
+ # EDGE MCS8 definition, 3GPP TS 45.003 Section 5.1.12.1.4
ConvolutionalCode(
- 558,
+ 564 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs8",
description = [
@@ -743,9 +743,9 @@
]
),
- # EDGE MCS9 definition
+ # EDGE MCS9 definition, 3GPP TS 45.003 Section 5.1.13.1.4
ConvolutionalCode(
- 606,
+ 612 - 6, # 6 tail bits are known to be zero
shared_polys["mcs"],
name = "mcs9",
description = [
To view, visit change 30261. To unsubscribe, or for help writing mail filters, visit settings.