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