MATLAB: Signal Normalization for cross correlation

cross correlationsignal processing

Dear All;
I need to do a cross correlation between two signals to find the displacement ( it is the same signal but it is moving and i need to find how much it shift). I need to signal normalization before doing the cross correlation , there are many techniques and each one gave different results , could you advise which is best technique .
Best Regards

Best Answer

Hi Mustafa,
Since in your case you are doing a cross-correlation between a signal and its own shifted version, to simplify things, you would just need to ensure that the signal and its shifted version have the same scaling. To ensure this, you can use something like:
% s1 = some signal
% s2 = time shifted s1
s1 = s1/max(abs(s1));
s2 = s2/max(abs(s2));
scorr = xcorr(s1,s2);
You can also see the examples in the documentation for xcorr .
Hope this helps,
Cheers!
Abhiram
Related Question