# lteCSIRSIndices

CSI-RS resource element indices

## Syntax

``ind = lteCSIRSIndices(enb)``
``ind = lteCSIRSIndices(enb,opts)``

## Description

example

````ind = lteCSIRSIndices(enb)` returns the indices of the channel state information reference signal (CSI-RS) resource elements (RE) for the specified subframe. See lteCSIRSIndices Processing.```

example

````ind = lteCSIRSIndices(enb,opts)` formats the returned indices using options specified by `opts`.```

## Examples

collapse all

Generate a column vector of CSI-RS resource element linear indices for ports 15 to 22 of a 10 MHz downlink subframe 0 resource grid.

Create a 10 MHz, downlink, subframe 0 configuration parameter structure. Set the number of antenna ports to 8, the CSI-RS configuration to 0, and `Icsi-rs` to 5.

```rmc = lteRMCDL('R.2'); rmc.CSIRefP = 8; rmc.CSIRSConfig = 0; rmc.CSIRSPeriod = 5;```

The 8 antenna ports are ports 15 to 22. The variable `Icsi-rs` = 5 is equivalent to a `[Tcsi-rs Dcsi-rs]` setting of `[10 0]`.

```csirs1 = lteCSIRSIndices(rmc); csirs1(1:5)```
```ans = 5x1 uint32 column vector 3010 3022 3034 3046 3058 ```

This example shows how to generate a matrix of CSI-RS RE linear indices for ports 15 to 22 of a 10 MHz downlink subframe 0 resource grid.

Create a 10 MHz, downlink, subframe 0 configuration parameter structure. Set the number of antenna ports to 8, the CSI-RS configuration to 0, and `Icsi-rs` to 5.

```rmc = lteRMCDL('R.2'); rmc.CSIRefP = 8; rmc.CSIRSConfig = 0; rmc.CSIRSPeriod = 5;```

Generate a matrix of linear indices with eight columns.

```csirs2 = lteCSIRSIndices(rmc,'mat'); size(csirs2)```
```ans = 1×2 88 8 ```

This example shows how to generate both used and unused CSI-RS RE linear indices for ports 15 to 22 of a 10 MHz downlink subframe 0 resource grid.

Create a 10 MHz, downlink, subframe 0 configuration parameter structure. Set the number of antenna ports to 8, the CSI-RS configuration to 0, and `Icsi-rs` to 5.

```rmc = lteRMCDL('R.2'); rmc.CSIRefP = 8; rmc.CSIRSConfig = 0; rmc.CSIRSPeriod = 5;```

The 8 antenna ports are ports 15 to 22. The variable `Icsi-rs` = 5 is equivalent to a `[Tcsi-rs Dcsi-rs]` setting of `[10 0]`.

Generate both used and unused CSI-RS RE in all ports.

```csirs3 = lteCSIRSIndices(rmc,'rs+unused'); csirs3(1:5)```
```ans = 5x1 uint32 column vector 3010 3022 3034 3046 3058 ```

## Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure containing these parameter fields.

Parameter FieldRequired or OptionalValuesDescription
`NDLRB`Required

Scalar integer from 6 to 110

Number of downlink resource blocks. (${N}_{\text{RB}}^{\text{DL}}$)

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`NFrame`Optional

0 (default), nonnegative scalar integer

Frame number

`CellRefP` is only used when the `Indexing format` option for indexing generation is`'rs+unused'`
`CellRefP`Optional

1 (default), 2, 4

Number of cell-specific reference signal (CRS) antenna ports

`CyclicPrefix`Optional

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

Cyclic prefix length

`DuplexMode`Optional

`'FDD'` (default), `'TDD'`

Duplexing mode, specified as:

• `'FDD'` for Frequency Division Duplex or

• `'TDD'` for Time Division Duplex

The following apply when `DuplexMode` is set to `'TDD'`.

`TDDConfig`Optional

0, 1 (default), 2, 3, 4, 5, 6

`SSC`Optional

0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9

Special subframe configuration (SSC)

`CSIRSPeriod`Optional

`'On'` (default), `'Off'`, `Icsi-rs` (0,...,154), ```[Tcsi-rs Dcsi-rs]```. You can also specify values in a cell array of configurations for each resource.

See note.

CSI-RS subframe configurations for one or more CSI-RS resources. Multiple CSI-RS resources can be configured from a single common subframe configuration or from a cell array of configurations for each resource.

The following CSI-RS resource parameters apply only when `CSIRSPeriod` sets one, or more CSI-RS subframe configurations to any value other than `'Off'`. Each parameter length must be equal to the number of CSI-RS resources required.

`CSIRSConfig`Required

Nonnegative scalar integer

Array CSI-RS configuration indices. See TS 36.211, Table 6.10.5.2-1.

