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 = 1x3 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 = 12x1 uint32 column vector

    1
    2
    3
    5
    6
    7
    8
    9
   10
   12
      ⋮

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

Physical Sidelink Control Channel Indexing

Use the ltePSCCHIndices indexing function and the corresponding ltePSCCH sequence function to populate the PSCCH subframe resource grid. The PSCCH is transmitted in the available SC-FDMA symbols in a PSCCH subframe, using a single layer representing antenna port 1000. It excludes each symbol per slot assigned to PSCCH DM-RS. For more information on PSCCH DM-RS, see the ltePSCCHDRSIndices function.

The indices are ordered as the PSCCH QPSK modulation symbols should be mapped, applying frequency-first mapping. 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 this guard symbol.

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

Physical Sidelink Control Channel Processing

Physical sidelink control channel (PSCCH) processing includes PSCCH-specific scrambling, QPSK modulation, and SC-FDMA transform precoding. PSCCH processing follows the processing steps used for PUSCH, with variations defined in TS 36.211, Section 9.4.

For PSCCH, the input codeword length is Mbits = NRE × Nbps, where NRE is the number of PSCCH resource elements in a subframe and Nbps is the number of bits per symbol. Because the PSCCH is QPSK modulated, there are 2 bits per symbol. Nominally, the codeword length for PSCCH is 288 bits for D2D normal cyclic prefix, 240 bits for D2D extended cyclic prefix and 480 for V2X. Nominally, NRE is 144 for D2D normal cyclic prefix or 120 for D2D extended cyclic prefix. For V2X, it is 240 defined for normal cyclic prefix only. Specifically, NRE = NPRB × NREperPRB × NSYM and includes symbols associated with the sidelink SC-FDMA guard symbol.

  • NPRB is the number of physical resource blocks (PRB) used for transmission. PSCCH is transmitted on a single PRB.

  • NREperPRB is the number of resource elements in a PRB. Each PRB has 12 resource elements.

  • NSYM is the number of SC-FDMA symbols in a PSCCH subframe, including symbols associated with the sidelink SC-FDMA guard symbol. The number of SC-FDMA symbols is a PSCCH subframe is 12 for D2D normal cyclic prefix or 10 for D2D extended cyclic prefix and V2X.

For D2D sidelink, when an SCI message is sent as a sidelink shared grant, it is transmitted twice on two separate PSCCH instances within the associated PSCCH resource pool. For V2X, only a single instance of PSCCH is transmitted for each scheduling grant.

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