nrSRSIndices
Description
[
returns resource element indices ind
,info
] = nrSRSIndices(carrier
,srs
)ind
for the uplink sounding reference
signal (SRS), as defined in TS 38.211 section 6.4.1.4.3 [1]. The input
carrier
specifies carrier configuration parameters for a specific
OFDM numerology. The input srs
specifies SRS configuration
parameters.
Examples
Generate SRS Indices for Two-Port Transmission
Configure the carrier with default configuration parameters.
carrier = nrCarrierConfig;
Configure a two-port SRS transmission of 4 OFDM symbols.
srs = nrSRSConfig; srs.NumSRSPorts = 2; srs.NumSRSSymbols = 4;
Set the time-domain starting position of the SRS to 8
and the bandwidth configuration index to 5
.
srs.SymbolStart = 8; srs.CSRS = 5;
Generate SRS resource element indices for the specified carrier and SRS configuration parameters.
ind = nrSRSIndices(carrier,srs,'IndexStyle','subscript');
Verify that the index matrix has three columns corresponding to the [subcarrier, symbol, antenna] subscripts.
size(ind)
ans = 1×2
960 3
Generate and Map SRS Symbols to Carrier Grid
Configure the SRS and the carrier with default configuration parameters.
carrier = nrCarrierConfig; srs = nrSRSConfig;
Generate SRS symbols and indices using the specified carrier and SRS configuration parameters.
srsSym = nrSRS(carrier,srs); srsInd = nrSRSIndices(carrier,srs);
Create a carrier grid corresponding to the number of subcarriers, OFDM symbols, and number of antenna ports specified in the configuration objects.
K = carrier.NSizeGrid*12; % Number of subcarriers L = carrier.SymbolsPerSlot; % Number of OFDM symbols per slot P = srs.NumSRSPorts; % Number of antenna ports gridSize = [K L P];
Initialize the carrier grid for one slot with all zeros.
slotGrid = complex(zeros(gridSize));
Map the SRS symbols to the carrier grid using the indices.
slotGrid(srsInd) = srsSym;
Input Arguments
carrier
— Carrier configuration parameters
nrCarrierConfig
object
Carrier configuration parameters for a specific OFDM numerology, specified as an nrCarrierConfig
object.
srs
— SRS configuration parameters
nrSRSConfig
object
SRS configuration parameters, specified as an nrSRSConfig
object.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: 'IndexStyle','subscript','IndexBase','0based'
specifies the
indexing style and indexing base of the output.
IndexStyle
— RE indexing form
'index'
(default) | 'subscript'
RE indexing form, specified as one of these values:
'index'
— The indices are in linear index form.'subscript'
— The indices are in [subcarrier, symbol, antenna] subscript row form.
Data Types: char
| string
IndexBase
— RE indexing base
'1based'
(default) | '0based'
RE indexing base, specified as one of these values:
'1based'
— The index counting starts from 1.'0based'
— The index counting starts from 0.
Data Types: char
| string
Output Arguments
ind
— SRS resource element indices
N-by-P matrix (default) | M-by-3 matrix
SRS resource element indices, returned as one of these values:
N-by-P matrix — When '
IndexStyle
' is set to'index'
and where P is the number of antenna ports.M-by-3 matrix — When '
IndexStyle
' is set to'subscript'
. The matrix rows correspond to the [subcarrier, symbol, antenna] subscripts based on the number of subcarriers, OFDM symbols, and number of antennas, respectively.
The number of rows depends on the SRS configuration specified by
srs
. The NumSRSPorts
property of
srs
determines the number of antenna ports. Depending on
'IndexBase
', the
indices are either 1-based or 0-based.
Data Types: uint32
info
— Information about SRS index generation
structure
Information about the SRS index generation, returned as a structure containing these fields:
Fields | Values | Description |
---|---|---|
SubcarrierOffset | srs .NumSRSPorts -by-srs .NumSRSSymbols
integer matrix | Frequency starting position per antenna port and OFDM symbol (parameter k0 in TS 38.211 Section 6.4.1.4.3) |
FreqIndex | (srs .BSRS +
1)-by-srs .NumSRSSymbols integer
matrix | Frequency position index per OFDM symbol (parameter
nb in TS 38.211 Section
6.4.1.4.3, where b is an integer from 0 to
srs .BSRS ) |
HoppingOffset | (srs .BSRS –
srs .BHop )-by-srs .NumSRSSymbols
integer matrix | Hopping offset per OFDM symbol (parameter
Fb in TS 38.211 Section
6.4.1.4.3, where b is an integer from
srs .BHop + 1 to
srs .BSRS ) |
PRBSet |
srs .NRBPerTransmission -by-srs .NumSRSSymbols
integer matrix | Resource blocks allocated for SRS per OFDM symbol |
References
[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2020aR2024a: Specify eight antenna ports and comb offset hopping
The srs
input argument enables you to:
Specify eight antenna ports through the
NumSRSPorts
property.Specify eight-port TDM for SRS transmission through the
EnableEightPortTDM
property.Configure comb offset hopping in SRS transmissions through the
CombOffsetHopping
,CombOffsetHoppingID
,CombOffsetHoppingSubset
, andHoppingWithRepetition
properties.
R2023a: C/C++ code generation updates
For C/C++ code generation, the limitation to specify name-value arguments as compile-time constants has been removed.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)