diff --git a/radio/metrics/IMinMax.hpp b/radio/metrics/IMinMax.hpp index 2f90f6d..4bfe87a 100644 --- a/radio/metrics/IMinMax.hpp +++ b/radio/metrics/IMinMax.hpp @@ -1,3 +1,8 @@ +#ifndef _METRICS_IMINMAX_HPP_ +#define _METRICS_IMINMAX_HPP_ + +#pragma once + #include namespace Radio @@ -19,3 +24,5 @@ public: }; } // Metrics } // Radio + +#endif // _METRICS_IMINMAX_HPP_ \ No newline at end of file diff --git a/radio/metrics/Statistics.cpp b/radio/metrics/Statistics.cpp index 57715fe..bcb6f9d 100644 --- a/radio/metrics/Statistics.cpp +++ b/radio/metrics/Statistics.cpp @@ -27,7 +27,7 @@ Statistics::~Statistics() } -IMinMax const& Statistics::provider_minMax() const +IMinMax const& Statistics::minMax() const { return m_provider_minMax; } diff --git a/radio/metrics/Statistics.hpp b/radio/metrics/Statistics.hpp index 35aa98d..2a0155b 100644 --- a/radio/metrics/Statistics.hpp +++ b/radio/metrics/Statistics.hpp @@ -19,7 +19,7 @@ public: Statistics(radio_float_t updateInterval_minMax); ~Statistics(); void process(ComplexScalar const &xin); - IMinMax const& provider_minMax() const; + IMinMax const& minMax() const; class MinMaxProvider : public IMinMax { diff --git a/radio/metrics/Tracker.cpp b/radio/metrics/Tracker.cpp index d74ff4d..2e5237d 100644 --- a/radio/metrics/Tracker.cpp +++ b/radio/metrics/Tracker.cpp @@ -15,8 +15,25 @@ 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 diff --git a/radio/metrics/Tracker.hpp b/radio/metrics/Tracker.hpp index 9c9d5d4..1efa3e4 100644 --- a/radio/metrics/Tracker.hpp +++ b/radio/metrics/Tracker.hpp @@ -17,8 +17,12 @@ public: Tracker(IMinMax const &statsProvider); virtual ~Tracker(); void process(ComplexScalar const &x); + ComplexScalar const* trackers() const; + private: IMinMax const &m_prov_minMax; + ComplexScalar m_trackers[4]; + }; } // Metrics