# etfe

Estimate empirical transfer functions and periodograms

## Syntax

• ``g = etfe(data)``
example
• ``g = etfe(data,M)``
example
• ``g = etfe(data,M,N)``
example

## Description

example

````g = etfe(data)` estimates a transfer function of the form: `data` contains time- or frequency-domain input-output data or time-series data:If `data` is time-domain input-output signals, `g` is the ratio of the output Fourier transform to the input Fourier transform for the data. For nonperiodic data, the transfer function is estimated at 128 equally-spaced frequencies `[1:128]/128*pi/Ts`.For periodic data that contains a whole number of periods (```data.Period = integer``` ), the response is computed at the frequencies `k*2*pi/period` for ```k = 0``` up to the Nyquist frequency.If `data` is frequency-domain input-output signals, `g` is the ratio of output to input at all frequencies, where the input is nonzero.If `data` is time-series data (no input channels), `g` is the periodogram, that is the normed absolute square of the Fourier transform, of the data. The corresponding spectral estimate is normalized, as described in Spectrum Normalization and differs from the `spectrum` normalization in the Signal Processing Toolbox™ product.```

example

````g = etfe(data,M)` applies a smoothing operation on the raw spectral estimates using a Hamming Window that yields a frequency resolution of about `pi/M`. The effect of `M` is similar to the effect of `M` in `spa`. `M` is ignored for periodic data. Use this syntax as an alternative to `spa` for narrowband spectra and systems that require large values of `M`. ```

example

````g = etfe(data,M,N)` specifies the frequency spacing for nonperiodic data.For nonperiodic time-domain data, `N` specifies the frequency grid `[1:N]/N*pi/Ts` rad/TimeUnit. When not specified, `N` is 128.For periodic time-domain data, `N` is ignored.For frequency-domain data, the `N` is `fmin:delta_f:fmax`, where `[fmin fmax]` is the range of frequencies in `data`, and `delta_f` is `(fmax-fmin)/(N-1)` rad/TimeUnit. When not specified, the response is computed at the frequencies contained in data where input is nonzero.```

## Examples

collapse all

### Compare an Empirical Transfer Function to a Smoothed Spectral Estimate

```load iddata1 z1; ```

Estimate empirical transfer function and smoothed spectral estimate.

```ge = etfe(z1); gs = spa(z1); ```

Compare the two models on a Bode plot.

```bode(ge,gs) ```

### Generate Empirical Transfer Function Using Periodic Input

Generate a periodic input, simulate a system with it, and compare the frequency response of the estimated model with the original system at the excited frequency points.

Generate a periodic input signal and output signal using simulation.

```m = idpoly([1 -1.5 0.7],[0 1 0.5]); u = iddata([],idinput([50,1,10],'sine')); u.Period = 50; y = sim(m,u); ```

Estimate an empirical transfer function.

```me = etfe([y u]); ```

Compare the empirical transfer function with the original model.

```bode(me,'b*',m,'r') ```

### Apply Smoothing Operation on Empirical Transfer Function Estimate

Perform a smoothing operation on raw spectral estimates using a Hamming Window and compare the responses.

```load iddata1 ```

Estimate empirical transfer functions with and without the smoothing operation.

```ge1 = etfe(z1); ge2 = etfe(z1,32); ```

Compare the models on a Bode plot.

`ge2` is smoother than `ge1` because of the effect of the smoothing operation.

```bode(ge1,ge2) ```

### Compare Effect of Frequency Spacing on Empirical Transfer Function Estimate

Estimate empirical transfer functions with low- and high-frequency spacings and compare the responses.

```load iddata9 ```

Estimate empirical transfer functions with low and high frequency spacings.

```ge1 = etfe(z9,[],32); ge2 = etfe(z9,[],512); ```

Plot the output power spectrum of the two models.

```spectrum(ge1,'b.-',ge2,'g') ```

## Input Arguments

collapse all

### `data` — Estimation data`iddata`

Estimation data, specified as an `iddata` object. The data can be time- or frequency-domain input/output signals or time-series data.

### `M` — Frequency resolution`[]` (default) | positive scalar

Frequency resolution, specified as a positive scalar.

### `N` — Frequency spacing128 for nonperiodic time-domain data (default) | positive scalar

Frequency spacing, specified as a positive scalar. For frequency-domain data, the default frequency spacing is the spacing inherent in the estimation data.

## Output Arguments

collapse all

### `g` — Transfer function estimate`idfrd`

Transfer function estimate, returned as an `idfrd` model.

Information about the estimation results and options used is stored in the model's `Report` property. `Report` has the following fields:

Report FieldDescription
`Status`

Summary of the model status, which indicates whether the model was created by construction or obtained by estimation.

`Method`

Estimation command used.

`WindowSize`

Size of the Hamming window.

`DataUsed`

Attributes of the data used for estimation. Structure with the following fields:

FieldDescription
`Name`

Name of the data set.

`Type`

Data type.

`Length`

Number of data samples.

`Ts`

Sample time.

`InterSample`

Input intersample behavior. One of the following values:

• `'zoh'` — Zero-order hold maintains a piecewise-constant input signal between samples.

• `'foh'` — First-order hold maintains a piecewise-linear input signal between samples.

• `'bl'` — Band-limited behavior specifies that the continuous-time input signal has zero power above the Nyquist frequency.

`InputOffset`

Offset removed from time-domain input data during estimation. Empty, `[]`, for nonlinear estimation methods.

`OutputOffset`

Offset removed from time-domain output data during estimation. Empty, `[]`, for nonlinear estimation methods.

For more information on using `Report`, see Estimation Report.