diff options
-rw-r--r-- | Transceiver52M/Transceiver.cpp | 2 | ||||
-rw-r--r-- | Transceiver52M/Transceiver.h | 3 | ||||
-rw-r--r-- | Transceiver52M/radioInterface.cpp | 1 | ||||
-rw-r--r-- | Transceiver52M/sigProcLib.cpp | 6 | ||||
-rw-r--r-- | Transceiver52M/sigProcLib.h | 3 |
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); |