DSP.Filter.IIR.Bilinear
 Portability portable Stability experimental Maintainer m.p.donadio@ieee.org
Description

The module contains a function for performing the bilinear transform.

The input is a rational polynomial representation of the s-domain function to be transformed.

In the bilinear transform, we substitute

`       2    1 - z^-1`
`s <--  -- * --------`
`       ts   1 + z^-1`

into the rational polynomial, where ts is the sampling period. To get a rational polynomial back, we use the following method:

1. Substitute s^n with (2/ts * (1-z^-1))^n == [ -2/ts, 2/ts ]^n

2. Multiply the results by (1+z^-1)^n == [ 1, 1 ]^n

3. Add up all of the common terms

4. Normalize all of the coeficients by a0

where n is the maximum order of the numerator and denominator

Synopsis
 bilinear :: Double -> ([Double], [Double]) -> ([Double], [Double]) prewarp :: Double -> Double -> Double
Documentation
bilinear
 :: Double T_s -> ([Double], [Double]) (b,a) -> ([Double], [Double]) (b',a') Performs the bilinear transform
prewarp
 :: Double w_c -> Double T_s -> Double W_c Function for frequency prewarping