Crosscorrelation
In signal processing, crosscorrelation is a measure of similarity of two series as a function of the lag of one relative to the other. This is also known as a sliding dot product or sliding innerproduct. It is commonly used for searching a long signal for a shorter, known feature. It has applications in pattern recognition, single particle analysis, electron tomography, averaging, cryptanalysis, and neurophysiology.
For continuous functions f and g, the crosscorrelation is defined as:
where denotes the complex conjugate of and is the lag.
Similarly, for discrete functions, the crosscorrelation is defined as:
The crosscorrelation is similar in nature to the convolution of two functions.
In an autocorrelation, which is the crosscorrelation of a signal with itself, there will always be a peak at a lag of zero, and its size will be the signal power.
In probability and statistics, the term crosscorrelations is used for referring to the correlations between the entries of two random vectors X and Y, while the autocorrelations of a random vector X are considered to be the correlations between the entries of X itself, those forming the correlation matrix (matrix of correlations) of X. This is analogous to the distinction between autocovariance of a random vector and crosscovariance of two random vectors. One more distinction to point out is that in probability and statistics the definition of correlation always includes a standardising factor in such a way that correlations have values between −1 and +1.
If and are two independent random variables with probability density functions f and g, respectively, then the probability density of the difference is formally given by the crosscorrelation (in the signalprocessing sense) ; however this terminology is not used in probability and statistics. In contrast, the convolution (equivalent to the crosscorrelation of f(t) and g(−t) ) gives the probability density function of the sum .
Contents
Explanation
As an example, consider two real valued functions and differing only by an unknown shift along the xaxis. One can use the crosscorrelation to find how much must be shifted along the xaxis to make it identical to . The formula essentially slides the function along the xaxis, calculating the integral of their product at each position. When the functions match, the value of is maximized. This is because when peaks (positive areas) are aligned, they make a large contribution to the integral. Similarly, when troughs (negative areas) align, they also make a positive contribution to the integral because the product of two negative numbers is positive.
With complexvalued functions and , taking the conjugate of ensures that aligned peaks (or aligned troughs) with imaginary components will contribute positively to the integral.
In econometrics, lagged crosscorrelation is sometimes referred to as crossautocorrelation.^{[1]}
Properties
 The crosscorrelation of functions f(t) and g(t) is equivalent to the convolution of f^{*}(−t) and g(t). That is:
 If f is a Hermitian function, then
 If both f and g are Hermitian, then .
 Analogous to the convolution theorem, the crosscorrelation satisfies
 where denotes the Fourier transform, and an asterisk again indicates the complex conjugate. Coupled with fast Fourier transform algorithms, this property is often exploited for the efficient numerical computation of crosscorrelations (see circular crosscorrelation).
 The crosscorrelation is related to the spectral density (see Wiener–Khinchin theorem).
 The crosscorrelation of a convolution of f and h with a function g is the convolution of the crosscorrelation of f and g with the kernel h:^{[clarification needed]}
Time series analysis
In time series analysis, as applied in statistics and signal processing, the crosscorrelation between two time series describes the normalized crosscovariance function.^{[clarification needed]}
Let represent a pair of stochastic processes that are jointly widesense stationary. Then the crosscovariance and the crosscorrelation are given by

crosscovariance crosscorrelation
where and are the mean and standard deviation of the process , which are constant over time due to stationarity; and similarly for , respectively. indicates the expected value. That the crosscovariance and crosscorrelation are independent of t is precisely the additional information (beyond being individually widesense stationary) conveyed by the requirement that are jointly widesense stationary.
The crosscorrelation of a pair of jointly wide sense stationary stochastic process can be estimated by averaging the product of samples measured from one process and samples measured from the other (and its time shifts). The samples included in the average can be an arbitrary subset of all the samples in the signal (e.g., samples within a finite time window or a subsampling^{[which?]} of one of the signals). For a large number of samples, the average converges to the true crosscorrelation.
Time delay analysis
Crosscorrelations are useful for determining the time delay between two signals, e.g. for determining time delays for the propagation of acoustic signals across a microphone array.^{[2]}^{[3]}^{[clarification needed]} After calculating the crosscorrelation between the two signals, the maximum (or minimum if the signals are negatively correlated) of the crosscorrelation function indicates the point in time where the signals are best aligned, i.e. the time delay between the two signals is determined by the argument of the maximum, or arg max of the crosscorrelation, as in
Normalized crosscorrelation
For imageprocessing applications in which the brightness of the image and template can vary due to lighting and exposure conditions, the images can be first normalized. This is typically done at every step by subtracting the mean and dividing by the standard deviation. That is, the crosscorrelation of a template, with a subimage is
 .
where is the number of pixels in and , is the average of f and is standard deviation of f. In functional analysis terms, this can be thought of as the dot product of two normalized vectors. That is, if
and
then the above sum is equal to
where is the inner product and is the L² norm. Thus, if f and t are real matrices, their normalized crosscorrelation equals the cosine of the angle between the unit vectors F and T, being thus 1 if and only if F equals T multiplied by a positive scalar.
Normalized correlation is one of the methods used for template matching, a process used for finding incidences of a pattern or object within an image. It is also the 2dimensional version of Pearson productmoment correlation coefficient.
Nonlinear systems
Caution must be applied when using cross correlation for nonlinear systems. In certain circumstances, which depend on the properties of the input, cross correlation between the input and output of a system with nonlinear dynamics can be completely blind to certain nonlinear effects.^{[4]} This problem arises because some quadratic moments can equal zero and this can incorrectly suggest that there is little "correlation" (in the sense of statistical dependence) between two signals, when in fact the two signals are strongly related by nonlinear dynamics.
See also
References
 ↑ Campbell; Lo; MacKinlay (1996). The Econometrics of Financial Markets. NJ: Princeton University Press. ISBN 0691043019.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
 ↑ Lua error in Module:Citation/CS1/Identifiers at line 47: attempt to index field 'wikibase' (a nil value).
 ↑ Rhudy, Matthew (November 2009). "Real Time Implementation of a Military Impulse Classifier". University of Pittsburgh, Master's Thesis.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
 ↑ Billings, S. A. (2013). Nonlinear System Identification: NARMAX Methods in the Time, Frequency, and SpatioTemporal Domains. Wiley. ISBN 9781118535561.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
Further reading
 Lua error in Module:Citation/CS1/Identifiers at line 47: attempt to index field 'wikibase' (a nil value).