Implementing factored form in MATLAB?

3 ビュー (過去 30 日間)
ABTJ
ABTJ 2021 年 3 月 10 日
回答済み: Abhishek 2025 年 3 月 14 日
I have a z transform in rational form as shown in attached photo
and i want to convert it into factored form
How can i implement it in MATLAB? I learnt from a google resource that we should use "zp2sos"command but i am not satisfied because output of "zp2sos"command does not looks like factored form
  1 件のコメント
Walter Roberson
Walter Roberson 2021 年 3 月 10 日
By the way, you do not need to create an zpk intermediate form
z = tf('z');
H = (4*z^2+3*z+9)/(4*z^2+3*z-4)
H = 4 z^2 + 3 z + 9 --------------- 4 z^2 + 3 z - 4 Sample time: unspecified Discrete-time transfer function.
H = [H, z/H] %just to give a more complicated system
H = From input 1 to output: 4 z^2 + 3 z + 9 --------------- 4 z^2 + 3 z - 4 From input 2 to output: 4 z^3 + 3 z^2 - 4 z ------------------- 4 z^2 + 3 z + 9 Sample time: unspecified Discrete-time transfer function.
HN = H.Numerator;
HD = H.Denominator;
HN = cellfun(@(C) C(find(C,1):end), HN, 'uniform', 0); %trim leading 0
HD = cellfun(@(C) C(find(C,1):end), HD, 'uniform', 0); %trim leading 0
Hsos = cellfun(@tf2sos, HN, HD, 'uniform', 0).';
celldisp(Hsos)
Hsos{1} = 1.0000 0.7500 2.2500 1.0000 0.7500 -1.0000 Hsos{2} = 1.0000 0.7500 -1.0000 1.0000 0.7500 2.2500

サインインしてコメントする。

回答 (1 件)

Abhishek
Abhishek 2025 年 3 月 14 日
Hi ABTJ,
From my understanding of the question, you want to convert the unfactored Z-transform representation into its factored form. Here is how it can be achieved using MATLAB’s Symbolic Math Toolbox:
b = [4 3 9]; % Numerator coefficient
a = [4 3 -4]; % Denominator coefficient
[zeros,poles,gain] = tf2zp(b,a) % Convert the TF to pole-zero-gain form
zeros =
-0.3750 + 1.4524i -0.3750 - 1.4524i
poles = 2×1
-1.4430 0.6930
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
gain = 1
syms z % Symbolic variable z
num = gain * prod(z - zeros) % Numerator of factored form
num = 
den = prod(z - poles) % Denominator of factored form
den = 
factoredForm = num/den % TF in factored form
factoredForm = 
For more information on the Symbolic Math Toolbox and its capabilities, please refer to the MATLAB documentation:

製品


リリース

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by