Interleave

From GNU Radio
Jump to navigation Jump to search

Interleave N inputs into a single output

This block interleaves blocks of samples. For each input connection, the samples are interleaved successively to the output connection.

This block can also be viewed as a special case of the Patterned Interleaver in which the pattern is defined by a block size and always goes in sequential order. For example, a Patterned Interleaver block with a pattern 0, 0, 1, 1, 2, 2 would be the equivalent of this block with BlockSize=2, Num Streams=3.

Parameters

Num Streams
Total number of input ports
Block size
Number of items from one input to output before switching to the next input
Vector length
Number of samples in a vector item

Example Flowgraph

Below is a simple flowgraph example interleaving two vector sources:

Interleave example flowgraph.png


The block properties are set for block size 2 so it passes two outputs from a given vector source before switching.

Interleave example properties.png


For this example that means the output begins with: 0, 1, 10, 11, 2, 3, 12, 13, 0, 1, .... The output is graphed below using a QT GUI Time Sink Block with a positive slope trigger. This is why the output displayed begins at 1 instead of zero.

Interleave example output.png

Source Files

C++ files
[1]
Header files
[2]
Public header files
[3]
Block definition
[4]