nrPDSCHConfig
Description
The nrPDSCHConfig
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].
This object defines all the properties involved in the PDSCH processing chain, including scrambling, symbol modulation, layer mapping, virtual resource blocks (VRB) to physical resource blocks (PRB) interleaving, and resource element (RE) mapping with the reserved resources patterns. The object also contains properties of the associated physical reference signals, such as demodulation reference signal (DM-RS) and phase tracking reference signal (PT-RS).
The default nrPDSCHConfig
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, and single-symbol DM-RS type 1. This configuration corresponds to a full
resource allocation with respect to the default nrCarrierConfig
object.
Creation
Description
creates a PDSCH
configuration object with default properties.pdsch
= nrPDSCHConfig
specifies properties using one or more name-value pair arguments. Enclose each property in
quotes. For example, pdsch
= nrPDSCHConfig(Name,Value
)'NSizeBWP',200,'NumLayers',7
specifies 200 PRBs in
the bandwidth part (BWP) and 7 transmission layers. Unspecified properties take their
default values.
Properties
Channel Configuration
NSizeBWP
— Number of PRBs in BWP
[]
(default) | integer from 1 to 275
Number of PRBs in BWP, specified as an integer from 1 to 275. Use
[]
to set this property to the NSizeGrid
property of the nrCarrierConfig
object.
Data Types: double
NStartBWP
— Starting PRB index of BWP relative to CRB 0
[]
(default) | integer from 0 to 2473
Starting PRB index of BWP relative to common resource block (CRB) 0, specified as
an integer from 0 to 2473. Use []
to set this property to the
NStartGrid
property of the nrCarrierConfig
object.
Data Types: double
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
ReservedRE
— Reserved RE indices within BWP
[]
(default) | vector of nonnegative integers
Reserved RE indices within the BWP, specified as a vector of nonnegative integers. This property specifies RE indices (0-based) that are unavailable for a PDSCH due to the channel state information reference signal (CSI-RS) or cell-specific reference signal being present in a particular slot.
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
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.
When you set this property to
[]
or the second element of the vector to 0
,
no symbol is allocated for the channel.
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
(default) | 1
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
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
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.
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
nrPDSCHPTRSConfig
object with default
properties (default) | nrPDSCHPTRSConfig
object
PDSCH PT-RS configuration, specified as an nrPDSCHPTRSConfig
object.
Read-Only Properties
NumCodewords
— Number of codewords
1
(default) | 2
This property is read-only.
Number of codewords, specified as 1
or 2
.
This property is updated based on the DMRSPortSet
property of nrPDSCHDMRSConfig
object. Use
NumLayers
property to calculate the number of codewords, when
DMRSPortSet
property is empty.
Data Types: double
Examples
Create PDSCH Configuration Object
Create a physical downlink shared channel (PDSCH) configuration object that occupies a bandwidth of 10 MHz bandwidth with 15 kHz subcarrier spacing.
Specify 52 PRBs in the bandwidth part (BWP), a scrambling identity of 750, and a 16-QAM modulation scheme. Enable VRB-to-PRB interleaving and PT-RS configuration.
pdsch = nrPDSCHConfig;
pdsch.NSizeBWP = 52;
pdsch.NID = 750;
pdsch.Modulation = '16QAM';
pdsch.VRBToPRBInterleaving = 1;
pdsch.EnablePTRS = 1;
disp(pdsch)
nrPDSCHConfig with properties: NSizeBWP: 52 NStartBWP: [] ReservedPRB: {[1x1 nrPDSCHReservedConfig]} ReservedRE: [] Modulation: '16QAM' NumLayers: 1 MappingType: 'A' SymbolAllocation: [0 14] PRBSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51] PRBSetType: 'VRB' VRBToPRBInterleaving: 1 VRBBundleSize: 2 NID: 750 RNTI: 1 DMRS: [1x1 nrPDSCHDMRSConfig] EnablePTRS: 1 PTRS: [1x1 nrPDSCHPTRSConfig] Read-only properties: NumCodewords: 1
Create PDSCH Object to Configure Two Reserved PRB Patterns
Create a PDSCH configuration object with two reserved PRB patterns.
pdsch = nrPDSCHConfig('ReservedPRB',{nrPDSCHReservedConfig,nrPDSCHReservedConfig});
For each reserved PRB pattern, specify the reserved PRB indices in the BWP, the OFDM symbols associated with those reserved PRBs, and the period for the number of slots in the pattern.
pdsch.ReservedPRB{1}.PRBSet = (0:15); pdsch.ReservedPRB{1}.SymbolSet = (5:6); pdsch.ReservedPRB{1}.Period = 5; pdsch.ReservedPRB{2}.PRBSet = (0:23); pdsch.ReservedPRB{2}.SymbolSet = [2:4 7:9]; pdsch.ReservedPRB{2}.Period = 3;
Display the two PRB patterns.
PRBPattern1 = pdsch.ReservedPRB{1}
PRBPattern1 = nrPDSCHReservedConfig with properties: PRBSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] SymbolSet: [5 6] Period: 5
PRBPattern2 = pdsch.ReservedPRB{2}
PRBPattern2 = nrPDSCHReservedConfig with properties: PRBSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23] SymbolSet: [2 3 4 7 8 9] Period: 3
Generate PDSCH Symbols and Indices
Create a carrier configuration object with default properties. Specify the physical layer cell identity as 42 and slot number as 10.
carrier = nrCarrierConfig; carrier.NCellID = 42; carrier.NSlot = 10;
Create a PDSCH configuration object with a 16-QAM modulation scheme. Set the radio network temporary identifier to 1005, size of the BWP to 25, starting PRB index of the BWP to 10, and PRB set to occupy the whole BWP.
pdsch = nrPDSCHConfig; pdsch.Modulation = '16QAM'; pdsch.RNTI = 1005; pdsch.NID = []; % Set NID equal to the NCellID property of carrier pdsch.NSizeBWP = 25; pdsch.NStartBWP = 10; pdsch.PRBSet = 0:pdsch.NSizeBWP-1;
Generate PDSCH indices in subscript form and set the index orientation to bandwidth part.
[ind,info] = nrPDSCHIndices(carrier,pdsch,'IndexStyle','subscript','IndexOrientation','bwp')
ind = 3900x3 uint32 matrix
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
9 1 1
10 1 1
⋮
info = struct with fields:
G: 15600
Gd: 3900
NREPerPRB: 156
DMRSSymbolSet: 2
PTRSSymbolSet: [1x0 double]
Generate PDSCH symbols of data type single.
numDataBits = info.G; cws = randi([0 1],numDataBits,1); sym = nrPDSCH(carrier,pdsch,cws,'OutputDataType','single')
sym = 3900x1 single column vector
-0.9487 + 0.9487i
-0.9487 - 0.9487i
-0.3162 - 0.9487i
0.9487 - 0.3162i
-0.9487 + 0.3162i
0.3162 + 0.9487i
0.3162 + 0.9487i
-0.3162 + 0.3162i
0.3162 + 0.3162i
0.9487 - 0.3162i
⋮
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 R2020aR2023a: 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.
See Also
Functions
nrPDSCH
|nrPDSCHDecode
|nrPDSCHIndices
|nrPDSCHPTRS
|nrPDSCHPTRSIndices
|nrPDSCHDMRS
|nrPDSCHDMRSIndices
Objects
Apri esempio
Si dispone di una versione modificata di questo esempio. Desideri aprire questo esempio con le tue modifiche?
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi MATLAB.
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)