Main Content

nrWavegenPUCCH4Config

PUCCH format 4 configuration parameters for 5G waveform generation

Since R2021b

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

pucch = nrWavegenPUCCH4Config creates a default PUCCH format 4 configuration object for 5G waveform generation.

pucch = nrWavegenPUCCH4Config(Name=Value) sets properties using one or more name-value arguments. For example, Period=20 specifies 20 slots for the PUCCH allocation period.

example

Properties

expand all

Channel Configuration

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

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

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 scheme, specified as 'QPSK' or 'pi/2-BPSK'.

Modulation SchemeNumber of Bits Per Symbol
'pi/2-BPSK'1
'QPSK'2

Data Types: char | string

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

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

PUCCH allocation period in slots, specified as a nonnegative integer or []. An empty period indicates no repetition.

Data Types: double

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

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

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

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

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

Spreading factor, specified as 2 or 4.

Data Types: double

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

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

Radio network temporary identifier of the user equipment (UE), specified as an integer from 0 to 65,535.

Data Types: double

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

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

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

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

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

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

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

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

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

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

collapse all

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 R2021b

expand all