- refactored

- use blaze matrix library instead of Eigen

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@943 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-06-11 08:56:42 +00:00
parent 368f11d9ba
commit f66d39c11c
8 changed files with 82 additions and 47 deletions
+7 -8
View File
@@ -16,7 +16,7 @@ namespace Radio
class FirComplex
{
public:
FirComplex(uint32_t numTaps = 0)
FirComplex(size_t numTaps = 0)
: m_numTaps(numTaps)
, m_state(numTaps)
{
@@ -26,32 +26,31 @@ public:
}
void setNumTaps(uint32_t numTaps)
void setNumTaps(size_t numTaps)
{
m_numTaps = numTaps;
m_state.resize(numTaps);
m_state.fill(ComplexScalar(0,0));
m_state = ComplexScalar(0,0);
}
void feed(ComplexScalar const &x)
{
m_state.reverse() << m_state.head(m_numTaps-1).reverse(), x;
insert_left(m_state, x);
}
ComplexScalar process(CVec const &coeff)
{
return m_state.transpose() * coeff.conjugate();
return ctrans(m_state) * coeff;
}
ComplexScalar processReal(RVec const &coeff)
{
return m_state.transpose() * coeff;
return trans(m_state) * coeff;
}
protected:
uint32_t m_numTaps;
size_t m_numTaps;
CVec m_state;
};
} // ::Radio