Cross Correlation lag issue

9 ビュー (過去 30 日間)
Mustafa Al-Nasser
Mustafa Al-Nasser 2022 年 10 月 3 日
コメント済み: Mustafa Al-Nasser 2022 年 10 月 3 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by