Documentation

# ltePUSCHDRS

PUSCH demodulation reference signal

## Syntax

``````[antseq,info,layerseq] = ltePUSCHDRS(ue,chs)``````

## Description

example

``````[antseq,info,layerseq] = ltePUSCHDRS(ue,chs)``` returns the physical uplink shared channel (PUSCH) transmission demodulation reference signal (DM-RS) antenna sequence values,`antseq`, the layer sequence values, `layerseq`, and the information structure, `info`, given input structures containing UE-specific settings, and the channel transmission configuration settings. When the number of transmission antennas is greater than one, the DM-RS is precoded using spatial multiplexing. For short base reference sequences, such as those used with PUSCH allocations of 1 or 2 PRBs, and when `chs``.``PRBSet` is empty, Zadoff-Chu sequences are not used. In this case, `RootSeq` and `NZC` are set to –1. If `antseq` is empty, such as when the input `PRBSet` is empty, the `info` structure contains all fields, but each field is either empty for vector fields or –1 for scalar fields. ```

## Examples

collapse all

Generate the PUSCH Demodulation Reference Signal (DM-RS) values for UE-specific settings.

Initialize UE specific (`ue`) and channel (`chs`) configuration structures. Generate PUSCH DM-RS values.

```ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; ue.SeqGroup = 0; ue.CyclicShift = 0; ue.NTxAnts = 1; chs.PRBSet = (0:5).'; chs.NLayers = 1; chs.OrthCover = 'Off'; chs.DynCyclicShift = 0; puschSeq = ltePUSCHDRS(ue,chs); puschSeq(1:10)```
```ans = 10×1 complex 1.0000 + 0.0000i -0.0810 + 0.9967i -0.9610 + 0.2766i -0.8839 - 0.4677i -0.6886 - 0.7251i -0.7692 - 0.6390i -0.9912 - 0.1324i -0.6447 + 0.7645i 0.6779 + 0.7352i 0.4872 - 0.8733i ```

Demonstrate Uplink Release 11 coordinated multipoint (CoMP) operation. To avoid intercell interference, use a virtual cell identity (NPUSCHID) and a distinct DM-RS cyclic shift hopping identity (NDMRSID) for a potentially interfering UE in a neighboring cell.

Configure the UE of interest: UE 1 in cell 1.

```ue1.NCellID = 1; ue1.NSubframe = 0; ue1.CyclicPrefixUL = 'Normal'; ue1.NTxAnts = 1; ue1.Hopping = 'Off'; ue1.SeqGroup = 0; ue1.CyclicShift = 0; chs1.PRBSet = (0:5).'; chs1.NLayers = 1; chs1.DynCyclicShift = 0; chs1.OrthCover = 'Off';```

Configure the interferer: UE 2 in cell 2.

```ue2.NCellID = 2; ue2.NSubframe = 0; ue2.CyclicPrefixUL = 'Normal'; ue2.NTxAnts = 1; ue2.Hopping = 'Off'; ue2.SeqGroup = 0; ue2.CyclicShift = 0; chs2.PRBSet = (0:5).'; chs2.NLayers = 1; chs2.DynCyclicShift = 0; chs2.OrthCover = 'Off';```

Measure the interference between the DM-RS signals.

```interferenceNoCoMP = ... abs(sum(ltePUSCHDRS(ue1,chs1).*conj(ltePUSCHDRS(ue2,chs2))));```

Reconfigure for CoMP operation. Use a virtual cell identity equal to the cell identity for the UE of interest. Configure the two UEs with different cyclic shift hopping patterns using the DM-RS identity parameter.

```ue1.NDMRSID = 1; ue2.NPUSCHID = ue1.NCellID; ue2.NDMRSID = 2;```

Measure the interference between the DM-RS signals when using CoMP.

```interferenceUsingCoMP = ... abs(sum(ltePUSCHDRS(ue1,chs1).*conj(ltePUSCHDRS(ue2,chs2))));```

Compare the correlations between the DM-RS signals for the two UEs with and without CoMP, `interferenceUsingCoMP` and `interferenceNoCoMP`, respectively.

`interferenceUsingCoMP`
```interferenceUsingCoMP = 1.0426e-13 ```
`interferenceNoCoMP`
```interferenceNoCoMP = 21.3188 ```

With CoMP, the interference is reduced to effectively zero.

## Input Arguments

collapse all

UE-specific settings, specified as a structure. `ue` can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`NCellID`Required

Nonnegative integer

Physical layer cell identity

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`CyclicPrefixUL`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length for uplink.

`NTxAnts`Optional

1 (default), 2, 4

Number of transmission antennas.

`Hopping`Optional

