Main Content

What Is Time-Domain Correlation Analysis?

Time-domain correlation analysis refers to nonparametric estimation of the impulse response of dynamic systems as a finite impulse response (FIR) model from the data. The estimated model is stored as transfer function model object (idtf). For information about transfer function models, see What Are Transfer Function Models?.

Correlation analysis assumes a linear system and does not require a specific model structure.

Impulse response is the output signal that results when the input is an impulse and has the following definition for a discrete model:

u(t)=0     t>0u(t)=1     t=0

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

y(t)=0th(tz)u(z)dz

Supported Estimation Data

You can estimate impulse-response models from data with the following characteristics:

  • Real or complex data.

  • Single- or multiple-output data.

  • Time- or frequency-domain data with nonzero sample time.

    Time-domain data must be regularly sampled. You cannot use time-series data for correlation analysis.

Correlation Analysis Algorithm

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:

y(t)=tg(τ)u(tτ)dτ

In discrete time:

y(t)=k=1g(k)u(tk)

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 without regularization, n can be automatically decreased to secure a reasonable variance.

    Specify the regularizing kernel using the RegularizationKernel name-value 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:

    1. 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.

    2. Filters the inputs and outputs with A:

      uf = Au, yf = Ay

    3. 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.

    y(t)=k=1ng(k)u(tk)k=1NAaky(tk)

    This option both gives better results for small n values and allows unbiased estimates when data are generated in closed loop. impulseest sets NA to 5 when t > 0 and sets NA to 0 (no autoregressive component) when t < 0.

  • Noncausal effects — Include response to negative lags. Use this option if the estimation data includes output feedback:

    u(t)=k=0h(k)y(tk)+r(t)

    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, mi = impulseest(data,nk,nb), where nk < 0, returns a model mi with an impulse response

    [h(-nk),h(-nk-1),...,h(0),g(1),g(2),...,g(nb+nk)]

    that has an alignment that corresponds to the lags [nk,nk+1,..,0,1,2,...,nb+nk]. 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 ij element of the matrix g(k) describes the behavior of the ith output after an impulse in the jth input.

Related Examples

More About