Rob Riggs
5ff118718c
Merge kalman filter clock recovery changes.
2024-07-31 15:58:34 -07:00
Rob Riggs
9d2c31c164
Fix offset calculation error which impacted demodulation.
2024-07-31 15:14:55 -07:00
Rob Riggs
2adc56ae02
Fix potential divide by zero in correlator.
2024-07-31 15:13:37 -07:00
Rob Riggs
41ed9a8723
Improve deviation & offset measurement.
2024-06-20 17:42:40 -07:00
Rob Riggs
dd54a4b21a
Add missing <cstdint> include.
2024-06-20 17:42:05 -07:00
Rob Riggs
4c3f3d3d37
Fix a number of clock recovery issues. Improve frequency and deviation estimation.
2022-05-25 22:38:28 -05:00
Rob Riggs
ca94eaa95b
Remove commented out EOS code.
2022-05-25 22:28:47 -05:00
Rob Riggs
b9bd2f4122
Use a sync word symbol locations and KalmanFilter for deviation and offset estimation.
2022-05-25 22:26:25 -05:00
Rob Riggs
e407ae968f
Add some stddev functions. Update the SymbolEVM class to using normalized values and measure deviation from optimal symbol values.
2022-05-25 22:24:03 -05:00
Rob Riggs
44427d8aa5
Small refactoring of Correlator.
2022-05-25 22:08:56 -05:00
Rob Riggs
6f84b14530
Fix clock recovery update(). Remove limits on when an update can be done.
2022-05-25 21:53:17 -05:00
Rob Riggs
21f87006ec
Use EOT sync word.
2022-05-21 21:32:13 -05:00
Rob Riggs
7f857b62f5
Capture changes made to TNC3 demodulator.
2022-05-20 22:22:58 -05:00
Rob Riggs
3d0e3fc23e
Add comments to ClockRecovery, update unit test, and disable non-working ClockRecovery unit tests for now.
2022-05-20 22:22:28 -05:00
Jay Francis
4fd9a1d33f
removed MSVC variants
2022-03-14 20:55:37 -04:00
Jay Francis
b312a8e020
Merge branch 'mobilinkd:master' into master
2022-03-14 20:39:17 -04:00
Jay Francis
5dfde4709d
Applies more patches for Windows compiling
...
Missed the 0001 and 0002 patches provided by N1AI (https://github.com/n1ai )
Patch 0003 adds some items that are later removed, so that patch is deliberately ignored.
Part of the confusion is the conda-forge recipe was forked from N1AI and not the upstream
repo.
2022-03-12 10:08:22 -05:00
Jay Francis
457eb02894
Patches for Windows compilation using Visual Studio 2019
...
These are patches used to allow successful compilation under conda-forge
by Ryan Volz (https://github.com/ryanvolz )
The feedstock for conda-forge can be found here:
https://github.com/conda-forge/m17-cxx-demod-feedstock
Patches 0004 through 0010 were applied as refenced in the conda_build_config.yaml
and found here:
https://github.com/conda-forge/m17-cxx-demod-feedstock/tree/master/recipe
All credit for this effort goes to Ryan. Thanks Ryan!
2022-03-12 08:57:01 -05:00
n1ai
1c72820d29
redefine __builtin_popcount for MSVC
2022-02-28 13:31:53 -05:00
n1ai
1de15dcc90
avoid experimental array and MAX_INPUT
2022-02-28 10:02:22 -05:00
Rob Riggs
4416958a88
Remove old clock recovery code. Update the sync word handling. Update DCD handling.
2022-01-23 19:24:28 -06:00
Rob Riggs
321df44822
Update Q coefficients to reduce clock drift.
2022-01-23 19:22:23 -06:00
Rob Riggs
734459e821
Add support for unlocking the DCD externally.
2022-01-23 19:21:55 -06:00
Rob Riggs
77858aba48
Updates to symbol clock recovery, including the use of a Kalman filter to track the symbol clock.
2022-01-17 17:04:29 -06:00
Rob Riggs
ea253901ef
Validate the LICH fragment number and mask the LICH segment bitfield properly. Send -1 for BER while LICH decode is incomplete.
2021-12-28 21:01:13 -06:00
Rob Riggs
4b510ec3d1
Small fixes for BERT demod.
2021-09-04 11:14:10 -05:00
Rob Riggs
d71c4741fb
Update tests for new P1 puncture matrix.
2021-08-28 15:36:22 -05:00
Rob Riggs
2ca412d433
Merge branch 'new_P1'
2021-08-28 15:02:35 -05:00
Rob Riggs
f47f96c7ea
Reset frame_number in reset().
2021-08-28 15:01:23 -05:00
Rob Riggs
25d4b9cace
Increase number of allowed missing sync words to 8. Fix timing recovery bug.
2021-08-28 15:00:24 -05:00
Rob Riggs
6189065b84
Update LSF puncture matrix P1 to new proposed matrix.
2021-08-21 19:20:56 -05:00
Rob Riggs
742fd593c3
Add some dormant diagnostic code to the frame decoder.
2021-08-21 16:23:17 -05:00
Rob Riggs
af123e8958
Trivial code change. Improve description of constant.
2021-08-21 06:18:26 -05:00
Rob Riggs
ab54d373b1
Clean up PRBS9 implementation.
2021-08-17 20:30:37 -05:00
Rob Riggs
268ca3cb8c
Small fixes to demodulator.
2021-08-08 17:16:04 -05:00
Rob Riggs
72a6b6b3c2
Initial BER sync recovery.
2021-08-08 17:15:44 -05:00
Rob Riggs
854e9ae494
Add BERT mode to modulator and demodulator. Add inverted output support to demodulator for SP5WWP. Use Boost program_options for demodulator.
2021-07-31 13:40:04 -05:00
Rob Riggs
d10e8d9a6c
Add PRBS9 implementation.
2021-07-31 10:57:34 -05:00
Rob Riggs
df80c6a7be
Fix timing error which would match a sync word too early causing frame corruption.
2021-07-30 13:31:20 -05:00
Rob Riggs
51d826900f
Add comment on audio frame encoding rate.
2021-07-30 13:28:24 -05:00
Jakob Ketterl
3e06a71386
add missing <limits> include
2021-07-20 13:06:38 +02:00
Rob Riggs
c08a46669e
Add missing include file.
2021-07-05 14:46:51 -05:00
Rob Riggs
f7008c74fe
Update to use new stream frame format; remove CRC and use new puncture matrix P2.
2021-06-30 19:46:36 -05:00
Rob Riggs
a97b34c18e
Fix LICH decoding of LSF.
2021-06-29 21:24:08 -05:00
Rob Riggs
83447194e3
Reduce heap and stack usage of Viterbi. Add code comments.
2021-06-29 21:21:26 -05:00
Rob Riggs
5532d7cfcf
Include the proper header for size_t.
2021-06-29 21:17:40 -05:00
Rob Riggs
9ca18deb3b
Remove assertion that is failing. (Still need to figure out why.)
2021-06-29 21:16:57 -05:00
Rob Riggs
05a1e3bbb3
Don't count erasures (punctures) in the Viterbi cost metric. Minor cleanup in the LLR code, along with more unit tests.
2021-06-24 22:00:56 -05:00
Rob Riggs
fe1ac10581
Don't adjust the viterbi cost for stream frames.
2021-06-24 21:26:46 -05:00
Rob Riggs
79d834f3d0
Increase the digital squelch level. (This needs to be adjustable.)
2021-06-24 21:25:55 -05:00