# ltePUCCH2DRSIndices

PUCCH format 2 DRS resource element indices

## Syntax

``ind = ltePUCCH2DRSIndices(ue,chs)``
``````[ind,info] = ltePUCCH2DRSIndices(ue,chs)``````
``[___] = ltePUCCH2DRSIndices(ue,chs,opts)``

## Description

example

````ind = ltePUCCH2DRSIndices(ue,chs)` returns a matrix of resource element indices for the demodulation reference signal (DRS) associated with the PUCCH format 2 transmission given structures containing the UE-specific settings, and the channel transmission configuration. ```

example

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

example

````[___] = ltePUCCH2DRSIndices(ue,chs,opts)` formats the returned indices using the options specified by `opts`. This syntax supports output options from prior syntaxes.```

## Examples

collapse all

Generate PUCCH format 2 DM-RS RE indices for a 1.4 MHz bandwidth and PUCCH resource index 0. Use default values for all other parameters.

Initialize UE-specific and channel configuration structures. Generate PUCCH format 2 DM-RS indices.

```ue.NULRB = 6; ue.CyclicPrefixUL = 'Normal'; chs.ResourceIdx = 0; ind = ltePUCCH2DRSIndices(ue,chs); ind(1:4)```
```ans = 4x1 uint32 column vector 73 74 75 76 ```

Generate the PUCCH format 2 DM-RS indices for four transmit antenna paths, and display the output information structure.

Initialize UE-specific and channel configuration structures. Generate PUCCH 2 DM-RS indices and information outputs.

```ue.NULRB = 6; ue.CyclicPrefixUL = 'Normal'; chs.ResourceIdx = [0 37 4 111]; [ind,info] = ltePUCCH2DRSIndices(ue,chs);```

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

`ind(1:6,:)`
```ans = 6x4 uint32 matrix 73 1129 2089 3109 74 1130 2090 3110 75 1131 2091 3111 76 1132 2092 3112 77 1133 2093 3113 78 1134 2094 3114 ```
`size(info)`
```ans = 1×2 1 4 ```

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

`info(4)`
```ans = struct with fields: PRBSet: [1 4] RBIdx: 9 ```

Generate the PUCCH format 2 DM-RS indices for two transmit antenna paths, and output in subscript indexing form.

Initialize UE-specific and channel configuration structures and the indexing option parameter. Generate PUCCH 2 DM-RS indices and information outputs.

```ue.NULRB = 6; ue.CyclicPrefixUL = 'Normal'; chs.ResourceIdx = [0 4]; [ind,info] = ltePUCCH2DRSIndices(ue,chs,{'sub'});```

Using 'sub' indexing style, the indices are output in [subcarrier, symbol, antenna] subscript form. View the midpoint of ind and observe the antenna index change.

`size(ind)`
```ans = 1×2 96 3 ```
`ind(46:51,:)`
```ans = 6x3 uint32 matrix 70 13 1 71 13 1 72 13 1 1 2 2 2 2 2 3 2 2 ```
`size(info)`
```ans = 1×2 1 2 ```

Because there are two antennas, the info output structure contains two elements. View one of the `info` structure elements.

`info(2)`
```ans = struct with fields: PRBSet: [0 5] RBIdx: 0 ```

## Input Arguments

collapse all

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

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

Data Types: `double`

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

Data Types: `char` | `string`

Channel transmission configuration, specified as a structure containing the following fields.

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

Data Types: `struct`

Output format options for resource element indices, specified as a character vector, cell array of character vectors, or string array. For convenience, you can specify several options as a single character vector or string scalar by a space-separated list of values placed inside the quotes. Values for `opts` when specified as a character vector include (use double quotes for string) :

Category Options Description

Indexing style

`'ind'` (default)

The returned indices are in linear index style.

`'sub'`

The returned indices are in `[subcarrier,symbol,port]` subscript row style.

Index base

`'1based'` (default)

The returned indices are one-based.

`'0based'`

The returned indices are zero-based.

Example: `'ind 1based'`, `"ind 1based"`, `{'ind','1based'}`, or `["ind","1based"]` specify the same formatting options.

Data Types: `char` | `string` | `cell`

## Output Arguments

collapse all

Resource element indices, returned as an integer column vector or a three-column integer matrix. By default the indices are returned in one-based linear indexing form that can directly index elements of a resource matrix. These indices are ordered according to PUCCH format 2 DRS modulation symbol mapping. The `opts` input offers alternative indexing formats. The indices for each antenna are in the columns of `ind`, with the number of columns determined by the number of PUCCH resource indices specified in `chs``.``ResourceIdx`.

Example: [145,146,147,...]

Data Types: `uint32`

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

Indices occupied by PRB in each slot of the subframe, returned as a nonnegative integer vector. The indices are zero-based.

Example: [0,5]

Data Types: `double`

PUCCH logical resource block index, returned as a nonnegative integer. (m)

Data Types: `double`

Data Types: `struct`

## Version History

Introduced in R2014a