sigproc: Add various GSM burst generators

Setup generators for empty, random, and dummy bursts. This moves error
prone burst length handling out of the Transceiver and into the signal
processing core.

Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index 255e120..a9e7035 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -71,63 +71,25 @@
   }
 }
 
-static BitVector *genRandNormalBurst(size_t tsc)
-{
-  if (tsc > 7)
-    return NULL;
-
-  BitVector *bits = new BitVector(148);
-
-  size_t i = 0;
-
-  /* Tail bits */
-  for (; i < 4; i++)
-    (*bits)[i] = 0;
-
-  /* Random bits */
-  for (; i < 61; i++)
-    (*bits)[i] = rand() % 2;
-
-  /* Training sequence */
-  for (int j = 0; i < 87; i++, j++)
-    (*bits)[i] = GSM::gTrainingSequence[tsc][j];
-
-  /* Random bits */
-  for (; i < 144; i++)
-    (*bits)[i] = rand() % 2;
-
-  /* Tail bits */
-  for (; i < 148; i++)
-    (*bits)[i] = 0;
-
-  return bits;
-}
-
 bool TransceiverState::init(int filler, size_t sps, float scale, size_t rtsc)
 {
-  BitVector *bits;
   signalVector *burst;
 
   if ((sps != 1) && (sps != 4))
     return false;
 
   for (size_t n = 0; n < 8; n++) {
-    size_t guard = 8 + !(n % 4);
-    size_t len = sps == 4 ? 625 : 148 + guard;
-
     for (size_t i = 0; i < 102; i++) {
       switch (filler) {
       case Transceiver::FILLER_DUMMY:
-        burst = modulateBurst(gDummyBurst, guard, sps);
+        burst = generateDummyBurst(sps, n);
         break;
       case Transceiver::FILLER_RAND:
-        bits = genRandNormalBurst(rtsc);
-        burst = modulateBurst(*bits, guard, sps);
-        delete bits;
+        burst = genRandNormalBurst(rtsc, sps, n);
         break;
       case Transceiver::FILLER_ZERO:
       default:
-        burst = new signalVector(len);
+        burst = generateEmptyBurst(sps, n);
       }
 
       scaleVector(*burst, scale);