diff --git a/Source/Receiver.cpp b/Source/Receiver.cpp index 2c009d8..535dee4 100644 --- a/Source/Receiver.cpp +++ b/Source/Receiver.cpp @@ -25,8 +25,9 @@ const radio_float_t STR_GAIN_LAG_AQU = (radio_float_t)0.50E-6; // 5E-7 const radio_float_t STR_GAIN_LEAD_TRK = (radio_float_t)4.00E-6; // 8E-4 const radio_float_t STR_GAIN_LAG_TRK = (radio_float_t)1.00E-9; // 1E-6 -const radio_float_t AGC_INITIAL_VALUE = (radio_float_t)2.0; -const radio_float_t AGC_ADAPTION_RATE = (radio_float_t)0.001; +const radio_float_t AGC_INITIAL_VALUE = (radio_float_t)2.0; +const radio_float_t AGC_ADAPTION_RATE_ACQ = (radio_float_t)0.01; +const radio_float_t AGC_ADAPTION_RATE_TRK = (radio_float_t)0.0001; const uint32_t EQ_UPD_INTERVAL = 2000; // 1000 const uint32_t EQ_DFE_K = 63; // 63 @@ -35,9 +36,6 @@ const uint32_t EQ_GROUP_DELAY = 16; // 16 const radio_float_t DFE_MU = (radio_float_t)1E-3; // 1E-3 const radio_float_t CMA_MU = (radio_float_t)8E-2; // 8E-2 -const radio_float_t TRACKER_MU = (radio_float_t)1E-2; -const radio_float_t TRACKER_EPS = (radio_float_t)1E-3; - /***************************************************************/ Receiver::Receiver(LogHandler *pLogHandler) : m_log(pLogHandler) @@ -51,8 +49,7 @@ Receiver::Receiver(LogHandler *pLogHandler) , m_farrow(m_timingGenerator) , m_frameReceiver(this) , m_pSymMapper(0) - , m_statisticsProvider(EQ_UPD_INTERVAL) - , m_tracker(m_statisticsProvider.minMax()) + , m_tracker(1.0 - 5.0/EQ_UPD_INTERVAL) { m_params.numBitsPerSymbol = 2; m_params.samplerate = 48000; @@ -104,9 +101,9 @@ void Receiver::setBufSize(uint32 size) m_pSymbolBuffer = new sym_err_t[size]; } m_bufsize = size; - init(); - m_buffer_agc.resize(size); + m_buffer_agc.resize(200*size); m_buffer_ip.resize(size); + init(); } uint32 Receiver::getNumSoftSym() @@ -136,8 +133,8 @@ void Receiver::initDefaultParams() m_params.agc_state = agc_state_acquisition; m_params.agc_mode = agc_mode_disabled; - m_params.agcMu[0] = AGC_ADAPTION_RATE; - m_params.agcMu[1] = AGC_ADAPTION_RATE/10; + m_params.agcMu[0] = AGC_ADAPTION_RATE_ACQ; + m_params.agcMu[1] = AGC_ADAPTION_RATE_TRK; m_params.agcMu_index = 0; m_params.strState = str_state_acquisition; @@ -504,7 +501,6 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) #ifndef DISABLE_UNUSED_STATISTICS minMaxProcess(&m_statistics.ddcMinMax, IQ_eq_in); #endif - m_statisticsProvider.process(toComplexScalar(IQ_eq_in)); // ----------------------------------------------------- // AGC Blind process samples // @1 x symbolrate diff --git a/Source/Receiver.hpp b/Source/Receiver.hpp index d5f844e..17c21bb 100644 --- a/Source/Receiver.hpp +++ b/Source/Receiver.hpp @@ -397,7 +397,6 @@ private: statistics_t m_statistics; // Metrics - Metrics::Statistics m_statisticsProvider; Metrics::Tracker m_tracker; FrameReceiver m_frameReceiver;