Main Content

Frequency response data or model

An `idfrd`

object stores frequency response data over a range of
frequency values. You can use an `idfrd`

object in two ways. You can use the
object as estimation data for estimating a time-domain or frequency-domain model, similarly to
an `iddata`

object. Or, you can use the object as a linear model, similarly to
how you use an `idss`

state-space model or any other identified linear model.
Use the `idfrd`

command to encapsulate frequency response data or to
convert a linear time-domain or frequency-domain dynamic model into a frequency response
model.

Commands that accept `iddata`

objects, such as the model estimation
command `ssest`

, generally also accept
`idfrd`

objects. However, an `idfrd`

object can contain
data from only one experiment. It does not have the multiexperiment capability that an
`iddata`

object has.

Commands that accept identified linear models, such as the analysis and validation
commands `compare`

, `sim`

, and `bode`

, generally also accept
`idfrd`

models.

For a model of the form

$$y(t)=G(q)u(t)+H(q)e(t)$$

the transfer function estimate is $$G\left({e}^{i\omega}\right)$$ and the additive noise spectrum *Φ _{v}*
at the output is

$${\Phi}_{v}(\omega )=\lambda T{|H(e{}^{i\omega T})|}^{2}$$

Here, *λ* is the estimated variance of
*e*(*t*) and *T* is the sample
time.

For a continuous-time system, the noise spectrum is

$${\Phi}_{v}(\omega )=\lambda {|H(e{}^{i\omega})|}^{2}$$

An `idfrd`

object stores $$G\left({e}^{i\omega}\right)$$ and *Φ _{v}*.

You can obtain an `idfrd`

model in one of three ways.

Create the model from frequency response data using the

`idfrd`

command. For example, create an`idfrd`

model that encapsulates frequency response data taken at specific frequencies using the sample time`Ts`

.For an example, see Create idfrd Object from Frequency Response Data.sysfr = idfrd(ResponseData,Freq,Ts)

Estimate the model using a frequency response estimation command such as

`spa`

, using time-domain, frequency-domain, or frequency response data.sysfr = spa(data)

For more information about frequency response estimation commands, see

`spa`

,`spafdr`

, and`etfe`

.Convert a linear model such as an

`idss`

model into an`idfrd`

model by computing the frequency response of the model.For an example of linear model conversion, see Convert Time-Domain Model to Frequency Response Model.sysfr = idfrd(sys)

For information on functions you can use to extract information from or transform
`idfrd`

model objects, see Object Functions.

creates a discrete-time `sysfr`

= idfrd(ResponseData,Frequency,Ts)`idfrd`

object that stores the frequency response
`ResponseData`

of a linear system at frequency values `Frequency`

. `Ts`

is the sample time. For a continuous-time system, set
`Ts`

to `0`

.

sets additional properties using one or more name-value arguments. Specify the
name-value arguments after the first three arguments. For instance, to specify the
frequency units as MHz, use `sysfr`

= idfrd(___,`Name,Value`

)```
sysfr =
idfrd(ResponseData,Frequency,Ts,'FrequencyUnits','MHz')
```

.

converts a System Identification Toolbox™ or Control System Toolbox™ linear model to frequency response data at default frequencies, including
the output noise spectra and spectra covariance.`sysfr`

= idfrd(`sys`

)

interprets frequencies in the `sysfr`

= idfrd(`sys`

,Frequency,FrequencyUnits)`Frequency`

vector in the units
specified by `FrequencyUnit`

.

Many functions applicable to Dynamic System Models are also applicable to an `idfrd`

model
object. These functions are of three general types.

Unlike other identified linear models, you cannot directly convert an
`idfrd`

model into another model type using commands such as
`idss`

or `idtf`

. Instead, use the estimation command
for the model you want, using the `idfrd`

object as the estimation data. For
instance, use `sys = ssest(sysfr,2)`

to estimate a second-order state-space
model from the frequency response data in `idfrd`

model
`sysfr`

. For an example of using an `idfrd`

object as
estimation data, see Estimate Time-Domain Model Using Frequency Response Data.

The following lists contain a representative subset of the functions that you can use with
`idss`

models.