如何比较和衡量两个信号之间的相似度?

信息处理 互相关 时间序列
2022-02-07 14:00:54

我正在研究不同的传感器数据,问题是:我有两个信号(来自两个不同的传感器,测量同一“对象”的两个不同的物理特性)。我知道两个信号之间存在一定的时间延迟,但除此之外,我只想知道如何正确地关联两个信号,以便正确了解两者的相似性信号。此外:我可以修改信号 sens1 以预测(如果是实时或为了进行后处理)信号 sens2?python中是否有任何特定的工具或包可以轻松进行这种类型的比较?

提前谢谢你,

BR 信号示例

2个回答

DTW 方法适用于在数据捕获期间对相似信号的观察之间存在加速或减速的信号,并且除了“时间扭曲”的失真之外,还将显示信号的相似与否。

我不确定这是否是这种情况下的最佳方法,因为没有任何迹象表明传感器之间的时间速率会发生变化(尽管对于第二个订单,采样时钟不会与采样时钟完全匹配 ,则 DTW 可能很有用,其中是我们将使用相关性的捕获长度,我将在下面描述)。1/TT

这看起来像是互相关函数的理想应用,它将显示两个波形之间每个时间偏移的相关性。这是通过首先从每个波形中去除平均值,然后将两个生成的零均值波形逐个元素相乘并将结果相加来完成的,重复波形之间每个可能的样本偏移。这些结果可以通过两个波形的标准偏差的乘积来缩放,这将使结果归一化,类似于在 Pearson 相关系数中所做的。

另一种类似的方法是使用 Wiener-Hopf 方程来求解两个波形之间的等效“通道”,我在这篇评估两个麦克风接收到的信号的帖子中对此进行了更详细的解释:

补偿音频信号中的扬声器频率响应

为了测量两个时间信号之间的相似性,您可以尝试使用动态时间规整 (DTW)DTW 构造两个信号之间的距离矩阵,并试图找到两个信号的最小距离。如果两个信号相同,则距离为零。

第二个问题的答案取决于用于生成这些信号的信号模型。从问题中不清楚来自传感器#1 和#2 的信号是如何产生的。