Re: Inverse Z-Transform and/or Long Division

*To*: mathgroup at smc.vnet.net*Subject*: [mg2189] Re: Inverse Z-Transform and/or Long Division*From*: Paul Abbott <paul at earwax.pd.uwa.edu.au>*Date*: Fri, 13 Oct 1995 02:24:19 -0400*Organization*: Dept of Physics, University of WA

degennar at bmsrs.usc.edu (Raymond Anthony Ralph DeGennaro II) wrote: >I have a rather nasty Z-Transform of a transfer function that looks >like: > a0 + a1*z^-1 + a2*z^-2 > H(z) = ---------------------- > b0 + b1*z^-1 + b2*z^-2 > >Is there an easy way to bring this back into the time domain in either >of these packages? > Try MathSource (http://www.wri.com/mathsource/) and search for keywords. For example, MathSource contains the following items relevant to `Z-Transform': 0200-080: Laplace Transforms 0205-513: The Window Method for FIR Digital Filter Design 0206-738: Approximate Inversion of Laplace Transform 0205-502: The Kaiser Window 0202-981: Evaluating Powers of (-1) (Technical Note) 0206-468: List To Array Package 0204-499: Harmonic Function Theory and Mathematica 0200-068: Fourier Transforms 0205-276: An Efficient Implementation of the Patterson-Holdsworth Auditory Filter Bank 0207-144: The Discrete Periodic Wavelet Transform in 1D 0203-724: Basic Sets of Polynomial Solutions for the Iterated Laplace and Wave Equations 0205-041: ExtendGraphics Packages by Tom Wickham-Jones 0205-401: Geometry in Motion 0207-324: Mathematica Graphics: Techniques and Applications by Tom Wickham-Jones, Electronic Supplement 0201-979: Integration over Polytopes 0205-052: Notebooks for Partial Differential Equations with Mathematica 0202-611: COSY-PAK: A Symbolic Control Systems Analysis Package V0.9 0202-240: Signal Processing Packages and Notebooks Version 2.9.5 >Alternately, if I could just do a symbolic long division, I would get >terms in the form: > a0 + a1*z^-1 + a2*z^-2 + a3*z^-3 + ... >which are super-simple to bring into the time-domain. But I can't seem >to get Matlab to do this (I haven't tried Mathematica, yet). In Mathematica, after defining H[z_] = (a0 + a1*z^-1 + a2*z^-2)/ (b0 + b1*z^-1 + b2*z^-2); a2 a1 a0 + -- + -- 2 z z ------------ b2 b1 b0 + -- + -- 2 z z you can use Taylor series (about Infinity) to get the expansion you want: H[z] + O[z,Infinity]^3 // Simplify 2 2 a0 a1 b0 - a0 b1 a2 b0 - a1 b0 b1 + a0 b1 - a0 b0 b2 -- + ------------- + ------------------------------------- + b0 2 3 2 b0 z b0 z 1 3 O[-] z Cheers, Paul