aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-10-22 02:25:23 +0200
committerVadim Yanitskiy <axilirator@gmail.com>2018-10-24 19:28:47 +0000
commit444ff34396c03b7d085e6916695f4b27dbb79cc6 (patch)
tree4a8b577d892fd0cfa9788d5383954dccb0d47fbe /Transceiver52M
parenta79bc70737c3d8aadb983e926bf6467a12aed8ae (diff)
sigProcLib: add a CorrType for extended (11-bit) RACH
This is a preparatory change that enables a possibility to choose the amount of synch. sequences to be used for Access Burst (RACH) detection. The VTY flag will be introduced in further changes. There are two correlation types now: - RACH (default) - TS0 only; - EXT_RACH - all TS0, TS1, and TS2 together. Change-Id: Ia4f20524350bb8c380d7e10360758eddae8b03e9 Related: OS#3054
Diffstat (limited to 'Transceiver52M')
-rw-r--r--Transceiver52M/sigProcLib.cpp17
-rw-r--r--Transceiver52M/sigProcLib.h1
2 files changed, 12 insertions, 6 deletions
diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp
index 072fb3b..28c4ded 100644
--- a/Transceiver52M/sigProcLib.cpp
+++ b/Transceiver52M/sigProcLib.cpp
@@ -1602,18 +1602,22 @@ static int detectGeneralBurst(const signalVector &rxBurst,
* tail: Search 8 symbols + maximum expected delay
*/
static int detectRACHBurst(const signalVector &burst, float threshold, int sps,
- complex &amplitude, float &toa, unsigned max_toa)
+ complex &amplitude, float &toa, unsigned max_toa, bool ext)
{
int rc, target, head, tail;
- CorrelationSequence *sync;
+ int i, num_seq;
target = 8 + 40;
head = 8;
tail = 8 + max_toa;
- sync = gRACHSequences[0];
+ num_seq = ext ? 3 : 1;
- rc = detectGeneralBurst(burst, threshold, sps, amplitude, toa,
- target, head, tail, sync);
+ for (i = 0; i < num_seq; i++) {
+ rc = detectGeneralBurst(burst, threshold, sps, amplitude, toa,
+ target, head, tail, gRACHSequences[i]);
+ if (rc > 0)
+ break;
+ }
return rc;
}
@@ -1682,9 +1686,10 @@ int detectAnyBurst(const signalVector &burst, unsigned tsc, float threshold,
rc = analyzeTrafficBurst(burst, tsc, threshold, sps,
amp, toa, max_toa);
break;
+ case EXT_RACH:
case RACH:
rc = detectRACHBurst(burst, threshold, sps, amp, toa,
- max_toa);
+ max_toa, type == EXT_RACH);
break;
default:
LOG(ERR) << "Invalid correlation type";
diff --git a/Transceiver52M/sigProcLib.h b/Transceiver52M/sigProcLib.h
index 9bc7e10..79a5c3f 100644
--- a/Transceiver52M/sigProcLib.h
+++ b/Transceiver52M/sigProcLib.h
@@ -29,6 +29,7 @@
enum CorrType{
OFF, ///< timeslot is off
TSC, ///< timeslot should contain a normal burst
+ EXT_RACH, ///< timeslot should contain an extended access burst
RACH, ///< timeslot should contain an access burst
EDGE, ///< timeslot should contain an EDGE burst
IDLE ///< timeslot is an idle (or dummy) burst