Implementing factored form in MATLAB?

조회 수: 4 (최근 30일)
ABTJ
ABTJ 2021년 3월 10일
댓글: Walter Roberson 2021년 3월 10일
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

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Downloads에 대해 자세히 알아보기

제품


릴리스

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by