First woring AX.25 decoder (in simulation).

This commit is contained in:
Jonathan Naylor
2020-06-17 15:28:41 +01:00
parent e332dbba8e
commit af11be16dc
4 changed files with 332 additions and 133 deletions
+5 -5
View File
@@ -31,21 +31,21 @@ enum AX25_STATE {
class CAX25Demodulator {
public:
CAX25Demodulator(float32_t* coeffs, uint16_t length);
CAX25Demodulator(q15_t* coeffs, uint16_t length);
bool process(const q15_t* samples, uint8_t length, CAX25Frame& frame);
bool process(q15_t* samples, uint8_t length, CAX25Frame& frame);
private:
CAX25Frame m_frame;
arm_fir_instance_f32 m_audioFilter;
float32_t m_audioState[20U];
arm_fir_instance_q15 m_audioFilter;
q15_t m_audioState[40U]; // NoTaps + BlockSize - 1, 9 + 20 - 1 plus some spare
arm_fir_instance_q15 m_lpfFilter;
q15_t m_lpfState[120U]; // NoTaps + BlockSize - 1, 96 + 20 - 1 plus some spare
bool* m_delayLine;
uint16_t m_delayPos;
bool m_nrziState;
arm_fir_instance_f32 m_pllFilter;
float32_t m_pllState[7U];
float32_t m_pllState[20U]; // NoTaps + BlockSize - 1, 7 + 1 - 1 plus some spare
bool m_pllLast;
uint8_t m_pllBits;
float32_t m_pllCount;