Main Content


PSSCH DM-RS resource element indices



ind = ltePSSCHDRSIndices(ue) returns a column vector of PSSCH demodulation reference signal (DM-RS) resource element indices for the specified UE settings structure. For more information, see PSSCH Demodulation Reference Signal Indexing.


ind = ltePSSCHDRSIndices(ue,opts) formats the returned indices using options specified by opts.


collapse all

Write the complex PSSCH DM-RS values into the PSSCH DM-RS resource elements in a PSSCH subframe both for D2D normal cyclic prefix and V2X. Display an image of their locations to compare both sidelink modes.

Create a user equipment settings structure and an empty resource grid subframe for 10 MHz bandwidth and normal cyclic prefix. Define a PRB allocation, ue.PRBSet, with RB values from 30 to 39.

ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');
ue.NSAID = 1;
ue.NSubframePSSCH = 1;
ue.PRBSet = [30:39]';
subframe_D2D = lteSLResourceGrid(ue);

Generate PSSCH DM-RS indices and load PSSCH DM-RS values into the subframe.

psschdrs_indices = ltePSSCHDRSIndices(ue);
subframe_D2D(psschdrs_indices) = ltePSSCHDRS(ue);

Change user equipment settings to V2X sidelink mode. Set the V2X scrambling identity to 5334.

ue.SidelinkMode = 'V2X';
ue.NXID = 5334;
subframe_V2X = lteSLResourceGrid(ue);
psschdrs_indices = ltePSSCHDRSIndices(ue);
subframe_V2X(psschdrs_indices) = ltePSSCHDRS(ue);

Display the PSCCH DM-RS locations for both sidelink modes.

axis xy; title('D2D');
axis xy; title(ue.SidelinkMode);

Compare PSSCH DM-RS resource element indexing formats.

Create a UE settings structure.

ue = struct('NSLRB',15,'CyclicPrefixSL','Normal','PRBSet',5);

Generate PSSCH DM-RS indices using one-based linear indexing (default), zero-based linear indexing, and one-based subscript row style.

One-based linear indexing

psschdmrs_indices = ltePSSCHDRSIndices(ue);
ans = uint32

Zero-based linear indexing

opts = '0based';
psschdmrs_indices_0based = ltePSSCHDRSIndices(ue,opts);
ans = uint32

For zero-based indexing, the first assigned index is one lower than the one-based indexing.

One-based indexing in [subcarrier,symbol,port] subscript row style

Inspect the unique symbol values to see which symbols are occupied by the PSSCH DM-RS.

opts = {'sub' '1based'};
psschdmrs_indices_sub = ltePSSCHDRSIndices(ue,opts);
ans = 2x1 uint32 column vector


Only symbols 4 and 11 are occupied. For one-based indexing, these two PSSCH subframe symbols are always reserved for transmission of the PSSCH DM-RS.

Input Arguments

collapse all

User equipment settings, specified as a parameter structure containing these fields:

Sidelink mode, specified as 'D2D' or 'V2X'.

Data Types: char | string

Number of sidelink resource blocks, specified as an integer scalar from 6 to 110.

Example: 6, which corresponds to a channel bandwidth of 1.4 MHz.

Data Types: double

Cyclic prefix length, specified as 'Normal' or 'Extended'.

Data Types: char | string

Zero-based physical resource block (PRB) indices, specified as an integer column vector or a two-column integer matrix.

The PSSCH is intended to be transmitted in the same PRB in each slot of a subframe. Therefore, specifying PRBSet as a single column of PRB indices is recommended. However, for a nonstandard slot-hopping PRB allocation, PRBSet can be specified as a two-column matrix of indices corresponding to slot-wise resource allocations for PSSCH.

Data Types: double

Data Types: struct

Output format options for resource element indices, specified as a character vector, cell array of character vectors, or string array. For convenience, you can specify several options as a single character vector or string scalar by a space-separated list of values placed inside the quotes. Values for opts when specified as a character vector include (use double quotes for string) :

Category Options Description

Indexing style

'ind' (default)

The returned indices are in linear index style.


The returned indices are in [subcarrier,symbol,port] subscript row style.

Index base

'1based' (default)

The returned indices are one-based.


The returned indices are zero-based.

Example: 'ind 1based', "ind 1based", {'ind','1based'}, or ["ind","1based"] specify the same formatting options.

Data Types: char | string | cell

Output Arguments

collapse all

PSSCH DM-RS resource element indices, returned as an integer column vector or a three-column integer matrix. The returned vector or matrix has 24 × NPRB PSSCH DM-RS resource element indices. where NPRB is the number of PRBs associated with the PSSCH. For more information, see PSSCH Demodulation Reference Signal Indexing.

More About

collapse all

PSSCH Demodulation Reference Signal Indexing

Use the ltePSSCHDRSIndices indexing function and the corresponding ltePSCCHDRS sequence function to populate the resource grid for any PSSCH subframe. The PSSCH DM-RS is transmitted in the available SC-FDMA symbols in a PSSCH subframe, using a single layer on antenna port 1000.

The indices are ordered as the PSSCH DM-RS QPSK modulation symbols should be, applying frequency-first mapping. One-based linear indexing is the default return format, but alternative indexing formats can also be generated.

The resource elements in the last SC-FDMA symbol within a subframe are counted in the mapping process but should not be transmitted. The sidelink-specific SC-FDMA modulation creates the last symbol, which serves as a guard symbol.

For D2D sidelink, when indexing is zero-based, the SC-FDMA symbol indices used are {3,10} for normal cyclic prefix and {2,8} for extended cyclic prefix. The same symbols are used by the ltePUSCHDRSIndices function. For V2X sidelink, there are four DM-RS SC-FDMA symbols with indices {2,5,8,11} for normal cyclic prefix only.


The indicated symbol indices are based on TS 36.211, Section 9.8. However, to align with the LTE Toolbox™ subframe orientation, these indices are expanded from symbol index per slot to symbol index per subframe.

For more information on mapping symbols to the resource element grid, see Resource Grid Indexing.

PSSCH Demodulation Reference Signal

The PSSCH demodulation reference signal (DM-RS) sequence is transmitted alongside the ltePSSCH values using the two SC-FDMA symbols allocated to DM-RS in a PSSCH subframe. The output vector is the repetition of a 12-element sequence and specified in TS 36.211, Section 9.8. The vector is mapped onto the 12 DM-RS SC-FDMA symbol subcarriers in each subframe slot for each PSSCH physical resource block (PRB) transmission on antenna port 1000.

The output PSSCH DM-RS sequence is the concatenation of the two sequences to be mapped onto the DM-RS SC-FDMA symbol subcarriers in each subframe slot carrying a ltePSSCH transmission. Its length is N × 12 × NPRB, where NPRB is the number of PRBs associated with the PSSCH. For D2D sidelink, there is one DM-RS symbol per slot and therefore N=2, and for V2X sidelink, there are two symbols per slot and N=4.

Version History

Introduced in R2016b