Haskell DSP LibrarySource codeParentContentsIndex
Portability portable
Stability experimental
Maintainer m.p.donadio@ieee.org

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

bilinear :: Double -> ([Double], [Double]) -> ([Double], [Double])
prewarp :: Double -> Double -> Double
:: Double T_s
-> ([Double], [Double]) (b,a)
-> ([Double], [Double]) (b',a')
Performs the bilinear transform
:: Double w_c
-> Double T_s
-> Double W_c
Function for frequency prewarping
Produced by Haddock version 0.4