Main Content

nrPDSCHDMRSConfig

PDSCH DM-RS configuration parameters

Since R2020a

Description

The nrPDSCHDMRSConfig object sets demodulation reference signal (DM-RS) configuration parameters for a physical downlink shared channel (PDSCH), as defined in TS 38.211 Section 7.4.1.1 [1]. Use this object when setting the DMRS property of the nrPDSCHConfig or nrWavegenPDSCHConfig objects.

The object defines the properties of PDSCH DM-RS symbols and indices generation and the resource elements pattern not used for data in DM-RS symbol locations. The read-only properties of this object provide the DM-RS subcarrier locations within a resource block (RB), code division multiplexing (CDM) groups, and time and frequency weights for DM-RS symbols. By default, the object specifies a single symbol DM-RS at symbol index 2 (0-based) with configuration type 1 and antenna port 0.

Creation

Description

example

dmrs = nrPDSCHDMRSConfig creates a DM-RS configuration object for a PDSCH with default properties.

dmrs = nrPDSCHDMRSConfig(Name,Value) specifies properties using one or more name-value pair arguments. Enclose each property in quotes. For example, 'DMRSConfigurationType',1,'DMRSLength',2 specifies a double-symbol DM-RS with configuration type 1. Unspecified properties take their default values.

Properties

expand all

DM-RS configuration type, specified as 1 or 2. This property is the higher-layer parameter dmrs-Type.

Data Types: double

Reference point for the DM-RS sequence to subcarrier resource mapping, specified as one of these options.

  • PRB0 — When the reference point is subcarrier 0 of the physical resource block 0 (PRB 0) of the bandwidth part (BWP). Use this option when PDSCH is signalled by control resource set 0 (CORESET 0). For this case, the BWP parameters must align with CORESET 0.

  • CRB0 — When the reference point is subcarrier 0 of the common resource block 0 (CRB 0)

Data Types: char | string

Position of first DM-RS OFDM symbol, provided by higher layer parameter dmrs-TypeA-Position, specified as 2 or 3.

This property only applies when the MappingType property of the nrPDSCHConfig or nrWavegenPDSCHConfig objects is set to 'A'.

Data Types: double

Maximum number of DM-RS additional positions, specified as 0, 1, 2, or 3. This property is the higher layer parameter dmrs-AdditionalPosition.

Data Types: double

Number of consecutive front-loaded DM-RS OFDM symbols, specified as 1 (single-symbol DM-RS) or 2 (double-symbol DM-RS).

Data Types: double

DM-RS OFDM symbol locations that are 0-based, specified as one of these options.

  • Integer from 0 to 13 — For one DM-RS symbol

  • Vector of nonnegative integers from 0 to 13 — For multiple DM-RS symbols

Each input symbol location is assumed to be a single-symbol DM-RS within the physical shared channel symbol allocation.

The default value, [], corresponds to the DM-RS symbol locations, as defined in TS 38.211 Table 7.4.1.1.2-3 or 7.4.1.1.2-4. Setting this property overrides the corresponding DM-RS symbol locations in these standard lookup tables.

Data Types: double

DM-RS antenna port indices, specified as a vector of nonnegative integers from 0 to 23. The valid range of antenna port indices depends on the DM-RS configuration type, DM-RS symbol duration, and whether enhanced DM-RS multiplexing is enabled, as described in this table.

DMRSEnhancedR18 ValueDMRSLength ValueValid Range of Antenna Port Indices
DMRSConfigurationType=1DMRSConfigurationType=2
0 for basic multiplexing1 for single symbol[0, 3][0, 5]
2 for double symbol[0, 7][0, 11]
1 for enhanced multiplexing1 for single symbol

[0, 3] and [8, 11]

[0, 5] and [2, 17]

2 for double symbol[0, 15][0, 23]

This table corresponds to the PDSCH DM-RS antenna port values, as defined in TS 38.211 Table 7.4.1.1.2-5. The value range from 0 to 23 in this table corresponds to the range from 1000 to 1023, respectively, in Table 7.4.1.1.2-5.

