- refactored IMinMAx, Statistics git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1036 b431acfa-c32f-4a4a-93f1-934dc6c82436
40 lines
857 B
C++
40 lines
857 B
C++
#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
|