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
This commit is contained in:
Philipp Maier 2020-02-28 14:27:10 +01:00
parent 1c46d19e43
commit 31c29ea051
3 changed files with 28 additions and 0 deletions

View File

@ -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;

View File

@ -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

View File

@ -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,