- fractional interpolation working
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@973 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -73,20 +73,29 @@ public:
|
|||||||
|
|
||||||
bool process_new(RealScalar dmu)
|
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)
|
while(true)
|
||||||
{
|
{
|
||||||
radio_float_t mu = m_interpolator.getMu();
|
|
||||||
size_t adv = m_interpolator.getAdv();
|
size_t adv = m_interpolator.getAdv();
|
||||||
if (m_bufferIn.len() < adv)
|
radio_float_t mu = m_interpolator.getMu();
|
||||||
{
|
|
||||||
std::cout << "----- SKIP -----" << std::endl;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (adv)
|
if (adv)
|
||||||
{
|
{
|
||||||
ComplexScalar xout;
|
if (m_bufferIn.len() < adv)
|
||||||
m_bufferIn.consume(adv);
|
{
|
||||||
m_bufferIn.read(&xout, 1, false);
|
break;
|
||||||
|
}
|
||||||
|
ComplexScalar xout = m_bufferIn.readAt(adv-1);
|
||||||
FirComplex::feed(xout);
|
FirComplex::feed(xout);
|
||||||
|
|
||||||
// Partial filter responses
|
// Partial filter responses
|
||||||
@@ -95,13 +104,15 @@ public:
|
|||||||
m_h[i] = FirComplex::processReal(column(m_coeff, i));
|
m_h[i] = FirComplex::processReal(column(m_coeff, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_interpolator.process(dmu);
|
|
||||||
|
|
||||||
// Combine
|
// Combine
|
||||||
ComplexScalar yout = horner(mu);
|
ComplexScalar yout = horner(mu);
|
||||||
m_bufferOut.write(&yout, 1);
|
m_bufferOut.write(&yout, 1);
|
||||||
|
|
||||||
|
m_interpolator.process(dmu);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user