aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Transceiver52M/Transceiver.cpp2
-rw-r--r--Transceiver52M/Transceiver.h3
-rw-r--r--Transceiver52M/radioInterface.cpp1
-rw-r--r--Transceiver52M/sigProcLib.cpp6
-rw-r--r--Transceiver52M/sigProcLib.h3
5 files changed, 10 insertions, 5 deletions
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index 66eff7f..f06959a 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -85,7 +85,7 @@ bool TransceiverState::init(int filler, size_t sps, float scale, size_t rtsc, un
burst = generateDummyBurst(sps, n);
break;
case Transceiver::FILLER_NORM_RAND:
- burst = genRandNormalBurst(rtsc, sps, n);
+ burst = genRandNormalBurst(rtsc, sps, n, mPrbs);
break;
case Transceiver::FILLER_EDGE_RAND:
burst = generateEdgeBurst(rtsc);
diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h
index 6f9cb92..0c4d441 100644
--- a/Transceiver52M/Transceiver.h
+++ b/Transceiver52M/Transceiver.h
@@ -84,6 +84,9 @@ struct TransceiverState {
/* Shadowed downlink attenuation */
int mPower;
+
+ /* Pseudorandom bit sequence */
+ PRBS9 mPrbs;
};
/** The Transceiver class, responsible for physical layer of basestation */
diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp
index e039d5c..f97494c 100644
--- a/Transceiver52M/radioInterface.cpp
+++ b/Transceiver52M/radioInterface.cpp
@@ -22,6 +22,7 @@
#include "radioInterface.h"
#include "Resampler.h"
#include <Logger.h>
+#include <PRBS.h>
extern "C" {
#include "convert.h"
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index 9a8c824..3514293 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -915,7 +915,7 @@ static signalVector *shapeEdgeBurst(const signalVector &symbols)
/*
* Generate a random GSM normal burst.
*/
-signalVector *genRandNormalBurst(int tsc, int sps, int tn)
+signalVector *genRandNormalBurst(int tsc, int sps, int tn, PRBS &prbs)
{
if ((tsc < 0) || (tsc > 7) || (tn < 0) || (tn > 7))
return NULL;
@@ -932,7 +932,7 @@ signalVector *genRandNormalBurst(int tsc, int sps, int tn)
/* Random bits */
for (; i < 60; i++)
- (*bits)[i] = rand() % 2;
+ (*bits)[i] = prbs.generateBit();
/* Stealing bit */
(*bits)[i++] = 0;
@@ -946,7 +946,7 @@ signalVector *genRandNormalBurst(int tsc, int sps, int tn)
/* Random bits */
for (; i < 145; i++)
- (*bits)[i] = rand() % 2;
+ (*bits)[i] = prbs.generateBit();
/* Tail bits */
for (; i < 148; i++)
diff --git a/Transceiver52M/sigProcLib.h b/Transceiver52M/sigProcLib.h
index 4318fe0..acf82a9 100644
--- a/Transceiver52M/sigProcLib.h
+++ b/Transceiver52M/sigProcLib.h
@@ -18,6 +18,7 @@
#include "Vector.h"
#include "Complex.h"
#include "BitVector.h"
+#include "PRBS.h"
#include "signalVector.h"
/* Burst lengths */
@@ -140,7 +141,7 @@ signalVector *generateEdgeBurst(int tsc);
signalVector *generateEmptyBurst(int sps, int tn);
/** Generate a normal GSM burst with random payload - 4 or 1 SPS */
-signalVector *genRandNormalBurst(int tsc, int sps, int tn);
+signalVector *genRandNormalBurst(int tsc, int sps, int tn, PRBS &prbs);
/** Generate an access GSM burst with random payload - 4 or 1 SPS */
signalVector *genRandAccessBurst(int delay, int sps, int tn);