The default value, [], implies that the object automatically selects the first N valid port indices, where N is the number of layers that is specified by the NumLayers property of the nrPDSCHConfig or nrWavegenPDSCHConfig objects. For example, if NumLayers=6 and the valid port indices are in the range [0, 3] and [8, 11], then the object selects the 0, 1, 2, 3, 8, 9 port indices.

Data Types: double

DM-RS scrambling identities (NID0 and NID1), specified as one of these options.

  • 1-by-2 integer vector of values from 0 to 65,535 — The vector elements define NID0 and NID1.

  • Scalar integer from 0 to 65,535 — This option specifies equal values for both NID0 and NID1.

  • [] — Use this option to set the DM-RS scrambling identity to the physical layer cell identity, specified by the NCellID property of the carrier configuration.

Data Types: double

DM-RS scrambling initialization, specified as 0 or 1.

Data Types: double

Number of DM-RS CDM groups without data, specified as 1, 2, or 3.

Each value indicates a different set of CDM group numbers, according to TS 38.214 Section 5.1.6.2.

  • 1 — CDM group number 0

  • 2 — CDM group numbers 0 and 1

  • 3 — CDM group numbers 0, 1, and 2

Data Types: double

Low peak-to-average-power ratio (PAPR) DM-RS sequence, specified as one of these logical values.

  • 0 (false) — Disable the use of low PAPR DM-RS.

  • 1 (true) — Enable the use of low PAPR DM-RS. The DM-RS sequence generation depends on the DM-RS antenna port indices (DMRSPortSet) as well as the scrambling initialization (NSCID).

Data Types: double

This property is read-only.

CDM group numbers corresponding to each DM-RS port, specified as one of these options.

  • Integer from 0 to 2 — When DMRSPortSet property is a scalar, specifying single DM-RS antenna port.

  • Row vector of integers from 0 to 2 — When DMRSPortSet property is a vector, specifying multiple DM-RS antenna ports. Each element corresponds to a CDM group number for that port.

Value of this property depends on the DMRSConfigurationType property according to TS 38.211 Table 7.4.1.1.2-1 or 7.4.1.1.2-2 [1].

Data Types: double

This property is read-only.

Delta shifts corresponding to each CDM group, specified as one of these options.

  • Integer from the set {0, 1, 2, 4} — When DMRSPortSet property is a scalar, specifying single DM-RS antenna port.

  • Row vector of integers from the set {0, 1, 2, 4} — When DMRSPortSet property is a vector, specifying multiple DM-RS antenna ports. Each element corresponds to the delta shift to be applied for that port.

Value of this property depends on the DMRSConfigurationType according to TS 38.211 Table 7.4.1.1.2-1 or 7.4.1.1.2-2 [1].

Data Types: double

This property is read-only.

Frequency weights for the DM-RS symbols, specified as one of these options.

  • Column vector of integers — When DMRSPortSet property is a scalar, specifying single DM-RS antenna port.

  • Matrix of integers — When DMRSPortSet property is a vector, specifying multiple DM-RS antenna ports. Each column corresponds to the weights for that port.

Value of this property depends on the DMRSConfigurationType according to TS 38.211 Table 7.4.1.1.2-1 or 7.4.1.1.2-2 [1].

Data Types: double

This property is read-only.

Time weights for to the DM-RS symbols, specified as one of these options.

  • Column vector of integers — When DMRSPortSet property is a scalar, specifying single DM-RS antenna port.

  • Matrix of integers — When DMRSPortSet property is a vector, specifying multiple DM-RS antenna ports. Each column corresponds to the weights for that port.

Value of this property depends on the DMRSConfigurationType according to TS 38.211 Table 7.4.1.1.2-1 or 7.4.1.1.2-2 [1].

Data Types: double

This property is read-only.

Subcarrier locations in an RB for each port, specified as one of these options.

  • Column vector of integers — When DMRSPortSet property is a scalar, specifying single DM-RS antenna port.

  • Matrix of integers — When DMRSPortSet property is a vector, specifying multiple DM-RS antenna ports. Each column corresponds to the subcarrier locations for that port.

Data Types: double

This property is read-only.

CDM arrangement for reference signals, specified as the comma-separated pair consisting of 'CDMLengths' and a two-element row vector of nonnegative integers [FD TD]. Array elements FD and TD specify the length of CDM despreading in the frequency domain (FD-CDM) and time domain (TD-CDM), respectively. A value of 1 for an element specifies no CDM.

