Template Function utilities::filter(Eigen::ArrayBase<DerivedOut>&, const Eigen::ArrayBase<DerivedIn>&, const Eigen::ArrayBase<DerivedIn>&, const Eigen::ArrayBase<DerivedIn>&)

Function Documentation

template <typename DerivedOut, typename DerivedIn>
void utilities::filter(Eigen::ArrayBase<DerivedOut> &y, const Eigen::ArrayBase<DerivedIn> &b, const Eigen::ArrayBase<DerivedIn> &a, const Eigen::ArrayBase<DerivedIn> &x)

One-dimensional digital filter.

Filters the input 1d array (or std::vector<>) x with the filter described by coefficient arrays b and a.

See https://en.wikipedia.org/wiki/Digital_filter

If a(0) is not equal to 1, the filter coefficients are normalised by a(0).

a(0)*y(n-1) = b(0)*x(n-1) + b(1)*x(n-2) + … + b(nb)*x(n-nb-1) - a(1)*y(n-2) - … - a(na)*y(n-na-1)