Main Content

ltePRACHDetect

Physical random access channel detection

Description

[indout,offset] = ltePRACHDetect(ue,chs,waveform,indin) performs PRACH detection given UE-specific settings structure, ue, channel configuration structure, chs, received signal potentially containing a PRACH transmission, waveform, and range of preamble indices for which to search, specified in indin. The detector performs each distinct correlation required to cover all preamble indices, specified in indin, and searches the output of the correlations for peaks which exceed a detection threshold. The position of the peak in the correlator output is used to determine the preamble index detected and its associated timing offset. The preamble index and timing offset are returned in indout and offset respectively. For more information, see PRACH Detector.

example

Examples

collapse all

Detect a PRACH preamble which has been delayed by 7 samples.

Initialize configuration structures for ue-specific (ue) and channel (chs) parameters.

ue.NULRB = 6;
ue.DuplexMode = 'FDD';
chs.Format = 0;
chs.CyclicShiftIdx = 1;
chs.PreambleIdx = 44;
chs.HighSpeed = 0;
chs.FreqOffset = 0;
chs.SeqIdx = 0;

Generate transmit waveform containing PRACH. Insert a seven sample delay. Detect the PRACH.

tx = ltePRACH(ue,chs);
rx = [zeros(7,1); tx];
[index,offset] = ltePRACHDetect(ue,chs,rx,(0:63).')
index = 
44
offset = 
7.1895

The timing offset fractional part is an estimate of the fractional delay present in the correlation peak. This is due to the cyclic shift present in the PRACH preamble. A cyclic shift in the frequency domain is a delay in the time domain.

Input Arguments

collapse all

UE-specific settings, specified as a structure array. ue contains the following fields.

Parameter FieldRequired or OptionalValuesDescription
NULRBRequired6, 9, 11, 15, 25, 27, 45, 50, 64, 75, 91, 100

Number of uplink resource blocks. (NRBUL)

DuplexModeOptional

'FDD' (default), 'TDD'

Duplexing mode, specified as either:

  • 'FDD' for Frequency Division Duplex

  • 'TDD' for Time Division Duplex

The following parameters are dependent upon the condition that DuplexMode is set to 'TDD'.

  TDDConfigOptional

0, 1 (default), 2, 3, 4, 5, 6

Uplink–downlink configuration

  SSCOptional

0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9

Special subframe configuration (SSC)

The following parameter fields are dependent upon the condition that DuplexMode is set to 'TDD' or when chs.ConfigIdx is present.

  NSubframeOptional

0 (default), Nonnegative scalar integer

Subframe number

  NFrameOptional

0 (default), nonnegative scalar integer

Frame number

The following parameter fields are dependent upon the condition that the Preamble Format (chs.Format) is set to '4'.

  CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

Data Types: struct

Channel transmission configuration, specified as a structure array. chs contains the following fields.

Parameter FieldRequired or OptionalValuesDescription
FormatOptional

0, 1, 2, 3, 4 (default is determined by ConfigIdx field if present). However, the Format field must be specified if the ConfigIdx field is not specified.

Preamble format

See Note.

SeqIdxOptional

Scalar integer from 0 to 837. The default value is 0.

Logical root sequence index (RACH_ROOT_SEQUENCE)

ConfigIdxOptional

Scalar integer from 0 to 63. The default value is determined by Format field, if present. However, the ConfigIdx field must be specified if the Format field is not specified.

PRACH Configuration Index (prach-ConfigurationIndex)

See Note.

CyclicShiftIdxOptional

Scalar integer from 0 to 15. The default value is 0.

Cyclic shift configuration index (zeroCorrelationZoneConfig, yields NCS)

HighSpeedOptional

0 (default) or 1

High Speed flag (highSpeedFlag). A value of 1 signifies a restricted set. A value of 0 signifies an unrestricted set.

The following parameters are dependent upon the condition that ue.DuplexMode is set to 'TDD'.

  FreqIdxOptional

0 (default), 0, 1, 2, 3, 4, 5

Frequency resource index (fRA). Only required for 'TDD' duplexing mode.

The following parameter fields are dependent upon the condition that the Preamble Format (chs.Format) is set to 0, 1, 2, or 3.

  FreqOffsetOptional

Scalar integer from 0 to 94. The default value is 0.

PRACH frequency offset (nPRBoffset). Only required for Preamble format 0–3.

Note

Although the parameters chs.Format and chs.ConfigIdx are both described as ‘Optional’, at least one of these parameters must be specified. If both parameters are present, then chs.Format is used and chs.ConfigIdx is ignored.

Data Types: struct

Received signal potentially containing PRACH transmission, specified as an N-by-P numeric matrix. This matrix contains the received time-domain signal in which to search for PRACH transmissions. N is the number of time-domain samples. P is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

Range of preamble indices within the cell for which to search, specified as a column vector. It can be from 1 through 64 in length, containing values from 0 through 63.

Data Types: double

Output Arguments

collapse all

Preamble index, returned as:

  • a scalar, if an index from indin results in the maximum correlation above detection threshold.

  • an empty,[ ], if no index from indin results in the maximum correlation above the detection threshold or the maximum correlation was obtained for an index not included in indin.

Data Types: double

Timing offset expressed in samples at the input sampling rate, returned as:

  • a scalar, if an index from indin results in the maximum correlation above detection threshold.

  • an empty,[ ], if no index from indin results in the maximum correlation above the detection threshold or the maximum correlation was obtained for an index not included in indin.

The timing offset estimate has an integer part corresponding to the correlation peak sample position and a fractional part estimating the fractional delay present in the correlation peak. The cyclic shift in the frequency domain present in the PRACH preamble can contribute to this fractional delay.

Data Types: double

More About

collapse all

PRACH Detector

The detector performs each distinct correlation required to cover all preamble indices, specified in indin, and searches the output of the correlations for peaks which exceed a detection threshold. The position of the peak in the correlator output is used to determine the preamble index detected and its associated timing offset. The preamble index and timing offset are returned in indout and offset respectively. Generate the input waveform for one transmit antenna with the ltePRACH function. Generate input waveform with multiple transmit antenna (for example 2 or 4) using one of the channel model functions, lteFadingChannel, lteHSTChannel, or lteMovingChannel. Any other waveform provided must be sampled at the same sampling rate that ltePRACH would produce for the same configuration, specifically the same value of ue.NULRB as configured for the PRACH detector (ltePRACHDetect). The appropriate sampling rate can be found in the SamplingRate field of the output of ltePRACHInfo. Except for the case of the appropriate delay to position the transmission of Preamble Format 4 in the UpPTS for TDD special subframes, it is assumed that any PRACH signal in waveform is synchronized such that the first sample of waveform corresponds to the start of an uplink subframe. Therefore, the detector interprets any delay from the start of waveform to the first sample of the PRACH therein as a timing offset.

The detector first calls info=ltePRACHInfo to establish the set of root sequences info.RootSeq required to cover all preamble indices in indin. A correlation is then performed for each distinct value in info.RootSeq, with the inputs to the correlation being the input waveform and a locally generated PRACH waveform. The correlation is performed in the frequency domain. Multiplication of the FFT of the useful part of the locally generated PRACH waveform by a portion of the input waveform extracted with the same timing as the useful part of the locally generated PRACH waveform, followed by an IFFT to give the correlation. Further fields from info are then used to establish the length of the window of the correlator output that corresponds to each preamble index, the zero correlation zone. The detector establishes the preamble index by testing of the position of the peak in the correlator output to determine if it lies in the window of the correlator output given by the cyclic shift for each preamble index in turn. The offset within the current window is used to compute the timing offset.

Version History

Introduced in R2014a