Patterned Interleaver: Difference between revisions
Jump to navigation
Jump to search
EngineerLife (talk | contribs) |
EngineerLife (talk | contribs) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
Interleave items based on | Interleave items from multiple streams based on a provided pattern (given as a vector). | ||
== Parameters == | == Parameters == | ||
; IO Type | |||
: Supported types are: complex, float, int, short, and byte | |||
; Pattern | ; Pattern | ||
: Vector that represents the interleaving pattern. | : Vector that represents the interleaving pattern. | ||
: For example, the pattern <code>[ 0, 0, 1, 2 ]</code> means to pass one item of data from port 0 twice, then from port 1 once, then from port 2 once, then repeat. | : For example, the pattern <code>[ 0, 0, 1, 2 ]</code> 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 <code>[0, 0, 1, 2, 4]</code> 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 Flowgraph == | ||
An example flowgraph using the default pattern: | '''Example 1''' | ||
An example flowgraph using the default pattern with vector length 1 streams: | |||
[[File:Patterned_interleaver_example_flowgraph.png|600px]] | [[File:Patterned_interleaver_example_flowgraph.png|600px]] | ||
An example of the settings field: | An example of the settings field: | ||
[[File:Patterned_interleaver_example_settings.png|600px]] | [[File:Patterned_interleaver_example_settings.png|600px]] | ||
An example of the beginning of the output sequence: | An example of the beginning of the output sequence: | ||
Line 22: | Line 34: | ||
[[File:Patterned_interleaver_example_output.png|600px]] | [[File:Patterned_interleaver_example_output.png|600px]] | ||
The output pattern begins with: <code>0, 1, 10, 20, 2, 3, 11, 21, 4, 0 12, 22, ....</code> | |||
The output pattern begins with: <code>0, 1, 10, 20, 2, 3, 11, 21, 4, 0, 12, 22, ....</code> | |||
'''Example 2''' | |||
This example shows a vector length 2 example: | |||
[[File:Patterned_interleaver_flowgraph_example_two.png|600px]] | |||
An example of the beginning of the output sequence: | |||
[[File:Patterned_interleaver_output_example_two.png|600px]] | |||
The output pattern for the first stream begins with: <code>0, 1, 10, 20, 2, 3, 11, 21, 4, 0, 12, 22, ....</code> | |||
The output pattern for the second stream begins with: <code>1, 2, 11, 21, 3, 4, 12, 22, 5, 0, 13, 23, ....</code> | |||
== Source Files == | == Source Files == |
Latest revision as of 18:20, 30 July 2023
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:
An example of the settings field:
An example of the beginning of the output sequence:
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:
An example of the beginning of the output sequence:
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]