我有两个信号,我试图看到它们的相关性滞后:
看起来它们是同步的,所以我希望correlate
函数的最小值为零(因为它们每~100个时间步具有反相关)
但是,使用此代码:
yhat1 = np.load('cor1.npy')
yhat2 = np.load('cor2.npy')
corr = np.correlate(yhat1 - np.mean(yhat1),
yhat2 - np.mean(yhat2),
mode='same')
plt.plot(corr)
plt.show()
我得到了以下结果(我尝试在模式中使用'full '
和'same'
,得到了相同的结果):
为什么最小值不是预期的0而是250? 为什么在最小值的两侧似乎还有其他显著的峰值
数据为here
Numpy的相关函数根据您提供的输入返回自动/互相关函数。相关和卷积是一样的,只是你们不需要对其中一个信号进行时间反转。换句话说,在信号之间应用滑动点积
在t=0时,由于一个信号在t=0时为零,因此获得零相关性是正常的。然而,当您进一步执行此操作时,信号的幅度和符号都会发生波动。由于(相对而言)在不同时间相互之间的信号峰值非常大,correlatino正在流动。最大峰值出现在t=500,因为此时两个信号完全重叠。这发生在你的信号极端峰值在那一刻对齐的时候。t=500后,重叠区域减少,并观察到行为与我们达到t<;之前的情况类似;500.
相关问题 更多 >
编程相关推荐