Transform identified linear model with noise channels to model with measured channels only

`mod1 = noisecnv(mod)`

mod2 = noisecnv(mod,'normalize')

`mod1 = noisecnv(mod)`

`mod2 = noisecnv(mod,'normalize')`

`mod`

is any linear identified model, `idproc`

, `idtf`

, `idgrey`

, `idpoly`

,
or `idss`

.

The noise input channels in `mod`

are converted
as follows: Consider a model with both measured input channels *u* (*nu* channels)
and noise channels *e* (*ny* channels)
with covariance matrix *Λ*:

$$\begin{array}{l}y=Gu+He\\ \mathrm{cov}(e)=\Lambda =LL\text{'}\end{array}$$

where *L* is a lower triangular matrix. Note
that `mod.NoiseVariance`

= *Λ*.
The model can also be described with unit variance, using a normalized
noise source *v*:

$$\begin{array}{l}y=Gu+HLv\\ \mathrm{cov}(v)=I\end{array}$$

`mod1 = noisecnv(mod)`

converts the model to a representation of the system [*G**H*] with*nu**+**ny*inputs and*ny*outputs. All inputs are treated as measured, and`mod1`

does not have any noise model. The former noise input channels have names`e@yname`

, where`yname`

is the name of the corresponding output.`mod2 = noisecnv(mod,'norm')`

converts the model to a representation of the system [*G**HL*] with*nu**+**ny*inputs and*ny*outputs. All inputs are treated as measured, and`mod2`

does not have any noise model. The former noise input channels have names`v@yname`

, where`yname`

is the name of the corresponding output. Note that the noise variance matrix factor*L*typically is uncertain (has a nonzero covariance). This is taken into account in the uncertainty description of`mod2`

.If

`mod`

is a time series, that is,*nu*`= 0`

,`mod1`

is a model that describes the transfer function*H*with measured input channels. Analogously,`mod2`

describes the transfer function*HL*.

Note the difference with subreferencing:

`mod('m')`

gives a description of G only.`mod(:,[])`

gives a description of the noise model characteristics as a time-series model, that is, it describes*H*and also the covariance of*e*. In contrast,`noisecnv(m(:,[]))`

or`noise2meas(m)`

describe just the transfer function*H*. To obtain a description of the normalized transfer function*HL*, use`noisecnv(m(:,[]),'normalize')`

or`noise2meas('normalize')`

.

Converting the noise channels to measured inputs is useful to study the properties of the individual transfer functions from noise to output. It is also useful for transforming identified linear models to representations that do not handle disturbance descriptions explicitly.

Identify a model with a measured component (*G*)
and a non-trivial noise component (*H*). Compare
the amplitude of the measured component's frequency response to the
noise component's spectrum amplitude. You must convert the noise
component into a measured one by using `noisecnv`

if
you want to compare its behavior against a truly measured component.

load iddata2 z2 sys1 = armax(z2,[2 2 2 1]); % model with noise component sys2 = tfest(z2,3); % model with a trivial noise component sys1 = noisecnv(sys1); sys2 = noisecnv(sys2); bodemag(sys1,sys2)

`idssdata`

| `noise2meas`

| `tfdata`

| `zpkdata`

Was this topic helpful?