Main Content

lteSRSIndices

Uplink SRS resource element indices

Description

example

ind = lteSRSIndices(ue,chs) returns a column vector of resource element (RE) indices for the Uplink sounding reference signal (SRS) given structures with the UE-specific settings, and the signal transmission configuration settings. For more information, see SRS Processing and TS 36.213 [1], Section 8.2.

example

[ind,info] = lteSRSIndices(ue,chs) also returns an SRS information structure array, info.

example

[___] = lteSRSIndices(ue,chs,opts) formats the returned indices using options specified by opts.

This syntax supports output options from prior syntaxes.

Examples

collapse all

This example creates SRS indices for 3 MHz bandwidth.

Set the signal transmission configuration, chs structure fields.

chs.NTxAnts = 1;
chs.BWConfig = 7;
chs.BW = 0;
chs.ConfigIdx = 7;
chs.TxComb = 0;
chs.HoppingBW = 0;
chs.FreqPosition = 0;

Set ue structure fields.

ue.DuplexMode = 'FDD';
ue.CyclicPrefixUL = 'Normal';
ue.NFrame = 0;
ue.NULRB = 15;
ue.NSubframe = 0;

Generate the Uplink SRS resource element indices.

srsIndices = lteSRSIndices(ue,chs);
srsIndices(1:4)
ans = 4x1 uint32 column vector

   2401
   2403
   2405
   2407

Generate the SRS indices 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. Generate SRS indices and the information structure (ind and info).

ue.DuplexMode = 'FDD';
ue.CyclicPrefixUL = 'Normal';
ue.NFrame = 0;
ue.NULRB = 15;
ue.NSubframe = 0;

chs.NTxAnts = 2;
chs.BWConfig = 7;
chs.BW = 0;
chs.ConfigIdx = 7;
chs.TxComb = 0;
chs.HoppingBW = 0;
chs.FreqPosition = 0;

[ind,info] = lteSRSIndices(ue,chs);

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

ind(1:10,:)
ans = 10x2 uint32 matrix

   2401   4921
   2403   4923
   2405   4925
   2407   4927
   2409   4929
   2411   4931
   2413   4933
   2415   4935
   2417   4937
   2419   4939

size(info)
ans = 1×2

     1     2

View the contents of the two info structure elements.

info(1)
ans = struct with fields:
         UePeriod: 10
         UeOffset: 0
           PRBSet: [4x1 double]
        FreqStart: 60
          KTxComb: 0
         BaseFreq: 60
          FreqIdx: 0
    HoppingOffset: 0
           NSRSTx: 0
             Port: 0

info(2)
ans = struct with fields:
         UePeriod: 10
         UeOffset: 0
           PRBSet: [4x1 double]
        FreqStart: 60
          KTxComb: 0
         BaseFreq: 60
          FreqIdx: 0
    HoppingOffset: 0
           NSRSTx: 0
             Port: 1

Generate the SRS indices 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. Generate SRS indices and the information structure (ind and info).

ue.DuplexMode = 'FDD';
ue.CyclicPrefixUL = 'Normal';
ue.NFrame = 0;
ue.NULRB = 15;
ue.NSubframe = 0;

chs.NTxAnts = 2;
chs.BWConfig = 7;
chs.BW = 0;
chs.ConfigIdx = 7;
chs.TxComb = 0;
chs.HoppingBW = 0;
chs.FreqPosition = 0;

