nrPUCCHDMRSIndices
Description
generates ind
= nrPUCCHDMRSIndices(carrier
,pucch
)ind
, which contains demodulation reference signal (DM-RS)
resource element (RE) indices of a physical uplink control channel (PUCCH), as defined in TS
38.211 Section 6.4.1.3 [1], for all PUCCH formats.
carrier
specifies the carrier configuration.
pucch
specifies the PUCCH configuration. For PUCCH format 0, the
function returns an empty value for sym
.
specifies output formatting options using one or more name-value arguments.ind
= nrPUCCHDMRSIndices(carrier
,pucch
,Name,Value
)
Examples
Generate PUCCH DM-RS Format 2 Symbols and Indices
Create a default carrier configuration object.
carrier = nrCarrierConfig;
Specify the number of RBs in the carrier resource grid as 50, the start of the carrier resource grid relative to CRB 0 as 120, and the slot number as 25.
carrier.NSizeGrid = 50; carrier.NStartGrid = 120; carrier.NSlot = 25;
Create a default PUCCH format 2 configuration object.
pucch2 = nrPUCCH2Config;
Specify the first symbol index in the PUCCH transmission slot as 7 and the number of allocated PUCCH symbols as 2. Set the PRBs allocated for the PUCCH to range from 40 to 45. Enable intraslot frequency hopping and set the starting PRB index of the second hop to 20. Specify the DM-RS scrambling identity as 1005.
pucch2.SymbolAllocation = [7 2];
pucch2.PRBSet = 40:45;
pucch2.FrequencyHopping = 'intraSlot';
pucch2.SecondHopStartPRB = 20;
pucch2.NID0 = 1005;
Generate the DM-RS symbols of PUCCH format 2.
sym = nrPUCCHDMRS(carrier,pucch2)
sym = 48×1 complex
0.7071 - 0.7071i
-0.7071 + 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 - 0.7071i
-0.7071 + 0.7071i
⋮
Generate the DM-RS RE indices of PUCCH format 2.
ind = nrPUCCHDMRSIndices(carrier,pucch2)
ind = 48x1 uint32 column vector
4682
4685
4688
4691
4694
4697
4700
4703
4706
4709
⋮
Plot the generated symbols and REs in the carrier resource grid.
resGrid = nrResourceGrid(carrier); resGrid(ind) = sym; imagesc(abs(resGrid)) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing DM-RS of PUCCH Format 2')
Generate PUCCH DM-RS Format 4 Symbols and Indices
Create a default carrier configuration object.
carrier = nrCarrierConfig;
Specify the number of RBs in the carrier resource grid to 10.
carrier.NSizeGrid = 10;
Create a default PUCCH format 4 configuration object.
pucch4 = nrPUCCH4Config;
Set the first symbol index in the PUCCH transmission slot to 2 and the number of allocated PUCCH symbols to 12. Enable group hopping and the additional DM-RS configuration flag. Specify the hopping identity as 120, the spreading factor as 4, and the orthogonal cover code index (OCCI) as 3.
pucch4.SymbolAllocation = [2 12];
pucch4.GroupHopping = 'enable';
pucch4.HoppingID = 120;
pucch4.SpreadingFactor = 4;
pucch4.OCCI = 3;
pucch4.AdditionalDMRS = 1;
Generate the DM-RS symbols of PUCCH format 4 with data type single
.
sym = nrPUCCHDMRS(carrier,pucch4, 'OutputDataType','single')
sym = 48x1 single column vector
0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 - 0.7071i
-0.7071 - 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 + 0.7071i
-0.7071 - 0.7071i
0.7071 + 0.7071i
0.7071 + 0.7071i
⋮
Generate the DM-RS RE indices of PUCCH format 4.
ind = nrPUCCHDMRSIndices(carrier,pucch4)
ind = 48x1 uint32 column vector
361
362
363
364
365
366
367
368
369
370
⋮
Plot the generated symbols and REs in the carrier resource grid.
resGrid = nrResourceGrid(carrier); resGrid(ind) = sym; imagesc(abs(resGrid)) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing DM-RS of PUCCH Format 4')
Input Arguments
carrier
— Carrier configuration parameters
nrCarrierConfig
object
Carrier configuration parameters for a specific OFDM numerology, specified as an
nrCarrierConfig
object. This function only uses these nrCarrierConfig
object properties.
pucch
— PUCCH configuration parameters
nrPUCCH1Config
object | nrPUCCH2Config
object | nrPUCCH3Config
object | nrPUCCH4Config
object
PUCCH configuration parameters, specified as one of these options.
For format 1, specify an
nrPUCCH1Config
object. The function uses only these object properties.For format 2, specify an
nrPUCCH2Config
object. The function uses only these object properties.For format 3, specify an
nrPUCCH3Config
object. The function uses only these object properties.For format 4, specify an
nrPUCCH4Config
object. The function uses only these object properties.
For PUCCH formats 1 to 3 and operation with
shared spectrum channel access for frequency range 1 (FR1), set the corresponding
Interlacing
property to true
, and use the
RBSetIndex
and InterlaceIndex
object
properties to specify the allocated frequency resources. In addition, for PUCCH formats
2 and 3, you can use the SpreadingFactor
and
OCCI
properties with single-interlace configurations. (since R2023b)
Note
For PUCCH format 0, the function returns an empty value.
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'
specifies the RE indexing form 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
IndexOrientation
— RE indexing orientation
'carrier'
(default) | 'bwp'
RE indexing orientation, specified as one of these values:
'carrier'
— Indices are referenced with respect to the carrier grid.'bwp'
— Indices are referenced with respect to the BWP.
Data Types: char
| string
Output Arguments
ind
— PUCCH DM-RS RE indices
column vector | M-by-3 matrix
PUCCH DM-RS RE indices, returned as one of these values.
Column vector — The function returns this type of value when you set the
IndexStyle
name-value argument to'index'
.M-by-3 matrix — The function returns this type of value when you set the
IndexStyle
name-value argument 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.
Depending on the value of IndexBase
, the function returns
either 1-based or 0-based indices. Depending on the value of
IndexOrientation
, the function returns either carrier-oriented
indices or BWP-oriented indices.
For PUCCH format 0, this output is empty.
Data Types: uint32
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 R2021aR2023b: Configure intracell guard bands
Use the IntraCellGuardBands
object property of the carrier
input
to specify intracell guard bands.
R2023b: Support for release 16 interlacing for operation in unlicensed spectrum (NR-U)
For PUCCH formats 1 to 3, use the Interlacing
,
RBSetIndex
, and InterlaceIndex
object properties
of the
pucch
input argument to configure interlaced PUCCH transmissions. In addition, for PUCCH formats 2
and 3, you can use the SpreadingFactor
and OCCI
properties with single-interlace configurations.
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.
See Also
Functions
Objects
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)