getting z transform in factored form?using Matlab?
Show older comments
How we can get z transform in factored form if we have z,p and k?I have also attached snapshot of z transform below

I can use matlab command tf2zp for finding z,p and k.
(z,p,k)=tf2zp(n,d) where n=numerator of H(z) and d=denominator of H(z)
But from there onwards how can i then proceed to find factored form?
Is it better to use matlab function zp2sos ??
1 Comment
Walter Roberson
on 24 Feb 2020
poly2sym() and factor()?
Answers (2)
Star Strider
on 24 Feb 2020
Control System Toolbox:
z = tf('z');
H = (4*z^2 + 3*z + 9) / (4*z^2 + 3*z - 4);
zsys = zpk(H);
Z = [zsys.Z{:}]
P = [zsys.P{:}]
K = zsys.K
Z =
-0.375 + 1.45236875482778i
-0.375 - 1.45236875482778i
P =
-1.44300046816469
0.693000468164691
K =
1
2 Comments
ABTJ
on 25 Feb 2020
Star Strider
on 25 Feb 2020
My code obviously works in R2019b.
Try this instead:
Z = cell2mat(zsys.Z)
P = cell2mat(zsys.P)
K = zsys.K
Abhishek
on 14 Mar 2025
0 votes
Hi ABTJ,
I understand that you want to express the Z-transform in factored form after determining the zero, poles and gain using the “tf2zp” function. The following MATLAB Answer explains how to do the same:
Categories
Find more on Signal Processing Toolbox 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!