From f2d2033733bc911aaa2d93f2eb8ab5a3b93803e4 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Wed, 14 Oct 2020 13:29:23 +0100 Subject: [PATCH] Add the sync and RRC 0.5 data and code. --- IO.cpp | 6 +++--- M17Defines.h | 14 +++++++------- M17RX.cpp | 2 +- M17RX.h | 2 +- M17TX.cpp | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/IO.cpp b/IO.cpp index 4e2e86a..f98e991 100644 --- a/IO.cpp +++ b/IO.cpp @@ -33,9 +33,9 @@ static q15_t RRC_0_2_FILTER[] = {401, 104, -340, -731, -847, -553, 112, 909, 147 const uint16_t RRC_0_2_FILTER_LEN = 42U; // Generated using rcosdesign(0.5, 8, 5, 'sqrt') in MATLAB -static q15_t RRC_0_5_FILTER[] = {401, 104, -340, -731, -847, -553, 112, 909, 1472, 1450, 683, -675, -2144, -3040, -2706, -770, 2667, 6995, - 11237, 14331, 15464, 14331, 11237, 6995, 2667, -770, -2706, -3040, -2144, -675, 683, 1450, 1472, 909, 112, - -553, -847, -731, -340, 104, 401, 0}; +static q15_t RRC_0_5_FILTER[] = {-147, -88, 72, 220, 223, 46, -197, -285, -79, 334, 623, 390, -498, -1691, -2363, -1556, 1284, 5872, 11033, + 15109, 16656, 15109, 11033, 5872, 1284, -1556, -2363, -1691, -498, 390, 623, 334, -79, -285, -197, 46, 223, + 220, 72, -88, -147, 0}; const uint16_t RRC_0_5_FILTER_LEN = 42U; // Generated using rcosdesign(0.2, 8, 10, 'sqrt') in MATLAB diff --git a/M17Defines.h b/M17Defines.h index 47b02c1..4947341 100644 --- a/M17Defines.h +++ b/M17Defines.h @@ -30,18 +30,18 @@ const unsigned int M17_SYNC_LENGTH_BITS = 16U; const unsigned int M17_SYNC_LENGTH_SYMBOLS = M17_SYNC_LENGTH_BITS / 2U; const unsigned int M17_SYNC_LENGTH_SAMPLES = M17_SYNC_LENGTH_SYMBOLS * M17_RADIO_SYMBOL_LENGTH; -const uint8_t M17_SYNC_BYTES[] = {0xCDU, 0xF5U}; // XXX +const uint8_t M17_SYNC_BYTES[] = {0x32U, 0x43U}; const uint8_t M17_SYNC_BYTES_LENGTH = 2U; -const uint16_t M17_SYNC_BITS = 0xCDF5U; // XXX +const uint16_t M17_SYNC_BITS = 0x3243U; -// C D F 5 // XXX -// 11 00 11 01 11 11 01 01 // XXX -// -3 +1 -3 +3 -3 -3 +3 +3 // XXX +// 3 2 4 3 +// 00 11 00 10 01 00 00 11 +// +1 -3 +1 -1 +3 +1 +1 -3 -const int8_t M17_SYNC_SYMBOLS_VALUES[] = {-3, +1, -3, +3, -3, -3, +3, +3}; // XXX +const int8_t M17_SYNC_SYMBOLS_VALUES[] = {+1, -3, +1, -1, +3, +1, +1, -3}; -const uint16_t M17_SYNC_SYMBOLS = 0x014DU; // XXX +const uint8_t M17_SYNC_SYMBOLS = 0xAEU; #endif diff --git a/M17RX.cpp b/M17RX.cpp index 06e9240..3633fbe 100644 --- a/M17RX.cpp +++ b/M17RX.cpp @@ -204,7 +204,7 @@ void CM17RX::processData(q15_t sample) bool CM17RX::correlateSync() { - if (countBits16(m_bitBuffer[m_bitPtr] ^ M17_SYNC_SYMBOLS) <= MAX_SYNC_SYMBOLS_ERRS) { + if (countBits8(m_bitBuffer[m_bitPtr] ^ M17_SYNC_SYMBOLS) <= MAX_SYNC_SYMBOLS_ERRS) { uint16_t ptr = m_dataPtr + M17_FRAME_LENGTH_SAMPLES - M17_SYNC_LENGTH_SAMPLES + M17_RADIO_SYMBOL_LENGTH; if (ptr >= M17_FRAME_LENGTH_SAMPLES) ptr -= M17_FRAME_LENGTH_SAMPLES; diff --git a/M17RX.h b/M17RX.h index 7d6dc6f..6826fee 100644 --- a/M17RX.h +++ b/M17RX.h @@ -37,7 +37,7 @@ public: private: M17RX_STATE m_state; - uint16_t m_bitBuffer[M17_RADIO_SYMBOL_LENGTH]; + uint8_t m_bitBuffer[M17_RADIO_SYMBOL_LENGTH]; q15_t m_buffer[M17_FRAME_LENGTH_SAMPLES]; uint16_t m_bitPtr; uint16_t m_dataPtr; diff --git a/M17TX.cpp b/M17TX.cpp index 41d8d2b..3aa2ba1 100644 --- a/M17TX.cpp +++ b/M17TX.cpp @@ -24,9 +24,9 @@ #include "M17Defines.h" // Generated using rcosdesign(0.5, 8, 5, 'sqrt') in MATLAB -static q15_t RRC_0_5_FILTER[] = {0, 0, 0, 0, 850, 219, -720, -1548, -1795, -1172, 237, 1927, 3120, 3073, 1447, -1431, -4544, -6442, - -5735, -1633, 5651, 14822, 23810, 30367, 32767, 30367, 23810, 14822, 5651, -1633, -5735, -6442, - -4544, -1431, 1447, 3073, 3120, 1927, 237, -1172, -1795, -1548, -720, 219, 850}; // numTaps = 45, L = 5 +static q15_t RRC_0_5_FILTER[] = {0, 0, 0, 0, -147, -88, 72, 220, 223, 46, -197, -285, -79, 334, 623, 390, -498, -1691, -2363, -1556, + 1284, 5872, 11033, 15109, 16656, 15109, 11033, 5872, 1284, -1556, -2363, -1691, -498, 390, 623, 334, + -79, -285, -197, 46, 223, 220, 72, -88, -147}; // numTaps = 45, L = 5 const uint16_t RRC_0_5_FILTER_PHASE_LEN = 9U; // phaseLength = numTaps/L const q15_t M17_LEVELA = 1683;