Main Content

ltePSCCHDecode

PSCCH decoding

Description

example

softbits = ltePSCCHDecode(sym) returns a vector of log-likelihood ratio (LLR) soft bits for the input modulated PSCCH symbols.

The PSCCH decoder performs SC-FDMA transform deprecoding, QPSK demodulation, and PSCCH-specific descrambling. These operations are the inverse of the ltePSCCH function processing, as defined in TS 36.211 [1], Section 9.4. For more information, see Physical Sidelink Control Channel Processing.

example

[softbits,symbols] = ltePSCCHDecode(sym) also returns the intermediate QPSK modulation symbols.

Examples

collapse all

Decode PSCCH symbols that contain a fully encoded SCI format 0 message with noise added. After PSCCH demodulation, decode and recover the SCI message structure.

Create UE settings and SCI message configuration structures. Generate a PSCCH transmission. Add noise to the symbols.

ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');
sci0 = struct('FreqHopping',1,'ModCoding',3);

[sci0,scibits] = lteSCI(ue,sci0);
cw = lteSCIEncode(ue,scibits);
sym = ltePSCCH(cw);

rxsym = sym + 0.1*randn(size(sym));

Decode the PSCCH symbols and SCI message. View the SCI message structure settings. Confirm that the transmitted and recovered SCI messages match.

[rxsoftbits,sym] = ltePSCCHDecode(rxsym);
[rxinfo,rxerr] = lteSCIDecode(ue,rxsoftbits);

[recsci0,recscibits] = lteSCI(ue,rxinfo);
recsci0
recsci0 = struct with fields:
              SCIFormat: 'Format0'
            FreqHopping: 1
             Allocation: [1x1 struct]
    TimeResourcePattern: 0
              ModCoding: 3
            TimeAdvance: 0
                  NSAID: 0

isequal(scibits,recscibits)
ans = logical
   1

Decode PSCCH symbols that contain a fully encoded SCI format 0 message with noise added. After PSCCH demodulation, plot the intermediate QPSK modulated symbols.

Create UE settings and SCI message configuration structures. Generate a PSCCH transmission. Add noise to the symbols.

ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');
sci0 = struct('FreqHopping',1,'ModCoding',3);

[sci0,scibits] = lteSCI(ue,sci0);
cw = lteSCIEncode(ue,scibits);
sym = ltePSCCH(cw);

rxsym = sym + 0.1*randn(size(sym));

Decode the PSCCH symbols and plot the output intermediate QPSK modulated symbols.

[rxsoftbits,symbols] = ltePSCCHDecode(rxsym);
plot(symbols,'o')

Input Arguments

collapse all

Modulated PSCCH symbols, specified as an NRE-by-1 column vector. NRE is the number of resource elements in a PSCCH subframe, including the SC-FDMA guard symbol. For D2D sidelink, nominally NRE is 144 or 120 for normal and extended cyclic prefix respectively. For V2X sidelink, nominally NRE is 240 bits, defined for normal cyclic prefix only. For more information, see Physical Sidelink Control Channel Processing.

Data Types: double
Complex Number Support: Yes

Output Arguments

collapse all

Log-likelihood ratio (LLR) soft bits, returned as a (2 × NRE)-by-1 vector. NRE is the number of resource elements in a PSCCH subframe, including the SC-FDMA guard symbol. The LLR of the punctured soft bits associated with the last SC-FDMA symbol in the subframe are set to 0. For more information, see Physical Sidelink Control Channel Processing.

Modulated PSCCH symbols, returned as an NRE-by-1 column vector. NRE is the number of resource elements in a PSCCH subframe, including the SC-FDMA guard symbol. For more information, see Physical Sidelink Control Channel Processing.

More About

collapse all

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