Estimate frequency response with fixed frequency resolution using spectral analysis
G = spa(data)
G = spa(data,winSize,freq)
G = spa(data,winSize,freq,MaxSize)
G = spa(data) estimates frequency response
(with uncertainty) and noise spectrum from time- or frequency-domain
data is an
and can be complex valued.
G is as an
G is the
estimated spectrum and standard deviation.
Information about the estimation results and options used is
stored in the model's
the following fields:
Status — Summary of the
model status, which indicates whether the model was created by construction
or obtained by estimation.
Method — Estimation command
WindowSize — Size of the
DataUsed — Attributes of
the data used for estimation. Structure with the following fields:
Name — Name of the data
Type — Data type.
Length — Number of data
Ts — Sample time.
InterSample — Input intersample
InputOffset — Offset removed
from time-domain input data during estimation.
OutputOffset — Offset removed
from time-domain output data during estimation.
G = spa(data,winSize,freq) estimates frequency response at frequencies
freq is a row vector of values in
TimeUnit refers to the
TimeUnit property of data. For discrete-time data, set
freq within the Nyquist frequency bound.
winSize is a scalar integer that sets the size of the Hann
G = spa(data,winSize,freq,MaxSize) can
improve computational performance using
split the input-output data such that each segment contains fewer
a positive integer.
Estimate frequency response with fixed resolution at 128 equally spaced, logarithmic frequency values between 0 (excluded) and .
load iddata3; g = spa(z3); bode(g)
Define the frequency vector.
w = logspace(-2,pi,128);
Compute the frequency response.
load iddata3; g = spa(z3,,w);
 specifies the default lag window size.
Plot the Bode response and disturbance spectrum with confidence interval of 3 standard deviations.
h = bodeplot(g); showConfidence(h,3)
figure h = spectrumplot(g); showConfidence(h,3)
Frequency response function describes the steady-state response of a system to sinusoidal inputs. For a linear system, a sinusoidal input of a specific frequency results in an output that is also a sinusoid with the same frequency, but with a different amplitude and phase. The frequency response function describes the amplitude change and phase shift as a function of frequency.
To better understand the frequency response function, consider the following description of a linear, dynamic system:
where u(t) and y(t) are the input and output signals, respectively. G(q) is called the transfer function of the system—it captures the system dynamics that take the input to the output. The notation G(q)u(t) represents the following operation:
q is the shift operator, defined by the following equation:
G(q) is the frequency-response function, which is evaluated on the unit circle, G(q=eiw).
Together, G(q=eiw) and the output noise spectrum are the frequency-domain description of the system.
The frequency-response function estimated using the Blackman-Tukey approach is given by the following equation:
In this case, ^ represents approximate quantities. For a derivation of this equation, see the chapter on nonparametric time- and frequency-domain methods in System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999.
The output noise spectrum (spectrum of v(t)) is given by the following equation:
This equation for the noise spectrum is derived by assuming the linear relationship , that u(t) is independent of v(t), and the following relationships between the spectra:
where the noise spectrum is given by the following equation:
is the output-input cross-spectrum and is the input spectrum.
Alternatively, the disturbance v(t) can be described as filtered white noise:
where e(t) is the white noise with variance and the noise power spectrum is given by the following equation:
spa applies the Blackman-Tukey spectral
analysis method by following these steps:
Computes the covariances and cross-covariance from u(t) and y(t):
Computes the Fourier transforms of the covariances and the cross-covariance:
the Hann window with a width (lag size) of M.
You can specify
M to control the frequency resolution
of the estimate, which is approximately equal 2π/
By default, this operation uses 128 equally spaced
frequency values between 0 (excluded) and π, where
= [1:128]/128*pi/Ts and
Ts is the sample
time of that data set. The default lag size of the Hann window is
= min(length(data)/10,30). For default frequencies, uses
fast Fourier transforms (FFT)—which is more efficient than
for user-defined frequencies.
M =γ is in Table 6.1 of Ljung (1999).
Standard deviations are on pages 184 and 188 in Ljung (1999).
Compute the frequency-response function and the output noise spectrum .
spectrum is the spectrum matrix for both
the output and the input channels. That is, if
z = [data.OutputData,
as spectrum data the matrix-valued power spectrum of
' is a complex-conjugate transpose.
Ljung, L. System Identification: Theory for the User, Second Ed., Prentice Hall PTR, 1999.