G = spa(data) G = spa(data,winSize,freq) G = spa(data,winSize,freq,MaxSize)

Description

G = spa(data) estimates frequency response
(with uncertainty) and noise spectrum from time- or frequency-domain
data. data is an iddata or idfrd object
and can be complex valued. G is as an idfrd object.
For time-series data, G is the
estimated spectrum and standard deviation.

G = spa(data,winSize,freq) estimates frequency
response at frequencies freq. freq is
a row vector of values in rad/sec. winSize is a
scalar integer that sets the size of the Hann window.

G = spa(data,winSize,freq,MaxSize) can
improve computational performance using MaxSize to
split the input-output data such that each segment contains fewer
than MaxSize elements. MaxSize is
a positive integer.

Examples

Estimate frequency response with fixed resolution at 128 equally
spaced, logarithmic frequency values between 0 (excluded) and π:

load iddata3;
z = z3; % z is an iddata object with Ts=1
g = spa(z);
bode(g)

Estimate frequency response with fixed resolution at logarithmically
spaced frequencies:

% Define frequency vector
w = logspace(-2,pi,128);
% Compute frequency response
g= spa(z,[],w); % [] specifies the default lag window size
h = bodeplot(g);
showConfidence(h,3)
figure
h = spectrumplot(g);
showConfidence(h,3)
% The plots include confidence interval
% of 3 standard deviations

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=e^{iw}).

Together, G(q=e^{iw}) 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:

where is
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π/M rad/sampling
interval.

By default, this operation uses 128 equally
spaced frequency values between 0 (excluded) and π, where w
= [1:128]/128*pi/Ts and Ts is the sampling
interval of that data set. The default lag size of the Hann window
is M = min(length(data)/10,30). For default frequencies,
uses fast Fourier transforms (FFT)—which is more efficient
than for user-defined frequencies.

Note: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, data.InputData], spectrum contains
as spectrum data the matrix-valued power spectrum of z.