Main Content

nrWavegenPDSCHConfig

PDSCH configuration parameters for 5G waveform generation

Since R2020b

Description

The nrWavegenPDSCHConfig object sets physical downlink shared channel (PDSCH) configuration parameters, as defined in TS 38.211 Sections 7.3.1, 7.4.1.1, and 7.4.1.2 [1]. Use this object to set the PDSCH property of the nrDLCarrierConfig object when configuring 5G downlink waveform generation.

This object defines several properties of the PDSCH, including the modulation scheme, layer mapping, target code rate, time-domain and frequency-domain allocation, and virtual resource blocks (VRB) to physical resource blocks (PRBs) interleaving. The object also contains properties of the associated physical reference signals, such as the demodulation reference signal (DM-RS) and the phase tracking reference signal (PT-RS).

The default nrWavegenPDSCHConfig object configures a single-layer PDSCH with mapping type A, QPSK modulation, a resource allocation of 52 resource blocks and 14 OFDM symbols in a slot, transmission in all slots, and single-symbol DM-RS type 1. This configuration corresponds to a full resource allocation with respect to the default nrWavegenBWPConfig object.

Creation

Description

example

pdsch = nrWavegenPDSCHConfig creates a default PDSCH configuration object for 5G waveform generation.

pdsch = nrWavegenPDSCHConfig(Name,Value) specifies properties using one or more name-value arguments. Enclose each property name in quotes. For example, 'NumLayers',7 specifies seven transmission layers.

Properties

expand all

Channel Configuration

Enable the PDSCH in 5G waveform generation, specified as one of these values.

  • 1 — Enable the PDSCH.

  • 0 — Disable the PDSCH.

Data Types: double | logical

Name of the PDSCH configuration, specified as a character array or string scalar. Use this property to set a description to the PDSCH configuration.

Data Types: char | string

Power scaling of the PDSCH in dB, specified as a real scalar. Use this property to scale the power of the PDSCH in the generated 5G waveform.

Data Types: double

ID of the bandwidth part (BWP) containing the configured PDSCH, specified as a nonnegative integer. Use this property to associate this PDSCH configuration with one of the BWP configurations specified by the BandwidthParts property of the nrDLCarrierConfig object.

Data Types: double

Modulation scheme, specified as 'QPSK', '16QAM', '64QAM', '256QAM', '1024QAM', a string scalar, a string array, or a cell array of character vectors. This modulation scheme specifies the modulation type of the codewords and the number of bits used per modulation symbol. For one codeword, specify the modulation scheme as a character vector or string scalar. If two codewords are present (NumLayers > 4), the same modulation scheme applies to both codewords or you can specify different modulation schemes for each codeword by using a string array or a cell array of character vectors.

Modulation SchemeNumber of Bits Per Symbol
'QPSK'2
'16QAM'4
'64QAM'6
'256QAM'8
'1024QAM'10

Example: {'QPSK','16QAM'} or ["QPSK","16QAM"] specifies different modulation schemes for two codewords.

Data Types: char | string | cell

Number of transmission layers, specified as an integer from 1 to 8.

  • For one codeword, specify an integer from 1 to 4.

  • For two codewords, specify an integer from 5 to 8.

Data Types: double

Mapping type of the physical shared channel, specified as 'A' or 'B'.

Data Types: char | string

Reserved PRBs and OFDM symbols pattern in the BWP, specified as a cell array of nrPDSCHReservedConfig objects.

Data Types: cell

Control resource set (CORESET) IDs for PDSCH rate matching, specified as [], an integer from 0 to 11, or a vector of integers from 0 to 11. The integers must match the CORESETID property values of the nrCORESETConfig objects specified by the nrDLCarrierConfig.CORESET property. When you set this property to a value other than [], this property specifies PDSCH rate matching around the denoted CORESET and associated search spaces.

Data Types: double

OFDM symbol allocation of the physical shared channel, specified as a two-element vector of nonnegative integers. The first element of this property represents the start of symbol allocation (0-based). The second element represents the number of allocated OFDM symbols.

Data Types: double

Slot allocation in a PDSCH period, specified as a nonnegative integer or row vector of nonnegative integers. This property specifies the slot positions of the PDSCH by using 0-based indexing and values smaller than the value of the Period property. The object ignores slot allocation values larger than the period.

Data Types: double

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

Data Types: double

PRB allocation of the PDSCH in the BWP, specified as a vector of integers from 0 to 274. Specify with the PRBSetType property whether PRBSet defines PRB or virtual resource block (VRB) allocation.

Data Types: double

PRB allocation type, specified as one of these values:

  • 'VRB' — The PRBSet property specifies VRB allocation, in which the allocation indices are before the VRB-to-PRB mapping.

  • 'PRB' — The PRBSet property specifies PRB allocation, in which the allocation indices are after the VRB-to-PRB mapping.

Data Types: string | char

Enable VRB-to-PRB interleaving, specified as one of these values.

  • 0 — Disable VRB-to-PRB interleaving.

  • 1 — Enable VRB-to-PRB interleaving.

Data Types: double | logical

VRB bundle size, in terms of the number of PRBs for VRB-to-PRB interleaving, specified as 2 or 4.

Dependencies

To enable this property, set the VRBToPRBInterleaving property to 1.

Data Types: double

PDSCH scrambling identity, specified as [] or an integer from 0 to 1023.

  • If the higher layer parameter dataScramblingIdentityPDSCH is configured, NID must be in the range from 0 to 1023.

  • If the higher layer parameter dataScramblingIdentityPDSCH is not configured, NID must be in the range from 0 to 1007.

When you specify this property as [], the object sets the PDSCH scrambling identity to the physical layer cell identity, specified by the NCellID property of the carrier.

Data Types: double

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

Data Types: double

Enable downlink shared channel (DL-SCH) encoding of transport blocks, specified as one of these values.

  • 1 — Enable transport block encoding.

  • 0 — Disable transport block encoding.

Data Types: double | logical

Target code rate, specified as a numeric scalar or a 1-by-2 numeric vector of values in the range (0, 1). The default value corresponds to 526/1024. If you specify this property as a scalar, the object applies scalar expansion when processing two transport blocks (NumLayers > 4). To specify different target code rates for each transport block, specify this property as a vector.

Dependencies

To enable this property, set the Coding property to 1.

Data Types: double

Codeword scaling factor, specified as one of these options.

  • For one codeword, specify 0.25, 0.5, or 1.

  • For two codewords (NumLayers > 4), specify a 1-by-2 integer vector with values 0.25, 0.5, or 1.

Dependencies

To enable this property, set the Coding property to 1.

Data Types: double

Rate matching overhead, specified as 0, 6, 12, or 18.

Data Types: double

Redundancy version sequence, specified as a nonnegative integer, a vector of nonnegative integers, or a two-element cell array containing unique nonnegative integers. When the sequence is a two-element cell array, the second value only applies to a second codeword (NumLayers > 4).

Dependencies

To enable this property, set the Coding property to 1.

Data Types: double

Source of contents for the transport blocks, 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, all shift registers are initialized with an active state.

Data Types: double | cell | string | char

Reference Signals Configuration

PDSCH DM-RS configuration parameters, specified as an nrPDSCHDMRSConfig object.

Power scaling of the PDSCH DM-RS in dB, specified as a real scalar. Use this property to scale the power of the PDSCH DM-RS in the generated 5G waveform. This scaling is additional to the PDSCH-wide power scaling specified by the Power property.

Data Types: double

Enable the PT-RS, specified as one of these values.

  • 0 (false) — Disable the PT-RS configuration.

  • 1 (true) — Enable the PT-RS configuration.

Data Types: double | logical

PDSCH PT-RS configuration, specified as an nrPDSCHPTRSConfig object.

Dependencies

To enable this property, set the EnablePTRS property to 1.

Power scaling of the PDSCH PT-RS in dB, specified as a real scalar. Use this property to scale the power of the PDSCH PT-RS in the generated 5G waveform. This scaling is additional to the PDSCH-wide power scaling specified by the Power property.

Dependencies

To enable this property, set the EnablePTRS property to 1.

Data Types: double

Read-Only Properties

Since R2024a

This property is read-only.

Number of codewords, returned as one of these values:

  • 1 — If NumLayers is an integer from 1 to 4

  • 2 — If NumLayers is an integer from 5 to 8

Data Types: double

Examples

collapse all

Create a PDSCH configuration object for 5G waveform generation with the specified property values.

pdsch = nrWavegenPDSCHConfig( ...
    'BandwidthPartID',0, ...
    'Modulation','16QAM', ...
    'TargetCodeRate',658/1024, ...
    'SymbolAllocation',[0 7], ...
    'SlotAllocation',[0 2], ...
    'Period',3, ...
    'PRBSet',[0:20], ...
    'EnablePTRS',true);

Create a downlink carrier configuration object, specifying the previously defined PDSCH configuration.

cfg = nrDLCarrierConfig('PDSCH',{pdsch});

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',0,'SubcarrierSpacing',15);
bwp2 = nrWavegenBWPConfig('BandwidthPartID',1,'SubcarrierSpacing',30);

Create two PDSCH configuration objects for 5G waveform generation, specifying a unique UE and one of the BWP configurations for each PDSCH.

pdsch1 = nrWavegenPDSCHConfig('RNTI',1,'BandwidthPartID',0,'Modulation','QPSK');
pdsch2 = nrWavegenPDSCHConfig('RNTI',2,'BandwidthPartID',1,'Modulation','16QAM');

Create a downlink carrier configuration object, specifying the previously defined configurations.

cfg = nrDLCarrierConfig( ...
    'SCSCarriers',{carrier1,carrier2}, ...
    'BandwidthParts',{bwp1,bwp2}, ...;
    'PDSCH',{pdsch1,pdsch2});

References

[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.214. “NR; Physical layer procedures for data.” 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 R2020b

expand all

See Also

Functions

Objects