Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.5.0 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> CACSD (Computer Aided Control Systems Design) > specfact

specfact

spectral factor

Calling Sequence

[W0,L]=specfact(A,B,C,D)

Description

Given a spectral density matrix phi(s):

-1                   -1
R + C*(s*I-A) * B  +  B'*(-s*I-A') * C'  with R=D+D' > 0

specfact computes W0 and L such that W(s)=W0+L*(s*I-A)^-1*B is a spectral factor of of PHI(s), i.e.

phi(s)=W'(-s)*W(s)

Examples

A=diag([-1,-2]);B=[1;1];C=[1,1];D=1;s=poly(0,'s');
W1=syslin('c',A,B,C,D);
phi=gtild(W1,'c')+W1;
phis=clean(ss2tf(phi))
clean(phis-horner(phis,-s)');   //check this is 0...
[A,B,C,D]=abcd(W1);
[W0,L]=specfact(A,B,C,D);
W=syslin('c',A,B,L,W0)
Ws=ss2tf(W);
horner(Ws,-s)*Ws

See Also

  • gtild — tilde operation
  • sfact — discrete time spectral factorization
  • fspecg — stable factorization of continuous time dynamical systems
Report an issue
<< sorder CACSD (Computer Aided Control Systems Design) ssprint >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Fri Apr 11 14:06:52 CEST 2014