#ifndef SAMPLERATEESTIMATOR_H #define SAMPLERATEESTIMATOR_H #include "../../data/Timestamp.h" class SampleRateEstimator { private: const double a = 0.99; double curHz = 0; Timestamp tsLast; public: float update(const Timestamp ts) { // first if (tsLast.isZero()) { tsLast = ts; return 0; } const double diffSec = static_cast((ts-tsLast).sec()); tsLast = ts; if (diffSec != 0) { curHz = a*curHz + (1-a) * (1.0/diffSec); } return static_cast(curHz); } float getCurHz() const { return static_cast(curHz); } }; #endif // SAMPLERATEESTIMATOR_H