matlab中xcorr函数
xcorr
Cross-correlation
Syntax
c?=?xcorr(x,y)c?=?xcorr(x)c?=?xcorr(x,y,'option')c?=?xcorr(x,'option')c?=?xcorr(x,y,maxlags)c?=?xcorr(x,maxlags)c?=?xcorr(x,y,maxlags,'option')c?=?xcorr(x,maxlags,'option')[c,lags]?=?xcorr(...)
Description
xcorr estimates the cross-correlation sequence of a random process. Autocorrelation is handled as a special case.
The true cross-correlation sequence is
where xn and yn are jointly stationary random processes, , and E {·} is the expected value operator. xcorr must estimate the sequence because, in practice, only a finite segment of one realization of the infinite-length random process is available.
c?=?xcorr(x,y) returns the cross-correlation sequence in a length 2*N-1 vector, where x and y are length N vectors (N>1). If x and y are not the same length, the shorter vector is zero-padded to the length of the longer vector.
Note?? The maximum allowable vector length for inputs to xcorr is 2^20. If you need to process longer sequences, see HYPERLINK "jar:file:///F:/Matlab/help/toolbox/signal/help.jar%21/dfilt.fftfir.html" dfilt.fftfir.
By default, xcorr computes raw correlations with no normalization.
The output vector c has elements given by c(m)?=?Rxy(m-N), m=1,?...,?2N-1.
In general, the correlation function requires normalization to produce an accurate estimate (see below).
c?=?xcorr(x) is the autocorrelation sequence for the vector x. If x is an N-by-P matrix, c is a matrix with 2N-1 rows whose P2 columns contain the cross-correlation sequences for all combinations of the columns of x. For more information on matrix processing with xcorr, see HYPERLINK "jar:file:///F:/Matlab/help/toolbox/signal/help.jar%21/f12-6515.html" \l "f12-6580" Multiple Channels.
xcorr produces correlations identically equal to 1.0 at zero lag only when you perform an autocorrelation and only when you set the 'coeff' option. For example,
x=0:0.01:10;
X = sin(x);
[r,lags]=xcorr(X,'coeff');
max(r)
ans =
1
c?=?xcorr(x,y,'option') specifies a