Some key concepts in GNURadio

GNURadio is a versatile code for creating signal flow graphs from real world or synthetic sources. In gnuradio units of data are the following:

  • item: one entity can be anything, like samples, numbers floats etc.. but also vectors of these
  • sample: one data sample
  • stream: a continuous sequential group of samples
  • vector: a parallel group of samples for simultaneous processing, such as FFT, etc. A stream can be converted to a vector by a converter.

Examples:

The stream to vector can also have a certain data type.

  • It chops the input samples with the given size in number of items, e.g. every 1024 samples one chop
  • Its output is then set using vector length, 1 means one item of type vector which has 1024 samples in it. 2 means two items of type vector each with 1024 samples inside and so on.

The interleave block can have a data type, which can be set.

  • by default it interleaves single items (samples) from two different inputs, one from this, another from the other.
  • if you assign a vector size, e.g. 1024, then it interleaves 1024 items from one input then 1024 from the other.
  • if you additionally assign a block size, e.g. 10, it will pass 10 vectors of each 1024 items (samples) from the first input, then the same from the second input and so on.