nrWavegenPDSCHConfig
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
creates a
default PDSCH configuration object for 5G waveform generation.pdsch
= nrWavegenPDSCHConfig
specifies properties using one
or more name-value arguments. Enclose each property name in quotes. For example,
pdsch
= nrWavegenPDSCHConfig(Name,Value
)'NumLayers',7
specifies seven transmission layers.
Properties
Channel Configuration
Enable
— Enable PDSCH
1
or true
(default) | 0
or false
Enable the PDSCH in 5G waveform generation, specified as one of these values.
1
(true
) — Enable the PDSCH.0
(false
) — Disable the PDSCH.
Data Types: double
| logical
Label
— Name of PDSCH configuration
'PDSCH1'
(default) | character array | string scalar
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
— Power scaling of PDSCH in dB
0
(default) | real-valued scalar | real-valued vector (since R2024b)
Power scaling of the PDSCH 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 PDSCH in the generated 5G waveform.
Data Types: double
BandwidthPartID
— ID of BWP
1
(default) | nonnegative integer
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
— Modulation scheme
'QPSK'
(default) | '16QAM'
| '64QAM'
| '256QAM'
| '1024QAM'
| string scalar | string array | cell array of character vectors
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 Scheme | Number 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
NumLayers
— Number of transmission layers
1
(default) | integer from 1 to 8
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
MappingType
— Mapping type
'A'
(default) | 'B'
Mapping type of the physical shared channel, specified as 'A'
or 'B'
.
Data Types: char
| string
ReservedPRB
— Reserved PRBs and OFDM symbols pattern in BWP
default nrPDSCHReservedConfig
object (default) | cell array of nrPDSCHReservedConfig
objects
Reserved PRBs and OFDM symbols pattern in the BWP, specified as a cell array of nrPDSCHReservedConfig
objects.
Data Types: cell
ReservedCORESET
— CORESET IDs for PDSCH rate matching
[]
(default) | integer from 0 to 11 | vector of integers from 0 to 11
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
SymbolAllocation
— OFDM symbol allocation
[0 14]
(default) | two-element vector of nonnegative integers
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
SlotAllocation
— Slot allocation in PDSCH period
[0:9]
(default) | nonnegative integer | row vector of nonnegative integers
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
Period
— PDSCH allocation period in slots
10
(default) | nonnegative integer | []
PDSCH allocation period in slots, specified as a nonnegative integer or
[]
. An empty period indicates no repetition.
Data Types: double
PRBSet
— PRB allocation
[0:51]
(default) | vector of integers from 0 to 274
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
PRBSetType
— PRB allocation type
'VRB'
(default) | 'PRB'
PRB allocation type, specified as one of these values:
'VRB'
— ThePRBSet
property specifies VRB allocation, in which the allocation indices are before the VRB-to-PRB mapping.'PRB'
— ThePRBSet
property specifies PRB allocation, in which the allocation indices are after the VRB-to-PRB mapping.
Data Types: string
| char
VRBToPRBInterleaving
— Enable VRB-to-PRB interleaving
0
or false
(default) | 1
or true
Enable VRB-to-PRB interleaving, specified as one of these values.
0
(false
) — Disable VRB-to-PRB interleaving.1
(true
) — Enable VRB-to-PRB interleaving.
Data Types: double
| logical
VRBBundleSize
— VRB bundle size
2
(default) | 4
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
NID
— PDSCH scrambling identity
[]
(default) | integer from 0 to 1023
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
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
— DL-SCH encoding of transport blocks
1
or true
(default) | 0
or false
Downlink shared channel (DL-SCH) encoding of transport blocks, specified as one of these values.
1
(true
) — Enable transport block encoding.0
(false
) — Disable transport block encoding.
Data Types: double
| logical
TargetCodeRate
— Target code rate
0.5137
(default) | numeric scalar | 1-by-2 numeric vector
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
TBScaling
— Codeword scaling factor
1
(default) | 0.25
| 0.5
| 1-by-2 integer vector
XOverhead
— Rate matching overhead
0
(default) | 6
| 12
| 18
Rate matching overhead, specified as 0
, 6
, 12
, or 18
.
Data Types: double
LimitedBufferRateMatching
— Limited buffer rate matching
1
or true
(default) | 0
or false
Since R2024b
Limited buffer rate matching in the PDSCH transmission, specified as one of these values:
1
(true
) — Enable limited buffer rate matching, as defined in TS 38.212 Section 7.2.5. The specification requires that limited buffer rate matching is enabled for the PDSCH transmission.0
(false
) — Disable limited buffer rate matching. Use this option for backward compatibility in scripts from Release R2024a and before.
Data Types: double
| logical
MaxNumLayers
— Maximum number of layers
8
(default) | integer from 1 to 8
Since R2024b
Maximum number of layers, specified as an integer from 1 to 8. This property specifies the maximum number of layers for limited buffer rate matching, as defined in TS 38.212 Section 7.2.5.
Dependencies
To enable this property, set the Coding
and LimitedBufferRateMatching
properties to 1
.
Data Types: double
| logical
MCSTable
— MCS table configuration for UE
'qam256'
(default) | 'qam64'
| 'qam1024'
Since R2024b
Modulation and coding scheme (MCS) table configuration for the UE, specified as
'qam256'
, 'qam64'
, or
'qam1024'
. This property is the higher-layer parameter
mcs-Table and defines the maximum modulation order for limited
buffer rate matching, as defined in TS 38.212 Section 7.2.5.
Dependencies
To enable this property, set the Coding
and LimitedBufferRateMatching
properties to 1
.
Data Types: string
| char
RVSequence
— Redundancy version sequence
[0 2 3 1]
(default) | nonnegative integer | vector of nonnegative integers | two-element cell array
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
DataSource
— Source of contents for transport blocks
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
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
DMRS
— PDSCH DM-RS configuration parameters
nrPDSCHDMRSConfig
object with default
properties (default) | nrPDSCHDMRSConfig
object
PDSCH DM-RS configuration parameters, specified as an nrPDSCHDMRSConfig
object.
DMRSPower
— Power scaling of PDSCH DM-RS in dB
0
(default) | real scalar
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
EnablePTRS
— Enable PT-RS
0
or false
(default) | 1
or true
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
PTRS
— PDSCH PT-RS configuration parameters
default nrPDSCHPTRSConfig
object (default) | nrPDSCHPTRSConfig
object
PDSCH PT-RS configuration, specified as an nrPDSCHPTRSConfig
object.
Dependencies
To enable this property, set the EnablePTRS
property to 1
.
PTRSPower
— Power scaling of PDSCH PT-RS in dB
0
(default) | real scalar
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
NumCodewords
— Number of codewords
1
| 2
Since R2024a
This property is read-only.
Number of codewords, returned as one of these values:
1
— IfNumLayers
is an integer from 1 to 42
— IfNumLayers
is an integer from 5 to 8
Data Types: double
Examples
Configure PDSCH for 5G Downlink Waveform Generation
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});
Configure Multiple PDSCH for 5G Downlink 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',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 R2020bR2024b: Configure separate power scaling for each PDSCH in a period
Configure separate power scaling for each PDSCH in a period by setting the Power
property to a vector of length equal to the number of allocated transmissions in a
period.
R2024b: Support for limited buffer rate matching
The object adds support for limited buffer rate matching through the LimitedBufferRateMatching
, MaxNumLayers
, and MCSTable
properties. Starting in R2024b, the object configures the PDSCH
transmission with limited buffer rate matching enabled by default. In previous releases, the
object configures the PDSCH transmission without limited buffer rate matching. To disable
limited buffer rate matching, set the LimitedBufferRateMatching
property to false
.
R2024a: Obtain number of codewords
Use the read-only NumCodewords
property to obtain the number of
configured codewords corresponding to the specified number of layers.
R2023a: Release 17 updates for 1024QAM
The object now supports 1024QAM modulation.
R2023a: Support for VRB allocation
The PRBSet
object property now specifies VRB allocation by default.
You can use the PRBSetType
property to specify whether the
PRBSet
property defines PRB or VRB allocation. In previous releases,
PRBSet
specifies only PRB allocation.
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)