`CSIRefP`Required

1 (default), 2, 4, 8

Array of number of CSI-RS antenna ports

`ZeroPowerCSIRSPeriod`Optional

`'Off'` (default), `'On'`, `Icsi-rs` (0,...,154), ```[Tcsi-rs Dcsi-rs]```. You can also specify values in a cell array of configurations for each resource.

See note.

Zero power CSI-RS subframe configurations for one or more zero power CSI-RS resource configuration index lists. Multiple zero power CSI-RS resource lists can be configured from a single common subframe configuration or from a cell array of configurations for each resource list.

The following zero power CSI-RS resource parameter is required only if one, or more of the other zero power subframe configurations are set to any value other than `'Off'`.

`ZeroPowerCSIRSConfig`Required

16-bit bitmap character vector or string scalar (truncated if not 16 bits or `'0'` MSB extended), or a numeric list of CSI-RS configuration indices. You can also specify values in a cell array of configurations for each resource.

Zero power CSI-RS resource configuration index lists (TS 36.211 Section 6.10.5.2). Specify each list as a 16-bit bitmap character vector or string scalar (if less than 16 bits, then `'0'` MSB extended), or as a numeric list of CSI-RS configuration indices from TS 36.211 Table 6.10.5.2-1 in the `'4'` CSI reference signal column. Multiple lists can be defined using a cell array of individual lists.

Note:

1. The `CSIRSPeriod` and `ZeroPowerCSIRSPeriod` parameters control the downlink subframes in which the different CSI-RS resources are present. Valid settings include:

• Always `'On'`

• Always `'Off'`

• Scalar subframe configuration index `Icsi-rs` from 0 through 154

• Explicit subframe periodicity and offset pair ```[Tcsi-rs Dcsi-rs]```

To locate the subframes containing CSI-RS, use the `NSubframe` parameter and the optional `NFrame` parameter. `NSubframe` can be greater than 10. Thus `NSubframe` = 11 is equivalent to setting `NSubframe` to 1 and `NFrame` to 1.

For more information, see TS 36.211 [1], Section 6.10.5.3.

Index generation options, 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):

OptionValuesDescription
Indexing style

`'ind'` (default), `'mat'`, `'sub'`

Style for the returned indices, specified as one of the following options.

• `'ind'` — returns the indices as an NRE-by-1 vector (default)

• `'mat'` — returns the indices as a matrix. If not precoded, each column contains indices for an individual layer/port. If precoded, each column contains symbols for a transmit antenna. To form a matrix, a column can contain duplicate entries.

• `'sub'` — returns the indices as an NRE-by-3 matrix. in ```[subcarrier, symbol, antenna]``` subscript row style.

NRE is the number of resource elements.

Index base

`'1based'` (default), `'0based'`

Base value of the returned indices. Specify `'1based'` to generate indices where the first value is 1. Specify `'0based'` to generate indices where the first value is 0.

Indexing format

`'rsonly'` (default), `'rs+unused'`

Format for the returned locations, specified as one of the following options.

• `'rsonly'` — returns only defined CSI-RS locations (default), both zero and non-zero

• `'rs+unused'` — also includes zeros for the resource element (RE) locations that should be unused because they are reserved for CSI-RS on another port.

### Note

Returned indices specify the CSI-RS resource values within an N-by-M-by-antennas array. Where the number of antennas is `max(CSIRefP)` or if zero power CSI-RS are also defined number of antennas is `max(max(CSIRefP),4)`. In the case of the 'rs+unused' option, the number of antennas used to define the empty REs (either because they are zero power or they are unused in another port) is `max(max(CSIRefP),CellRefP)`.

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

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

## Output Arguments

collapse all

Channel state information reference signal (CSI-RS) indices, returned as a vector or matrix. See lteCSIRSIndices Processing.

Data Types: `uint32`

collapse all

### lteCSIRSIndices Processing

The `lteCSIRSInidices` function supports the creation of multiple non-zero power resources and zero power CSI-RS.

By default the output indices as re returned as a column vector in one-based linear indexing form, that can directly index elements in an N-by-M-by-max(CSIRefP) array. These indices represent the subframe grid across max(CSIRefP) antenna ports (p = 15,...,22). Other index representations can also be created as well as whether the output includes the RE that should be empty in a specific port because of CSI-RS transmissions in another port. These indices are ordered as the complex CSI-RS symbols should be mapped and do not include any elements allocated to PBCH, PSS, and SSS. You can define the CSI-RS subframe configuration schedule as required for the CSI-RS resources. If the subframe contains no CSI-RS, then an empty vector is returned. When multiple non-zero power and zero power CSI-RS are returned, the indices for the zero power CSI-RS appear first in the concatenated output, followed by the indices for the ordered set of CSI-RS resources.

## References

[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.