#include "Tracker.hpp" namespace Radio { namespace Metrics { Tracker::Tracker(IMinMax const &prov_minMax) : m_prov_minMax(prov_minMax) { } Tracker::~Tracker() { } ComplexScalar const* Tracker::trackers() const { return m_trackers; } void Tracker::process(ComplexScalar const &x) { radio_float_t alpha = 0.002; radio_float_t beta = 1.0 - alpha; radio_float_t min_i = m_prov_minMax.min_i(); radio_float_t min_q = m_prov_minMax.min_q(); radio_float_t max_i = m_prov_minMax.max_i(); radio_float_t max_q = m_prov_minMax.max_q(); m_trackers[0] = beta*m_trackers[0] + alpha*ComplexScalar(max_i, min_q); m_trackers[1] = beta*m_trackers[1] + alpha*ComplexScalar(max_i, max_q); m_trackers[2] = beta*m_trackers[2] + alpha*ComplexScalar(min_i, max_q); m_trackers[3] = beta*m_trackers[3] + alpha*ComplexScalar(min_i, min_q); } } // Metrics } // Radio