考虑以下 4 个波形信号:
signal1 = [4.1880 11.5270 55.8612 110.6730 146.2967 145.4113 104.1815 60.1679 14.3949 -53.7558 -72.6384 -88.0250 -98.4607]
signal2 = [ -39.6966 44.8127 95.0896 145.4097 144.5878 95.5007 61.0545 47.2886 28.1277 -40.9720 -53.6246 -63.4821 -72.3029 -74.8313 -77.8124]
signal3 = [-225.5691 -192.8458 -145.6628 151.0867 172.0412 172.5784 164.2109 160.3817 164.5383 171.8134 178.3905 180.8994 172.1375 149.2719 -51.9629 -148.1348 -150.4799 -149.6639]
signal4 = [ -218.5187 -211.5729 -181.9739 -144.8084 127.3846 162.9755 162.6934 150.8078 145.8774 156.9846 175.2362 188.0448 189.4951 175.9540 147.4631 -89.9513 -154.1579 -151.0851]
我们注意到信号 1 和 2 看起来相似,而信号 3 和 4 看起来相似。
我正在寻找一种算法,将 n 个信号作为输入并将它们分成 m 个组,其中每组内的信号相似。
这种算法的第一步通常是为每个信号计算一个特征向量。
例如,我们可以将特征向量定义为:[width, max, max-min]。在这种情况下,我们将得到以下特征向量:
在决定一个特征向量时,重要的是相似的信号得到彼此接近的特征向量,而不同的信号得到相距很远的特征向量。
在上面的例子中,我们得到:
因此,我们可以得出结论,信号 2 与信号 1 比信号 3 更相似。
作为特征向量,我还可以使用信号离散余弦变换中的术语。下图显示了信号以及离散余弦变换的前 5 项对信号的近似:
这种情况下的离散余弦系数为:
F1 = [94.2496 192.7706 -211.4520 -82.8782 11.2105]
F2 = [61.7481 230.3206 -114.1549 -129.2138 -65.9035]
F3 = [182.2051 18.6785 -595.3893 -46.9929 -236.3459]
F4 = [148.6924 -171.0035 -593.7428 16.8965 -223.8754]
在这种情况下,我们得到:
该比率不如上面更简单的特征向量那么大。这是否意味着更简单的特征向量更好?
到目前为止,我只展示了 2 个波形。下面的图表显示了一些其他的波形,它们可以作为这种算法的输入。将从该图中的每个峰中提取一个信号,从峰左侧最近的最小值开始,到峰右侧最近的最小值处停止:
例如,信号 3 是从样本 217 和 234 之间的该图中提取的。信号 4 是从另一个图中提取的。
如果你很好奇;每个这样的图对应于空间中不同位置的麦克风的声音测量。每个麦克风接收相同的信号,但信号在时间上略有偏移,并且在麦克风之间发生失真。
可以将特征向量发送到诸如 k-means 的聚类算法,该算法将具有彼此接近的特征向量的信号组合在一起。
你们中的任何人对设计一个擅长区分波形信号的特征向量有任何经验/建议吗?
您还会使用哪种聚类算法?
提前感谢您的任何答案!