【发布时间】:2015-02-25 17:08:59
【问题描述】:
已编辑问题
我有 n 个长度相等的信号。
X_signal
Y_signal
...
Z_signal
我计算这些信号的最小值并将它们的位置(及时)存储在向量中
X = [x1 x2 x3 x4 ... x100]
Y = [y1 y2 y3 y4 ... y150]
...
Z = [z1 z2 z3 z4 ... z110]
您可以将 X、Y、..Z 视为具有不同长度的时间序列。 如果它们的最小值几乎在相同的位置,我假设原始信号是相似的。
我想知道测量这种相似性的聪明方法是什么,记住 X、Y、Z 中的一些最小值可能只是噪声。
例如,如果 X = [1 5 8 12 15 20] 和 Y = [1.5 5.5 7.5 10 12 15.5 20.2] 它们应该是相似的,因为除了 Y(4) = [10 之外,几乎所有的点都具有相同的值].
如果你有 Matlab 中的时间码或伪代码,不胜感激,否则建议、链接等也很好。
谢谢
原始问题
我有 n 个不同长度的向量。
X = [x1 x2 x3 x4 ... x100]
Y = [y1 y2 y3 y4 ... y150]
...
Z = [z1 z2 z3 z4 ... z110]
向量(X Y ... Z)表示相应信号(X_energy、Y_energy 等)能量的最小值。
回顾从信号 X_signal、Y_signal ... Z_signal 开始,我计算 20 个样本的窗口中的能量,并计算得到的能量信号的最小值。
假设如果两个或多个向量具有几乎相等的值,则它们是相似的(即,如果 x1 ~= y1、x2 ~=y2 等,则 X 和 Y 相似)换句话说,我假设原始信号相似,如果它们在同一(或几乎同一)时刻具有最小能量。我想知道衡量这种相似性的聪明方法是什么。
PS。
- 两个向量相等几乎是不可能的,所以我想知道它们的“点”有多接近。
- 如果 X 和 Y 移位(即 x1~=y3、x2=~y4 等),它们也可能相似
- 值总是按升序排列
(x1<x2<...<x100)
如果你有 Matlab 中的时间码或伪代码,不胜感激,否则建议、链接等也很好。
谢谢
【问题讨论】:
-
Mahalanobis distance 会起作用吗?这只是我脑海中的一个建议。
-
当向量的长度不同时有什么方法?找到匹配的子向量?例如在 [1 4 5 3 7 8 6 7 8] 中找到 [3 7 8] 但要考虑它,因为它与 [3 7 8 6 7] 不太相似......似乎@987654322 @ 可以去,但要小心所有不同的尺寸......嗯,这是第一个想法......
-
@CitizenInsane 谢谢,我会尝试使用 xcorr。只是一个评论(我也编辑了这个问题)。向量的值按升序排列...您可以将它们视为时间序列
-
虽然@kkuilla 建议的马氏距离不考虑时间变化,但阅读
pdist中的指标和squareform中的结果格式是很有趣的 -
由于您对每个条目的确切值的相似性感兴趣,因此您想要评估的似乎不是共线性。相反,您可以利用向量之间的差异来计算 rms 或 mean(abs(diff))。
标签: matlab vector similarity