`'Off'` (default), `'Group'`, or `'Sequence'`

Frequency hopping method.

`SeqGroup`Optional

0 (default), integer from 0 to 29

PUSCH sequence group assignment (ΔSS).

Used only if `NDMRSID` or `NPUSCHID` is absent.

`CyclicShift`Optional

0 (default), integer from 0 to 7

Number of cyclic shifts used for PUSCH DM-RS (yields ${n}_{DMRS}^{\left(1\right)}$).

`NPUSCHID`Optional

0 (default), nonnegative scalar integer from 0 to 509

PUSCH virtual cell identity. If this field is not present, `NCellID` is used for group hopping sequence-shift pattern initialization.

See note.

`NDMRSID`Optional

0 (default), nonnegative scalar integer from 0 to 509

DM-RS identity for cyclic shift hopping (${n}_{ID}^{csh_DMRS}$). If this field is not present, `NCellID` is used for cyclic shift hopping initialization.

See note.

Note

1. The pseudorandom sequence generator for cyclic shift hopping is initialized according to `NDMRSID`, if present — otherwise it is initialized according to the cell identity `NCellID` and the sequence group assignment `SeqGroup`. Similarly, the sequence-shift pattern for group hopping is initialized according to `NPUSCHID`, if present — otherwise it is initialized according to `NCellID` and `SeqGroup`.

Data Types: `struct`

PUSCH channel configuration, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`PRBSet`Required

Integer column vector or two-column matrix

Physical resource block set, specified as an integer column vector or two-column matrix. This parameter field contains the zero-based physical resource block (PRB) indices corresponding to the slot-wise resource allocations for this PUSCH.

If `PRBSet` is a column vector, the resource allocation is the same in both slots of the subframe. To specify differing PRBs for each slot in a subframe, use a two-column matrix. The PRB indices are zero-based.

`NLayers`Optional

1 (default), 2, 3, 4

Number of transmission layers.

`DynCyclicShift`Optional

0 (default), integer from 0 to 7

Cyclic shift for DM-RS (yields ${n}_{DMRS}^{\left(2\right)}$).

`OrthoCover`Optional

`'Off'` (default), `'On'`

Applies (`'On'`), or does not apply (`'Off'`), orthogonal cover sequence w (Activate-DMRS-with OCC).

The following field is applicable only when `ue``.``NTxAnts` is set to `2` or `4`.
`PMI`Optional

0 (default), integer from 0 to 23

Scalar precoder matrix indication (PMI) used during precoding of the DM-RS reference symbols.

Data Types: `struct`

## Output Arguments

collapse all

PUSCH DM-RS sequence values, returned as an M-by-P complex-valued matrix. M is the number of DM-RS symbols per antenna, and P is the number of transmission antennas. When P is greater than one, the DM-RS is precoded using spatial multiplexing.

Data Types: `double`
Complex Number Support: Yes

Information about PUSCH DM-RS, returned as a structure array, with one element per transmission layer, having the following fields.

Reference signal cyclic shift for each slot, returned as a row vector. (α)

`Alpha` is proportional to `NCS`, $\alpha =\frac{2\pi {n}_{cs,\lambda }}{12}$.

Data Types: `double`

Base sequence group number for each slot, returned as a row vector. (u)

Data Types: `double`

Base sequence number for each slot, returned as a row vector. (v)

Data Types: `double`

Root Zadoff-Chu sequence index for each slot, returned as a row vector. (q)

Data Types: `double`

Cyclic shift values for each slot, returned as a two-column vector (${n}_{\text{cs,}\lambda }$).

Data Types: `double`

Zadoff-Chu sequence length, returned as an integer. (${N}_{ZC}^{RS}$)

Data Types: `double`

Component of the reference signal cyclic shift signaled from higher layers, returned as an integer. (${n}_{DMRS}^{\left(1\right)}$)

Data Types: `double`

Component of the reference signal cyclic shift signaled from the most recent DCI format 0 message, returned as an integer. (${n}_{DMRS}^{\left(2\right)}$)

Data Types: `double`

Cell-specific component of the reference signal cyclic shift for each slot, returned as a row vector. (nPRS in LTE Release 8 and 9, nPN in LTE Release 10 and beyond)

Data Types: `double`

Orthogonal cover value for each slot, specified as a row vector. (w)

Data Types: `double`

Data Types: `struct`

PUSCH DM-RS sequence by layers, returned as an M-by-NU complex matrix. M is the number of DM-RS symbols per layer, and NU is the number of transmission layers. If the number of transmission antennas is greater than one, the DM-RS is precoded using spatial multiplexing.

Data Types: `double`
Complex Number Support: Yes