xcorr vs conv: in latest MATLAB version
24 views (last 30 days)
Show older comments
Hello, I get xcorr(x,y)=conv(x,fliplr(y)) when using the latest MATLAB edition. Has the defintion of xcorr(x,y) changed to xcorr(l)=summation(x(n),y(n-l)) in the latest version? I understand that in the older version, it used to be xcorr(l)=summation(x(n),y(n+l)) Kindly clarify. Thanks very much
1 Comment
hudieliu
on 29 Sep 2017
Edited: hudieliu
on 29 Sep 2017
If length(x)==length(y),then xcorr(x,y)=conv(x,fliplr(y)) ,and length(xcorr(x,y))= length(x)*2-1. But if length(x)~=length(y), then they are not equal, and length(xcorr(x,y)) = 2*max(length(x),length(y))-1 while length(conv(x,y)) = length(x)+length(y)-1
Accepted Answer
David Young
on 27 Feb 2011
Surely the definition of xcorr was, and still is, the final formula you give (with the + sign in the index), and this is consistent with xcorr(x,y) = conv(x, fliplr(y)) because convolution is defined by the formula with the - sign in the index.
Correlation and convolution are both operations with standard definitions generally accepted by mathematicians. I don't have the Signal Processing Toolbox, but I can't imagine that MATLAB would ever have implemented anything other than the standard operations.
0 Comments
More Answers (1)
Andreas Goser
on 27 Feb 2011
I could not find a change documented in the release notes - compatibility considerations. I assume that you ask this question not out of curiosity, but have different results in different releases? In this case, please post this as a new question with example data and information about releases and platforms you use.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!