// -*- c++ -*- #ifndef _LIB_NLMS_HPP_ #define _LIB_NLMS_HPP_ #include #include "filter_update.hpp" #include "volk_allocator.hpp" namespace gr { namespace digitalhf { class nlms : public filter_update { public: nlms(float mu); virtual ~nlms(); static sptr make(float mu); virtual void reset(); virtual gr_complex const* update(gr_complex const*, gr_complex const*); virtual void set_parameters(std::mapconst &); protected: void resize(size_t); private: typedef std::vector > complex_vec_type; typedef std::vector > real_vec_type; float _mu; complex_vec_type _gain; complex_vec_type _tmp; real_vec_type _t1; } ; } // namespace digitalhf } // namespace gr #endif // _LIB_NLMS_HPP_