Nonparameteric impulse response estimation
sys = impulseest(data)
sys = impulseest(data,N)
sys = impulseest(data,N,NK)
sys = impulseest(___,options)
estimates
an impulse response model, sys
= impulseest(data
)sys
,
using time or frequencydomain data, data
. The
model order (number of nonzero impulse response coefficients)
is determined automatically using persistence of excitation analysis
on the input data.
estimates
an sys
= impulseest(data
,N
)N
th order impulse response model, corresponding
to the time range 0 :Ts : (N –1)*Ts,
where Ts
is the data sample time.
specifies
a transport delay of sys
= impulseest(data
,N
,NK
)NK
samples in the estimated
impulse response.
specifies
estimation options using the options set sys
= impulseest(___,options
)options
.
Use nonparametric impulse response to analyze data
for
feedback effects, delays and significant time constants.

Estimation data with at least one input signal and nonzero sample time. For time domain estimation, For frequency domain estimation, 

Order of the FIR model. Must be one of the following:


Transport delay in the estimated impulse response, specified as a scalar integer. For data containing Nu inputs and Ny outputs, you can also specify a NybyNu matrix.
Positive values of The impulse response (input Default: zeros(Ny, Nu) 

Estimation options that specify the following:
Use 

Estimated impulse response model, returned as an Information about the estimation results and options used is
stored in the
For more information on using 
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, rightclick on the plot and select Characteristics > Confidence
Region. A patch depicting the zeroresponse
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's output when the input is an impulse signal. The output response to a general input, u(t), is obtained as the convolution with the impulse response. In continuous time:
$$y(t)={\displaystyle {\int}_{\infty}^{t}g\left(\tau \right)u\left(t\tau \right)}d\tau $$
In discretetime:
$$y\left(t\right)={\displaystyle \sum _{k=1}^{\infty}g\left(k\right)u\left(tk\right)}$$
The values of g(k) are the discrete time impulse response coefficients.
You can estimate the values from observed inputoutput data
in several different ways. impulseest
estimates
the first n coefficients using the leastsquares
method to obtain a finite impulse response (FIR) model of order n.
Several important options are associated with the estimate:
Prewhitening —
The input can be prewhitened by applying an inputwhitening filter
of order PW
to the data. This minimizes the effect
of the neglected tail (k > n
) of the impulse
response.
A filter of order PW
is applied
such that it whitens the input signal u
:
1/A = A(u)e
, where A
is
a polynomial and e
is white noise.
The inputs and outputs are filtered using the filter:
uf = Au
, yf = Ay
The filtered signals uf
and yf
are
used for estimation.
You can specify prewhitening using the PW
namevalue
pair argument of impulseestOptions
.
Regularization —
The leastsquares estimate can be regularized. This means that a prior
estimate of the decay and mutual correlation among g(k)
is
formed and used to merge with the information about g
from
the observed data. This gives an estimate with less variance, at the
price of some bias. You can choose one of the several kernels to encode
the prior estimate.
This option is essential because, often, the model order n
can
be quite large. In cases where there is no regularization, n
can
be automatically decreased to secure a reasonable variance.
You can specify the regularizing kernel using the RegulKernel
NameValue
pair argument of impulseestOptions
.
Autoregressive Parameters —
The basic underlying FIR model can be complemented by NA
autoregressive
parameters, making it an ARX model.
$$y\left(t\right)={\displaystyle \sum _{k=1}^{n}g\left(k\right)u\left(tk\right)}{\displaystyle \sum _{k=1}^{NA}{a}_{k}y\left(tk\right)}$$
This gives both better results for small n
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 — Response for negative lags. It may happen that the data has been generated partly by output feedback:
$$u(t)={\displaystyle \sum _{k=0}^{\infty}h(k)y\left(tk\right)}+r\left(t\right)$$
where h(k) is the impulse
response of the regulator and r is a setpoint or
disturbance term. The existence and character of such feedback h can
be estimated in the same way as g, simply by trading
places between y and u in the
estimation call. Using impulseest
with an indication
of negative delays, $$\text{mi}=\text{impulseest}(data,nk,nb),\text{}nk0$$,
returns a model mi
with an impulse response
$$\left[h(nk),h(nk1),\mathrm{...},h(0),g(1),g(2),\mathrm{...},g(nb+nk)\right]$$
aligned so that it corresponds to lags $$\left[nk,nk+1,\mathrm{..},0,1,2,\mathrm{...},nb+nk\right]$$.
This is achieved because the input delay (InputDelay
)
of model mi
is nk
.
For a multiinput multioutput system, the impulse response g(k) is an nybynu 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
 impulse
 impulseestOptions
 spa
 step