Matrix Interleaver

From GNU Radio
Revision as of 20:59, 30 July 2023 by EngineerLife (talk | contribs) (create matrix interleaver block page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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

Parameters

IO Type
Supported types are: complex, float, int, short, and byte
Vector Length
The vector length for the input stream.
Rows
The number of rows for the interleaver.
Columns
The number of columns for the interleaver.
Deinterleave
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
[1]
Block definition
[2]