# ltePUCCH3DRS

PUCCH format 3 demodulation reference signal

## Syntax

• ``seq = ltePUCCH3DRS(ue,chs)``
example
• ``````[seq,info] = ltePUCCH3DRS(ue,chs)``````
example

## Description

example

````seq = ltePUCCH3DRS(ue,chs)` returns a matrix containing demodulation reference signal (DRS) associated with PUCCH format 3 transmission given structures containing the UE-specific settings, and the channel transmission configuration settings.```

example

``````[seq,info] = ltePUCCH3DRS(ue,chs)``` also returns a PUCCH information structure array, `info`.```

## Examples

collapse all

### Generate PUCCH Format 3 DM-RS

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

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

```ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; ue.Shortened = 0; chs.ResourceIdx = 0; chs.CyclicShifts = 0; pucch3RefSig = ltePUCCH3DRS(ue,chs); pucch3RefSig(1:4) ```
```ans = 0.7071 + 0.7071i 0.2588 + 0.9659i -0.9659 - 0.2588i -0.7071 - 0.7071i ```

### Generate PUCCH Format 3 DM-RS Using Virtual Cell ID

Demonstrate Uplink Release 11 cooordinated multipoint (CoMP) operation. Intercell interference can be avoided by using a virtual cell identity for a potentially interfering UE in a neighboring cell.

Configuration for UE of interest, UE 1 in cell 1.

```ue1.NCellID = 1; ue1.NSubframe = 0; ue1.CyclicPrefixUL = 'Normal'; ue1.Hopping = 'Off'; ue1.Shortened = 0; chs1.ResourceIdx = 0; ```

Configuration for interferer, UE 2 in cell 2.

```ue2.NCellID = 2; ue2.NSubframe = 0; ue2.CyclicPrefixUL = 'Normal'; ue2.Hopping = 'Off'; ue2.Shortened = 0; chs2.ResourceIdx = 1; ```

Measure the interference between the DM-RS signals.

```interferenceNoCoMP = abs(sum(ltePUCCH3DRS(ue1,chs1).*conj(ltePUCCH3DRS(ue2,chs2)))) ```
```interferenceNoCoMP = 6.3246 ```

Reconfigure interferer for CoMP operation: use virtual cell identity equal to the cell identity for the UE of interest.

```ue2.NPUCCHID = ue1.NCellID; ```

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

```interferenceUsingCoMP = abs(sum(ltePUCCH3DRS(ue1,chs1).*conj(ltePUCCH3DRS(ue2,chs2)))) ```
```interferenceUsingCoMP = 9.0263e-15 ```

Comparing the correlations between the DM-RS signals for two UEs with and without CoMP, `interferenceUsingCoMP` and `interferenceNoCoMP` respectively. Using CoMP, the interference is reduced to effectively zero.

### Generate PUCCH Format 3 DM-RS for Two Antennas

Generate the PUCCH format 3 DM-RS sequences for two transmit antenna paths. Display the information structure.

Initialize UE-specific and channel configuration structures. Provide an empty vector for the `ack`, indicating there are no HARQ bits for this PUCCH transmision. Generate PUCCH 3 DM-RS and information outputs.

```ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; ue.Shortened = 0; chs.ResourceIdx = [0 3]; ack = []; [drsSeq,info] = ltePUCCH3DRS(ue,chs,ack); ```

Because there are two antennas, the DM-RS sequences are output as a two-column vector and the `info` output structure contains two elements. View `ind` and the size of `info` to confirm this.

```drsSeq(1:6,:) size(info) ```
```ans = 0.5000 + 0.5000i 0.5000 + 0.5000i 0.1830 + 0.6830i 0.5000 - 0.5000i -0.6830 - 0.1830i 0.5000 - 0.5000i -0.5000 - 0.5000i -0.5000 - 0.5000i -0.1830 - 0.6830i -0.5000 + 0.5000i -0.1830 + 0.6830i -0.5000 - 0.5000i ans = 1 2 ```

View the contents of the two `info` structure elements.

