37 const Eigen::VectorXd &filter_numerator,
38 const Eigen::VectorXd &filter_denominator)
42 m_filter_order_m(filter_numerator.
size()),
43 m_filter_order_n(filter_denominator.
size()),
44 m_filter_numerator(filter_numerator),
45 m_filter_denominator(filter_denominator),
49 m_input_buffer(
Eigen::MatrixXd::Zero(xSize, filter_numerator.
size())),
51 Eigen::MatrixXd::Zero(xSize, filter_denominator.
size() - 1)) {
52 assert(timestep > 0.0 &&
"Timestep should be > 0");
58 Eigen::VectorXd &x_output_dx_ddx) {
107 const Eigen::VectorXd &filter_denominator) {
118 for (
int i = 0;
i < filter_order_n - 1;
i++)
120 current_x * filter_numerator.sum() / filter_denominator.sum();
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CausalFilter(const double ×tep, const int &xSize, const Eigen::VectorXd &filter_numerator, const Eigen::VectorXd &filter_denominator)
void get_x_dx_ddx(const Eigen::VectorXd &base_x, Eigen::VectorXd &x_output_dx_ddx)
double m_dt
sampling timestep of the input signal
Eigen::VectorXd m_filter_numerator
Coefficients of the numerator .
Eigen::VectorXd::Index m_filter_order_m
Size of the numerator .
Eigen::MatrixXd m_input_buffer
void switch_filter(const Eigen::VectorXd &filter_numerator, const Eigen::VectorXd &filter_denominator)
Eigen::VectorXd m_filter_denominator
Coefficients of the denominator .
Eigen::MatrixXd m_output_buffer
Eigen::VectorXd::Index m_filter_order_n
Size of the denominator .