Add functions for extended RACH coding

Add support for extended RACH (11 bit) according 3GPP TS 45.003 ยง5.3.2:

* convolutional code with puncturing
* encoding/decoding routines
* corresponding tests

Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548
diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py
index 279bd3a..eeed4fd 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -1,5 +1,5 @@
 #!/usr/bin/python2
-
+# -*- coding: utf-8 -*-
 from conv_gen import ConvolutionalCode
 from conv_gen import poly
 
@@ -49,6 +49,15 @@
 		description = ["RACH convolutional code"]
 	),
 
+        # Extended RACH definition from 3GPP TS 45.003 §5.3.2
+	ConvolutionalCode(
+		17,
+		shared_polys["xcch"],
+                puncture = [ 0, 2, 5, 37, 39, 41, -1 ],
+		name = "rach_ext",
+		description = ["Extended RACH (11 bit) convolutional code"]
+	),
+
 	# SCH definition
 	ConvolutionalCode(
 		35,