如何测量两个信号的时间相关性

信息处理 相关性
2022-02-01 11:08:24

我有两个信号(时间序列),如下图所示。仅通过查看该图,我们可以看到两个信号的两个主峰非常紧密地对齐(相关),但是红色信号在其他地方具有与蓝色曲线不匹配的附加特征。

我正在寻找一些函数,它可以告诉我这两个信号在给定时间的相关性。IE:在峰值所在的 t = -18 和 t = +10 时,相关性应该非常接近 -1,而在 t = -40 时,相关性可能接近于 0。

具体来说,我想要一种可靠的方法来告诉我,如果我在蓝色曲线中看到一个峰值,那么在红色曲线中有一个相应的(负)峰值。

我已经研究过Cross correlation,但是这似乎适用于彼此之间具有恒定时间滞后的时间序列。在我的问题中,我的两个信号之间的相关性随着时间而变化。我曾考虑将信号分成小箱并计算每个箱的相关性,但我希望有更好的方法。

在此处输入图像描述

2个回答

您的信号看起来具有大致相同的序数比例,并且几乎没有滞后。因此,您可以执行局部相关:取两个信号的一部分,以某个时间位置为中心,您可以对它们的幅度和色散进行归一化(除以均值和标准偏差,或中值和中值绝对偏差)。应用平滑窗口:如果您不这样做,请记住您已经在应用矩形窗口。然后做一个互相关,并随着时间的推移重复。

这样的过程从两个 1D 信号创建 2D 图像。它可以称为窗口互相关(另见Matlab 中的窗口互相关)或局部互相关从后者:

我们解决了在时间演化的时间序列之间捕获和跟踪局部相关性的问题。我们的方法基于比较每个系列的局部自协方差矩阵(通过它们的谱分解),并推广线性互相关的概念

如果您不确定尺度,或者想要更通用的设置,一些在多尺度小波域中执行互相关。您可以检查Torrence 等人说明的小波相干性(Matlab) 的概念。ENSO-季风系统的年代际变化 ,使用Matlab 软件

编辑对不起,红色的低谷,蓝色的高峰。我在手机上,看不到我写的图表。

听起来您想要关联时间序列的特征,而不是时间序列本身。特别是,您似乎想要检测红色曲线中的峰值和蓝色图表中的谷值。然后你想要关联这些特征的存在和位置。

你能保证峰值总是红色曲线中有趣的东西吗?低谷总是你想在蓝色曲线中找到的吗?如果您可以表征您正在寻找的内容,那么对每个时间序列进行特征检测。您想要作为输出的是另一对时间序列,它指示您感兴趣的特征出现的时间。获得这些特征时间序列后,将它们关联起来。

祝你好运!