| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → System Identification Toolbox |
| Contents | Index |
| Learn more about System Identification Toolbox |
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:
Impulse response
Impulse response is the output signal that results when the input is an impulse and has the following definition for a discrete model:
![]()
Step response
Step response is the output signal that results from a step input, defined as follows:
![]()
The response to an input u(t) is equal to the convolution of the impulse response, as follows:
![]()
You can estimate correlation analysis models from data with the following characteristics:
Real or complex time-domain iddata object. To learn about estimating time-series models, see Time Series Model Identification.
Frequency-domain iddata or idfrd object with the sampling interval T≠0.
Single- or multiple-output data.
Before you can perform this task, you must have
Regularly sampled data imported into the System Identification Tool GUI. See Importing Time-Domain Data into the GUI. For supported data formats, see Data Supported by Correlation Analysis.
Performed any required data preprocessing operations. To improve the accuracy of your model, you should detrend your data. See Ways to Process Data for System Identification.
To estimate in the System Identification Tool GUI using time-domain correlation analysis:
In the System Identification Tool GUI, select Estimate > Correlation models to open the Correlation Model dialog box.
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.
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 [].
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.
Click Estimate to add this model to the Model Board in the System Identification Tool GUI.
In the Correlation Model dialog box, click Close.
Export the model to the MATLAB workspace for further analysis by dragging it to the To Workspace rectangle in the System Identification Tool GUI.
View the transient response plot by selecting the Transient resp check box in the System Identification Tool GUI. For more information about working with this plot and selecting to view impulse- versus step-response, see Impulse and Step Response Plots.
Before you can perform this task, you must have
Regularly sampled data. See Representing Time- and Frequency-Domain Data Using iddata Objects. For supported data formats, see Data Supported by Correlation Analysis.
Performed any required data preprocessing operations. Ro improve the accuracy of your model, you should detrend your data. See Ways to Process Data for System Identification.
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.
Note cra is an alternative method for computing impulse response from time-domain data only. |
Commands for Impulse and Step Response
| Command | Description | Example |
|---|---|---|
| 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. |
Perform model analysis. See Overview of Model Validation and Plots.
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:
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.
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.
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.

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.
![]() | Identifying Frequency-Response Models | Identifying Low-Order Transfer Functions (Process Models) | ![]() |

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 |