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
diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map
index efca0a5..a518b28 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -135,6 +135,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 39480ca..764bd43 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 e189985..42f340b 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -522,6 +522,25 @@
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,