Matrix Interleaver

From GNU Radio
Jump to navigation Jump to search

This block performs interleaving by filling a fixed size matrix row by row and then outputting column by column.

Matrix interleaver structure.png


IO Type
Supported types are: complex, float, int, short, and byte
Vector Length
The vector length for the input stream.
The number of rows for the interleaver.
The number of columns for the interleaver.
A boolean variable indicating if the block should behave as an interleaver (deinterleave=False) or deinterleaver (deinterleave=true).

Example Flowgraph

Below is a basic interleave/deinterleave example with the matrix interleaver block:

Matrix interleaver example flowgraph.png

On the interleaver side, the settings are set as follows:

Matrix interleaver example interleave settings.png

On the deinterleave side, the settings are the same except the deinterleave variable is set to true:

Matrix interleaver example deinterleaver settings.png

The output is then captured with a QT GUI Time Sink block. The first signal is the input from the vector source (numbers 0 to 11). The second trace is the interleaved signal following the example in the description section. The third trace is the deinterleaved signal which matches the vector source output.

Matrix interleaver example output.png

Source Files

Python files
Block definition