Niccolò Izzo
ef61c532a3
Cleaned up quantization average
...
Now average is computed over all the syncword symbols, for each syncword
as a simple average.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
5fe5b0e578
Refactor M17 logging
...
Refactored logging functions to enable in-system logging on Module17 and
MDx radios.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
c3c984d504
Add syncword fuzzy detection
...
Frame decoder now tolerates bit error in syncword, removed syncword type
detection in demodulator code.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
2d59658d60
Switch M17 Rx sample rate to 5SPS
...
Due to the RRC computation sometimes violating the timing constraints,
we switched the M17 demodulator to 5 samples per symbol (24KHz), thus
dividing the processing time by four ar the number of samples halves as
well as the number of taps of the RRC.
Minor adaptation on the code followed.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
63bd864674
Fix M17 Rx LED
...
Now LED turns on when a syncword is successfully detected, not just when
the correlation is sufficiently high.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
c4483edff0
Improve quantization strategy
...
Now quantization is performed by averaging syncword samples and dividing
the resulting threshold by a constant.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
7d1b89550e
Rewrite quantization algorithm
...
Quantization algorithm is now based on separate rolling averages for
positive and negative samples.
Merged csv outputs from syncword search and quantization on Linux.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
aa9fcc26b7
Remove useless DC bias in quantization
...
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
d1651a702c
Add proper DC-bias removal, tuned EMAs
2022-05-27 21:48:47 +02:00
Silvano Seva
beca0d2acc
Reorganised constants inside M17 demodulator class
2022-05-27 21:48:47 +02:00
Silvano Seva
fda0fed5e7
Moved constant specifying sample rate for M17 baseband decoding from hwconfig.h files to M17Demodulator class
2022-05-27 21:48:47 +02:00
Silvano Seva
54a89abcd0
Removed a printf left behind after debugging from M17 demodulator class and slightly cleaned up the code
2022-05-27 21:48:47 +02:00
Silvano Seva
427c5f50b3
Made M17Demodulator::update() return a boolean indicating when a new decoded frame is ready
2022-05-27 21:48:47 +02:00
Niccolò Izzo
77aead675a
Improve runtime performance of M17 Demodulator
...
Tweaked the exponential moving average alpha factors to improve the
reactivity of the M17 demodulator.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
5ef145cd39
Add fuzzy syncword validation
...
Now syncword match is not exact but can tolerate up to two erroneous
bits.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
ca49b306b9
Update constants for M17 demodulation
...
Constants were updated to increase performance based on baseband sample
collected with Module17.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
2d8c696a09
Complete M17 demodulator implementation
...
Make quantization work also on DC offset signal
Add samples plot code
Fix bug in buffer wrap around
Fix oob memory access in M17 modulator
Update tests with DC offset signal
Switch to 48KHz sample rate for Module17 and MD380
Add DC biasing script
TG-81
2022-05-27 21:48:46 +02:00
Niccolò Izzo
ae26cca46f
Remove SPS
...
Now M17_SAPLES_PER_SYMBOL is computed dinamically from sample rate.
TG-81
2022-05-27 21:48:46 +02:00
Niccolò Izzo
a091bca35f
M17 Demodulator bugfixes
...
Fixed several bugs in the M17 Demodulator code.
TG-81
2022-05-27 21:48:46 +02:00
Niccolò Izzo
7a9bbfcaf2
Demodulator bugfix
...
Fix several bugs in the demodulator code, tipycally sign errors.
2022-05-27 21:48:46 +02:00
Niccolò Izzo
1a9b3c4168
Implement M17 demodulator logic
...
Implemented frame wrapping logic and demodulator loop.
2022-05-27 21:48:46 +02:00
Silvano Seva
963fbdc141
M17 mode handler: calling demodulator update function when in RX mode
2022-05-27 21:48:46 +02:00
Niccolò Izzo
5bf4df75ba
Fine tune demodulator to OpenRTX M17 baseband
...
Fine tuned M17 demodulator with code generated from OpenRTX itself.
TG-81
2022-05-27 21:48:46 +02:00
Niccolò Izzo
3163dd49d7
Add M17 demodulator code and tests
...
Added implementation of the M17 4FSK demodulator, including clock
recovery, phase detection, and quantization algorithms.
A testsuite is also included to do regression testing against a
reference baseband pre-generated and the corresponding reference
bitstream.
A 1% BER is still present due to a fault likely in the RRC filtering,
since the eye diagram of the filtered stream is bad.
TG-81
2022-05-27 21:48:46 +02:00
Niccolò Izzo
c648ffe377
Add draft of M17Demodulator class
2022-05-27 21:48:46 +02:00