Interleave: Difference between revisions
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...") |
EngineerLife (talk | contribs) No edit summary |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
Interleave N inputs into a single output | |||
This | |||
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 == | ||
; | ; 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 == | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/lib/interleave_impl.cc] | ||
; Header files | ; Header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/lib/interleave_impl.h] | ||
; Public header files | ; Public header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/include/gnuradio/blocks/interleave.h] | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/grc/blocks_interleave.block.yml] |
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]