www.gusucode.com > control 案例程序 matlab源码代码 > control/SpectralFactorizationFromFactoredFormExample.m

    %% Spectral Factorization from Factored Form
%%
% Suppose that you have the following 2-output, 2-input state-space model, |F|. 
A = [-1.1  0.37;
     0.37 -0.95];
B = [0.72 0.71;
     0    -0.20];
C =  [0.12 1.40
      1.49 1.41];
D = [0.67 0.7172;
    -1.2  0];
F = ss(A,B,C,D);
%%
% Suppose further that you have a symmetric 2-by-2 matrix, |R|.
R =   [0.65    0.61
       0.61   -3.42];
%%
% Compute the spectral factorization of the system given by |H = F'*R*F|,
% without explicitly computing |H|.
[G,S] = spectralfact(F,R);
%%
% |G| is a minimum-phase system with identity feedthrough.
G.D
%%
% Because |F| is has two inputs and two outputs, both |R| and |S| are
% 2-by-2 matrices.
%%
% Confirm that |G'*S*G = F'*R*F| by comparing the original factorization to
% the difference between the two factorizations. The singular values of the
% difference are far below those of the original system.
Ff = F'*R*F;
Gf = G'*S*G;
sigmaplot(Ff,Ff-Gf)