Documentation |
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