# lteSRS

## Syntax

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

## Description

example

````seq = lteSRS(ue,chs)` returns a complex matrix, `seq`, containing uplink sounding reference signal (SRS) values and information structure array given structures containing UE-specific settings, and signal transmission configuration settings. For more information, see SRS Processing and TS 36.213 [1], Section 8.2.```
``````[seq,info] = lteSRS(ue,chs)``` also returns an SRS information structure array, `info`.```

## Examples

collapse all

This example generates SRS values for 1.4 MHz bandwidth using the default SRS configuration.

Set the signal transmission configuration, chs structure fields.

```chs.BWConfig = 7; chs.BW = 0; chs.CyclicShift = 0; chs.SeqGroup = 0; chs.SeqIdx = 0; chs.ConfigIdx = 7; ```

Set ue structure fields.

```ue.DuplexMode = 'FDD'; ue.CyclicPrefixUL = 'Normal'; ue.NTxAnts = 1; ue.NFrame = 0; ue.NULRB = 6; ue.NSubframe = 0; ```

Generate Uplink SRS resource element values.

```srs = lteSRS(ue,chs); srs(1:4) ```
```ans = 0.7071 - 0.7071i -0.7071 + 0.7071i 0.7071 + 0.7071i -0.7071 - 0.7071i ```

### Generate SRS Symbols for Two Antennas

Generate the SRS symbols for two transmit antenna paths. Display the information structure.

Initialize UE-specific and channel configuration structures (`ue` and `chs`) for 3 MHz bandwidth and two antennas using the default SRS configuration. Generate SRS symbols and the information structure (`ind` and `info`).

```ue.DuplexMode = 'FDD'; ue.CyclicPrefixUL = 'Normal'; ue.NFrame = 0; ue.NULRB = 15; ue.NSubframe = 0; chs = struct(); chs.NTxAnts = 2; chs.BWConfig = 7; chs.BW = 0; chs.CyclicShift = 0; chs.ConfigIdx = 7; chs.SeqIdx = 0; chs.SeqGroup = 0; [ind,info] = lteSRS(ue,chs); ```

Since there are two antennas, the SRS symbols are output as a two column vector and the `info` output structure contains two elements.

```ind(1:6,:) size(info) ```
```ans = 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 ans = 1 2 ```

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

```info(1) info(2) ```
```ans = Alpha: 0 SeqGroup: 0 SeqIdx: 0 RootSeq: -1 NZC: -1 ans = Alpha: 3.1416 SeqGroup: 0 SeqIdx: 0 RootSeq: -1 NZC: -1 ```

## Input Arguments

collapse all

### `ue` — UE-specific settingsstructure

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

### `NULRB` — Number of uplink resource blockspositive integer

Number of uplink resource blocks, specified as a positive integer.

Data Types: `double`

### `NSubframe` — Subframe number0 (default) | optional | nonnegative integer

Subframe number, specified as a nonnegative integer.

Data Types: `double`

### `NTxAnts` — Number of transmission antennas1 (default) | optional | 2 | 4

Number of transmission antennas, specified as 1, 2, or 4.

Data Types: `double`

### `CyclicPrefixUL` — Cyclic prefix length for uplink`'Normal'` (default) | optional | `'Extended'`

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

Data Types: `char`

### `NFrame` — Initial frame number0 (default) | optional | nonnegative integer

Initial frame number, specified as a nonnegative integer.

Data Types: `double`

### `DuplexMode` — Duplexing mode`'FDD'` (default) | optional | `'TDD'`

Duplexing mode, specified as `'FDD'` or `'TDD'`. This string represents the frame structure type of the generated waveform.

Example: `'TDD'`

Data Types: `char`

### `TDDConfig` — Uplink or downlink configuration0 (default) | optional | 0,...,6

Uplink or downlink configuration, specified as an integer from 0 to 6. Only required for `TDD` duplex mode.

Data Types: `double`

### `SSC` — Special subframe configuration0 (default) | optional | 0,...,9

Special subframe configuration, specified as an integer from 0 to 9. Only required for `TDD` duplex mode.

Data Types: `double`

### `CyclicPrefix` — Cyclic prefix length in the downlink`'Normal'` (default) | optional | `'Extended'`

Cyclic prefix length in the downlink, specified as `'Normal'` or `'Extended'`.

Data Types: `char`

Data Types: `struct`

### `chs` — Signal transmission configurationstructure

Signal transmission configuration, specified as a structure containing these fields.

### `NTxAnts` — Number of transmission antennas1 (default) | optional | 2 | 4

Number of transmission antennas, specified as 1, 2, or 4.

Data Types: `double`

### `BWConfig` — SRS bandwidth configuration7 (default) | optional | 0,...,7

SRS bandwidth configuration, specified as an integer from 0 to 7. (CSRS)

Data Types: `double`

### `BW` — UE-specific SRS bandwidth0 (default) | optional | 1 | 2 | 3

UE-specific SRS bandwidth, specified as an integer from 0 to 3. (BSRS)

Data Types: `double`

