Inverse z-Transform

48 次查看(过去 30 天)
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.

采纳的回答

Sai Sri Pathuri
Sai Sri Pathuri 2019-8-28
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
  2 个评论
Angelo Cacini
Angelo Cacini 2019-8-28
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)
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
Walter Roberson 2019-8-28
iztrans(X/z) has to worry about the z == 0 case.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by