From 444ff34396c03b7d085e6916695f4b27dbb79cc6 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Mon, 22 Oct 2018 02:25:23 +0200 Subject: 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 --- Transceiver52M/sigProcLib.cpp | 17 +++++++++++------ Transceiver52M/sigProcLib.h | 1 + 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 &litude, float &toa, unsigned max_toa) + complex &litude, 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 -- cgit v1.2.3