Added class representing M17 callsign objects. Objects can be
constructed both from strings and base-40 encoded values and allow
conversion to any of the other representation. The class implements the
comparison operator to allow easy check for callsign match.
In case the number of bit errors detected by the viterbi algorithm in a
stream frame are above a given threshold, do not copy its payload. This
prevents audio artifacts when data is processed by codec2 decoder.
ClockRecovery module provides the best sampling point estimate based on
the previous baseband history, tracking clock drifts more promptly than
methods based on syncword correlation.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Using the DevEstimator class to obtain a better estimation of the outer
symbol deviation: now values are estimated using a full frame instead of
just the outer symbols of a syncword.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Update meson and cmake config to only include openrtx and platform paths.
Update files to use <..> for system and external libraries, ".." for
project files and new relative paths as necessary.
Did not attempt to fix areas where includes that should be <..> were
previously ".."
Inspired by #96, closes#359.
Acked-by: Silvano Seva <silseva@fastwebnet.it>
New DC block filter implementation using fixed-point math and guaranteeing
zero DC component on the output signal.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
- made start() function return a boolean indicating the actual modulator status
- moved sending of preamble to a dedicated function
- renamed send() function to sendFrame()
Restructured the M17Demodulator class and rewritten the
demodulator logic to have a more solid lock on the
baseband stream. This fixes the long standing bug of the
demodulator causing random losses of lock even when
receiving a solid baseband stream.
Removed an old workaround for an hardware bug of Module17 rev 0.1b limiting
the output swing of baseband signal in newer hardware revisions.
Contribution by Mathis Schmieder DB9MAT.
Unified offset and phase variable to reduce the chance of off-by-ones
between buffers. Improved logging on linux and module17 adding
quantization indices.
TG-81
Add logging in syncword sweep, fix unsigned underflow bug,
fixed symbol average computation for quantization.
Do syncword sweep whenever available.
TG-81
DC removal filter had a bug that created weird positive spikes on
Module17, add a syncword hot re-sync to be able to correct small phase
errors that appear every five seconds more or less.
TG-81