diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2016-09-08 22:06:07 +0700 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-10-23 07:38:16 +0000 |
commit | a6b5216ab4b7acfaa2b0b9d421fc72f6153fad59 (patch) | |
tree | b67431e1560042e6ea7d5350852399756310d7d7 /utils | |
parent | 84fc2ce210d57f2d59d2a5c1599d45746c8ffeff (diff) |
utils/conv_gen.py: add EDGE MCS 1-9 definitions
Change-Id: Ie1452342f524a8b60f2babc07398a1d9c9e06aa3
Diffstat (limited to 'utils')
-rw-r--r-- | utils/conv_gen.py | 227 |
1 files changed, 226 insertions, 1 deletions
diff --git a/utils/conv_gen.py b/utils/conv_gen.py index 865a5ee8..5eb7ac12 100644 --- a/utils/conv_gen.py +++ b/utils/conv_gen.py @@ -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__': |