From 31c29ea0517904cd588654426fb133aeb34af506 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Fri, 28 Feb 2020 14:27:10 +0100 Subject: 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 --- src/gsm/libosmogsm.map | 1 + tests/conv/conv_gsm0503_test.ok | 8 ++++++++ utils/conv_codes_gsm.py | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+) 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, -- cgit v1.2.3