Main Content

lteULSCHDeinterleave

UL-SCH deinterleaving

Description

[cdata,ccqi,cri,cack] = lteULSCHDeinterleave(ue,chs,in) returns the deinterleaved data vector cdata, encoded UCI vectors, ccqi,cri, and cack, or cell array of vectors, after performing the demultiplexing and UL-SCH channel deinterleaving to undo the processing described in TS 36.212, Sections 5.2.2.7 and 5.2.2.8 [1] for UE-specific settings, ue, and UL-SCH channel specific configuration, chs.

The function expects the input in to be multiplexed and interleaved as per defined in TS 36.212, Sections 5.2.2.7 and 5.2.2.8 [1]. This input can be a vector or a cell array of vectors, deinterleaved and demultiplexed separately, and the outputs are of the same form. The size of the coded CQI symbols and codeword number with it is multiplexed, to correctly perform the demultiplexing, are deduced using the channel specific structure chs via the Modulation and QdCQI parameters. The presence or absence of ccqi in the transmission is signaled via QdCQI parameter with nonzero (number of coded CQI symbols) or zero value, respectively.

Multiple codewords can be parameterized by two different forms of the 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 more details.

example

Examples

collapse all

Perform back-to-back interleaving and deinterleaving of a vector of interleaver input bit indices.

Create UE-specific and propagation channel configuration structures.

ue.CyclicPrefixUL = 'Normal';
ue.Shortened = 0;
chs.Modulation = 'QPSK';
chs.NLayers = 1;
chs.QdCQI = 0;
chs.QdRI = 0;
chs.QdACK = 0;

There are 288 PUSCH QPSK symbols in two RBs and two bits per symbol for QPSK.

cdata = randi([0 1],2*288,1);
size(cdata)
ans = 1×2

   576     1

interleaved = lteULSCHInterleave(ue,chs,cdata);
deinterleaved = lteULSCHDeinterleave(ue,chs,interleaved);
size(deinterleaved)
ans = 1×2

   576     1

The deinterleaved output is the same size as the data prior to interleaving.

Input Arguments

collapse all

UE-specific settings, specified as a structure with the following fields.

Cyclic prefix length, specified as 'Normal' or 'Extended'.

Data Types: char | string

Shorten subframe flag, specified as 0 or 1. Optional. If 1, the last symbol of the subframe is not used. It should be set if the current subframe contains a possible SRS transmission.

Data Types: logical | double

Data Types: struct

UL-SCH related parameters, specified as a structure with the following fields.

Modulation format, specified as 'QPSK', '16QAM', '64QAM', or '256QAM'. Use double quotes for string. It there are two blocks, use a cell array of character vectors or a string array.

Data Types: char | string

Number of transmission layers, total or per codeword, specified as a positive scalar integer. Optional.

Data Types: double

Number of coded symbols for CQI, specified as a nonnegative scalar integer. Optional. (Q'_CQI)

Data Types: double

Number of coded symbols for RI, specified as a nonnegative scalar integer. Optional. (Q'_RI)

Data Types: double

Number of coded symbols for ACK/NACK, specified as a nonnegative scalar integer. Optional. (Q'_ACK)

Data Types: double

Data Types: struct

Input data specified as a column vector or a cell array of column vectors.

Data Types: double | cell

Output Arguments

collapse all

Deinterleaved data, returned as a column vector or cell array of column vectors.

Data Types: double | cell

Encoded UCI, returned as a vector or cell array of vectors.

Data Types: double | cell

Encoded UCI, returned as a vector or cell array of vectors.

Data Types: double | cell

Encoded UCI, returned as a vector or cell array of vectors.

Data Types: double | cell

References

[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2014a