Restore ordering of input symbols using algebraically derived permutation

Block sublibrary of Interleaving

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.

**Type**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.

Was this topic helpful?