out = lteULSCHInterleave(ue,chs,cdata)
out = lteULSCHInterleave(ue,chs,cdata,ccqi,cri,cack)
the UL-SCH channel interleaving on input
out = lteULSCHInterleave(
encoded transport channel (TrCH) data without UCI. It performs the
UL-SCH data and UCI multiplexing and interleaving as defined in TS
36.212 Sections 22.214.171.124 and 126.96.36.199 . This input can be a vector or a cell array of
vectors, interleaved separately, and the output is of the same form.
Multiple codewords can be parameterized by two different forms
chs structure. Each codeword can be defined
by separate elements of a 1-by-2 structure array, or the codeword
parameters can be combined together in the fields of a single scalar,
or 1-by-1, structure. Any scalar field values apply to both codewords
and a scalar
NLayers is the total number. See UL-SCH Parameterization for
as above except it also supports UL-SCH channel interleaving on both
out = lteULSCHInterleave(
encoded UCI in
If any of these inputs are cell arrays, the output has the same form
and any vector inputs are interleaved into the first cell of the output
only. Any of the input cells or arrays can be empty if the associated
input is not transmitted on one or more codewords.
Interleave two PUSCH RBs worth of bits for QPSK modulation. Considering the REs reserved for PUSCH DM-RS, there are 144 REs available for PUSCH data per RB. Therefore, two RBs contain 288 PUSCH symbols. This results in 2*288 bits to QPSK modulate after interleaving.
Initialize UE specific and UL-SCH related parameter structures. Generate data for QPSK modulation of PUSCH symbols in two RBs. For QPSK, there are two bits per symbol. Perform interleaving and symbol modulation.
ue.CyclicPrefixUL = 'Normal'; ue.Shortened = 0;
chs.Modulation = 'QPSK'; chs.NLayers = 1;
numRB = 2; numREperRB = 144; bitsPerSymbol = 2; numBits = numRB * numREperRB * bitsPerSymbol; cdata = randi([0 1], numBits, 1);
interleaved = lteULSCHInterleave(ue, chs, cdata); symbols = lteSymbolModulate(interleaved, 'QPSK');
ue— UE-specific settingsstructure
UE-specific settings, specified as a structure with the following fields.
CyclicPrefixUL— Cyclic prefix length
'Normal'(default) | optional |
Cyclic prefix length, specified as a string.
Shortened— Shorten subframe0 (default) | optional | 1
Shorten subframe, specified as 0 or 1. If 1, the last symbol of the subframe is not used. It should be set if the current subframe contains a possible SRS transmission.
chs— UL-SCH related parametersscalar structure
UL-SCH related parameters, specified as a scalar structure with the following fields.
Modulation— Modulation format
Modulation format. Specified as a string or cell array of strings.
NLayers— Number of transmission layers (total or per codeword)1 (default) | optional | 2 | 3 | 4
Number of transmission layers (total or per codeword), specified as 1, 2, 3, or 4.
cdata— Encoded TrCH datacolumn vector | cell array of column vectors
Encoded TrCH data, specified as a column vector or a cell array of column vectors.
ccqi— Encoded CQIvector
Encoded CQI, specified as a vector.
cri— Encoded RIvector
Encoded RI, specified as a vector.
cack— Encoded ACKvector
Encoded ACK, specified as a vector.
 3GPP TS 36.212. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.