Main Content

Algebraic Deinterleaver

Restore ordering of input symbols using algebraically derived permutation


Block sublibrary of Interleaving

  • Algebraic Deinterleaver block


The Algebraic Deinterleaver block restores the original ordering of a sequence that was interleaved using the Algebraic Interleaver block. In typical usage, the parameters in the two blocks have the same values.

The Number of elements parameter, N, indicates how many numbers are in the input vector. This block accepts a column vector input signal.

The block accepts the following data types: int8, uint8, int16, uint16, int32, uint32, boolean, single, double, and fixed-point. The output signal inherits its data type from the input signal.

The Type parameter indicates the algebraic method that the block uses to generate the appropriate permutation table. Choices are Takeshita-Costello and Welch-Costas. Each of these methods has parameters and restrictions that are specific to it; these are described on the reference page for the Algebraic Interleaver block.



The type of permutation table that the block uses for deinterleaving. Choices are Takeshita-Costello and Welch-Costas.

Number of elements

The number of elements, N, in the input vector.

Multiplicative factor

The factor the block uses to compute the corresponding interleaver's cycle vector. This field appears only when you set Type to Takeshita-Costello.

Cyclic shift

The amount by which the block shifts indices when creating the corresponding interleaver's permutation table. This field appears only when you set Type to Takeshita-Costello.

Primitive element

An element of order N in the finite field GF(N+1). This field appears only if Type is set to Welch-Costas.


[1] Heegard, Chris and Stephen B. Wicker. Turbo Coding. Boston: Kluwer Academic Publishers, 1999.

[2] Takeshita, O. Y. and D. J. Costello, Jr. "New Classes Of Algebraic Interleavers for Turbo-Codes." Proc. 1998 IEEE International Symposium on Information Theory, Boston, Aug. 16-21, 1998. 419.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced before R2006a