Nonparametric impulse response estimation
estimates an impulse response model sys
= impulseest(data
)sys
, also known as a finite
impulse response (FIR) model, using time-domain or frequency-domain data
data
. The function uses persistence-of-excitation analysis
on the input data to select the model order (number of nonzero impulse response
coefficients.)
Use nonparametric impulse response estimation to analyze input/output data for feedback effects, delays and significant time constants.
To view the impulse or step response of sys
, use either
impulseplot
or stepplot
, respectively.
A significant value of the impulse response of sys
for
negative time values indicates the presence of feedback in the data.
To view the region of insignificant impulse response (statistically zero) in a
plot, right-click on the plot and select Characteristics > Confidence Region. A patch depicting the zero-response region appears on the plot.
The impulse response at any time value is significant only if it lies outside
the zero response region. The level of significance depends on the number of
standard deviations specified in showConfidence
or options in the
property editor. A common choice is 3 standard deviations, which gives 99.7%
significance.
Correlation analysis refers to methods that estimate the impulse response of a linear model, without specific assumptions about model orders.
The impulse response, g, is the system output when the input is an impulse signal. The output response to a general input, u(t), is the convolution with the impulse response. In continuous time:
In discrete-time:
The values of g(k) are the discrete-time impulse response coefficients.
You can estimate the values from observed input/output data in several different ways.
impulseest
estimates the first
n coefficients using the
least-squares method to obtain a finite impulse response (FIR) model
of order n.
impulseest
provides several important options for the estimation:
Regularization —
Regularize the least-squares estimate. With
regularization, the algorithm forms an estimate of
the prior decay and mutual correlation among
g(k)
, and then merges this
prior estimate with the current information about
g
from the observed data. This
approach results in an estimate that has less
variance but also some bias. You can choose one of
several kernels to encode the prior
estimate.
This option is essential because the model
order n
can often be quite
large. In cases where there is no regularization,
n
can be automatically
decreased to secure a reasonable variance.
Specify the regularizing kernel using the
RegularizationKernel
Name-Value
pair argument of
impulseestOptions
.
Prewhitening —
Prewhiten the input by applying an input-whitening
filter of order PW
to the data.
Use prewhitening when you are performing
unregularized estimation. Using a prewhitening
filter minimizes the effect of the neglected tail
(k > n
) of the impulse
response. To achieve prewhitening, the
algorithm:
Defines a filter A
of
order PW
that whitens the input
signal u
:
1/A = A(u)e
, where
A
is a polynomial and
e
is white noise.
Filters the inputs and outputs with
A
:
uf = Au
, yf =
Ay
Uses the filtered signals
uf
and yf
for estimation.
Specify prewhitening using the
PW
name-value pair argument of
impulseestOptions
.
Autoregressive
Parameters — Complement the basic
underlying FIR model by NA
autoregressive parameters, making it an ARX
model.
This option gives both better results for
small n
values and allows
unbiased estimates when data are generated in
closed loop. impulseest
uses NA = 5 for t>0 and NA = 0 (no autoregressive component)
for t<0.
Noncausal effects — Include response to negative lags. Use this option if the estimation data includes output feedback:
where
h(k) is the
impulse response of the regulator and
r is a setpoint or disturbance
term. The algorithm handles the existence and
character of such feedback h,
and estimates h in the same way
as g by simply trading places
between y and
u in the estimation call. Using
impulseest
with an indication
of negative delays, returns a model
mi
with an impulse
response
that has an alignment that corresponds to lags . The algorithm achieves this
alignment because the input delay
(InputDelay
) of model
mi
is
nk
.
For a multi-input multi-output system, the impulse response g(k) is an ny-by-nu matrix, where ny is the number of outputs and nu is the number of inputs. The i–j element of the matrix g(k) describes the behavior of the ith output after an impulse in the jth input.
cra
| idtf
| impulse
| impulseestOptions
| impulseplot
| spa
| step