Main Content

ltePSCCHDecode

PSCCH decoding

Description

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.

example

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: [1×1 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')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

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

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