- 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:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user