Inverse Z-Transform of F(z) How to set ROC?
8 views (last 30 days)
Show older comments
The same F(z) expression have different discrete sequence when they have different ROC, How do i set the ROC in following expression when calling iztrans? like 0.8<|z|<1.25
syms n z;
h=1/((1-0.8*z^(-1))*(1-0.8*z));
r=iztrans(h,z,n)
Answers (1)
Paul
on 11 Jan 2023
Edited: Paul
on 15 Jan 2023
No, we can't specify the ROC for iztrans, which always assumes the time domain sequence is causal. Same issue with ilaplace.
However, we can use z-transform properties to obtain the desired result
syms n integer
syms z;
u(n) = kroneckerDelta(n)/2 + heaviside(n);
Define H(z)
H(z) = 1/((1-0.8*z^(-1))*(1-0.8*z)) % ROC: 0.8 < |z| < 1.25
Partial fraction expansion of H(z)
H(z) = partfrac(H(z))
c = children(H(z));
H1(z) = c{1}
H2(z) = c{2}
Based on the ROC, we know that H2(z) with a pole at z = 0.8 that is inside the ROC corresponds to a right-sided, causal sequence. We can use iztrans directly
h2(n) = iztrans(H2(z))*u(n);
Based on the ROC, we know that H1(z) with a pole at z = 1.25 that is outside the ROC corresponds to a left-sided, noncausal sequence.
Define w[n] = h1[-n]. w[n] is right-sided and causal, and its z-transform is
W(z) = H1(1/z); % ROC |z| > 1.25
Get w[n]
w(n) = iztrans(W(z),z,n)*u(n);
Then h1[n] must be
h1(n) = w(-n);
Therefore h[n] is
h(n) = h1(n) + h2(n)
Plot h[n] for some values of n
nval = -10:10;
figure
stem(nval,h(nval))
Had we done this by hand using z-transform tables, we'd get
hbyhand(n) = 25/9*( (4/5)^n*u(n) + (5/4)^(n)*u(-n-1) )
It doesn't look like the same answer, but we can make it look closer:
rewrite(h(n),'piecewise')
rewrite(hbyhand(n),'piecewise')
Verify these are actually the same signals
simplify(rewrite(h(n),'piecewise') - rewrite(hbyhand(n),'piecewise'))
0 Comments
See Also
Categories
Find more on Measurements and Feature Extraction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




