Stream Demux: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Initial documentation. Still missing example flowgraph.)
 
m (Fix typo)
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
Stream demuxing block to demultiplex one stream into N output streams.
Stream demuxing block to demultiplex one stream into N output streams.
      
      
Demuxes a stream producing N outputs streams that contains n_0 items in the first stream, n_1 items in the second, etc., and repeats. Number of items of each output stream is specified using the <tt>lengths</tt> parameter like so <tt>[n_0, n_1, ..., n_N-1]</tt>.
Demuxes a stream producing N outputs streams that contains n_0 items in the first stream, n_1 items in the second, etc., and repeats. Tags are propagated. The number of items in each output stream is specified using the <tt>lengths</tt> parameter like so <tt>[n_0, n_1, ..., n_N-1]</tt>.
      
      
Example:<br><tt>
Example:<br><tt>
Line 22: Line 22:
== Example Flowgraph ==
== Example Flowgraph ==


Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately.  The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
This flowgraph shows the Stream Demux block demuxing an input stream into three output streams with <tt>lengths = [2, 3, 4]</tt>.
 
The block will put 2 items into the first output stream, 3 items into the second output stream, 4 items into the third output stream, and repeat. Notice that tags are preserved.
 
 
[[File:stream_demux_demo_flowgraph.png|800px]]
 
[[File:Stream_demux_demo_exec.png|800px]]


== Source Files ==
== Source Files ==

Latest revision as of 14:58, 29 October 2020

Stream demuxing block to demultiplex one stream into N output streams.

Demuxes a stream producing N outputs streams that contains n_0 items in the first stream, n_1 items in the second, etc., and repeats. Tags are propagated. The number of items in each output stream is specified using the lengths parameter like so [n_0, n_1, ..., n_N-1].

Example:
lengths = [2, 3, 4]

input stream = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]
output_stream_0 = [0, 1, 9, 10, ...]
output_stream_1 = [2, 3, 4, 11, ...]
output_stream_2 = [5, 6, 7, 8, ...]

Parameters

Lengths
a vector (list/tuple) specifying the number of items to copy to each output stream.
Num outputs
Number of output streams.

Example Flowgraph

This flowgraph shows the Stream Demux block demuxing an input stream into three output streams with lengths = [2, 3, 4].

The block will put 2 items into the first output stream, 3 items into the second output stream, 4 items into the third output stream, and repeat. Notice that tags are preserved.


Stream demux demo flowgraph.png

Stream demux demo exec.png

Source Files

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