Skip to content
Nicholas Corgan edited this page Jul 28, 2020 · 10 revisions

Pothos Communications Toolkit

The Pothos communications toolkit is a component of the Pothos data-flow framework. The toolkit contains radio communications and digital signal processing blocks.

Comms table of contents

General purpose basic arithmetic block with support for addition, subtraction, multiplication, and division. This block also demonstrates the features of 1) feedback loops and 2) inline buffer substitution.

Blocks that implement configurable signal filters such as FIR and IIR. Checkout the Filter Tutorial to learn more about using digital filters in Pothos.

  • FIR Taps designer - emit taps signal when parameters changed.
  • FIR Filter - interpolating and decimating/fixed and floating point
  • IIR Taps designer - emit taps signal when parameters changed.
  • IIR Filter - fixed and floating point IIR filter
  • Envelope detector - single pole filter with attack/release/lookahead
  • DC removal - subtract DC level from input stream using moving average
https://raw.githubusercontent.com/wiki/pothosware/PothosComms/images/fir_designer.png

Misc utility blocks that operate on signal streams.

  • Signal probe - emit mean, RMS, or last seen element when triggered.
  • Threshold - labels a stream when de/activation threshold is crossed
  • Wave trigger - sample input stream based on configurable trigger events
  • Combine complex - combine two input streams (real, imaginary) into a single complex stream
  • Split complex - spearate a single complex string into real and imaginary streams

The MAC blocks are used for implementing higher layer control.

  • Simple MAC - addressable media access control layer layer
  • Simple LLC - logic link control for local ports and retransmission

The digital blocks operate on bits, bytes, symbols, and burst framing.

  • Scrambler and descrambler block
  • Symbol to constellation mapper
  • Bit stream to symbol stream
  • Byte stream to symbol stream
  • Symbol stream to bit stream
  • Symbol stream to byte stream
  • Preamble correlator block
  • Preamble framer block
  • Differential encoder block
  • Differential decoder block
  • Frame inserter block
  • Frame synchronizer block
  • Byte ordering block
https://raw.githubusercontent.com/wiki/pothosware/PothosComms/images/frame_sync.png

Waveform generator blocks generate well-known periodic and random waveforms.

  • Waveform source - generate basic waveforms (sine, square...) with a lookup table implementation.
  • Noise source - generate basic noise patterns (gaussian, uniform...) with a lookup table implementation.
https://raw.githubusercontent.com/wiki/pothosware/PothosComms/images/wave_source.png