This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Turbo encoding




out = lteTurboEncode(in) returns the result of turbo encoding the input data, in. Only a finite number of acceptable data vector lengths can be coded. For more information, see TS 36.212 [1], Table 5.1.3-3. Filler bits are supported through negative input values.

The encoder is a parallel concatenated convolutional code (PCCC) with two 8-state constituent encoders and a contention-free interleaver. The coding rate of turbo encoder is 1/3. The three encoded parity streams are concatenated block-wise to form the encoded output, [S P1 P2], where S is the vector of systematic bits, P1 is the vector of encoder 1 bits, and P2 is the vector of encoder 2 bits. To support the correct processing of filler bits, negative input bit values are specially processed. They are treated as logical 0 at the input to both encoders but their negative values are passed directly through to the associated output positions in subblocks S and P1.


collapse all

Perform turbo encoding for a cell array input.

bits = lteTurboEncode({ones(40,1),ones(6144,1)})
bits =

  1×2 cell array

    [132×1 int8]    [18444×1 int8]

Input Arguments

collapse all

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

Data Types: int8 | double | cell

Output Arguments

collapse all

Turbo encoded bits, returned as an integer column vector or a cell array of integer column vectors. If the input is a cell array, the output is a cell array containing the separately encoded input array vectors.

Data Types: int8 | cell


[1] 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:

Introduced in R2014a

Was this topic helpful?