GNU Radio's CDMA Package
|
Chop the input data stream according to the flags in the input control stream. More...
#include <chopper.h>
Public Types | |
typedef boost::shared_ptr< chopper > | sptr |
Static Public Member Functions | |
static sptr | make (int length_out, int length_in, size_t vector_length) |
Return a shared_ptr to a new instance of cdma::chopper. More... | |
Chop the input data stream according to the flags in the input control stream.
When flag is detected in the control stream, the chopper start to chop. The chopper outputs a copy of length_out items from the input stream to the output stream per chop.
The chopper consumes length_in items from the input and control streams.
Typically the flags are periodic and length_out>=length_in. Therefore, there exist three cases.
Case 1: period <= length_in <= length_out
For example, with length_in=4, length_out=5, period=3, the input and output streams will look like
input:--—>abcdefghijklmn...
flags:--—>10010010010010... (period=3)
outputs:-->abcdeghijkmn...
Case 2: length_in <= period <= length_out
For example, with length_in=4, length_out=6, period=5, the input and output streams will look like
input:--—>abcdefghijklmn...
flags:--—>100001000010000... (period=5)
outputs:-->abcdeffghijkklmnop...
Case 3: length_in <=length_out <= period
For example, with length_in=4, length_out=6, period=7, the input and output streams will look like
input:--—>abcdefghijklmnopqrst...
flags:--—>100000010000001000000...(periold=7)
outputs:-->abcdefhijklmonqrst...
typedef boost::shared_ptr<chopper> gr::cdma::chopper::sptr |
|
static |
Return a shared_ptr to a new instance of cdma::chopper.
To avoid accidental use of raw pointers, cdma::chopper's constructor is in a private implementation class. cdma::chopper::make is the public interface for creating new instances.
vector_length | size of input item in data stream |
length_in | number of items chopper consumes per chop. |
length_out | number of items chopper outputs per chop. Typically length out>=length in. |