diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index e57575d..634af34 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -168,4 +168,56 @@
 		}
 	}
 
+/* Convert RF signal level in dBm to RxLev (TS 45.008 Chapter 8.1.4) */
+function dbm2rxlev(integer dbm) return uint6_t {
+	var integer rxlev := dbm + 110;
+	if (rxlev > 63) {
+		rxlev := 63;
+	} else if (rxlev < 0) {
+		rxlev := 0;
+	}
+	return rxlev;
+}
+
+function rxlev2dbm(uint6_t rxlev) return integer {
+	return -110 + rxlev;
+}
+
+/* convert BER to RxQual value (TS 45.008 Chapter 8.2.4 */
+function ber2rxqual(float ber) return uint3_t {
+	if (ber < 0.2) {
+		return 0;
+	} else if (ber < 0.4) {
+		return 1;
+	} else if (ber < 0.8) {
+		return 2;
+	} else if (ber < 1.6) {
+		return 3;
+	} else if (ber < 3.2) {
+		return 4;
+	} else if (ber < 6.4) {
+		return 5;
+	} else if (ber < 12.8) {
+		return 6;
+	} else {
+		return 7;
+	}
+}
+
+/* convert RxQual to BER (TS 45.008 Chapter 8.2.4 */
+function rxqual2ber(uint3_t rxqual) return float {
+	select (rxqual) {
+	case (0) { return 0.14 }
+	case (1) { return 0.28 }
+	case (2) { return 0.57 }
+	case (3) { return 1.13 }
+	case (4) { return 2.26 }
+	case (5) { return 4.53 }
+	case (6) { return 9.05 }
+	case (7) { return 18.10 }
+	case else { return 1000.0 }
+	}
+}
+
+
 } with { encode "RAW"; variant "FIELDORDER(msb)" }
