- greatly simplified

- Works for all interpolation ratios
- use Processor::Buffer for FIR feeding

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@975 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-06-15 10:06:22 +00:00
parent 88b1656878
commit 7a80581827
+5 -5
View File
@@ -89,14 +89,15 @@ public:
{ {
size_t adv = m_interpolator.getAdv(); size_t adv = m_interpolator.getAdv();
radio_float_t mu = m_interpolator.getMu(); radio_float_t mu = m_interpolator.getMu();
if (adv)
{
if (m_bufferIn.len() < adv) if (m_bufferIn.len() < adv)
{ {
break; break;
} }
ComplexScalar xout = m_bufferIn.readAt(adv-1);
FirComplex::feed(xout); if (adv != 0)
{
FirComplex::feed(m_bufferIn, adv);
// Partial filter responses // Partial filter responses
for (int i=0; i < m_M; i++) for (int i=0; i < m_M; i++)
@@ -104,7 +105,6 @@ public:
m_h[i] = FirComplex::processReal(column(m_coeff, i)); m_h[i] = FirComplex::processReal(column(m_coeff, i));
} }
} }
// Combine // Combine
ComplexScalar yout = horner(mu); ComplexScalar yout = horner(mu);
m_bufferOut.write(&yout, 1); m_bufferOut.write(&yout, 1);