- 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
+4 -4
View File
@@ -65,7 +65,7 @@ public:
{
if (coeff)
{
m_pCoeff[stage](j++) = coeff[i];
m_pCoeff[stage][j++] = coeff[i];
}
}
}
@@ -82,14 +82,14 @@ public:
j = 0;
for (i=0; i < len; i++)
{
m_pFir[m_currStage].feed(src(i));
m_pFir[m_currStage].feed(src[i]);
if (m_currStage == (m_M-1))
{
dst(j) = m_pFir[m_currStage].processReal(m_pCoeff[m_currStage]);
dst[j] = m_pFir[m_currStage].processReal(m_pCoeff[m_currStage]);
}
else
{
dst(j) += m_pFir[m_currStage].processReal(m_pCoeff[m_currStage]);
dst[j] += m_pFir[m_currStage].processReal(m_pCoeff[m_currStage]);
}
if (--m_currStage >= m_M)
{
+2 -4
View File
@@ -55,7 +55,7 @@ public:
m_b.resize(M);
m_h.resize(M);
m_fifo.resize(N);
m_fifo.setZero();
m_fifo = ComplexScalar(0,0);
}
void feed(ComplexScalar const &x, uint32_t push)
@@ -86,13 +86,11 @@ public:
}
}
// Eigen::internal::set_is_malloc_allowed(true);
// Partial filter responses
for (i=0; i < m_M; i++)
{
m_h[i] = FirComplex::processReal(m_coeff.col(i));
m_h[i] = FirComplex::processReal(column(m_coeff, i));
}
// Eigen::internal::set_is_malloc_allowed(false);
// Combine
return horner(mu);
+3 -2
View File
@@ -6,6 +6,7 @@
#include <cpp/radio/Vector.hpp>
#include <cpp/radio/FirComplex.hpp>
#include <fir/fir2.h>
#include <memory.h>
namespace Radio
{
@@ -38,7 +39,7 @@ public:
m_N = N;
m_coeff.resize(N, M);
m_fifo.resize(N);
m_fifo.setZero();
m_fifo = ComplexScalar(0,0);
pCoeff = (fir_float_t*)malloc((N+1)*M*sizeof(fir_float_t));
memset(pCoeff, 0, (N+1)*M*sizeof(fir_float_t));
@@ -86,7 +87,7 @@ public:
}
}
return FirComplex::processReal(m_coeff.col(index));
return FirComplex::processReal(column(m_coeff, index));
}
private:
+3 -3
View File
@@ -64,7 +64,7 @@ public:
{
if (coeff)
{
m_pCoeff[stage](j++) = coeff[i];
m_pCoeff[stage][j++] = coeff[i];
}
}
}
@@ -82,8 +82,8 @@ public:
{
for (currStage=0; currStage < m_L; currStage++)
{
m_pFir[currStage].feed(src(i));
dst(m_L-1-currStage+j) = m_pFir[currStage].processReal(m_pCoeff[currStage]);
m_pFir[currStage].feed(src[i]);
dst[m_L-1-currStage+j] = m_pFir[currStage].processReal(m_pCoeff[currStage]);
}
j += m_L;
}