测量两个不同的(矢量)信号相似性

bie*_*nle 8 matlab signals signal-processing similarity

我正在寻找一种比较(测量)两种不同信号之间相似性的好方法.我不想找到一个信号到另一个信号的时间延迟,但我想知道它们是如何彼此相似的.例如,我有两个信号,比如说s1和s2.两个信号看起来非常相似,但是在一个信号中存在突然跳跃,导致信号的第二部分(也是主导信号)与第一部分相比具有偏移.

在此输入图像描述

当我使用交叉协方差和互相关时,它给我一个非常差的结果,即:

xcov(s1, s2, 0, 'coeff') ----> 0.2153
Run Code Online (Sandbox Code Playgroud)

然而,看看这两个信号,我们可以看到它们非常相似.事实上,如果只从样本中获取两个信号的交叉协方差(50->信号的结尾),结果非常好:

   xcov(s1(50:280), s2(50:280), 0, 'coeff') ----> 0.9666
Run Code Online (Sandbox Code Playgroud)

所以我猜这个问题是由于样本25周围的大跳跃(在红色信号中).

我的问题是:

  • 如何克服上述问题?
  • 交叉协方差(相关)是衡量两个信号之间相似性的好方法吗?
  • 还有其他办法吗?

非常感谢.我真的很感谢你的帮助!

Hes*_*aqi -1

您可以计算这两条曲线之间的面积。如果面积小,则曲线相似,如果面积大,则曲线不那么相似。

编辑:为了处理曲线“跳跃”和 DC 偏移情况,应在进行ICP(迭代最近点)对齐后计算两条曲线之间的面积。