diff --git a/radio/interpolation/Farrow.hpp b/radio/interpolation/Farrow.hpp index b1922ae..e4e12ee 100644 --- a/radio/interpolation/Farrow.hpp +++ b/radio/interpolation/Farrow.hpp @@ -73,20 +73,29 @@ public: bool process_new(RealScalar dmu) { +#if 0 + while(m_bufferIn.len()) + { + ComplexScalar xout; + m_bufferIn.consume(1); + m_bufferIn.read(&xout, 1, false); + m_bufferOut.write(&xout, 1); + std::cout << "xout: " << xout << std::endl; + }; + std::cout << "----- SKIP -----" << std::endl; + +#else while(true) { - radio_float_t mu = m_interpolator.getMu(); size_t adv = m_interpolator.getAdv(); - if (m_bufferIn.len() < adv) - { - std::cout << "----- SKIP -----" << std::endl; - break; - } + radio_float_t mu = m_interpolator.getMu(); if (adv) { - ComplexScalar xout; - m_bufferIn.consume(adv); - m_bufferIn.read(&xout, 1, false); + if (m_bufferIn.len() < adv) + { + break; + } + ComplexScalar xout = m_bufferIn.readAt(adv-1); FirComplex::feed(xout); // Partial filter responses @@ -95,13 +104,15 @@ public: m_h[i] = FirComplex::processReal(column(m_coeff, i)); } } - m_interpolator.process(dmu); // Combine ComplexScalar yout = horner(mu); m_bufferOut.write(&yout, 1); + m_interpolator.process(dmu); + } +#endif return true; }