Documentation of cross_corr


Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)


Function Synopsis

a = cross_corr(x1, x2, lags);

Help text


  a = cross_corr(x1, x2, lags);

  Inputs:
  x is the input data vector
  lags is -length(x):length(x), unless otherwise specified
  Negative lags imply x1 LEADS x2

  Outputs:
  a is the cross-correlation function at lags specified by 'lags'


Listing of function cross_corr

function a = cross_corr(x1, x2, lags);

if ~all([length(size(x1))==2 , ismember(1, size(x1))]); 
  error('x1 must be a vector');
end
if ~all([length(size(x2))==2 , ismember(1, size(x2))]); 
  error('x2 must be a vector');
end

x1 = x1(:);
x2 = x2(:);
if length(x1) ~= length(x2); 
  error('x1 and x2 must have equal lengths');
end;
ntim = length(x1);

if nargin == 1;
  lags = -(ntim-1):(ntim-1);
end;

nlag = length(lags);
a = repmat(NaN, [nlag 1]);

for i = 1:nlag;
  if lags(i) <= 0;
    ind1 = 1:(ntim+lags(i));
    ind2 = (1-lags(i)):ntim;
  else
    ind1 = (1+lags(i)):ntim;
    ind2 = 1:(ntim-lags(i));
  end
  tem = corrcoef(x1(ind1), x2(ind2));
  a(i) = tem(1,2);
end