Spectral factorization of linear systems

```
[G,S] =
spectralfact(H)
```

```
[G,S] =
spectralfact(F,R)
```

`G = spectralfact(F,[])`

`[`

computes the spectral
factorization:`G`

,`S`

] =
spectralfact(`H`

)

`H = G'*S*G`

`H = H'`

. In this factorization, `S`

is
a symmetric matrix and `G`

is a square, stable,
and minimum-phase system with unit (identity) feedthrough. `G'`

is
the conjugate of `G`

, which has transfer function `spectralfact`

assumes that`H`

is self-conjugate. In some cases when`H`

is not self-conjugate,`spectralfact`

returns`G`

and`S`

that do not satisfy`H = G'*S*G`

. Therefore, verify that your input model is in fact self-conjugate before using`spectralfact`

. One way to verify`H`

is to compare`H`

to`H - H'`

on a singular value plot.sigmaplot(H,H-H')

If

`H`

is self-conjugate, the`H - H'`

line on the plot lies far below the`H`

line.