find shift using cross correlation
4 views (last 30 days)
Show older comments
Dear all;
i have a confusion when i am using xcorr function in matlab , suppose i have attached two signals , is this function give the amount of shift in between signals ? is there any conversion factor that shall i use ?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/149675/image.jpeg)
0 Comments
Answers (1)
Image Analyst
on 1 May 2015
I suggest you start with a simple example, like
signal1 = zeros(1, 10);
signal1(5) = 1;
signal2 = zeros(1, 10);
signal2(8) = 1;
Then look at the length of the output and where the max/peak/spike is located. You'll figure it out.
By the way, I don't think it's well known that the max of the correlation is not always when the two signals are optimally overlapped - it just tells you when the area under the curve of the multiplication of the two signals is greatest. I believe this is why normalized cross correlation was invented. This is done by the function normxcorr2 in the Image Processing Toolbox. (Demo available upon request).
6 Comments
Angel Romero
on 21 Jun 2017
Hi there! I tried to solve your problem but I wasn´t able. Any solution so far?
Angel Romero
on 21 Jun 2017
Were you able to fix it?. I'm looking forward to hearing from you. Thanks.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!