design

wield.control.SISO.design

Functions for designing and synthesizing SISO filters

Functions

delay_thiran_raw(delay_s[, order])

Create a thiran filter to simulate a delay line with maximally flat group delay for a given filter order.

root_factored_quadrature_sum(*filts)

Return a square root filter

Details

delay_thiran_raw(delay_s, order=1)[source][github]

Create a thiran filter to simulate a delay line with maximally flat group delay for a given filter order.

This is done by generating the poles of a Bessel filter - which has maximally flat group delay for a low-pass filter. The poles are then rescaled to generate the desired delay and then right-plane zeroes are created to mirror the poles. This generates an all-pass filter with constant gain and constant delay. This implementation can create filters to very high order of 100 poles or more.

root_factored_quadrature_sum(*filts)[source][github]

Return a square root filter

TODO, make this numerically better behaved and test its output.

This should actually be implemented using spectral factorization using and ARE. But debugging that sounds hard. This should be similarly robust but is not a general method.