Interleave: Difference between revisions
No edit summary |
EngineerLife (talk | contribs) No edit summary |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
This block interleaves blocks of samples. For each input connection, the samples are interleaved successively to the output connection. | 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|Patterned Interleaver]] in which the pattern is defined by a block size and always goes in sequential order. For example, a [[Patterned_Interleaver|Patterned Interleaver]] block with a pattern <code>0, 0, 1, 1, 2, 2</code> would be the equivalent of this block with BlockSize=2, Num Streams=3. | |||
== Parameters == | == Parameters == | ||
; Block size : Number of | ; 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 == | == Example Flowgraph == | ||
Below is a simple flowgraph example interleaving two vector sources: | |||
[[File:Interleave_example_flowgraph.png|900px]] | |||
The block properties are set for block size 2 so it passes two outputs from a given vector source before switching. | |||
[[File:Interleave_example_properties.png|500px]] | |||
For this example that means the output begins with: <code>0, 1, 10, 11, 2, 3, 12, 13, 0, 1, ...</code>. The output is graphed below using a [[QT_GUI_Time_Sink|QT GUI Time Sink Block]] with a positive slope trigger. This is why the output displayed begins at 1 instead of zero. | |||
[[File:Interleave_example_output.png|900px]] | |||
== Source Files == | == Source Files == |
Latest revision as of 19:32, 30 July 2023
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:
The block properties are set for block size 2 so it passes two outputs from a given vector source before switching.
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.
Source Files
- C++ files
- [1]
- Header files
- [2]
- Public header files
- [3]
- Block definition
- [4]