mirror of https://gerrit.osmocom.org/libosmocore
utils/conv_gen.py: add EDGE MCS 1-9 definitions
Change-Id: Ie1452342f524a8b60f2babc07398a1d9c9e06aa3
This commit is contained in:
parent
84fc2ce210
commit
a6b5216ab4
|
@ -112,3 +112,63 @@ extern const struct osmo_conv_code gsm0503_tch_ahs_5_15;
|
|||
/*! \brief structure describing convolutional code TCH/AHS 4.75
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_tch_ahs_4_75;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-1 DL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs1_dl_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-1 UL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs1_ul_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-1
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs1;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-2
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs2;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-3
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs3;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-4
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs4;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-5 DL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs5_dl_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-5 UL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs5_ul_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-5
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs5;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-6
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs6;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-7 DL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs7_dl_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-7 UL HDR
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs7_ul_hdr;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-7
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs7;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-8
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs8;
|
||||
|
||||
/*! \brief structure describing convolutional code EDGE MCS-9
|
||||
*/
|
||||
extern const struct osmo_conv_code gsm0503_mcs9;
|
||||
|
|
|
@ -91,6 +91,21 @@ gsm0503_tch_ahs_6_7;
|
|||
gsm0503_tch_ahs_5_9;
|
||||
gsm0503_tch_ahs_5_15;
|
||||
gsm0503_tch_ahs_4_75;
|
||||
gsm0503_mcs1_dl_hdr;
|
||||
gsm0503_mcs1_ul_hdr;
|
||||
gsm0503_mcs1;
|
||||
gsm0503_mcs2;
|
||||
gsm0503_mcs3;
|
||||
gsm0503_mcs4;
|
||||
gsm0503_mcs5_dl_hdr;
|
||||
gsm0503_mcs5_ul_hdr;
|
||||
gsm0503_mcs5;
|
||||
gsm0503_mcs6;
|
||||
gsm0503_mcs7_dl_hdr;
|
||||
gsm0503_mcs7_ul_hdr;
|
||||
gsm0503_mcs7;
|
||||
gsm0503_mcs8;
|
||||
gsm0503_mcs9;
|
||||
|
||||
gsm0808_att_tlvdef;
|
||||
gsm0808_bssap_name;
|
||||
|
|
|
@ -28,12 +28,13 @@ import sys, os, math
|
|||
class ConvolutionalCode(object):
|
||||
|
||||
def __init__(self, block_len, polys, name,
|
||||
description = None, puncture = []):
|
||||
description = None, puncture = [], term_type = None):
|
||||
# Save simple params
|
||||
self.block_len = block_len
|
||||
self.k = 1
|
||||
self.puncture = puncture
|
||||
self.rate_inv = len(polys)
|
||||
self.term_type = term_type
|
||||
|
||||
# Infos
|
||||
self.name = name
|
||||
|
@ -202,6 +203,8 @@ class ConvolutionalCode(object):
|
|||
print >>fi, "\t.N = %d," % self.rate_inv
|
||||
print >>fi, "\t.K = %d," % self.k
|
||||
print >>fi, "\t.len = %d," % self.block_len
|
||||
if self.term_type is not None:
|
||||
print >>fi, "\t.term = %s," % self.term_type
|
||||
print >>fi, "\t.next_output = %s_output," % self.name
|
||||
print >>fi, "\t.next_state = %s_state," % self.name
|
||||
if self.recursive:
|
||||
|
@ -248,6 +251,12 @@ CCH_poly = [
|
|||
( G1, 1 ),
|
||||
]
|
||||
|
||||
MCS_poly = [
|
||||
( G4, 1 ),
|
||||
( G7, 1 ),
|
||||
( G5, 1 ),
|
||||
]
|
||||
|
||||
conv_codes = [
|
||||
# xCCH definition
|
||||
ConvolutionalCode(
|
||||
|
@ -708,6 +717,222 @@ conv_codes = [
|
|||
name = "tch_ahs_4_75",
|
||||
description = ["TCH/AHS 4.75 kbits convolutional code"]
|
||||
),
|
||||
|
||||
# EDGE MCS1_DL_HDR definition
|
||||
ConvolutionalCode(
|
||||
36,
|
||||
MCS_poly,
|
||||
name = "mcs1_dl_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-1 DL header convolutional code:",
|
||||
"42 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS1_UL_HDR definition
|
||||
ConvolutionalCode(
|
||||
39,
|
||||
MCS_poly,
|
||||
name = "mcs1_ul_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-1 UL header convolutional code:",
|
||||
"45 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS1 definition
|
||||
ConvolutionalCode(
|
||||
190,
|
||||
MCS_poly,
|
||||
name = "mcs1",
|
||||
description = [
|
||||
"EDGE MCS-1 data convolutional code:",
|
||||
"196 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS2 definition
|
||||
ConvolutionalCode(
|
||||
238,
|
||||
MCS_poly,
|
||||
name = "mcs2",
|
||||
description = [
|
||||
"EDGE MCS-2 data convolutional code:",
|
||||
"244 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS3 definition
|
||||
ConvolutionalCode(
|
||||
310,
|
||||
MCS_poly,
|
||||
name = "mcs3",
|
||||
description = [
|
||||
"EDGE MCS-3 data convolutional code:",
|
||||
"316 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS4 definition
|
||||
ConvolutionalCode(
|
||||
366,
|
||||
MCS_poly,
|
||||
name = "mcs4",
|
||||
description = [
|
||||
"EDGE MCS-4 data convolutional code:",
|
||||
"372 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS5_DL_HDR definition
|
||||
ConvolutionalCode(
|
||||
33,
|
||||
MCS_poly,
|
||||
name = "mcs5_dl_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-5 DL header convolutional code:",
|
||||
"39 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS5_UL_HDR definition
|
||||
ConvolutionalCode(
|
||||
45,
|
||||
MCS_poly,
|
||||
name = "mcs5_ul_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-5 UL header convolutional code:",
|
||||
"51 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS5 definition
|
||||
ConvolutionalCode(
|
||||
462,
|
||||
MCS_poly,
|
||||
name = "mcs5",
|
||||
description = [
|
||||
"EDGE MCS-5 data convolutional code:",
|
||||
"468 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS6 definition
|
||||
ConvolutionalCode(
|
||||
606,
|
||||
MCS_poly,
|
||||
name = "mcs6",
|
||||
description = [
|
||||
"EDGE MCS-6 data convolutional code:",
|
||||
"612 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS7_DL_HDR definition
|
||||
ConvolutionalCode(
|
||||
45,
|
||||
MCS_poly,
|
||||
name = "mcs7_dl_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-7 DL header convolutional code:",
|
||||
"51 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS7_UL_HDR definition
|
||||
ConvolutionalCode(
|
||||
54,
|
||||
MCS_poly,
|
||||
name = "mcs7_ul_hdr",
|
||||
term_type = "CONV_TERM_TAIL_BITING",
|
||||
description = [
|
||||
"EDGE MCS-7 UL header convolutional code:",
|
||||
"60 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS7 definition
|
||||
ConvolutionalCode(
|
||||
462,
|
||||
MCS_poly,
|
||||
name = "mcs7",
|
||||
description = [
|
||||
"EDGE MCS-7 data convolutional code:",
|
||||
"468 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS8 definition
|
||||
ConvolutionalCode(
|
||||
558,
|
||||
MCS_poly,
|
||||
name = "mcs8",
|
||||
description = [
|
||||
"EDGE MCS-8 data convolutional code:",
|
||||
"564 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
|
||||
# EDGE MCS9 definition
|
||||
ConvolutionalCode(
|
||||
606,
|
||||
MCS_poly,
|
||||
name = "mcs9",
|
||||
description = [
|
||||
"EDGE MCS-9 data convolutional code:",
|
||||
"612 bits blocks, rate 1/3, k = 7",
|
||||
"G4 = 1 + D2 + D3 + D5 + D6",
|
||||
"G7 = 1 + D + D2 + D3 + D6",
|
||||
"G5 = 1 + D + D4 + D6"
|
||||
]
|
||||
),
|
||||
]
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue