TransferFunctionFilter
The TransferFunctionFilter calculates the output for
one-dimensional digital filters. Where the input,
, is a (
x 1) vector of inputs and the output,
, is a (
x 1) vector of outputs. The filter is described by vectors
and
and implemented using the standard difference equation:
![$$
\begin{tabular}{c c}
$a[0]*y[n] = b[0]*x[n]$ & $ + b[1]*x[n-1] + ... + b[n_{b}]*x[n-n_{b}] $ \\
$ $ & $ - a[1]*y[n-1] - ... - a[n_{a}]*y[n-n_{a}]$
\end{tabular}
$$ $$
\begin{tabular}{c c}
$a[0]*y[n] = b[0]*x[n]$ & $ + b[1]*x[n-1] + ... + b[n_{b}]*x[n-n_{b}] $ \\
$ $ & $ - a[1]*y[n-1] - ... - a[n_{a}]*y[n-n_{a}]$
\end{tabular}
$$](/wiki/filters/TransferFunctionFilter?action=AttachFile&do=get&target=latex_d62b0ce335ca0ecfdc7e1ea5954ff57eab0c497d_p1.png)
If
is not equal to 1, the coefficients are normalised by
.
ROS API
Parameters
~name (string, default: Required)- Name of the filter
- The filter's typename as declared in it's pluginlib registration: MultiChannelTransferFunctionFilterDouble or TransferFunctionFilterDouble
- A vector of coefficients
- A vector of coefficients
Example Configuration:
LowPass:
name: my_filter
type: MultiChannelTransferFunctionFilterDouble
params:
a: [1.0, -0.509525449494429]
b: [0.245237275252786, 0.245237275252786]





