aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/sigProcLib.cpp
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/sigProcLib.cpp
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/sigProcLib.cpp')
-rw-r--r--Transceiver52M/sigProcLib.cpp17
1 files changed, 11 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";