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

# lteSLFrameOffsetPSCCH

PSCCH DM-RS sidelink subframe timing estimate

## Syntax

``offset = lteSLFrameOffsetPSCCH(ue,waveform)``
``````[offset,corr] = lteSLFrameOffsetPSCCH(ue,waveform)``````

## Description

example

````offset = lteSLFrameOffsetPSCCH(ue,waveform)` performs synchronization using PSCCH demodulation reference signal (DM-RS) symbols for the time-domain waveform, `waveform`, given UE-specific settings, `ue`.The returned `offset` indicates the number of samples from the start of the input waveform to the position in that waveform where the first subframe containing DM-RS begins.```

example

``````[offset,corr] = lteSLFrameOffsetPSCCH(ue,waveform)``` also returns a complex matrix, `corr`, which is used to extract the timing offset.```

## Examples

collapse all

Synchronize and demodulate a transmission that has been delayed by five samples. The transmission contains PSCCH demodulation reference signal (DM-RS) symbols that are used when estimating the waveform timing offset.

Create a UE configuration specifying 15 resource blocks, a normal cyclic prefix, and a `PRBSet` of 1.

`ue = struct('NSLRB',15,'CyclicPrefixSL','Normal','PRBSet',1);`

Create a resource grid and modulate the waveform containing PSCCH DM-RS symbols.

```txgrid = lteSLResourceGrid(ue); txgrid(ltePSCCHDRSIndices(ue)) = ltePSCCHDRS; txwaveform = lteSLSCFDMAModulate(ue,txgrid);```

Add a time delay of five samples.

`rxwaveform = [zeros(5,1); txwaveform];`

Calculate the timing offset in samples.

`offset = lteSLFrameOffsetPSCCH(ue,rxwaveform)`
```offset = 5 ```

Correct the timing offset and demodulate the received waveform.

`rxGrid = lteSLSCFDMADemodulate(ue,rxwaveform(1+offset:end));`

View the correlation peak for a transmission waveform that has been delayed by five samples. The transmission contains PSCCH demodulation reference signal (DM-RS) symbols avaliable for estimating the waveform timing.

Create a UE configuration specifying 15 resource blocks, a normal cyclic prefix, and a `PRBSet` of 1.

`ue = struct('NSLRB',15,'CyclicPrefixSL','Normal','PRBSet',1);`

Create a resource grid and modulate the waveform containing PSCCH DM-RS symbols.

```txgrid = lteSLResourceGrid(ue); txgrid(ltePSCCHDRSIndices(ue)) = ltePSCCHDRS; txwaveform = lteSLSCFDMAModulate(ue,txgrid);```

Calculate the timing offset in samples.

`[offset corr] = lteSLFrameOffsetPSCCH(ue,txwaveform);`

Add a time delay of five samples.

`rxwaveform = [zeros(5,1); txwaveform];`

Calculate the timing offset in samples.

`[offset corrDelayed] = lteSLFrameOffsetPSCCH(ue,rxwaveform);`

Plot the correlation data before and after delay is added. Zoom in on the x-axis to view correlation peaks.

```plot(corr) hold on plot(corrDelayed) hold off xlim([0 100])```

Correct the timing offset and demodulate the received waveform.

`rxGrid = lteSLSCFDMADemodulate(ue,rxwaveform(1+offset:end));`

## Input Arguments

collapse all

User equipment settings, specified as a parameter structure containing these fields:

Sidelink mode, specified as `'D2D'` or `'V2X'`.

Data Types: `char`

Number of sidelink resource blocks, specified as an integer scalar from 6 to 110. (${N}_{\text{RB}}^{\text{SL}}$)

Example: `6`, which corresponds to a channel bandwidth of 1.4 MHz.

Data Types: `double`

Cyclic prefix length, specified as `'Normal'` or `'Extended'`.

Data Types: `char`

Zero-based physical resource block (PRB) index, specified as an integer, an integer column vector, or a two-column integer matrix.

For D2D sidelink, the PSCCH is intended to be transmitted in a single PRB in a subframe and therefore, specifying `PRBSet` as a scalar PRB index is recommended. For V2X sidelink, the PSCCH is intended to be transmitted in a pair of consecutive PRB in a subframe, therefore `PRBSet` must be a column vector containing two consecutive indices. However, for a more general nonstandard multi-PRB allocation, `PRBSet` can be a set of indices specified as an integer column vector or as a two-column integer matrix corresponding to slot-wise resource allocations for PSCCH.

Data Types: `double`

Cyclic shift for DM-RS, specified as 0, 3, 6 or 9. It only applies for V2X sidelink.

Data Types: `double`

Data Types: `struct`

Modulated sidelink waveform, specified as an NS-by-NR numeric matrix, where NS is the number of time-domain samples and NR is the number of receive antennas. `waveform` should be at least one subframe long and contain the DM-RS signals.

You can generate this matrix by performing SC-FDMA modulation on a resource matrix. To perform this modulation, use the `lteSLSCFDMAModulate` function or one of the channel model functions, such as `lteFadingChannel` or `lteMovingChannel`.

Data Types: `double`
Complex Number Support: Yes

## Output Arguments

collapse all

Offset number of samples, returned as a scalar integer. This output is the number of samples from the start of the waveform to the position in that waveform where the first subframe containing the DM-RS begins. `offset` is computed by extracting the timing of the peak of the correlation between `waveform` and internally generated reference waveforms containing DM-RS signals. The correlation is performed separately for each antenna. The antenna with the strongest correlation is used to compute `offset`.

### Note

`offset` is the position of `mod(max(abs(corr),LSF))`, where LSF is the subframe length.

Signal used to extract the timing offset, returned as a complex numeric matrix. `corr` has the same dimensions as `waveform`.