The FM demodulation flowgraph uses the high performance Xlating FIR
filter for filtering and frequency centering at the same time. Tuning
the SDR in a frequency different than the frequency of interest, we
avoid the DC offset that the of the SDR. As far the audio sampling rate
concerns, various configurations are supported due to the Polyphase
Filter-bank arbitrary resampler.
The flowgraph supports also doppler compensation based on RIGCTL
commands. Instead of chaning the SDR frequency, we digitally perform the
proper correction to avoid noise and lost samples during the frequency
re-configuration. The doppler correction mechanism gathers the frequency
changes from the RIGCTL daemon, and predicts the frequency changes
between the RIGCTL messages for better and more fine-grained correction.
The data whitening and de-whitening mechanism is implemented using
lookup tables for fast processing times. The implementation is quite
generic and modular supporting user defined polynomial masks and seeds.
The lookup table is created during the initialization without any
runtime overhead.
The FSK receiver of the CC1120 can now retrieve the frame that is
transmitted over the air. The next step is to provide the support for
data whitening and Manchester coding.
After managing to successfully receive raw bytes from the TI devboard
with the CC1120, its now time to pack them into a frame by searching for
the preamble and synchronizing with the known byte sync word.
The doppler correction mechanism has successfully passed the first tests
using the GPredict software for the radio control. The corrections seems
to be quite smooth. The next step is to apply it at an audible signal.
The purpose of this block is to grab rigctl compatible commands from the
gr-satnogs client software and use the set_freq command in order to
compensate the doppler shift effect.
The AX.25 decoder is now decoding the received frames.
Also, the module now provides a UDP message source block. This block
will be responsible to receive UDP packets and transform them into PMT
messages for further processing in the GNU Radio flowgraph. As the
communication with the satnogs-client will be done in the same host, we
do not have to care about packet loss.
Furthermore, the module now provides and a debug message source block
for easy debugging.
The Morse decoding block has now the configuration parameter that
enables an automatic estimation of the dot duration. Based on this
estimation all other symbol durations are computed.
FSK demodulation can be implemented pretty well either using envelopes
or matched filters. For now the matched filters seems to be a better
candidate. However, some normalization issues should be solved.
The clock recovery mechanism of GNU Radio is considered
an overkill for the needs of AFSK. So the afsk_decoder
will focus on a frequency domain approach.
The CW decoder was wrongly producing a Short Pause symbol instead of a
dot symbol. With this fix the decoder can now reconstruct the initial
text sequence sent.
Also the CW matched filter now can directly produce the power of the
filtered samples. This is very handy in order to get rid off an
additional multiply block, saving vital resources especially for
embedded platforms.
For testing and demonstration purposes the morse_decoding_flowgraph can
be used. The word sequence is the `HELLO WORLD`.