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 ports, specified as one of these options.

  • Integer from 0 to 11 — For a single antenna port

  • Vector of nonnegative integers from 0 to 11 — For multiple antenna ports

Nominal antenna ports supported depend on DMRSLength and DMRSConfigurationType property values.

DMRSLength ValueDMRSConfigurationType ValueNominal Range of Antenna Ports Supported
11[0, 3]
2[0, 5]
21[0, 7]
2[0, 11]

The default value, [], implies that DMRSPortSet is in the range from 0 to NumLayers– 1, where NumLayers is a property of nrPDSCHConfig or nrWavegenPDSCHConfig.

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

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

   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');

Figure contains an axes object. The axes object with title PDSCH DM-RS Resource Elements in the Carrier Resource Grid, xlabel OFDM Symbols, ylabel Subcarriers contains an object of type image.

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