使用xcorr查找两个正弦10Hz之间的时间延迟时如何解决错误

时间:2017-08-30 11:56:21

标签: matlab

当我尝试实施xcorr(MATLAB)以查找2个信号之间延迟的时间时,我遇到了问题:x = cos(2*pi*10*t)y = cos(2*pi*10*t + pi)

这是我在实施xcorr MATLAB后的结果。我不明白如何消除时间延迟图形中的高峰值。有人能帮帮我吗?提前谢谢。

2 raw signals 10Hz Time shift after xcorr MATLAB

1 个答案:

答案 0 :(得分:3)

对信号使用以下定义:

dt = 0.01;
t = 0:dt:1;
x = cos(2*pi*10*t);
y = cos(2*pi*10*t + pi);

您可以使用xcorr

计算时间延迟,如下所示
[C, LAGS] = xcorr(x, y);
[~, i] = max(C);
time_lag = dt * LAGS(i) % returns -0.05 (i.e. 50ms delay)

互相关应如下所示(plot(C)):

enter image description here