function [m]=xcorr(A,B,maxdelay) %checks to see if row or column vectors; if row vector, vectors are %transposed sizeA=size(A); flag=0; if sizeA(1,2) > 1 flag=1; A=A'; B=B'; end if length(A) >= length(B) %zero pads and reverses B B=[zeros(length(A)-length(B),1); B(length(B): -1:1)]; else %zero pads A A=[A;zeros(length(B)-length(A),1)]; %reverses B B=B(length(B): -1:1); end %for i=-1*maxdelay:-1 % temp(i+maxdelay+1)=A(1:length(A)+i)'B(1-i:end); %end %temp(maxdelay+1)=A'*B; %for i=1:maxdelay % temp(i+maxdelay+1)=A(1+i:end)'B(1:length(B)-i); %end temp=zeros(maxdelay+1,1); for i=0:maxdelay temp(i+1,1)=A(1+i:end,1)'*B(1:length(B)-i,1); end %transposes resultant vector if initial vectors were row vectors to yield %row vector result if flag==1 temp=temp'; end [m]=temp;