Cross Correlation lag issue

4 次查看(过去 30 天)
Dear Team;
i am conducting cross correlation between two signals using the following code but i am alwyas get the lag at which correlation is max at end of the vector
for example for if both P2 , P1 has length of 100 , lags 2 is 101
i did some preprocessing for the signal such as normalization , remove trend but still results do not change
when i used finddelay function it alyaws give zero
what do you think the issue is?
[xc2,lags2] = xcorr(P2,P3,'coeff');
[rho2,lags2] = max(abs(xc2));

回答(1 个)

Chunru
Chunru 2022-10-3
P2 = randn(10, 1);
P3 = [zeros(5, 1); P2]; % P3 is P2 delayed by 5
[xc2,lags2] = xcorr(P2,P3);
plot(lags2, xc2)
[rho2,imax] = max(abs(xc2))
rho2 = 7.7737
imax = 10
hold on
plot(lags2(imax), xc2(imax), 'r*')
  4 个评论
Chunru
Chunru 2022-10-3
To know why, you need to show your problem. Your incomplete code can not tell why and we can only show what is right.
Mustafa Al-Nasser
Mustafa Al-Nasser 2022-10-3
Ok now I found the problem and I am find the lag at which cross correlation is max
but actually my problem is that i am dealing with real signal which is very noisy , so, i am looking to use low pass filter or smooth signal to remove the noise but I have a concern that I may lose some useful information

请先登录,再进行评论。

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by