ltePSSCHIndices
PSSCH resource element indices
Description
[
returns
a column vector of physical sidelink shared channel (PSSCH) resource
element (RE) indices for the specified UE settings structure. 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 Shared Channel Indexing.ind
] = ltePSSCHIndices(ue
)
Examples
Map PSSCH Resource Elements
Write the complex PSSCH values into the PSSCH 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. This mapping writes PSSCH 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, an empty sidelink resource grid and D2D 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]'; ue.Modulation = 'QPSK'; subframe_D2D = lteSLResourceGrid(ue);
Generate PSSCH indices. Populate the PSSCH resource elements in the subframe using a vector filled with zeros. For D2D normal cyclic prefix a PSSCH subframe contains (144 * nprb
) REs. The number of resource blocks is set to 10. Because the PSSCH uses QPSK modulation, there are 2 bits per symbol.
pssch_indices = ltePSSCHIndices(ue); subframe_D2D(pssch_indices) = ltePSSCH(ue,zeros(2*10*144,1));
Change user equipment settings to V2X sidelink mode. Set the V2X scrambling identity to 4567.
ue.SidelinkMode = 'V2X';
ue.NXID = 4567;
subframe_V2X = lteSLResourceGrid(ue);
pssch_indices = ltePSSCHIndices(ue);
subframe_V2X(pssch_indices) = ltePSSCH(ue,zeros(2*10*120,1));
View the resource grid 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);
View PSSCH Information Structure
View the information structure output by the PSSCH resource element indexing function.
Create a UE settings structure.
ue = struct('NSLRB',25,'CyclicPrefixSL','Normal','PRBSet',[5:22]', ... 'Modulation','16QAM');
Generate PSSCH indices and the information structure. View the information structure to see the bit and symbol capacity of the PSSCH for this configuration.
[pssch_indices,info] = ltePSSCHIndices(ue); info
info = struct with fields:
G: 10368
Gd: 2592
Compare PSSCH Resource Element Indexing
Compare PSSCH resource element indexing formats.
Create a UE settings structure.
ue = struct('NSLRB',15,'CyclicPrefixSL','Normal','PRBSet',12);
Generate PSSCH indices using one-based linear indexing (default), zero-based linear indexing, and one-based subscript row style.
One-based linear indexing
pssch_indices = ltePSSCHIndices(ue); pssch_indices(1)
ans = uint32
145
Zero-based linear indexing
opts = '0based';
pssch_indices_0based = ltePSSCHIndices(ue,opts);
pssch_indices_0based(1)
ans = uint32
144
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.
opts = {'sub' '1based'}; pssch_indices_sub = ltePSSCHIndices(ue,opts); unique(pssch_indices_sub(:,2,:))
ans = 12x1 uint32 column vector
1
2
3
5
6
7
8
9
10
12
⋮
Only the symbols 4 and 11 are not occupied. For one-based indexing, these two PSSCH subframe symbols are always reserved for transmission of the PSSCH DM-RS.
Input Arguments
ue
— User equipment settings
structure
User equipment settings, specified as a parameter structure containing these fields:
SidelinkMode
— Sidelink mode
'D2D'
(default) | 'V2X'
| optional
Sidelink mode, specified as 'D2D'
or
'V2X'
.
Data Types: char
| string
NSLRB
— Number of sidelink resource blocks
integer scalar from 6 to 110
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
CyclicPrefixSL
— Cyclic prefix length
'Normal'
(default) | 'Extended'
| optional
Cyclic prefix length, specified as 'Normal'
or 'Extended'
.
Data Types: char
| string
PRBSet
— Zero-based physical resource block indices
integer column vector | two-column integer matrix
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
Modulation
— Modulation type
'QPSK'
(default) | '16QAM'
Modulation type, specified as 'QPSK'
or '16QAM'
.
Only required when the info
output is assigned. Modulation
is
used to set the info
.G
output
field.
Data Types: char
| string
Data Types: struct
opts
— Output format options for resource element indices
character vector | cell array of character vectors | string array
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 |
| The returned indices are in linear index style. |
| The returned indices are in | |
Index base |
| 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
ind
— PSSCH resource element indices
integer column vector | three-column integer matrix
PSSCH resource element indices, returned as an integer column vector or a three-column integer matrix. The returned vector or matrix has NPRB × 144 PSSCH resource element indices for D2D normal cyclic prefix or NPRB × 120 PSSCH resource element indices for D2D extended cyclic prefix and V2X. NPRB is the number of physical resource blocks (PRB) used for transmission. For more information, see Physical Sidelink Shared Channel Indexing and Physical Sidelink Shared Channel Processing.
info
— PSSCH subframe resource information
structure
PSSCH subframe resource information, returned as a structure containing these fields:
G
— PSSCH bit capacity
integer
PSSCH bit capacity, returned as an integer. For more information, see Physical Sidelink Shared Channel Processing.
Gd
— PSSCH symbol capacity
integer
PSSCH symbol capacity, returned as an integer. The number of PSSCH resource elements (NRE) in a subframe. For more information, see Physical Sidelink Shared Channel Processing.
Data Types: struct
More About
Physical Sidelink Shared Channel Indexing
Use the ltePSSCHIndices
function
and the corresponding ltePSSCH
sequence
function to populate the PSSCH subframe resource grid. The PSSCH is
transmitted in the available SC-FDMA symbols in a PSSCH subframe,
using a single layer on antenna port 1000. It excludes each symbol
per slot assigned to PSSCH DM-RS. For more information on PSSCH DM-RS,
see the ltePSSCHDRSIndices
function.
The indices are ordered as the PSSCH 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 Shared Channel Processing
Physical sidelink shared channel (PSSCH) processing includes PSSCH-specific scrambling, QPSK or 16-QAM modulation, and SC-FDMA transform precoding. PSSCH processing follows the processing steps used for PUSCH, with variations defined in TS 36.211, Section 9.3.
For PSSCH, the input codeword length is Mbits = NRE × Nbps, where Nbps is the number of bits per symbol. PSSCH modulation is either QPSK (2 bits per symbol) or 16 QAM (4 bits per symbol).
The number of PSSCH resource elements (NRE) in a subframe is 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.
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 PSSCH subframe, including symbols associated with the sidelink SC-FDMA guard symbol. The number of SC-FDMA symbols in a PSSCH subframe is 12 for D2D normal cyclic prefix or 10 for D2D extended cyclic prefix and V2X.
The info
structure output by ltePSSCHIndices
provides Mbits and NRE as info.G
and info.Gd
respectively.
The scrambling sequence generator is initialized with at the start of every PSSCH subframe. For D2D sidelink, is the destination identity (NSAID
) obtained from the
sidelink shared channel. For V2X, is the V2X scrambling identity (NXID
). is the subframe number in the PSSCH subframe pool
(NSubframePSSCH
).
ltePSSCH
requires CyclicPrefixSL
to
deduce the number of resource blocks allocated for SC-FDMA precoding
symbols.
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
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)