MATLAB: Estimating the Impulse Response from Data, SISO system.

impulsesystem identificationSystem Identification Toolbox

Hello,
I would like to know more details on how does the function impulse work? In case,
ze = iddata(y,u,Ts)
impulse(ze)
Where, y= output sampled data; u= input sampled data; Ts= sample time
The explanation given in http://www.mathworks.com/help/toolbox/ident/ref/impulse.html is very superficial. Could you give me more details (mathematically speaking) on the function impulse? If possible please point me to articles that talk about it.
Thanks.

Best Answer

It performs FIR modeling for an appropriately selected number of lags: y(t) = \sum_{i=0}{N-1} b_i*u(t-i). For example, you may do arx(data, [na nb nk]) where na = 0, nb = 20, nk = 0 for a SISO system.
The "data" here in an iddata object containing the measured output signal and a "pre-whitened" input signal (u_white). The prewhitening of the input is performed by filtering the actual input signal using the model: u_white(t) = 1/a(q) u(t). For example, do the following to obtain the prewhitened input:
M = arx(u, 4); A = M.a; u_white = filter(u,A,[1, zeros(1,3)]);
The time horizon selected for estimation includes a portion of negative real axis so that feedback effects in the data may be detected. Please see the code in iddata/impulse to see how this is done. In many situations, this detail is irrelevant.
Related Question