diff --git a/radio/interpolation/TimingGenerator.cpp b/radio/interpolation/TimingGenerator.cpp index a8cfffb..7a0c5f4 100644 --- a/radio/interpolation/TimingGenerator.cpp +++ b/radio/interpolation/TimingGenerator.cpp @@ -6,7 +6,8 @@ namespace Radio namespace Interpolation { TimingGenerator::TimingGenerator() -: m_mu(0) +: m_omega(0) +, m_mu(0) , m_adv(0) { } @@ -16,15 +17,20 @@ TimingGenerator::~TimingGenerator() } +void TimingGenerator::setOmega(radio_float_t omega) +{ + m_omega = omega; +} + void TimingGenerator::process(ComplexScalar const &iq) { (void)iq; update(1.0); } -void TimingGenerator::update(radio_float_t omega) +void TimingGenerator::update(radio_float_t dOmega) { - m_mu += omega; + m_mu += (m_omega + dOmega); m_adv = (size_t)m_mu; m_mu -= m_adv; } diff --git a/radio/interpolation/TimingGenerator.hpp b/radio/interpolation/TimingGenerator.hpp index 63c3505..c5bf71b 100644 --- a/radio/interpolation/TimingGenerator.hpp +++ b/radio/interpolation/TimingGenerator.hpp @@ -22,10 +22,13 @@ public: radio_float_t getMu() const; virtual void process(ComplexScalar const &iq); + void setOmega(radio_float_t omega); -protected: +private: + radio_float_t m_omega; radio_float_t m_mu; size_t m_adv; +protected: void update(radio_float_t omega); };