In Matlab there is a command iztrans for finding inverse Z-transform. But how can we find inverse Z-transform using impulse response? The Matlab command impz gives Impulse response of digital filter but how can I then proceed towards finding inverse Z-transform? Actually i want to determine inverse ztransform of H(z) shown in attached photo. But i want to determine inverse z transform using impulse response since i read somewhere that inverse ztransform can be determined by impulse response using matlab but i am unable to find any google resource that guides much in this regard. I have also attached a table of common z tranforms. I have also highlighted the two most relevant cases as far answer of GKH is concerned

enter image description here

ztransform table

  • 1
    $\begingroup$ Could you explain what the question is? inverse z-transform of what for what purpose? I honestly don't think your question makes much sense – the impulse response already is in time domain, and what you'd typically do with an inverse z-transform is transform something from z-domain to time domain. $\endgroup$ Feb 26 '20 at 18:53

When you have an $H(z)$ (a transfer function), its inverse Z-transform is the impulse response $h[n]$. iztrans is a symbolic function to compute any (causal) inverse Z-transform, either it is related to an impulse response or not. impz is a non-symbolic function to compute some samples of the impulse response of a digital filter.

If I were you and I wanted to find the inverse Z-transform of the given $H(z)$ - which is the impulse response - I would use residuez:

[r,p,k] = residuez([4 3 9], [4 3 -4])
r =


p =


k =


That allows you to write the impulse response as $$h[n] \approx -2.25\delta[n] + 1.0544(-1.443)^nu[n] + 2.1956(0.693)^nu[n] $$

given that we're talking about a causal system.

Alternatively, you can use

[h,n] = impz([4 3 9], [4 3 -4]);

but that will give you only a couple of samples of the impulse response.

  • $\begingroup$ how did you write equation/formula for h[n]?i mean how did you define that h[n] is equal to dirac_delta(k)+r1(p1)^nu[n]+r2(p2)^nu[n] ?? $\endgroup$
    – engr
    Feb 29 '20 at 12:12
  • $\begingroup$ That is how this function works. Type help residuez to check it. It returns a partial fraction expansion of a rational transfer function. $\endgroup$
    – GKH
    Feb 29 '20 at 15:19
  • $\begingroup$ "If I were you and I wanted to find the inverse Z-transform of the given H(z) - which is the impulse response - I would use '''residuez''':" Does your this use of '''residuez'' will be valid for both causal and non causal as well as anti causal inverse z transforms? $\endgroup$
    – engr
    Feb 29 '20 at 16:55
  • $\begingroup$ "iztrans is a symbolic function to compute any (causal) inverse Z-transform". It means,we cannot use it for noncausal and anticausal cases? $\endgroup$
    – engr
    Feb 29 '20 at 17:09
  • $\begingroup$ Regarding residuez, the causal/non-causal/anti-causal interpretation is up to you. The function only performs Partial Fraction Expansion. Finding the impulse response is entirely up to you, according to the ROC of the system you're studying. So actually, the equation for $h[n]$ I derived could be different. Regarding iztrans, as far as I know for MATLAB and Octave, it works for causal signals only. $\endgroup$
    – GKH
    Feb 29 '20 at 17:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.