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]));
Implementations§
source§impl IirBuilder
impl IirBuilder
sourcepub fn new<InputType, OutputType, TapType, Taps>(
a_taps: Taps,
b_taps: Taps
) -> Blockwhere
InputType: 'static + Send + Clone,
OutputType: 'static + Send + Clone,
TapType: 'static + Send,
Taps: 'static + TapsAccessor + Send,
IirKernel<InputType, OutputType, Taps>: StatefulUnaryKernel<InputType, OutputType> + Send,
pub fn new<InputType, OutputType, TapType, Taps>( a_taps: Taps, b_taps: Taps ) -> Blockwhere InputType: 'static + Send + Clone, OutputType: 'static + Send + Clone, TapType: 'static + Send, Taps: 'static + TapsAccessor + Send, IirKernel<InputType, OutputType, Taps>: StatefulUnaryKernel<InputType, OutputType> + Send,
Create IIR filter builder
Auto Trait Implementations§
impl RefUnwindSafe for IirBuilder
impl Send for IirBuilder
impl Sync for IirBuilder
impl Unpin for IirBuilder
impl UnwindSafe for IirBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more