Files
cpp/radio/FirComplex.hpp
T
jens 368f11d9ba - cleaned up FirComplex
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@942 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-06-06 19:55:39 +00:00

61 lines
880 B
C++

/*
* File: FirComplex.hpp
* Author: jens
*
* Created on 20. Dezember 2014, 08:12
*/
#ifndef _RADIO_FIRCOMPLEX_HPP_
#define _RADIO_FIRCOMPLEX_HPP_
#include <cpp/radio/Vector.hpp>
namespace Radio
{
class FirComplex
{
public:
FirComplex(uint32_t numTaps = 0)
: m_numTaps(numTaps)
, m_state(numTaps)
{
}
virtual ~FirComplex()
{
}
void setNumTaps(uint32_t numTaps)
{
m_numTaps = numTaps;
m_state.resize(numTaps);
m_state.fill(ComplexScalar(0,0));
}
void feed(ComplexScalar const &x)
{
m_state.reverse() << m_state.head(m_numTaps-1).reverse(), x;
}
ComplexScalar process(CVec const &coeff)
{
return m_state.transpose() * coeff.conjugate();
}
ComplexScalar processReal(RVec const &coeff)
{
return m_state.transpose() * coeff;
}
protected:
uint32_t m_numTaps;
CVec m_state;
};
} // ::Radio
#endif /* _RADIO_FIRCOMPLEX_HPP_ */