Main Content


Generate PDSCH DM-RS symbols

Since R2020a



sym = nrPDSCHDMRS(carrier,pdsch) returns a matrix containing demodulation reference signal (DM-RS) symbols of physical downlink shared channel (PDSCH), as defined in TS 38.211 Section [1]. carrier specifies the carrier configuration parameters for a specific OFDM numerology. pdsch specifies the PDSCH configuration parameters.

sym = nrPDSCHDMRS(carrier,pdsch,'OutputDataType',datatype) specifies the data type for the DM-RS symbols.


collapse all

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


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;
axis xy;
xlabel('OFDM Symbols');
title('PDSCH DM-RS Resource Elements in the Carrier Resource Grid');

Input Arguments

collapse all

Carrier configuration parameters for a specific OFDM numerology, specified as an nrCarrierConfig object. This function uses only these properties of the nrCarrierConfig object.

PDSCH configuration parameters, specified as an nrPDSCHConfig object. This function uses only these properties of the nrPDSCHConfig object.

Data type for the generated DM-RS symbols, specified as 'double' or 'single'.

Data Types: char | string

Output Arguments

collapse all

DM-RS symbols, returned as a complex matrix. The number of columns correspond to the number of antenna ports configured.

Data Types: single | double
Complex Number Support: Yes


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

Extended Capabilities

Version History

Introduced in R2020a