aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2023-07-07 15:57:32 +0200
committerSylvain Munaut <tnt@246tNt.com>2023-07-07 16:06:26 +0200
commitc87c6a3a7367e4a5ec14fb91b3470d475929eb0f (patch)
tree68ae07af93698d692b1fc4d1ce07781c90cfc867 /utils
parentc27a8ae3d915ae93505a040d060f4f619a19ce94 (diff)
gsm: Improve the TCH/H2.4 coding routines
The spec isn't super clear, but basically the conv coding is done in two blocks of 72 bits. The way it's currently implemented isn't "wrong" in the sense it will produce correct output given no bit errors, but it's better to do the decoding in two blocks because this then it makes use of the fact we know the state of the encoder after the 72 bits, which improves the corrective ability of the code. Signed-off-by: Sylvain Munaut <tnt@246tNt.com> Change-Id: Id2551ffe2a0ebfd0a6df0e1d288a6f0af7e1eda7
Diffstat (limited to 'utils')
-rw-r--r--utils/conv_codes_gsm.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py
index 62b5a0b3..24a8ee21 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -66,6 +66,24 @@ conv_codes = [
]
),
+ # TCH/H2.4 definition
+ ConvolutionalCode(
+ 72,
+ [
+ (G1, 1),
+ (G2, 1),
+ (G3, 1),
+ ],
+ name = "tch_h24",
+ description = [
+ "TCH/H2.4 convolutional code:",
+ "72 bits blocks, rate 1/3, k = 5",
+ "G1 = 1 + D + D3 + D4",
+ "G2 = 1 + D2 + D4",
+ "G3 = 1 + D + D2 + D3 + D4",
+ ]
+ ),
+
# TCH/F4.8 definition
ConvolutionalCode(
148,