```info(1) info(2) ```
```ans = Alpha: [0.5236 2.6180 2.6180 3.1416] SeqGroup: [1 1] SeqIdx: [0 0] NResourceIdx: [0 0] NCellCyclicShift: [193 89 101 234] OrthSeqIdx: [0 0] Symbols: [1x4 double] OrthSeq: [2x2 double] NSymbSlot: [5 5] ans = Alpha: [4.7124 0.5236 1.5708 2.0944] SeqGroup: [1 1] SeqIdx: [0 0] NResourceIdx: [8 10] NCellCyclicShift: [193 89 101 234] OrthSeqIdx: [3 4] Symbols: [1x4 double] OrthSeq: [2x2 double] NSymbSlot: [5 5] ```

## Input Arguments

collapse all

### `ue` — UE-specific settingsstructure

UE-specific cell-wide settings, specified as a structure containing the following fields.

Parameter FieldRequired or OptionalValuesDescription
`NCellID`Required

Integer from 0 to 503

Physical layer cell identity.

`NSubframe`Required

Nonnegative integer

0 (default)

Subframe number.

`CyclicPrefixUL`Optional

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

Cyclic prefix length

`NTxAnts`Optional

1 (default), 2, 4

Number of transmission antennas.

`Hopping`Optional

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

Frequency hopping method.

`Shortened`Optional

0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If `1`, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set `Shortened` to 1 to maintain a standard compliant configuration.

`NPUCCHID`Optional`NCellID` (default)

Integer from 0 to 503

PUCCH virtual cell identity. If this field is not present, `NCellID` is used as the identity.

Data Types: `struct`

### `chs` — Channel transmission configurationstructure

PUCCH channel settings, specified as a structure containing the following fields.

Parameter FieldRequired or OptionalValuesDescription
`ResourceIdx`Optional

0 (default), integer from 0 to 549, or vector of integers.

PUCCH resource indices which determine the physical resource blocks, cyclic shift, and orthogonal cover used for transmission (${n}_{PUCCH}^{\left(3\right)}$). Define one index for each transmission antenna.

Data Types: `struct`

## Output Arguments

collapse all

### `seq` — PUCCH format 3 DRS valuesnumeric matrix

PUCCH format 3 DRS values, returned as a numeric matrix. The symbols for each antenna are in the columns of `seq`, with the number of columns determined by the number of PUCCH resource indices specified in `chs``.``ResourceIdx`.

### `info` — PUCCH format 3 DRS informationstructure array

PUCCH format 3 DRS information, returned as a structure array with elements corresponding to each transmit antenna and containing these fields.

### `Alpha` — Reference signal cyclic shift for each OFDM symboltwo-column vector

Reference signal cyclic shift for each OFDM symbol, returned as a two-column vector. (α)

### `SeqGroup` — PUCCH base sequence group number for each slottwo-column vector

PUCCH base sequence group number for each slot, returned as two-column vector. (u)

### `SeqIdx` — PUCCH base sequence number for each slottwo-column vector

PUCCH base sequence number for each slot, returned as two-column vector. (v)

### `NResourceIdx` — PUCCH resource indices for each slotvector

PUCCH resource indices for each slot, returned as two-column vector. (n')

### `NCellCyclicShift` — Cell-specific cyclic shift for each OFDM symbolvector

Cell-specific cyclic shift for each OFDM symbol, returned as vector. (${n}_{cs}^{cell}$)

### `OrthSeqIdx` — Orthogonal sequence index for each slottwo-column vector

Orthogonal sequence index for each slot, returned as two-column vector. (${\overline{n}}_{\mathrm{oc}}$)

### `Symbols` — Modulated data symbolsvector

Modulated data symbols, returned as a vector. There is one element for each OFDM symbol. (z)

Example: [0.7071 + 0.7071i,...]

### `OrthSeq` — Orthogonal sequence for each slotnumeric matrix

Orthogonal sequence for each slot, returned as a numeric matrix. ($\overline{w}$)

Example: [1.000 + 1.000i,...]

### `NSymbSlot` — Number of OFDM symbols in each slotvector of integers

The number of OFDM symbols in each slot, returned as a vector of integers. ($\left[{N}_{\text{SF},0}^{\text{PUCCH}}\text{\hspace{0.17em}}{N}_{\text{SF},1}^{\text{PUCCH}}\right]$)

Data Types: `double`

Data Types: `struct`