Satellite decoder block¶
The Satellite decoder block brings most of the functionality of the
gr_satellites
command line tool in the form of a GNU Radio block. This
allows the experienced user to leverage the functionality of the satellite
decoders in their own designs or to achieve a greater degree of customization
than what is possible with the command line tool.
The input of the Satellite decoder block is a stream of samples, which can be
either real or complex, for IQ input (see Real or IQ input). The output
of the block is PDUs with the decoded frames. The figure below shows a very
basic use of the Satellite decoder block, where the input is taken from a WAV
recording using the Wav File Source block and the output is printed using the
Message Debug block. This example can be found in gr-satellites in
examples/satellite_decoder/satellite_decoder.grc
.

Usage of Satellite decoder in a flowgraph
The figure below shows the options for the Satellite decoder block. It is
possible to specify the satellite to use in the same ways as for the
gr_satellites
command line tool (see Specifying the satellite). The
method to specify the satellite is chosen in the Satellite definition
dropdown menu. The sample rate needs to be entered in the Sample Rate field,
and the IQ input field selects real or IQ input. The Command line options
field is described below.

Options of Satellite decoder
Here are a few ideas of how the Satellite decoder block can be employed by users to build custom decoders which are not possible with the command line tool.
On the input side, it is possible to use all the standard GNU Radio blocks to support a large number of SDR hardware and recording formats. The different channeliser and filter blocks (especially “Frequency Xlating FIR Filter”) can be used to adapt the sample rate and bandwidth of the signal into something useful for the satellite decoder. For example, a wideband SDR might be used to receive the signal of different satellites, performing Doppler correction with gr-gpredict-doppler. The signals of these satellites might be channelised with a “Frequency Xlating FIR Filter” blocks and fed into independent Satellite decoder blocks.
On the output side, it is possible to treat the received PDUs freely. This allows classifying and storing them in different ways. Upper layer complex protocols might be completely handled inside the GNU Radio flowgraph, provided there is a suitable implementation of these protocols. Additionally, it is possible to interface the decoder to external tools with default GNU Radio blocks, by using TCP sockets or ZeroMQ.
Command line options¶
The satellite decoder block allows entering the same kind of command line
options supported by the gr_satellites
command line tool into the Command
line options parameter of the block. The set of options to use needs to be
specified as a Python script. To see the available optioins, it is possible to
use "--help"
as the options, just as one would do when using a command line
tool. When the flowgraph is run, it will print out the allowable options and
stop. In the same manner, if invalid options are specified, when the flowgraph
is run it will print the correct usage and stop.