ltePSSCHDecode
PSSCH decoding
Description
[
returns
a vector of log-likelihood ratio (LLR) soft bits and the intermediate
QPSK or 16QAM modulation symbols for the specified UE settings structure
and modulated PSSCH symbols. softbits
,symbols
]
= ltePSSCHDecode(ue
,sym
)
The PSSCH decoder performs the inverse of the ltePSSCH
function processing, as defined
in TS 36.211 [1], Section 9.3.
The ltePSSCHDecode
processing includes SC-FDMA
transform deprecoding, symbol demodulation, and PSSCH-specific descrambling.
For more information, see Physical Sidelink Shared Channel Decoding.
Examples
Demodulate PSSCH Symbols
Demodulate PSSCH symbols plus noise for an SL-SCH codeword created by encoding a vector of information bits. Plot the noisy RE symbols, the symbols prior to QPSK demodulation, and the resulting LLR soft bits.
Create a UE settings structure
Specify normal cyclic prefix and 16-QAM modulation.
ue = struct('CyclicPrefixSL','Normal'); ue.RV = 0; ue.Modulation = '16QAM'; ue.NSAID = 255; ue.NSubframePSSCH = 0;
Generate symbols to recover
Specify the codeword length to use for the SL-SCH. Choose a length that is a multiple of 12 symbols for normal cyclic prefix and has 4 bits per symbol for 16-QAM modulation. Pick a standard number of resource blocks, such as 10.
Create the SL-SCH codeword.
Create the PSSCH symbols and add noise.
codewordlength = 5760; % (12 symbols)(4 bps)(12 REperRB)(10 PRB)
cw = lteSLSCH(ue,codewordlength,ones(100,1));
sym = ltePSSCH(ue,cw);
rxsym = sym + 0.1*randn(size(sym));
Decode received PSSCH symbols
Recover the soft bits representing the transmitted SL-SCH codeword. Compare the soft bits to the transmitted codeword.
[rxcw,rxmodsym] = ltePSSCHDecode(ue,rxsym); isequal(cw,rxcw>0)
ans = logical
0
Using a random noise seed and the level of noise added sometimes results in decoding errors. If the comparison returns '1' there were no decoding errors. If the comparison returns '0' there were decoding errors.
Plot the received and recovered signals.
subplot(2,2,1) plot(rxsym,'o') title('PSSCH Encoded Symbols + Noise') subplot(2,2,2) plot(rxmodsym,'o') title('Decoded Symbols') subplot(2,2,[3,4]) plot(rxcw) title('Decoded Soft Bits')
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
CyclicPrefixSL
— Cyclic prefix length
'Normal'
(default) | 'Extended'
| optional
Cyclic prefix length, specified as 'Normal'
or 'Extended'
.
Data Types: char
| string
Modulation
— Modulation type
'QPSK'
| '16QAM'
Modulation type, specified as 'QPSK'
or '16QAM'
.
Data Types: char
| string
NSAID
— Sidelink group destination identity
integer in the interval [0, 255]
Sidelink group destination identity, specified as an integer in the interval [0, 255].
This field is the lower eight bits of the full 24-bit ProSe Layer-2 group destination ID. This
field and the NSubframePSSCH
field control
the value of the scrambling sequence at the start of each
subframe. This field is required only for D2D sidelink.
Data Types: double
NXID
— V2X scrambling identity
integer scalar
V2X scrambling identity, specified as an integer scalar. NXID
is
the 16 bit CRC associated with the PSCCH SCI grant. It is only required for V2X
sidelink.
Data Types: double
NSubframePSSCH
— PSSCH subframe number
integer scalar
PSSCH subframe number in the PSSCH subframe pool, specified as an integer scalar ().
NSubframePSSCH
and NSAID
control the values of the
scrambling sequence. It is only required for D2D
sidelink.
Data Types: double
Data Types: struct
sym
— Encoded modulated PSSCH symbols
column vector
Encoded modulated PSSCH symbols, specified as an NRE-by-1 column vector. NRE is the number of RE in a subframe associated with the PSSCH allocation for normal and extended cyclic prefix (including the SC-FDMA guard symbol) and NPRB resource blocks.
NRE is NPRB × 144 for D2D normal cyclic prefix or NPRB × 120 for D2D extended cyclic prefix and V2X. NPRB is the number of physical resource blocks (PRB) used for transmission.
The function requires the contents of all PSSCH resource elements to be input, including those in the last guard symbol. For more information, see Physical Sidelink Shared Channel Decoding.
Data Types: double
Complex Number Support: Yes
Output Arguments
softbits
— Log-likelihood ratio soft bits
vector
Log-likelihood ratio (LLR) soft bits, returned as a vector with Nbps × NRE softbits. Nbps is the number of bits per symbol. PSSCH modulation is either QPSK (2 bits per symbol) or 16 QAM (4 bits per symbol). NRE is the number of PSSCH resource elements in the subframe. The LLR of the punctured soft bits associated with the last SC-FDMA symbol are set to 0.
For more information, see Physical Sidelink Shared Channel Decoding.
symbols
— Decoded modulated PSSCH symbols
column vector
Decoded modulated PSSCH symbols, returned as a column vector with NRE elements. NRE is the number of PSSCH resource elements in the subframe. For more information, see Physical Sidelink Shared Channel Decoding.
More About
Physical Sidelink Shared Channel Decoding
The physical sidelink shared channel (PSSCH)
decoder performs the inverse of the ltePSSCH
function
processing. For more information, see Physical Sidelink Shared Channel Processing. PSSCH decoding
includes SC-FDMA transform deprecoding, symbol demodulation, and PSSCH-specific
descrambling.
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
ltePSSCH
| ltePSSCHIndices
| ltePSSCHDRS
| ltePSSCHDRSIndices
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 (한국어)