Re: Bilinear Transforms
- To: mathgroup at smc.vnet.net
- Subject: [mg50762] Re: Bilinear Transforms
- From: "Steve Luttrell" <steve_usenet at _removemefirst_luttrell.org.uk>
- Date: Sun, 19 Sep 2004 21:39:18 -0400 (EDT)
- References: <cijen5$hmb$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Try this (not sure whether you are using z or z^(-1) but this doesn't affect
the basic idea below):
Build a little FIR filter
q = Sum[a[i]/z^i,{i,10}]
Warp it.
r = q /. z -> (1 - \[Lambda]/z)/(z^(-1) - \[Lambda])
Gather together as numerator over denominator.
s = Together[r]
Get the coefficients in the numerator.
CoefficientList[Numerator[s],z]
Steve Luttrell
"Chris Williams" <chrisw at tartarus.uwa.edu.au> wrote in message
news:cijen5$hmb$1 at smc.vnet.net...
> Hi everyone,
>
> I have an warped FIR filter with order around 1400 - however to unwarp
> this filter configuration for use on my data I need to apply the
> bilinear transform:
>
> u' -> (z^-1 - lambda)/(1-lambda*z^-1)
>
> So essentially each unit delay becomes an all-pass element.
> I've substituted in the transform into a transfer function expression
> for my filter, and now I want to get the transfer function back into the
> normal form of a fraction of polynomials of z.
>
> I've tried Together[] and Simplify[] without much success. Has anyone
> accomplished something similar - any help would be greatly appreciated ;)
>
> Cheers and thanks,
>
> Chris.
>