- implemented Tracker class
- refactored IMinMAx, Statistics git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1036 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
#ifndef _METRICS_IMINMAX_HPP_
|
||||
#define _METRICS_IMINMAX_HPP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <radio/radio_types.h>
|
||||
|
||||
namespace Radio
|
||||
@@ -19,3 +24,5 @@ public:
|
||||
};
|
||||
} // Metrics
|
||||
} // Radio
|
||||
|
||||
#endif // _METRICS_IMINMAX_HPP_
|
||||
@@ -27,7 +27,7 @@ Statistics::~Statistics()
|
||||
|
||||
}
|
||||
|
||||
IMinMax const& Statistics::provider_minMax() const
|
||||
IMinMax const& Statistics::minMax() const
|
||||
{
|
||||
return m_provider_minMax;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user