Search Spectral Audio Signal Processing
Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?
The sample autocorrelation of a sequence
,
may be defined by
In Matlab or Octave, the sample autocorrelation of a vector x can be computed using the xcorr function.6.3
Example:
octave:1> xcorr([1 1 1 1]) ans = 1 2 3 4 3 2 1The xcorr function also performs cross-correlation when given a second signal argument, and offers additional features with additional arguments. Say help xcorr for details.
Note that
is the average of the lagged product
over all available data. For white noise, this
average approaches zero for
as the number of terms in the
average increases. That is, we must have
The plot in the upper left corner of Fig.5.1 shows the sample autocorrelation obtained for 32 samples of pseudorandom numbers (synthetic random numbers). (For reasons to be discussed below, the sample autocorrelation has been multipled by a Bartlett (triangular) window.) Proceeding down the column on the left, the results of averaging many such sample autocorrelations can be seen. It is clear that the average sample autocorrelation function is approaching an impulse function, as desired by definition for white noise. (The right column shows the Fourier transform of each sample autocorrelation function, which is a smoothed estimate of the power spectral density, as discussed in §5.6 below.)
For stationary stochastic processes
, the sample autocorrelation
function
approaches the true autocorrelation function
in the limit as the number of observed samples
goes to
infinity, i.e.,
At lag
, the autocorrelation function of a zero-mean random
process
reduces to the variance:
