Pair

Type Alias Pair 

Source
pub type Pair<C0, C1, X, I = Unsplit<&'static Identity>, J = Unsplit<&'static Add>> = Minor<((I, Parallel<(C0, C1)>), J), [X; 2]>;
Expand description

Parallel filter pair

This can be viewed as digital lattice filter or butterfly filter or complementary allpass pair or polyphase interpolator. Candidates for the branches are allpasses like Wdf or Ldi, polyphase banks for resampling or Hilbert filters.

Potentially required scaling with 0.5 gain is to be performed ahead of the filter, within each branch, or (with headroom) afterwards.

This uses the default configuration-minor/sample-major implementation and may lead to suboptimal cashing and register thrashing for large branches. To avoid this, use block() and inplace() on a scratch buffer (Major input or output).

The corresponding state for this is (((), (S0, S1)), ()).

Aliased Type§

#[repr(transparent)]
pub struct Pair<C0, C1, X, I = Unsplit<&'static Identity>, J = Unsplit<&'static Add>> { pub inner: ((I, Parallel<(C0, C1)>), J), /* private fields */ }

Fields§

§inner: ((I, Parallel<(C0, C1)>), J)

The inner configurations