Wykres commitów

63 Commity (master)

Autor SHA1 Wiadomość Data
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