nrWavegenPUCCH4Config
Description
The nrWavegenPUCCH4Config
object sets physical uplink control channel
(PUCCH) configuration parameters for format 4, as defined in TS 38.211 Sections 6.3.2.1,
6.3.2.2, 6.3.2.6, and 6.4.1.3.3 [1]. Use this object to set the
PUCCH
property of the nrULCarrierConfig
object when you
configure 5G uplink waveform generation.
The default nrWavegenPUCCH4Config
object allocates a PUCCH format 4 in the first
resource block (RB) of the bandwidth part (BWP) and in all OFDM symbols in a slot. PUCCH
format 4 transmission is in all slots and carries 10 uplink control information (UCI) part 1
bits and no UCI part 2 bits.
Creation
Description
creates a
default PUCCH format 4 configuration object for 5G waveform generation.pucch
= nrWavegenPUCCH4Config
sets properties using one
or more name-value arguments. For example, pucch
= nrWavegenPUCCH4Config(Name=Value
)Period=20
specifies 20 slots
for the PUCCH allocation period.
Properties
Channel Configuration
Enable
— Option to enable PUCCH configuration
true
or 1
(default) | false
or 0
Option to enable this PUCCH configuration in 5G waveform generation, specified as one of these numeric or logical values.
1
(true
) — Enable this PUCCH.0
(false
) — Disable this PUCCH.
Data Types: double
| logical
Label
— Name of PUCCH format 4 configuration
'PUCCH format 4'
(default) | character vector | string scalar
Name of this PUCCH format 4 configuration, specified as a character vector or string scalar. Use this property to set a description to the configuration.
Data Types: char
| string
Power
— Power scaling of PUCCH in dB
0
(default) | real-valued scalar | real-valued vector (since R2024b)
Power scaling of the PUCCH in dB, specified as a real-valued scalar or real-valued vector of
length equal to the number of allocated transmissions in a period configured
by the SlotAllocation
property. Use this property to
scale the power of the configured PUCCH in the generated 5G waveform.
Data Types: double
BandwidthPartID
— ID of BWP
1
(default) | nonnegative integer
ID of the BWP containing the configured PUCCH, specified as a nonnegative integer. Use this
property to associate this PUCCH configuration with one of the BWP configurations
specified by the BandwidthParts
property of the nrULCarrierConfig
object.
Data Types: double
Modulation
— Modulation scheme
'QPSK'
(default) | 'pi/2-BPSK'
Modulation scheme, specified as 'QPSK'
or
'pi/2-BPSK'
.
Modulation Scheme | Number of Bits Per Symbol |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
Data Types: char
| string
SymbolAllocation
— OFDM symbol allocation of PUCCH
[0 14]
(default) | []
| two-element vector of nonnegative integers
OFDM symbol allocation of the PUCCH within a slot, specified as []
or a
two-element vector of nonnegative integers. The first element of this property
represents the start of symbol allocation. The second element represents the number of
consecutively allocated OFDM symbols and must be in the range [4, 14]. To indicate that
no OFDM symbols are allocated for the PUCCH, use []
or specify the
second element of the vector as 0
.
Data Types: double
SlotAllocation
— Slot allocation in PUCCH period
[0:9]
(default) | nonnegative integer | row vector of nonnegative integers
Slot allocation in a PUCCH period, specified as a nonnegative integer or a row vector of nonnegative integers. This property specifies the slot positions of the PUCCH by using 0-based indexing and values that are less than the value of the Period
property. The object ignores slot allocation values that are greater than the period.
Data Types: double
Period
— PUCCH allocation period in slots
10
(default) | nonnegative integer | []
PUCCH allocation period in slots, specified as a nonnegative integer or []
. An empty period indicates no repetition.
Data Types: double
PRBSet
— PRB allocation
0
(default) | vector of integers from 0 to 274 | []
Physical resource block (PRB) allocation of the PUCCH within the BWP, specified as
a vector of integers from 0 to 274 or []
. To indicate that no
resource blocks are allocated for the PUCCH, use []
.
Data Types: double
FrequencyHopping
— Frequency hopping configuration for PUCCH
'neither'
(default) | 'intraSlot'
| 'interSlot'
Frequency hopping configuration for the PUCCH, specified as one of these values.
'neither'
— Indicates no frequency hopping'intraSlot'
— Enables intraslot frequency hopping'interSlot'
— Enables interslot frequency hopping
When you enable interslot frequency hopping, the slot number determines the
starting resource block for the allocated OFDM symbols. For even-numbered slots, the
resource block starts from the minimum resource block allocated in the
PRBSet
property. For odd-numbered slots, the resource block
starts from the resource block provided in the SecondHopStartPRB
property.
Data Types: char
| string
SecondHopStartPRB
— Starting PRB index of second hop relative to BWP
1
(default) | integer from 0 to 274
Starting PRB index of the second hop relative to the BWP, specified as an integer from 0 to 274.
Dependencies
To enable this property, set the FrequencyHopping
property to
'intraSlot'
or 'interSlot'
and set the
Interlacing
property to 0
(false
).
Data Types: double
GroupHopping
— Group hopping configuration for PUCCH
'neither'
(default) | 'enable'
| 'disable'
Group hopping configuration for the PUCCH, specified as one of these values.
'neither'
— Disables group hopping and sequence hopping'enable'
— Enables group hopping and disables sequence hopping'disable'
— Disables group hopping and enables sequence hopping
This property is the higher-layer parameter pucch-GroupHopping.
Data Types: char
| string
HoppingID
— Hopping identity of PUCCH
[]
(default) | integer from 0 to 1023
Hopping identity of the PUCCH, specified as []
or an integer from 0 to 1023.
If the higher-layer parameter hoppingId is configured, this property must be an integer from 0 to 1023.
If the higher-layer parameter hoppingId is not configured, this property must be equal to the physical layer cell identity and be an integer from 0 to 1007.
When you specify this property as []
, the object sets the PUCCH hopping identity to the physical layer cell identity specified by the NCellID
property of the nrULCarrierConfig
object.
Data Types: double
SpreadingFactor
— Spreading factor
2
(default) | 4
Spreading factor, specified as 2
or 4
.
Data Types: double
OCCI
— Orthogonal cover code index
0
(default) | integer from 0 to 3
Orthogonal cover code index (OCCI), specified as an integer from 0 to 3. The OCCI
value must be less than the SpreadingFactor
property.
Data Types: double
NID
— PUCCH scrambling identity
[]
(default) | integer from 0 to 1023
PUCCH scrambling identity, specified as []
or an integer from 0 to 1023.
If the higher-layer parameter dataScramblingIdentityPUSCH is configured, this property must be an integer from 0 to 1023.
If the higher-layer parameter dataScramblingIdentityPUSCH is not configured, this property must be equal to the physical layer cell identity and be an integer from 0 to 1007.
When you specify this property as []
, the object sets the PUCCH scrambling identity to the physical layer cell identity specified by the NCellID
property of the nrULCarrierConfig
object.
Data Types: double
RNTI
— Radio network temporary identifier
1
(default) | integer from 0 to 65,535
Radio network temporary identifier of the user equipment (UE), specified as an integer from 0 to 65,535.
Data Types: double
Coding
— PUCCH encoding of UCI
true
or 1
(default) | false
or 0
PUCCH encoding of UCI, specified as one of these numeric or logical values.
1
(true
) — Enable UCI encoding.0
(false
) — Disable UCI encoding.
Data Types: double
| logical
UCI and DM-RS Configuration
TargetCodeRate
— Target code rate
0.15
(default) | numeric scalar between 0 and 1
Target code rate, specified as a numeric scalar between 0 and 1.
Dependencies
To enable this property, set the Coding
property to 1
and the NumUCIBits
and
NumUCI2Bits
properties to a
positive integer.
Data Types: double
NumUCIBits
— Number of UCI part 1 bits
10
(default) | integer from 0 to 1706
Number of UCI part 1 bits, specified as an integer from 0 to 1706. For no UCI transmission,
set this property to 0
.
Data Types: double
DataSourceUCI
— Source of UCI part 1 contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of UCI part 1 contents, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
)Binary-valued vector
If you do not specify a random seed, the object initializes all shift registers with an active state.
Dependencies
To enable this property, set the NumUCIBits
property to a positive integer.
Data Types: double
| cell
| string
| char
NumUCI2Bits
— Number of UCI part 2 bits
0
(default) | integer from 0 to 1706
Number of UCI part 2 bits, specified as an integer from 0 to 1706. For
no UCI transmission, set this property to
0
.
Data Types: double
DataSourceUCI2
— Source of UCI part 2 contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of UCI part 2 contents, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
)Binary-valued vector
If you do not specify a random seed, the object initializes all shift registers with an active state.
Dependencies
To enable this property, set the NumUCI2Bits
property to a positive
integer.
Data Types: double
| cell
| string
| char
NID0
— DM-RS scrambling identity
[]
(default) | integer from 0 to 65,535
Demodulation reference signal (DM-RS) scrambling identity, specified as []
or an integer from 0 to 65,535.
If the higher-layer parameter scramblingID0 is configured, this property must be an integer from 0 to 65,535.
If the higher-layer parameter scramblingID0 is not configured, this property must be equal to the physical layer cell identity and be an integer from 0 to 1007.
When you specify this property as []
, the object sets the DM-RS scrambling identity to the physical layer cell identity specified by the NCellID
property of the nrULCarrierConfig
object.
Data Types: double
DMRSUplinkTransformPrecodingR16
— Release 16 low PAPR DM-RS sequence for DFT-s-OFDM
false
or 0
(default) | true
or 1
Since R2023b
Release 16 low peak-to-average-power (PAPR) DM-RS sequence for DFT-s-OFDM, specified as one of these logical values.
0
(false
) — Disable the use of low PAPR DM-RS for DFT-s-OFDM. The DM-RS sequence generation uses type 1 low PAPR sequences.1
(true
) — Enable the use of low PAPR DM-RS for DFT-s-OFDM. The DM-RS sequence generation uses type 2 low PAPR sequences.
Dependencies
To enable this property, set the Modulation
property to
'pi/2-BPSK'
.
Data Types: double
AdditionalDMRS
— Option to enable additional DM-RS
false
or 0
(default) | true
or 1
Option to enable additional demodulation reference signal (DM-RS), provided by the higher-layer parameter additionalDMRS, specified as one of these numeric or logical values.
0
(false
) — Disable additional DM-RS. When the number of the PUCCH OFDM symbols is greater than 9, two DM-RS symbols are present.1
(true
) — Enable additional DM-RS. When the number of the PUCCH OFDM symbols is greater than 9, four DM-RS symbols are present.
Data Types: double
| logical
DMRSPower
— Power scaling of PUCCH DM-RS in dB
0
(default) | real-valued scalar
Power scaling of the PUCCH DM-RS in dB, specified as a real-valued scalar. Use this property
to scale the power of the PUCCH DM-RS in the generated 5G waveform. This scaling is
additional to the PUCCH-wide power scaling specified by the Power
property.
Data Types: double
Examples
Configure Multiple PUCCH for 5G Uplink Waveform Generation
Create two SCS carrier configuration objects with mixed numerologies.
carrier1 = nrSCSCarrierConfig(SubcarrierSpacing=15); carrier2 = nrSCSCarrierConfig(SubcarrierSpacing=30);
Create two BWP configuration objects, one for each of the SCS carriers.
bwp1 = nrWavegenBWPConfig(BandwidthPartID=1,SubcarrierSpacing=15); bwp2 = nrWavegenBWPConfig(BandwidthPartID=2,SubcarrierSpacing=30);
Create a PUCCH format 0 configuration object for the first SCS carrier and a PUCCH format 1 configuration object for the second SCS carrier. For configuring PUCCH format 2, 3, or 4, use the nrWavegenPUCCH2Config
, nrWavegenPUCCH3Config
, or nrWavegenPUCCH4Config
configuration objects, respectively. By default, each PUCCH configuration object enables the PUCCH on their respective carriers.
pucch1 = nrWavegenPUCCH0Config( ... BandwidthPartID=1,SlotAllocation=0:9,PRBSet=2,DataSourceUCI='PN9'); pucch2 = nrWavegenPUCCH1Config( ... BandwidthPartID=2,SlotAllocation=0:9,PRBSet=2,DataSourceUCI='PN9');
Create a PUSCH configuration object such that the PUSCH does not overlap with the previously configured PUCCH in the generated waveform.
pusch = nrWavegenPUSCHConfig(BandwidthPartID=1, ...
SymbolAllocation=[0,8],PRBSet=10:51);
Create an uplink carrier configuration object for 5G waveform generation, specifying the previously defined configurations. You can disable the PUCCH in either SCS carrier by setting the corresponding cfg.PUCCH{1}.Enable
or cfg.PUCCH{2}.Enable
properties, respectively, to false
.
cfg = nrULCarrierConfig( ... SCSCarriers={carrier1,carrier2}, ... BandwidthParts={bwp1,bwp2}, ... PUSCH={pusch}, ... PUCCH={pucch1,pucch2});
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 R2021bR2024b: Configure separate power scaling for each PUCCH in a period
Configure separate power scaling for each PUCCH in a period by setting the
Power
property to a vector of length equal to
the number of allocated transmissions in a period.
R2023b: Release 16 updates for low PAPR sequences and DM-RS scrambling identities
Use the DMRSUplinkTransformPrecodingR16
and NID0
object properties to specify type 2 low PAPR PUCCH DM-RS
sequences and DM-RS scrambling identities, respectively, as defined in Release 16 of TS
38.211 Section 6.4.1.3.3.1.
R2023a: Release 17 updates to PRBSet
property
You can now set the PRBSet
object property to a vector, as defined in Release 17 of TS 38.213
Section 9.2.1 and TS 38.211 Section 6.3.2.6. In previous releases, you set this property to
a scalar.
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)