This commit adds a generic IQ receiver supporting
arbitrary output sampling rate. It also allows the
user to disable or enable the Doppler correction applied.
The commit also drops the outdated fm_demod flowgraph.
Update the obsolete flowgraphs and update the existing with
the new decoding architecture blocks. Client should
not have big problems with the new decoders as we utilizing
the multiformat frame sink that takes care of it. This
is just a work around for testing as we move forward for
fully socket-based communication with the client
This commit includes a blind frequency correction mechanism for FM
signals. It uses the information of the angle difference between two
concecutive samples and a VCO to continuously compenstate any frequency
offset. To avoid intermodulations, a low pass filter is used trying to
pass only the DC component that is needed.
* Switch from amplitude based approach to auto-correlation
* Limit the bandwidth of the PLL using a low pass filter
* Reject noise of the PLL using a very steep low pass after it
This commit implements a new approach for the BPSK AX.25 decoding. It
seems that the GNU Radio equalizers (both CMA and LMS) are not ideal for
bursty transmissions. After they loose 'lock', they tend to converge
quite slow again.
The equalizing problem is again solved using an AGC2 block. However, the
placement of this block is quite critical. In older versions the AGC was
placed several steps after resampling and filtering. This resulted to
poor equalization and noise increase. Now the AGC is placed as early as
possible when the signal has a large span.
The new BPSK decoder uses a blind equalizer in par with an LMS based
equalizer. Both of them adapt more quickly in the channel response than
the AGC.
The decoder supports baudrates up to 19200.
Note that the bpsk_ax25.grc deprecates the bpsk_decoder.grc and
bpsk_demod.grc and they will be removed on the next release.
Connecting the waterfall sink behind the FFT Filter causes the
waterfall to show only the filtered APT signal. Fixing this needs
an additional resampler.
The flowgraph for decoding NOAA APT images generates a waterfall with a
bandwidth depending on the default samplerate of the SDR hardware.
USRPB200 defaults to 500 ksps, which produces an output of 125 ksps
after the "first_stage_decimation" which is fixed to a value of 4.
Changing the hardware to an "rtlsdr" also changes the default
samplerate to 1 Msps which results in a waterfall bandwidth of 250 kHz
(+- 125 kHz). Connecting the waterfall sink behind the FFT Filter,
which has a decimation set to match an output samplerate of 125 kHz,
seems to be correct! This produces waterfalls with a bandwidth of
125 kHz (+- 62,5 kHz).
Fixes issue #128
* Set the loop bandwith of the PLL to a lower value, to get rid off the
DC leakage and improve SNR
* Set the AGC update rate to a higher value
* Decrease the CW decoding threshold
Add a BPSK decoder script for frames transmitted in AX.25, using G3RUH
scrambling and without. Baudrate is set via parameter "baudrate", all
filters, taps, offsets, etc are calculated using this parameter. Decoder
tested with 1k2 bps and 9k6 bps.
* Set all decoders output to binary format
* Introduce the quadrature demodulation filter in all affected
flowgraphs, in order to reduce false alarms and increase performance
There are cases where in AFSK1200 mode, the transmit source uses the
G3RUH scrambling. Now the flowgraph implements both scrambled and
unscrambled decoders, so there is no need to descriminate between
scrambled and unscrambled satellites.
The CMake build system will first try to locate libfec in the system. if
it is not available, it will start building the libfec that is part of
the gr-satnogs source code. During the installation libfec is installed
in the system, thus future builds will make use of it and will not
rebuild from source.