Estimate Time-Series Power Spectra
A frequency-response model encapsulates the frequency response of a linear system evaluated over a range of frequency values. When the data contains both input and output channels, the frequency-response model describes the steady-state response of the system to sinusoidal inputs. Time-series data contains no input channel. The frequency response of a time series model reduces to a spectral representation of the output data. This output data implicitly includes the effects of the unmeasured input noise.
For a discrete-time system sampled for both inputs and outputs with a time interval T, the transfer function G(z) relates the Z-transforms of the input U(z) and output Y(z):
Y(z) = G(z)U(z) + H(z)E(z)
H(z) represents the noise transfer functions for each output and E(z) is the Z-transform of the additive disturbance e(t) with variance Λ.
For a time-series model, this equation reduces to:
Y(z) = H(z)E(z)
In this case, E(z) represents the assumed, but unmeasured, white-noise input disturbance. The single-output noise spectrum Φ in the presence of disturbance noise with scalar variance λ is defined as:
The equivalent multi-output noise power spectrum can be given as:
Here, Λ is the variance vector with a length equal to the number of outputs.
Estimate Time-Series Power Spectra at the Command Line
You can use the etfe
, spa
, and spafdr
commands to estimate power
spectra of time series for both time-domain and frequency-domain data. These
functions return estimated models that are represented by idfrd
model objects, which contain
the spectral data in the property SpectrumData
and the spectral
variance in the property NoiseCovariance
. For multiple-output
data, SpectrumData
contains power spectra of each output and the
cross-spectra between each output pair.
Commands for Estimating and Comparing Frequency Response of Time Series
Command | Description |
---|---|
etfe | Estimates a periodogram using Fourier analysis. |
spa | Estimates the power spectrum with its standard deviation using spectral analysis. |
spafdr | Estimates the power spectrum with its standard deviation using a variable frequency resolution. |
spectrum | Estimates and plots the output power spectrum of time series models. |
For example, suppose y
is time series data. Estimate the power
spectrum g
and the periodogram p
using
spa
and etfe
. Plot the models
together with three standard deviation confidence intervals by using
spectrum
.
g = spa(y); p = etfe(y); spectrum(g,p);
For a more detailed example of spectral estimation, see Identify Time Series Models at the Command Line. For more information about the individual commands, see the corresponding reference pages.
Estimate Time-Series Power Spectra Using the App
You must have already imported your data into the app.
To estimate time series spectral models in the System Identification app:
In the System Identification app, select Estimate > Spectral Models to open the Spectral Model dialog box.
In the Method list, select the spectral analysis method you want to use. For information about each method, see Selecting the Method for Computing Spectral Models.
Specify the frequencies at which to compute the spectral model in either of the following ways:
In the Frequencies field, enter either a vector of values, a MATLAB® expression that evaluates to a vector, or a variable name of a vector in the MATLAB workspace. For example,
logspace(-1,2,500)
.Use the combination of Frequency Spacing and Frequencies to construct the frequency vector of values:
In the Frequency Spacing list, select
Linear
orLogarithmic
frequency spacing.Note
For
etfe
, only theLinear
option is available.In the Frequencies field, enter the number of frequency points.
For time-domain data, the frequency ranges from 0 to the Nyquist frequency. For frequency-domain data, the frequency ranges from the smallest to the largest frequency in the data set.
In the Frequency Resolution field, enter the frequency resolution, as described in Controlling Frequency Resolution of Spectral Models. To use the default value, enter
default
or leave the field empty.In the Model Name field, enter the name of the correlation analysis model. The model name should be unique in the Model Board.
Click Estimate to add this model to the Model Board in the System Identification app.
In the Spectral Model dialog box, click Close.
To view the estimated disturbance spectrum, select the Noise spectrum check box in the System Identification app. For more information about working with this plot, see Noise Spectrum Plots.
To export the model to the MATLAB workspace, drag it to the To Workspace rectangle
in the System Identification app. You can view the power spectrum and the confidence
intervals of the resulting idfrd
model object using the
spectrum
command.