[ind,info] = lteSRSIndices(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

    48     3

ind(22:27,:)
ans = 6x3 uint32 matrix

   103    14     1
   105    14     1
   107    14     1
    61    14     2
    63    14     2
    65    14     2

Since there are two antennas, the info output structure contains two elements. View the contents of the second info structure element.

size(info)
ans = 1×2

     1     2

info(2)
ans = struct with fields:
         UePeriod: 10
         UeOffset: 0
           PRBSet: [4x1 double]
        FreqStart: 60
          KTxComb: 0
         BaseFreq: 60
          FreqIdx: 0
    HoppingOffset: 0
           NSRSTx: 0
             Port: 1

Input Arguments

collapse all

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

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

Data Types: double

Number of subframes, specified as a nonnegative integer.

Data Types: double

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

Data Types: double

Cyclic prefix length, specified as 'Normal' or 'Extended'.

Data Types: char | string

Initial frame number, returned as a nonnegative integer.

Data Types: double

Duplexing mode, specified as 'FDD' or 'FDD' to indicate the frame structure of the generated waveform.

Data Types: char | string

Uplink or downlink configuration, returned as a nonnegative integer from 0 to 6. Only required for 'TDD' duplex mode.

Data Types: double

Special subframe configuration, returned as a nonnegative integer from 0 to 9. Only required for 'TDD' duplex mode.

Data Types: double

Cyclic prefix length, returned as 'Normal' or 'Extended'. Only required for 'TDD' duplex mode.

Data Types: char | string

Data Types: struct

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

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

Data Types: double

Cell-specific SRS bandwidth configuration, specified as a nonnegative integer from 0 to 7. (CSRS)

Data Types: double

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

Data Types: double

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

Transmission comb, specified as a 0 or 1. This parameter controls SRS positions. SRS is transmitted in six carriers per resource block on odd (1) and even (0) resource indices.

Data Types: double | logical

SRS frequency hopping configuration index, specified as a nonnegative integer from 0 to 3. (bhop)

Data Types: double

Frequency-domain position, specified as a nonnegative integer from 0 to 23. (nRRC)

Data Types: double

UE-specific cyclic shift, specified as a nonnegative integer from 0 to 7. This parameter applies only when NTxAnts is 4. (nSRScs)

Data Types: double

Number of RACH preamble frequency resources of format 4 in UpPTS, specified as a nonnegative integer from 0 to 6. Only required for 'TDD' duplex mode.

Data Types: double

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

Option to disable reconfiguration of sounding maximum bandwidth, specified as 0 or 1. Only required for 'TDD' duplex mode. Enables (1) or disables (0) reconfiguration of mSRS,0max in UpPTS. See TS 36.331 [2] for information on how the system information element srs-MaxUpPts applies tomSRS,0max configurability.

Data Types: double | logical

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

Antenna indices, returned as a numeric 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 SRS modulation symbols 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 transmission antennas configured specified in chs.NTxAnts. For more information, see SRS Processing.

Data Types: uint32

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

UE-specific SRS periodicity, in ms, returned as a positive integer.

Data Types: double

UE-specific SRS offset, returned as an integer from 0 to 319.

Data Types: double

Physical resource block set, returned as a vector of integers. PRBSet specifies the PRBs occupied by the indices (zero-based).

Data Types: double

Frequency-domain starting position (k0), returned as a numeric scalar. This argument is the zero-based subcarrier index of the lowest SRS subcarrier.

Data Types: double

Offset to the frequency-domain starting position (kTC), returned as a numeric scalar. This argument is a function of the transmission comb parameter.

Data Types: double

Base (cell-specific) frequency-domain starting position (k¯0), returned as a numeric scalar. This UE-specific SRS is offset as a function of the UE-specific SRS bandwidth value, BSRS. UE-specific SRS configuration cannot result in a frequency-domain starting position (k0) lower than this value, given the cell-specific SRS bandwidth configuration value, CSRS.

Data Types: double

Frequency position index, returned as a numeric vector. This argument specifies the frequency position index (nb) for each b in the range 0,...,BSRS.

Data Types: double

Offset term due to frequency hopping, returned as a numeric vector. This argument specifies the offset term due to frequency hopping (Fb), used in the calculation of nb.

Data Types: double

Number of UE-specific SRS transmissions (nSRS), returned as a positive integer.

Data Types: double

Antenna port number used for transmission (p), returned as a positive integer.

Data Types: double

Data Types: struct

More About

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.

The parameter chs.ConfigIdx indexes Tables 8.2-1, 8.2-2, 8.2-4, and 8.2-5 defined in TS 36.213, Section 8.2. The applicable table and appropriate range of chs.ConfigIdx depends on the duplex mode and the SRS trigger type.

If type 0 triggered SRS transmission is intended, then:

  • The valid range of chs.ConfigIdx (ISRS) is from 0 to 636 for FDD (Table 8.2-1) and from 0 to 644 for TDD (Table 8.2-2).

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 (Table 8.2-4) and from 0 to 24 for TDD (Table 8.2-5).

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

UpPTS

Uplink pilot time slot — the uplink part of the special subframe. This special subframe is only applicable for TDD operation. For more information, see Frame Structure Type 2: TDD.

References

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

[2] 3GPP TS 36.331. “Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control (RRC); Protocol specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2014a