【发布时间】:2026-01-29 18:00:01
【问题描述】:
假设我已经对一些信号进行了采样,并为每个信号构建了一个样本向量。计算这些向量的(不)相似度的最有效方法是什么?请注意,采样的偏移量不能计算在内,例如 sin 和 cos 信号的采样向量应该被认为是相似的,因为它们在顺序上是完全一样的。
有一种简单的方法可以做到这一点,即“滚动”另一个向量的单位,计算每个滚动点的欧几里德距离,最后选择最佳匹配(最小距离)。这个解决方案工作得很好,因为我唯一的目标是从向量池中找到输入信号最相似的样本向量。
但是,当向量的维数增长时,上述解决方案也非常无效。与 N 维向量的“非顺序向量匹配”相比,顺序匹配的向量距离计算要多 N 倍。
是否有任何更高/更好的数学/算法来比较具有不同偏移量的两个序列?
这方面的用例是使用 SOM 进行序列相似性可视化。
编辑:比较每个向量的积分和熵怎么样?它们都是“序列安全的”(= 时不变的?)并且计算速度非常快,但我怀疑它们本身是否足以区分所有可能的信号。除了这些,还有什么可以使用的吗?
EDIT2: Victor Zamanian 的回复不是直接的答案,但它给了我一个可能的想法。解决方案可能是通过计算它们的傅里叶变换系数并将它们插入到样本向量中来对原始信号进行采样。第一个元素 (X_0) 是信号的平均值或“水平”,随后的 (X_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 系数对与其他系数的相似性有多大影响?
【问题讨论】:
-
我可能误解了最后一部分,但在我看来,这些大胆的分母并不本能地代表频域中两个信号之间的差异。 FT系数|C_k|仅仅是 k 处频率的幅度。也许您可以计算两个 DFT 中频率幅度本身之间的差异?并将其存储在一个新的向量中?甚至可能对该向量中的值求和?这可能取决于也可能不取决于您对哪种差异感兴趣。但我当然不是专家!不要把我的话当真! :-)
标签: algorithm math vectorization som self-organizing-maps