# ltePUCCH1DRS

PUCCH format 1 demodulation reference signal

## Syntax

``seq = ltePUCCH1DRS(ue,chs)``
``````[seq,info] = ltePUCCH1DRS(ue,chs)``````

## Description

example

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

example

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

## Examples

collapse all

Generate PUCCH format 1 DM-RS values for UE-specific settings.

Initialize UE-specific and channel configuration structures. Generate PUCCH format 1 DM-RS values.

```ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; chs.ResourceIdx = 0; chs.DeltaShift = 1; chs.CyclicShifts = 0; drsSeq = ltePUCCH1DRS(ue,chs);```

Demonstrate Uplink Release 11 coordinated multipoint (CoMP) operation. Intercell interference can be avoided by using a virtual cell identity and a distinct DM-RS cyclic shift hopping 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'; chs1.ResourceIdx = 0; chs1.DeltaShift = 1; chs1.CyclicShifts = 0;```

Configuration for interferer, UE 2 in cell 2.

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

Measure the interference between the DM-RS signals.

`interferenceNoCoMP = abs(sum(ltePUCCH1DRS(ue1,chs1).*conj(ltePUCCH1DRS(ue2,chs2))))`
```interferenceNoCoMP = 2.0706 ```

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(ltePUCCH1DRS(ue1,chs1).*conj(ltePUCCH1DRS(ue2,chs2))))`
```interferenceUsingCoMP = 2.3591e-14 ```

Compare 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 the PUCCH format 1 DM-RS for two transmit antenna paths.

Initialize UE-specific and channel configuration structures. Generate PUCCH1 DM-RS and information outputs.

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

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:10,:)`
```ans = 10×2 complex 0.5000 + 0.5000i 0.5000 + 0.5000i 0.5000 + 0.5000i -0.5000 + 0.5000i -0.5000 + 0.5000i 0.5000 - 0.5000i -0.5000 + 0.5000i 0.5000 + 0.5000i -0.5000 + 0.5000i -0.5000 + 0.5000i 0.5000 - 0.5000i 0.5000 + 0.5000i 0.5000 + 0.5000i -0.5000 - 0.5000i -0.5000 - 0.5000i -0.5000 + 0.5000i -0.5000 - 0.5000i -0.5000 - 0.5000i 0.5000 + 0.5000i -0.5000 + 0.5000i ```
`size(info)`
```ans = 1×2 1 2 ```

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

`info(1)`
```ans = struct with fields: Alpha: [0 5.2360 4.1888 4.7124 1.0472 1.5708] SeqGroup: [1 1] SeqIdx: [0 0] NResourceIdx: [0 2] NCellCyclicShift: [192 46 212 91 84 25] OrthSeqIdx: [0 0] Symbols: [1x6 double] OrthSeq: [3x2 double] ```
`info(2)`
```ans = struct with fields: Alpha: [1.5708 0.5236 5.7596 3.1416 5.7596 0] SeqGroup: [1 1] SeqIdx: [0 0] NResourceIdx: [3 11] NCellCyclicShift: [192 46 212 91 84 25] OrthSeqIdx: [0 0] Symbols: [1x6 double] OrthSeq: [3x2 double] ```

## Input Arguments

collapse all

UE-specific configuration settings, specified as a structure containing these fields.

Parameter FieldRequired or OptionalValuesDescription
`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`CyclicPrefixUL`Optional

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

Cyclic prefix length

`Hopping`Optional

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

Frequency hopping method.

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

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

Parameter FieldRequired or OptionalValuesDescription
`ResourceIdx`Optional

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

PUCCH resource indices, specified as an integer or a vector of integers. Values range from 0 to 2047. These indices determine the physical resource blocks, cyclic shift and orthogonal cover used for transmission. (${n}_{PUCCH}^{\left(1\right)}$). Define one index for each transmission antenna.

`DeltaShift`Optional

1 (default), 2, 3

Delta shift, specified as 1, 2, or 3. (Δshift)

`DeltaOffset`Optional

0 (default), 1, 2

(Δoffset). Warning: The use of this parameter field is not advised. It applies only to 3GPP releases preceding v8.5.0. This parameter will be removed in a future release.

`CyclicShifts`Optional

0 (default), integer from 0 to 7

Number of cyclic shifts used for format 1 in resource blocks (RBs) with a mixture of format 1 and format 2 PUCCH, specified as an integer from 0 to 7. (${N}_{cs}^{\left(1\right)}$)

## Output Arguments

collapse all

PUCCH format 1 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`.

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

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

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

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

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

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

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

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

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

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

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

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