home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 8.ddi / SIGNAL.DI$ / XCORR2.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  802 b   |  39 lines

  1. function c = xcorr2(a,b)
  2. %XCORR2    Two-dimensional cross-correlation.
  3. %    XCORR2(A,B) computes the crosscorrelation of matrices A and B.
  4. %    XCORR2(A) is the autocorrelation function.
  5. %    See also CONV2.
  6.  
  7. %    Marc Ullman   2-6-86
  8. %    Revised 6-13-88 JNL
  9. %    Copyright (c) 1986-88 by the MathWorks, Inc.
  10.  
  11. if nargin == 1
  12.     b = a;
  13. end
  14.  
  15. [ma,na] = size(a);
  16. [mb,nb] = size(b);
  17.  
  18. b = conj(b(mb:-1:1,:));
  19. apad = [a ; zeros(mb-1,na)];
  20.  
  21. c = zeros(ma+mb-1,na+nb-1);
  22.  
  23. for k=1:(na+nb-1)
  24.     count = k        *(k<min(na,nb)) ...
  25.         +min(na,nb)    *(k>=min(na,nb))*(k<=max(na,nb)) ...
  26.         +(na+nb-k)    *(k>max(na,nb));
  27.  
  28.     starta = 1        *(k<=nb) ...
  29.         +(k-nb+1)    *(k>nb);
  30.  
  31.     startb = (nb-k+1)    *(k<=nb) ...
  32.         +1        *(k>nb);
  33.  
  34.     for i=0:(count-1)
  35.         c(:,k) = c(:,k) + filter( b(:,startb+i), 1, apad(:,starta+i) ); 
  36.     end
  37. end
  38.  
  39.