init
This commit is contained in:
23
FOTF Toolbox/@fotf/foss_a.m
Normal file
23
FOTF Toolbox/@fotf/foss_a.m
Normal file
@ -0,0 +1,23 @@
|
||||
function G1=foss_a(G)
|
||||
% foss_a - convert an FOTF object into an extended FOSS object
|
||||
%
|
||||
% G1=foss_a(G)
|
||||
%
|
||||
% G - the FOTF object
|
||||
% G1 - the equivalent extended FOSS object
|
||||
|
||||
% Copyright (c) Dingyu Xue, Northeastern University, China
|
||||
% Last modified 28 March, 2017
|
||||
% Last modified 18 May, 2022
|
||||
[n,m]=size(G); n0=[];
|
||||
for i=1:n, for j=1:m, g=G(i,j); n0=[n0, g.nn g.nd]; end, end
|
||||
n0=unique(n0); n1=n0(end:-1:1);
|
||||
for i=1:n, for j=1:m, g=G(i,j);
|
||||
num=[]; den=[]; nn=g.nn; nd=g.nd; b=g.num; a=g.den;
|
||||
for k=1:length(nn), t=find(nn(k)==n1); num(t)=b(k); end
|
||||
for k=1:length(nd), t=find(nd(k)==n1); den(t)=a(k); end
|
||||
Gt(i,j)=tf(num,den); T(i,j)=g.ioDelay;
|
||||
end, end
|
||||
Gf=ss(Gt); E=Gf.e; [a,b,c,d]=dssdata(Gf);
|
||||
alpha=-diff(n1); G1=foss(a,b,c,d,alpha,T,E);
|
||||
end
|
||||
Reference in New Issue
Block a user