Patterned Interleaver

From GNU Radio
Revision as of 18:20, 30 July 2023 by EngineerLife (talk | contribs) (→‎Parameters)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Interleave items from multiple streams based on a provided pattern (given as a vector).

Parameters

IO Type
Supported types are: complex, float, int, short, and byte
Pattern
Vector that represents the interleaving pattern.
For example, the pattern [ 0, 0, 1, 2 ] means to pass one item of data from port 0 twice, then from port 1 once, then from port 2 once, then repeat.
The number of inputs is set by max(pattern,0) + 1.
Note, all inputs must be connected even if all are not used in the pattern. For example, the pattern [0, 0, 1, 2, 4] would create 5 inputs. The fourth input (pattern val 3) is unused but the flowgraph will not run.
Vector Length
The vector length for the input stream(s).

Example Flowgraph

Example 1

An example flowgraph using the default pattern with vector length 1 streams:

Patterned interleaver example flowgraph.png


An example of the settings field:

Patterned interleaver example settings.png


An example of the beginning of the output sequence:

Patterned interleaver example output.png


The output pattern begins with: 0, 1, 10, 20, 2, 3, 11, 21, 4, 0, 12, 22, ....


Example 2

This example shows a vector length 2 example:

Patterned interleaver flowgraph example two.png


An example of the beginning of the output sequence:

Patterned interleaver output example two.png


The output pattern for the first stream begins with: 0, 1, 10, 20, 2, 3, 11, 21, 4, 0, 12, 22, ....

The output pattern for the second stream begins with: 1, 2, 11, 21, 3, 4, 12, 22, 5, 0, 13, 23, ....

Source Files

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