diff --git a/radio/interpolation/Farrow.hpp b/radio/interpolation/Farrow.hpp index e4e12ee..ebf770c 100644 --- a/radio/interpolation/Farrow.hpp +++ b/radio/interpolation/Farrow.hpp @@ -89,22 +89,22 @@ public: { size_t adv = m_interpolator.getAdv(); radio_float_t mu = m_interpolator.getMu(); - if (adv) - { - if (m_bufferIn.len() < adv) - { - break; - } - ComplexScalar xout = m_bufferIn.readAt(adv-1); - FirComplex::feed(xout); + if (m_bufferIn.len() < adv) + { + break; + } + + if (adv != 0) + { + FirComplex::feed(m_bufferIn, adv); + // Partial filter responses for (int i=0; i < m_M; i++) { m_h[i] = FirComplex::processReal(column(m_coeff, i)); } } - // Combine ComplexScalar yout = horner(mu); m_bufferOut.write(&yout, 1);