MATLAB: Is the result from xcorr(zsco​re(X),zsco​re(Y), ‘coeff’) the same as correlation coefficient for each lag position

correlation coefficientSignal Processing Toolboxxcorrzscore

I have 2 data sets (X and Y). Both have different units, so I standardized them by calculating zscores for each data set. I would like to get correlation coefficient (r) between the 2 data sets for each lag position. I'm trying to understand if xcorr(zscore(X),zscore(Y), 'coeff') gives me r for each lag position.
Thank you

Best Answer

Yes, you are correct. It does give the correlation coefficients for the every lag values. By using 'coeff' the following changes are made:-
xcorr(x,y,'coeff') = xcorr(x,y)/(sqrt(sum(abs(x).^2)*sum(abs(y).^2)))
Although, this xcorr(x,y,'coeff') is different from the pearson's definition of corr. coeff. in the sense that it doesn't subtract mean of x and y, your application will give the correct ans as the zscore already performs the normalization.
Check out the documentation for xcorr if you haven't already.
Hope this helps!