# Inverse z-Transform

49 views (last 30 days)
Angelo Cacini on 25 Aug 2019
Commented: Walter Roberson on 28 Aug 2019
I'm trying to compute the inverse Z-transform of and expecting to obtain as result.
Here is the code I'm using:
syms z n x(n) X(z)
assume(n>=0 & in(n,'integer'));
X(z) = ztrans(x)
y = iztrans(X/z)
The answer I get is (same result using simplify):
Where am I wrong ?

Sai Sri Pathuri on 28 Aug 2019
You are using syms function to create the functions x(n) and X(z). When you go through the documentation of syms function, you can find that you are just creating symbols for the functions, but not defining or assigning them to any symbolic expressions. This might be the reason why you are not getting the expected result.
The ztrans function is not calculating the z-transform of the function x(n) because it is not defined, or it is abstract.
You may use the following link to refer about creation of symbolic functions using syms function
Angelo Cacini on 28 Aug 2019
I'm not assigning the body of the functions but just the relationship between and .
I've tried the following (similar) code in the Laplace domain, and it worked as expected.
syms s t y(t) Y(s)
assume(t>=0);
Y(s) = laplace(y);
% Returns 'y(t)' as expected
ilaplace(Y)
% Returns 'diff(y) + y(0) delta(t)' as expected
ilaplace(s*Y)
I expected a similar behavior also for Z-transform (see below).
syms z n x(n) X(z)
assume(n>=0 & in(n,'integer'));
% This express the relationship between x(n) -> X(z)
X(z) = ztrans(x)
% Returns 'x(n)' as expected
iztrans(X)
% Returns 'iztrans(ztrans(x(n),n,z)/z,z,n)'
% but I expected 'x(n-1)'
iztrans(X/z)
Thanks
Walter Roberson on 28 Aug 2019
iztrans(X/z) has to worry about the z == 0 case.

### Categories

Find more on Calculus in Help Center and File Exchange

R2019a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!