# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# ltePRACHDetect

Physical random access channel detection

## Syntax

• ``````[indout,offset] = ltePRACHDetect(ue,chs,waveform,indin)``````
example

## Description

example

``````[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.```

## 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 = 9; 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
`NULRB`Required

Scalar integer from 6 to 110

Number of uplink resource blocks. (${N}_{\text{RB}}^{\text{UL}}$)

`DuplexMode`Optional

`'FDD'` (default), `'TDD'`

Duplexing mode, specified as:

• `'FDD'` for Frequency Division Duplex or

• `'TDD'` for Time Division Duplex

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

`TDDConfig`Optional

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

`SSC`Optional

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.

`NSubframe`Optional

0 (default), Nonnegative scalar integer

Subframe number

`NFrame`Optional

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'`.

`CyclicPrefix`Optional

`'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
`Format`Optional

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.
`SeqIdx`Optional

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

Logical root sequence index (RACH_ROOT_SEQUENCE)

`ConfigIdx`Optional

Scalar integer from 0 to 63. The default value 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.
`CyclicShiftIdx`Optional

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

Cyclic shift configuration index (zeroCorrelationZoneConfig, yields NCS)

`HighSpeed`Optional

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'`.

`FreqIdx`Optional

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`.

`FreqOffset`Optional

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`

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 (`lrePRACHDetect`). 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.