aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2020-02-28 14:27:10 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2020-03-09 13:40:27 +0100
commit31c29ea0517904cd588654426fb133aeb34af506 (patch)
tree5a3093db63c36e1e5d8e174089c1497c7cc9cd4b
parent1c46d19e4316ffd898d505559b2af90e6b930e27 (diff)
conv: add convolutional coder for AMR SID UPDATE frames
AMR SID update frames are protected using an 1/4 convolutional coder, wich is similar to the one used with 6,7 kbit voice frames. Except that there is no puncturing and the length is different. Change-Id: Ia35ed4178a7f0d816052b7e5d6478b93a1d9744f Related: OS#2978
-rw-r--r--src/gsm/libosmogsm.map1
-rw-r--r--tests/conv/conv_gsm0503_test.ok8
-rw-r--r--utils/conv_codes_gsm.py19
3 files changed, 28 insertions, 0 deletions
diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map
index efca0a5f..a518b289 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -135,6 +135,7 @@ gsm0503_tch_ahs_6_7;
gsm0503_tch_ahs_5_9;
gsm0503_tch_ahs_5_15;
gsm0503_tch_ahs_4_75;
+gsm0503_tch_axs_sid_update;
gsm0503_mcs1_dl_hdr;
gsm0503_mcs1_ul_hdr;
gsm0503_mcs1;
diff --git a/tests/conv/conv_gsm0503_test.ok b/tests/conv/conv_gsm0503_test.ok
index 39480ca0..764bd436 100644
--- a/tests/conv/conv_gsm0503_test.ok
+++ b/tests/conv/conv_gsm0503_test.ok
@@ -190,6 +190,14 @@
[..] Encoding / Decoding cycle : OK
[..] Encoding / Decoding cycle : OK
+[+] Testing: gsm0503_tch_axs_sid_update
+[.] Input length : ret = 49 exp = 49 -> OK
+[.] Output length : ret = 212 exp = 212 -> OK
+[.] Random vector checks:
+[..] Encoding / Decoding cycle : OK
+[..] Encoding / Decoding cycle : OK
+[..] Encoding / Decoding cycle : OK
+
[+] Testing: gsm0503_mcs1_dl_hdr
[.] Input length : ret = 36 exp = 36 -> OK
[.] Output length : ret = 108 exp = 108 -> OK
diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py
index e189985a..42f340b9 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -522,6 +522,25 @@ conv_codes = [
description = ["TCH/AHS 4.75 kbits convolutional code"]
),
+ # TCH_AXS SID UPDATE definition
+ ConvolutionalCode(
+ 49,
+ [
+ ( G1, G3 ),
+ ( G2, G3 ),
+ ( 1, 1 ),
+ ( 1, 1 ),
+ ],
+ name = 'tch_axs_sid_update',
+ description = [
+ "TCH/AFS and TCH/AHS SID UPDATE convolutional code:",
+ "G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4",
+ "G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4",
+ "G3/G3 = 1",
+ "G3/G3 = 1",
+ ]
+ ),
+
# EDGE MCS1_DL_HDR definition
ConvolutionalCode(
36,