Using 2 stage IIR filter

This commit is contained in:
Geoffrey Merck 2020-04-23 21:16:52 +02:00
parent 22c40e1d96
commit 8ecd8b67f4
2 changed files with 14 additions and 38 deletions

7
FM.h
View file

@ -37,6 +37,9 @@ enum FM_STATE {
FS_HANG
};
class CFM {
public:
CFM();
@ -52,8 +55,6 @@ public:
uint8_t setMisc(uint16_t timeout, uint8_t timeoutLevel, uint8_t ctcssFrequency, uint8_t ctcssThreshold, uint8_t ctcssLevel, uint8_t kerchunkTime, uint8_t hangTime);
private:
q15_t* m_filterBuffer;
uint8_t m_filterPosition;
CFMKeyer m_callsign;
CFMKeyer m_rfAck;
CFMCTCSSRX m_ctcssRX;
@ -69,6 +70,8 @@ private:
CFMTimer m_ackMinTimer;
CFMTimer m_ackDelayTimer;
CFMTimer m_hangTimer;
arm_biquad_casd_df1_inst_q15 m_filter;
q15_t m_filterState[8];//must be filterOrder * 4 long
void stateMachine(bool validSignal, uint8_t length);
void listeningState(bool validSignal);