getting z transform in factored form?using Matlab?

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 ??

Answers (2)

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

I get error when i copy paste your code
My code obviously works in R2019b.
Try this instead:
Z = cell2mat(zsys.Z)
P = cell2mat(zsys.P)
K = zsys.K

Sign in to comment.

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

Products

Release

R2015a

Asked:

on 24 Feb 2020

Answered:

on 14 Mar 2025

Community Treasure Hunt

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

Start Hunting!