Clear Filters
Clear Filters

Inverse z-Transform

49 views (last 30 days)
Angelo Cacini
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 ?
Thanks in advance.

Accepted Answer

Sai Sri Pathuri
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
Angelo Cacini on 28 Aug 2019
Dear Sai, many thanks for your answer and your time.
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)
Y(s) = laplace(y);
% Returns 'y(t)' as expected
% Returns 'diff(y) + y(0) delta(t)' as expected
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
% Returns 'iztrans(ztrans(x(n),n,z)/z,z,n)'
% but I expected 'x(n-1)'
Walter Roberson
Walter Roberson on 28 Aug 2019
iztrans(X/z) has to worry about the z == 0 case.

Sign in to comment.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!