Struct futuresdr::blocks::IirBuilder
source · pub struct IirBuilder {}
Expand description
Build an Iir filter.
This filter consumes two sets of taps, a_taps
and b_taps
. a_taps
are
the feedback taps, and b_taps
are the feed-forward taps. If there are n
feed-forward taps and m
feed-back taps, the equation is:
y(k) = x[k] * b[0] + x[k-1] * b[1] + ... + x[k-n] * b[n]
+ x[k-1] * a[0] + x[k-2] * a[1] + ... + x[k-m-1] * a[m]
Uses the futuredsp
to pick the optimal IIR implementation for the given
constraints.
Note that there must be an implementation of futuredsp::TapsAccessor for the taps objects you pass in, see docs for details. Both the a_taps and the b_taps objects must be the same type.
Additionally, there must be an available core (implementation of
futuredsp::StatefulUnaryKernel) available for the specified SampleType
and TapsType
. See the futuredsp docs for available
implementations.
Inputs
in
: Input
Outputs
out
: Output
Usage
use futuresdr::blocks::IirBuilder;
use futuresdr::runtime::Flowgraph;
let mut fg = Flowgraph::new();
let iir = fg.add_block(IirBuilder::new::<f32, f32, f32, [f32; 3]>([1.0, 2.0, 3.0], [4.0, 5.0, 6.0]));