lteSLFrameOffsetPSBCH

PSBCH DM-RS sidelink subframe timing estimate

Syntax

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

Description

example

````offset = lteSLFrameOffsetPSBCH(ue,waveform)` performs synchronization using PSBCH 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 the DM-RS begins.```

example

``````[offset,corr] = lteSLFrameOffsetPSBCH(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 PSBCH demodulation reference signal (DM-RS) symbols that are used when estimating the waveform timing offset.

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

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

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

```txgrid = lteSLResourceGrid(ue); txgrid(ltePSBCHDRSIndices(ue)) = ltePSBCHDRS(ue); txwaveform = lteSLSCFDMAModulate(ue,txgrid);```

Add a time delay of five samples.

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

Calculate the timing offset in samples.

`offset = lteSLFrameOffsetPSBCH(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 PSBCH demodulation reference signal (DM-RS) symbols available for estimating the waveform timing.

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

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

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

```txgrid = lteSLResourceGrid(ue); txgrid(ltePSBCHDRSIndices(ue)) = ltePSBCHDRS(ue); txwaveform = lteSLSCFDMAModulate(ue,txgrid);```

Calculate the timing offset in samples.

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

Add a time delay of five samples.

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

Calculate the timing offset in samples.

`[offset corrDelayed] = lteSLFrameOffsetPSBCH(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 50])```

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

Number of sidelink resource blocks, specified as an integer scalar from 6 to 110.

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

Physical layer sidelink synchronization identity, specified as an integer from 0 to 355. (${N}_{\text{ID}}^{\text{SL}}$)

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

Version History

Introduced in R2017a