Data Types: double

Since R2024a

Enhanced DM-RS multiplexing, specified as one of these logical values:

  • 0 (false) — Disable enhanced DM-RS multiplexing.

  • 1 (true) — Enable enhanced DM-RS multiplexing to extend the set of DM-RS antenna ports for MU-MIMO use.

This property together with the DMRSLength and DMRSConfigurationType properties define the valid range of antenna port indices, as described in this table.

DMRSEnhancedR18 ValueDMRSLength ValueValid Range of Antenna Port Indices
DMRSConfigurationType=1DMRSConfigurationType=2
0 for basic multiplexing1 for single symbol[0, 3][0, 5]
2 for double symbol[0, 7][0, 11]
1 for enhanced multiplexing1 for single symbol

[0, 3] and [8, 11]

[0, 5] and [2, 17]

2 for double symbol[0, 15][0, 23]

Data Types: double

Examples

collapse all

Create a physical downlink shared channel (PDSCH) demodulation reference signal (DM-RS) object.

Specify a single-symbol DMRS with configuration type as 2, number of DM-RS additional positions as 2, and antenna ports as 0, 1, and 3.

View the corresponding properties.

dmrs = nrPDSCHDMRSConfig;
dmrs.DMRSConfigurationType = 2;
dmrs.DMRSLength = 1;
dmrs.DMRSAdditionalPosition = 2;
dmrs.DMRSPortSet = [0 1 3];
dmrs
dmrs = 
  nrPDSCHDMRSConfig with properties:

      DMRSConfigurationType: 2
         DMRSReferencePoint: 'CRB0'
          DMRSTypeAPosition: 2
     DMRSAdditionalPosition: 2
                 DMRSLength: 1
            CustomSymbolSet: []
                DMRSPortSet: [0 1 3]
                   NIDNSCID: []
                      NSCID: 0
    NumCDMGroupsWithoutData: 2
            DMRSDownlinkR16: 0
            DMRSEnhancedR18: 0

   Read-only properties:
                  CDMGroups: [0 0 1]
                DeltaShifts: [0 0 2]
           FrequencyWeights: [2x3 double]
                TimeWeights: [2x3 double]
    DMRSSubcarrierLocations: [4x3 double]
                 CDMLengths: [2 1]

Create a carrier configuration object specifying the slot number as 10.

carrier = nrCarrierConfig('NSlot',10);

Create a physical downlink shared channel (PDSCH) configuration object, pdsch, with physical resource blocks (PRBs) allocated from 0 to 30.

pdsch = nrPDSCHConfig;
pdsch.PRBSet = 0:30;

Create a PDSCH demodulation reference signal (DM-RS) object, dmrs, with specified properties.

dmrs = nrPDSCHDMRSConfig;
dmrs.DMRSConfigurationType = 2;
dmrs.DMRSLength = 2;
dmrs.DMRSAdditionalPosition = 1;
dmrs.DMRSTypeAPosition = 2;
dmrs.DMRSPortSet = 5;
dmrs.NIDNSCID = 10;
dmrs.NSCID = 0;

Assign the PDSCH DM-RS configuration object to DMRS property of PDSCH configuration object.

pdsch.DMRS = dmrs;

Generate PDSCH DM-RS symbols and indices for the specified carrier, PDSCH configuration, and output formatting name-value pair argument.

sym = nrPDSCHDMRS(carrier,pdsch,'OutputDataType','single')
sym = 496x1 single column vector

  -0.7071 - 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
   0.7071 + 0.7071i
   0.7071 + 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 + 0.7071i
   0.7071 - 0.7071i
  -0.7071 - 0.7071i
      ⋮

ind = nrPDSCHDMRSIndices(carrier,pdsch,'IndexBase','0based','IndexOrientation','carrier')
ind = 496x1 uint32 column vector

   1252
   1253
   1258
   1259
   1264
   1265
   1270
   1271
   1276
   1277
      ⋮

Display the generated DM-RS symbols on the carrier resource grid.

grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pdsch.NumLayers]));
grid(ind+1) = sym;
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('PDSCH DM-RS Resource Elements in the Carrier Resource Grid');

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 R2020a

expand all