Reorder symbols in input vector

Block sublibrary of Interleaving

The General Block Interleaver block rearranges the elements
of its input vector without repeating or omitting any elements. If
the input contains *N* elements, then the **Permutation
vector** parameter is a column vector of length *N*.
The column vector indicates the indices, in order, of the input elements
that form the length-*N* output vector; that is,

Output(*k*) = Input(**Permutation
vector**(k))

for each integer *k* between 1 and *N*.
The contents of **Permutation vector** must be integers
between 1 and N, and must have no repetitions.

Both the input and the **Permutation vector** parameter
must be column vector signals.

This block can output sequences that vary in length during simulation.
For more information about sequences that vary in length, or variable-size
signals, see Variable-Size Signal Basics in the Simulink^{®} documentation.

This block accept 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 General Block Interleaver dialog box is shown
for the case in which the **Permutation vector source** parameter
is set to `Dialog`

.

The General Block Interleaver dialog box is shown
for the case in which the **Permutation vector source** parameter
is set to `Input port`

.

**Permutation vector source**A selection that specifies the source of the permutation vector. The source can be either

`Dialog`

or`Input port`

. The default value is`Dialog`

.**Permutation vector**A vector of length N that lists the indices of the output elements that came from the input vector. This parameter is available only when

**Permutation vector source**is set to`Dialog`

.

If **Permutation vector** is `[4;1;3;2]`

and
the input vector is `[40;32;59;1]`

, then the output
vector is `[1;40;59;32]`

. Notice that all of these
vectors have the same length and that the vector **Permutation
vector** is a permutation of the vector `[1:4]'`

.

`perms`

(MATLAB^{®} function)

Was this topic helpful?