### `ConfigIdx` — Configuration index for UE-specific periodicity7 (default) | optional | 0,...,644

Configuration index for UE-specific periodicity, specified as a nonnegative integer from 0 to 644. This parameter contains the configuration index for UE-specific periodicity (TSRS) and subframe offset (Toffset).

Data Types: `double`

### `CyclicShift` — UE-specific cyclic shift0 (default) | optional | 0,...,7

UE-specific cyclic shift, specified as an integer from 0 to 7. (${n}_{SRS}^{cs}$)

Data Types: `double`

### `SeqGroup` — SRS sequence group number0 (default) | optional | 0,...,29

SRS sequence group number, specified as an integer from 0 to 29. (u)

Data Types: `double`

### `SeqIdx` — Base sequence number0 (default) | optional | 1

Base sequence number, specified as either 0 or 1. (v)

Data Types: `double` | `logical`

### `OffsetIdx` — SRS subframe offset 0 (default) | optional | 1

SRS subframe offset choice for 2 ms SRS periodicity, specified as 0 or 1. Only required for `'TDD'` duplex mode. This parameter indexes the two SRS subframe offset entries in the row of TS 36.213 [1], Table 8.2-2 for the SRS configuration index specified by the `ConfigIdx` parameter.

Data Types: `double`

Data Types: `struct`

## Output Arguments

collapse all

### `seq` — Uplink SRS valuescomplex matrix

Uplink SRS values, returned as a complex matrix. The symbols for each antenna are in the columns of the matrix, `seq`. The symbols for each antenna are in the columns of `seq`, with the number of columns determined by the number of transmission antennas configured.

Data Types: `double`
Complex Number Support: Yes

### `info` — Information related to SRSstructure

Information related to SRS, returned as a structure array with elements corresponding to each transmit antenna and containing these fields.

### `Alpha` — Reference signal cyclic shiftnumeric scalar

Reference signal cyclic shift, returned as a numeric scalar. (α)

Data Types: `double`

### `SeqGroup` — SRS sequence group number0,...,29

SRS sequence group number, returned as an integer from 0 to 29. (u)

Data Types: `double`

### `SeqIdx` — Base sequence number0 | 1

Base sequence number, returned as 0 or 1. (v)

Data Types: `double`

### `RootSeq` — Root Zadoff-Chu sequence indexinteger

Root Zadoff-Chu sequence index, returned as an integer. (q)

Data Types: `double`

### `NZC` — Zadoff-Chu sequence lengthinteger

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

Data Types: `double`

Data Types: `struct`

collapse all

### SRS Processing

As specified in TS 36.213, Section 8.2, a UE shall transmit the sounding reference symbol (SRS) on per serving cell SRS resources, based on two trigger types:

• trigger type 0 — periodic SRS from higher layer signalling

• trigger type 1 — aperiodic SRS from DCI formats 0/4/1A for FDD or TDD and from DCI formats 2B/2C/2D for TDD.

If type 1 triggered SRS transmission is intended, then:

• `chs``.``ConfigIdx` indexes trigger type 1 UE-specific periodicity TSRS,1 and subframe offset Toffset,1. The valid range of `chs``.``ConfigIdx` (ISRS) is from 0 to 16 for FDD and from 0 to 24 for TDD.

• Frequency hopping is not permitted. Therefore, set `chs``.``HoppingBW` to be greater than or equal to `BW`. (bhop ≥ BSRS).

To control whether to call the `lteSRS` and `lteSRSIndices` functions in a subframe, use `info.IsSRSSubframe`, returned by `lteSRSInfo`.

UE-specific configurations determine how `lteSRS` and `lteSRSIndices` operate. When no SRS is scheduled, calling `lteSRS` or `lteSRSIndices` in a subframe:

• May generate an SRS depending on the cell-specific SRS subframe configuration.

• Returns an empty `seq` or `ind` vector, for a given UE-specific SRS configuration. Also, the `info` structure scalar fields are set to –1, and any undefined vector fields are empty.

For short-base reference sequences, used with SRS transmissions spanning 4 PRBs, the `lteSRS` function does not use Zadoff Chu sequences and it sets `info``.``RootSeq` and `info``.``NZC` to –1.

`lteSRSIndices` returns the UE-specific SRS periodicity, `info``.``UePeriod`, and subframe offset, `info``.``UeOffset`. These parameters are distinct from the cell-specific SRS periodicity and subframe offset that `lteSRSInfo` returns.

If `chs``.``NTxAnts` is not present, `ue``.``NTxAnts` is used. If neither is present, the function assumes one antenna. In `lteSRSIndices`, for SRS transmission on multiple antennas:

• When `chs``.``NTxAnts` is set to 2 or 4, the value of `info``.``Port` matches the position in the structure array (0,...,`NTxAnts` – 1).

• If `chs``.``NTxAnts` is set to 1, `lteSRSIndices` uses `info``.``Port` to indicate the port chosen by SRS transmit antenna selection. `info``.``Port` indicates the selected antenna port, 0 or 1.

## References

[1] 3GPP TS 36.213. "Physical layer procedures." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.