Products & Services Solutions Academia Support User Community Company

Learn more about System Identification Toolbox   

Identifying Impulse-Response Models

What Is Time-Domain Correlation Analysis?

Time-domain correlation analysis is a nonparametric estimate of transient response of dynamic systems, which computes a finite impulse response (FIR) model from the data. Correlation analysis assumes a linear system and does not require a specific model structure.

There are two types of transient response for a dynamic model:

The response to an input u(t) is equal to the convolution of the impulse response, as follows:

Data Supported by Correlation Analysis

You can estimate correlation analysis models from data with the following characteristics:

How to Estimate Impulse and Step Response Models Using the GUI

Before you can perform this task, you must have

To estimate in the System Identification Tool GUI using time-domain correlation analysis:

  1. In the System Identification Tool GUI, select Estimate > Correlation models to open the Correlation Model dialog box.

  2. In the Time span (s) field, specify a scalar value as the time interval over which the impulse or step response is calculated. For a scalar time span T, the resulting response is plotted from -T/4 to T.

      Tip   You can also enter a 2-D vector in the format [min_value max_value].

  3. In the Order of whitening filter field, specify the filter order.

    The prewhitening filter is determined by modeling the input as an Auto-Regressive (AR) process of order N. The algorithm applies a filter of the form A(q)u(t)=u_F(t). That is, the input u(t) is subjected to an FIR filter A to produce the filtered signal u_F(t). Prewhitening the input by applying a whitening filter before estimation might improve the quality of the estimated impulse response g.

    The order of the prewhitening filter, N, is the order of the A filter. N equals the number of lags. The default value of N is 10, which you can also specify as [].

  4. In the Model Name field, enter the name of the correlation analysis model. The name of the model should be unique in the Model Board.

  5. Click Estimate to add this model to the Model Board in the System Identification Tool GUI.

  6. In the Correlation Model dialog box, click Close.

Next Steps

How to Estimate Impulse and Step Response Models at the Command Line

Before you can perform this task, you must have

The following tables summarize the commands for computing impulse- and step-response models. Both impulse and step produce the same FIR model, but generate different plots. The resulting models are stored as idarx model objects and contain impulse-response coefficients in the model parameter B. For detailed information about these commands, see the corresponding reference page.

Commands for Impulse and Step Response

CommandDescriptionExample
impulse

Estimates a high-order, noncausal FIR model using correlation analysis.

To estimate the model m and plot the impulse response, use the following syntax:

m=impulse(data,Time,'pw',N)

where data is a single- or multiple-output time-domain iddata object, and Time is a scalar value representing the time interval over which the impulse or step response is calculated. For a scalar time span T, the resulting response is plotted from -T/4 to T. 'pw' and N is an option property-value pair that specifies the order N of the prewhitening filter 'pw'.

step

Estimates a high-order, noncausal FIR model correlation analysis.

To estimate the model m and plot the step response, use the following syntax:

step(data,Time)

where data is a single- or multiple-output time-domain iddata object, and Time is the time span.

Next Steps

How to Compute Response Values

You can use impulse and step commands with output arguments to get the numerical impulse- and step-response vectors as a function of time, respectively.

To get the numerical response values:

  1. Compute the FIR model by applying either impulse or step commands on the data, as described in How to Estimate Impulse and Step Response Models at the Command Line.

  2. Apply the following syntax on the resulting model:

    % To compute impulse-response data
    [y,t,ysd] = impulse(model)
    % To compute step-response data
    [y,t,ysd] = step(model)

    where y is the response data, t is the time vector, and ysd is the standard deviations of the response.

How to Identify Delay Using Transient-Response Plots

You can use transient-response plots to estimate the input delay, or dead time, of linear systems. Input delay represents the time it takes for the output to respond to the input.

In the System Identification Tool GUI. To view the transient response plot, select the Transient resp check box in the System Identification Tool GUI. For example, the following step response plot shows a time delay of about 0.25 s before the system responds to the input.

Step Response Plot

At the command line. You can use the impulse command to plot the impulse response. The time delay is equal to the first positive peak in the transient response magnitude that is greater than the confidence region for positive time values.

For example, the following commands create an impulse-response plot with a 1-standard-deviation confidence region:

% Load sample data
load dry2
% Split data into estimation and
% validation data sets
ze = dry2(1:500); 
zr = dry2(501:1000);
impulse(ze,'sd',1,'fill')

The resulting figure shows that the first positive peak of the response magnitude, which is greater than the confidence region for positive time values, occurs at 0.24 s.

Algorithm for Correlation Analysis

To better understand the algorithm underlying correlation analysis, consider the following description of a dynamic system:

where u(t) and y(t) are the input and output signals, respectively. v(t) is the additive noise term. G(q) is the transfer function of the system. The G(q)u(t) notation represents the following operation:

q is the shift operator, defined by the following equation:

For impulse response, the algorithm estimates impulse response coefficients g for both the single- and multiple-output data. The impulse response is estimated as a high-order, noncausal FIR model:

The estimation algorithm prefilters the data such that the input is as white as possible. It then computes the correlations from the prefiltered data to obtain the FIR coefficients.

g is also estimated for negative lags, which takes into account any noncausal effects from input to output. Noncausal effects can result from feedback. The coefficients are computed using the least-squares method.

For a multiple-input or multiple-output system, the impulse response gk is an ny-by-nu matrix, where ny is the number of outputs and nu is the number of inputs. The i-jth element of the impulse response matrix describes the behavior of the ith output after an impulse in the jth input.

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS