Main Content

ltePSCCHIndices

PSCCH resource element indices

Description

[ind] = ltePSCCHIndices(ue) returns a column vector of physical sidelink control channel (PSCCH) resource element (RE) indices for the specified UE settings structure for either D2D or V2X sidelink. By default, the indices are returned in one-based linear indexing form. You can use this form to directly index elements of a matrix representing the subframe resource grid for antenna port 1000. For more information, see Physical Sidelink Control Channel Indexing.

example

[ind,info] = ltePSCCHIndices(ue) also returns a structure containing PSCCH-related information for the specified UE settings structure.

example

[___] = ltePSCCHIndices(ue,opts) formats the returned indices using options specified by opts. This syntax supports output options from prior syntaxes.

example

Examples

collapse all

Write the complex PSCCH values into the PSCCH resource elements in a PSCCH subframe for D2D sidelink and with normal cyclic prefix. Do the same for V2X. Display an image of their locations and compare both sidelink modes. This mapping writes PSCCH values into the last SC-FDMA guard symbol within a subframe. The sidelink SC-FDMA modulator removes these values before transmission of the waveform.

Create a UE settings structure for D2D sidelink and an empty sidelink resource grid. Assign a PRB set index of 5.

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

Generate PSCCH indices. Populate the PSCCH resource elements in the subframe. For D2D normal cyclic prefix, a PSCCH subframe contains 144 REs.

[pscch_indices, pscch_info] = ltePSCCHIndices(ue);
subframe_D2D(pscch_indices) = ltePSCCH(zeros(pscch_info.G,1));

Change user equipment settings to V2X sidelink mode. Assign a PRB set indices of 5 and 6.

ue.SidelinkMode = 'V2X';
subframe_V2X = lteSLResourceGrid(ue);
ue.PRBSet = [5;6];

Generate PSCCH indices. Populate the PSCCH resource elements in the subframe using a codeword filled with zeros. For V2X, a PSCCH subframe contains 240 REs.

[pscch_indices, pscch_info] = ltePSCCHIndices(ue);
subframe_V2X(pscch_indices) = ltePSCCH(zeros(pscch_info.G,1));

View the resource grid and compare the indices for both sidelink modes.

subplot(2,1,1);
image(400*abs(subframe_D2D)); 
axis xy; title('D2D');
subplot(2,1,2);
image(400*abs(subframe_V2X)); 
axis xy; title(ue.SidelinkMode);

Figure contains 2 axes objects. Axes object 1 with title D2D contains an object of type image. Axes object 2 with title V2X contains an object of type image.

View the information structure output by the PSCCH resource element indexing function.

Create a UE settings structure.

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

Generate PSCCH indices and the information structure. View the information structure.

[pscch_indices,info] = ltePSCCHIndices(ue);
info
info = struct with fields:
     G: 288
    Gd: 144

Compare PSCCH resource element indexing formats. Options include one-based or zero-based indices in linear or subscript row indexing style.

Create a UE settings structure.

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

One-based linear indexing, this is the default output style

Generate PSCCH indices using the default one-based linear indexing.

pscch1ind = ltePSCCHIndices(ue);
pscch1ind(1)
ans = uint32

61

Zero-based linear indexing

Generate PSCCH indices using zero-based linear indexing.

opts = '0based';
pscch0ind = ltePSCCHIndices(ue,opts);
pscch0ind(1)
ans = uint32

60

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

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

Generate PSCCH indices using one-based subscript row style.

opts = {'sub','1based'};
pscch1sub = ltePSCCHIndices(ue,opts);
pscch1sub(1,:)
ans = 1×3 uint32 row vector

   61    1    1

The subscript row style outputs a 24-by-3 matrix. Viewing the first row you see from the second column value that symbol number 1 is occupied.

Inspecting the output matrix for unique symbol values, shows the symbols 4 and 11 are not occupied by PSCCH. Two PSCCH subframe symbols are reserved for transmission of PSCCH DM-RS. When one-based indexing is specified, symbols 4 and 11 transmit the PSCCH DM-RS.

unique(pscch1sub(:,2,:))
ans = 12×1 uint32 column vector

    1
    2
    3
    5
    6
    7
    8
    9
   10
   12
   13
   14
      ⋮

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) index, specified as an integer, an integer column vector, or a two-column integer matrix.

For D2D sidelink, the PSCCH is intended to be transmitted in a single PRB in a subframe and therefore, specifying PRBSet as a scalar PRB index is recommended. For V2X sidelink, the PSCCH is intended to be transmitted in a pair of consecutive PRB in a subframe, therefore PRBSet must be a column vector containing two consecutive indices. However, for a more general nonstandard multi-PRB allocation, PRBSet can be a set of indices specified as an integer column vector or as a two-column integer matrix corresponding to slot-wise resource allocations for PSCCH.

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.

'sub'

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

Index base

'1based' (default)

The returned indices are one-based.

'0based'

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

PSCCH resource element indices, returned as an integer column vector or a three-column integer matrix. For D2D sidelink, the returned vector has 144 PSCCH resource element indices for normal cyclic prefix or 120 PSCCH resource element indices for extended cyclic prefix. For V2X, the nominal output is a 240-length column vector and it is defined for normal cyclic prefix only. For more information, see Physical Sidelink Control Channel Indexing.

Data Types: uint32

PSCCH subframe resource information, returned as a parameter structure containing these fields:

PSCCH bit capacity, returned as an integer. For D2D sidelink, this value is 288 for normal cyclic prefix or 240 for extended cyclic prefix. For V2X, it is 480.

Data Types: double

PSCCH QPSK symbol capacity, returned as an integer. For D2D sidelink, this value is 144 for normal cyclic prefix or 120 for extended cyclic prefix. For V2X, it is 240.

Data Types: double

Data Types: struct

More About

collapse all

References

[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2016b