Go to the documentation of this file.
10 #ifndef __SOT_FIRFILTER_HH__
11 #define __SOT_FIRFILTER_HH__
16 #include <dynamic-graph/entity.h>
58 assert((
i <
numel) &&
"Youre accessing an empty buffer");
71 template <
class sigT,
class coefT>
75 using ::dynamicgraph::command::Command;
76 using ::dynamicgraph::command::Value;
78 template <
class sigT,
class coefT>
85 template <
class sigT,
class coefT>
93 using ::dynamicgraph::command::Getter;
94 using ::dynamicgraph::command::Setter;
96 template <
class sigT,
class coefT>
106 return "Finite impulse response filter\n"
108 " Provide the following sum in output signal:\n"
111 " y (n) = \\ c s (n-i) \n"
116 " - c_i are coefficients stored in an array\n"
117 " - N is the size of the array\n"
118 " - s is the input signal.\n";
124 SIN(NULL,
"sotFIRFilter(" +
name +
")::input(T)::sin"),
126 "sotFIRFilter(" +
name +
")::output(T)::sout") {
127 signalRegistration(
SIN <<
SOUT);
128 std::string docstring =
129 " Set element at rank in array of coefficients\n"
132 " - positive int: rank\n"
134 addCommand(
"setElement",
137 " Get element at rank in array of coefficients\n"
140 " - positive int: rank\n"
143 addCommand(
"getElement",
146 " Set number of coefficients\n"
149 " - positive int: size\n";
154 " Get Number of coefficients\n"
157 " - positive int: size\n";
170 for (
size_t i = 0;
i < SIZE; ++
i) {
178 size_t s =
static_cast<size_t>(
size);
184 return static_cast<std::size_t
>(
coefs.size());
187 void setElement(
const std::size_t &rank,
const coefT &coef) {
205 using ::dynamicgraph::command::Command;
206 using ::dynamicgraph::command::Value;
207 using ::dynamicgraph::command::ValueHelper;
209 template <
class sigT,
class coefT>
211 const std::string &docstring)
217 template <
class sigT,
class coefT>
221 std::vector<Value>
values = getParameterValues();
222 std::size_t rank =
values[0].value();
223 coefT coef =
values[1].value();
228 template <
class sigT,
class coefT>
230 const std::string &docstring)
233 template <
class sigT,
class coefT>
237 std::vector<Value>
values = getParameterValues();
238 std::size_t rank =
values[0].value();
SignalTimeDependent< sigT, sigtime_t > SOUT
GetElement(FIRFilter< sigT, coefT > &entity, const std::string &docstring)
std::vector< coefT > coefs
void reset_capacity(size_t n)
FIRFilter(const std::string &name)
void push_front(const T &data)
static void reset_signal(sigT &, const sigT &)
std::string getDocString() const
virtual const T & access(const Time &t)
static std::string getTypeName(void)
SetElement(FIRFilter< sigT, coefT > &entity, const std::string &docstring)
virtual const std::string & getClassName() const
void reset_capacity(size_t n, const T &el)
virtual sigT & compute(sigT &res, sigtime_t time)
virtual const std::string & getClassName() const
static const std::string CLASS_NAME
detail::circular_buffer< sigT > data
void resizeBuffer(const std::size_t &size)
std::size_t getBufferSize() const
void setElement(const std::size_t &rank, const coefT &coef)
SignalPtr< sigT, sigtime_t > SIN
coefT getElement(const std::size_t &rank) const
sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Tue Oct 24 2023 02:26:31