我有麦克风在空间的许多不同位置随时间测量声音。被记录的声音都来自空间中的同一位置,但由于从源点到每个麦克风的路径不同;信号将(时间)偏移和失真。先验知识已用于尽可能好地补偿时间偏移,但数据中仍然存在一些时间偏移。测量位置越接近,信号就越相似。
我对自动对峰值进行分类很感兴趣。我的意思是我正在寻找一种算法,它可以“查看”下图中的两个麦克风信号,并从位置和波形“识别”两个主要声音并报告它们的时间位置:
sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot
为了做到这一点,我计划在每个峰值周围进行 Chebyshev 展开,并使用 Chebyshev 系数的向量作为聚类算法的输入(k-means?)。
作为一个例子,这里是在两个附近位置(蓝色)测量的时间信号的一部分,近似于两个峰值(蓝色圆圈)周围的 9 个样本(红色)的 5 项切比雪夫级数:
近似值非常好:-)。
然而; 上图的切比雪夫系数为:
Clu = -1.1834 85.4318 -39.1155 -33.6420 31.0028
Cru =-43.0547 -22.7024 -143.3113 11.1709 0.5416
下图的切比雪夫系数为:
Cll = 13.0926 16.6208 -75.6980 -28.9003 0.0337
Crl =-12.7664 59.0644 -73.2201 -50.2910 11.6775
我希望看到 Clu ~= Cll 和 Cru ~= Crl,但情况似乎并非如此 :-(。
也许还有另一个更适合这种情况的正交基?
关于如何进行的任何建议(我正在使用 Matlab)?
提前感谢您的任何答案!