diff --git a/Config.h b/Config.h index 78ef5d8..c7fb2b8 100644 --- a/Config.h +++ b/Config.h @@ -60,11 +60,6 @@ // Use separate mode pins to switch external filters/bandwidth for example // #define STM32F4_NUCLEO_MODE_PINS -// To use wider C4FSK filters for DMR, System Fusion and P25 on transmit -// #define WIDE_C4FSK_FILTERS_TX -// To use wider C4FSK filters for DMR, System Fusion and P25 on receive -// #define WIDE_C4FSK_FILTERS_RX - // Pass RSSI information to the host // #define SEND_RSSI_DATA diff --git a/DMRDMOTX.cpp b/DMRDMOTX.cpp index 19d55b2..33966d9 100644 --- a/DMRDMOTX.cpp +++ b/DMRDMOTX.cpp @@ -22,18 +22,11 @@ #include "Globals.h" #include "DMRSlotType.h" -#if defined(WIDE_C4FSK_FILTERS_TX) -// Generated using rcosdesign(0.2, 4, 5, 'sqrt') in MATLAB -static q15_t DMR_C4FSK_FILTER[] = {0, 0, 0, 0, 688, -680, -2158, -3060, -2724, -775, 2684, 7041, 11310, 14425, 15565, 14425, - 11310, 7041, 2684, -775, -2724, -3060, -2158, -680, 688}; // numTaps = 25, L = 5 -const uint16_t DMR_C4FSK_FILTER_PHASE_LEN = 5U; // phaseLength = numTaps/L -#else // Generated using rcosdesign(0.2, 8, 5, 'sqrt') in MATLAB static q15_t DMR_C4FSK_FILTER[] = {0, 0, 0, 0, 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}; // numTaps = 45, L = 5 const uint16_t DMR_C4FSK_FILTER_PHASE_LEN = 9U; // phaseLength = numTaps/L -#endif const q15_t DMR_LEVELA = 2889; const q15_t DMR_LEVELB = 963; diff --git a/DMRTX.cpp b/DMRTX.cpp index aa25bfd..12013b7 100644 --- a/DMRTX.cpp +++ b/DMRTX.cpp @@ -22,18 +22,11 @@ #include "Globals.h" #include "DMRSlotType.h" -#if defined(WIDE_C4FSK_FILTERS_TX) -// Generated using rcosdesign(0.2, 4, 5, 'sqrt') in MATLAB -static q15_t DMR_C4FSK_FILTER[] = {0, 0, 0, 0, 688, -680, -2158, -3060, -2724, -775, 2684, 7041, 11310, 14425, 15565, 14425, - 11310, 7041, 2684, -775, -2724, -3060, -2158, -680, 688}; // numTaps = 25, L = 5 -const uint16_t DMR_C4FSK_FILTER_PHASE_LEN = 5U; // phaseLength = numTaps/L -#else // Generated using rcosdesign(0.2, 8, 5, 'sqrt') in MATLAB static q15_t DMR_C4FSK_FILTER[] = {0, 0, 0, 0, 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}; // numTaps = 45, L = 5 const uint16_t DMR_C4FSK_FILTER_PHASE_LEN = 9U; // phaseLength = numTaps/L -#endif const q15_t DMR_LEVELA = 2889; const q15_t DMR_LEVELB = 963; diff --git a/IO.cpp b/IO.cpp index 47ecff2..352e22c 100644 --- a/IO.cpp +++ b/IO.cpp @@ -22,18 +22,11 @@ #include "Globals.h" #include "IO.h" -#if defined(WIDE_C4FSK_FILTERS_RX) -// Generated using rcosdesign(0.2, 4, 5, 'sqrt') in MATLAB -static q15_t C4FSK_FILTER[] = {688, -680, -2158, -3060, -2724, -775, 2684, 7041, 11310, 14425, 15565, 14425, - 11310, 7041, 2684, -775, -2724, -3060, -2158, -680, 688, 0}; -const uint16_t C4FSK_FILTER_LEN = 22U; -#else // Generated using rcosdesign(0.2, 8, 5, 'sqrt') in MATLAB static q15_t C4FSK_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}; const uint16_t C4FSK_FILTER_LEN = 42U; -#endif // Generated using gaussfir(0.5, 4, 5) in MATLAB static q15_t GMSK_FILTER[] = {8, 104, 760, 3158, 7421, 9866, 7421, 3158, 760, 104, 8, 0}; diff --git a/P25TX.cpp b/P25TX.cpp index e53e363..1dde485 100644 --- a/P25TX.cpp +++ b/P25TX.cpp @@ -23,18 +23,11 @@ #include "P25Defines.h" -#if defined(WIDE_C4FSK_FILTERS_TX) -// Generated using rcosdesign(0.2, 4, 5, 'normal') in MATLAB -// numTaps = 20, L = 5 -static q15_t P25_C4FSK_FILTER[] = {-1392, -2602, -3043, -2238, 0, 3460, 7543, 11400, 14153, 15152, 14153, 11400, 7543, 3460, 0, -2238, -3043, -2602, -1392, 0}; -const uint16_t P25_C4FSK_FILTER_PHASE_LEN = 4U; // phaseLength = numTaps/L -#else // Generated using rcosdesign(0.2, 8, 5, 'normal') in MATLAB // numTaps = 40, L = 5 static q15_t P25_C4FSK_FILTER[] = {-413, -751, -845, -587, 0, 740, 1348, 1520, 1063, 0, -1383, -2583, -3021, -2222, 0, 3435, 7488, 11318, 14053, 15044, 14053, 11318, 7488, 3435, 0, -2222, -3021, -2583, -1383, 0, 1063, 1520, 1348, 740, 0, -587, -845, -751, -413, 0}; const uint16_t P25_C4FSK_FILTER_PHASE_LEN = 8U; // phaseLength = numTaps/L -#endif // Generated in MATLAB using the following commands, and then normalised for unity gain // shape2 = 'Inverse-sinc Lowpass'; diff --git a/YSFTX.cpp b/YSFTX.cpp index 7c771e3..5c72efd 100644 --- a/YSFTX.cpp +++ b/YSFTX.cpp @@ -23,18 +23,11 @@ #include "YSFDefines.h" -#if defined(WIDE_C4FSK_FILTERS_TX) -// Generated using rcosdesign(0.2, 4, 5, 'sqrt') in MATLAB -static q15_t YSF_C4FSK_FILTER[] = {0, 0, 0, 0, 688, -680, -2158, -3060, -2724, -775, 2684, 7041, 11310, 14425, 15565, 14425, - 11310, 7041, 2684, -775, -2724, -3060, -2158, -680, 688}; // numTaps = 25, L = 5 -const uint16_t YSF_C4FSK_FILTER_PHASE_LEN = 5U; // phaseLength = numTaps/L -#else // Generated using rcosdesign(0.2, 8, 5, 'sqrt') in MATLAB static q15_t YSF_C4FSK_FILTER[] = {0, 0, 0, 0, 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}; // numTaps = 45, L = 5 const uint16_t YSF_C4FSK_FILTER_PHASE_LEN = 9U; // phaseLength = numTaps/L -#endif const q15_t YSF_LEVELA_HI = 3900; const q15_t YSF_LEVELB_HI = 1300;