diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index 9674aa8..2182550 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -1005,6 +1005,39 @@
   return burst;
 }
 
+/*
+ * Generate a random GSM access burst.
+ */
+signalVector *genRandAccessBurst(int sps, int tn)
+{
+  if ((tn < 0) || (tn > 7))
+    return NULL;
+  if ((sps != 1) && (sps != 4))
+    return NULL;
+
+  int i = 0;
+  BitVector *bits = new BitVector(88);
+  signalVector *burst;
+
+  /* head and synch bits */
+  for (int n = 0; i < 49; i++, n++)
+    (*bits)[i] = gRACHBurst[n];
+
+  /* Random bits */
+  for (; i < 85; i++)
+    (*bits)[i] = rand() % 2;
+
+  /* Tail bits */
+  for (; i < 88; i++)
+    (*bits)[i] = 0;
+
+  int guard = 68 + !(tn % 4);
+  burst = modulateBurst(*bits, guard, sps);
+  delete bits;
+
+  return burst;
+}
+
 signalVector *generateEmptyBurst(int sps, int tn)
 {
 	if ((tn < 0) || (tn > 7))
