假设我对一些信号进行了采样,并为每个信号构造了一个采样向量。计算这些向量的(dis)相似性的最有效方法是什么?注意,采样的偏移量不能计数,例如sin和cos信号的采样向量应该被认为是相似的,因为它们在顺序上是完全相同的。
有一种简单的方法可以做到这一点,即“滚动”其他向量的单位,计算每个滚动点的欧几里得距离,最后选择最佳匹配(最小距离)这个解决方案工作得很好,因为我的唯一目标是从向量池中为输入信号找到最相似的样本向量。
然而,当向量的维数增加时,上述的解决方案也非常无效。与n维向量的非序贯向量匹配相比,序贯向量的向量距离计算量要大n倍。
是否有更高/更好的数学/算法来比较具有不同偏移量的两个序列?
这方面的用例将是som的序列相似性可视化。
编辑:比较每个向量的积分和熵怎么样?两者都是“序列安全”(=时间不变?)计算速度很快,但我怀疑它们本身是否足以区分所有可能的信号。除了这些,还有什么可以用的吗?
伊迪丝2:维克多·扎曼尼亚的回答并不是直接的答案,但它给了我一个可能的想法。解决方案可能是通过计算原始信号的傅里叶变换系数并将其插入样本向量来对原始信号进行采样。第一个元素(xu 0)是信号的平均值或“电平”,下面的元素(xu n)可以直接用于比较与其他样本向量的相似性。n越小,它在相似性计算中的作用就越大,因为用ft计算的系数越多,ft的信号就越精确。这就引出了一个额外的问题:
假设我们有ft-6采样向量(值刚从天上掉下来)
x={4,15,10,8,11,7}
y={4,16,9,15,62,7}
这些向量的相似值可以这样计算:16-15+(10-9/2)+(8-15/3)+(11-62/4)+(7-7/5)
那些粗体字是加分问题。有没有其他方法可以知道每个ft系数对其他系数的相似性有多大影响?
最佳答案
如果我正确地理解了您的问题,也许您会对某种cross-correlation实现感兴趣我不确定这是否是最有效的方法,也不确定是否符合目的,但我想我会提到这一点,因为它似乎是相关的。
编辑:也许Fast Fourier Transform (FFT)是一个选项?傅立叶变换对于区分信号是很好的,我相信它也有助于找到相似的信号。正弦波和余弦波在实平面上是相同的,只是有不同的虚部(相位)ffts可以在o(n logn)中完成。