多声源的 GCC-PHAT

信息处理 信号分析 互相关 延迟 声学 本土化
2022-02-12 14:03:01

GCC-PHAT 能否用于检测多个时间延迟(即同时具有多个声源)?gccphat(sig,refsig)函数的文档说它假定两者sigrefsig来自单一来源。

如果gccphat(sig,refsig)确实只能考虑单一来源,您能否推荐其他方法我可以尝试检测多个来源?我对这个领域相当陌生,所以我很感激所有的帮助。谢谢。

1个回答

广义互相关背后的理论 - GCC -(通常,不仅仅是它的 PHAT 版本)使用记录信号的互相关来估计它们之间的延迟。我相信您已经意识到这一点,但是如果您考虑到互相关不能始终区分信号流的不同(时间)分量(即不同的源)这一事实,这意味着该方法最适用于单一源.

Jonas Schwarz提出的方法是一种可能的解决方案,但它可能会或可能不会一直有效。我创建了两个不同的信号,每个信号由三个(不同的)谐波组成,并将其中一个相对于另一个延迟 450 个样本。然后我将它们相加并复制总和,并在 50 个样本的副本中添加延迟。最后,我添加了一点噪音(实际上并没有太大变化,但仍然是一个不错的尝试)。我使用的采样率为 1 KHz,因此很容易从采样转换为秒。你可以看到下面的图

海合会

如您所见,主要选择非常本地化,并且就在现场。现在,下一个更高的注释。给出的值大约是 560,这绝对是关闭的。当然,这是一个过于简单的例子,但正如您所看到的,您不能总是确定第二个峰值必然对应于第二个源。

在其他技术(例如宽带 MUSIC算法)中使用的另一种方法是将频谱划分为频带(例如使用傅里叶分析或滤波器组)并在每个频带中执行 GCC 算法。这假设在每个波段中只有一个源将占主导地位(在某种意义上,这与考虑非相干源相同)。从那里,您可以使用直方图(参见Delikaris-Manias 等人使用 2D DOA 直方图对多个音频源进行 3D 定位, Delikaris-Manias 等人使用空间约束活动强度向量的直方图分析进行 DOA 估计以及其中的参考资料)或任何其他方式来估计源的方向(甚至它们的数量)。

但是,您必须记住,如上所述,这并非在所有情况下都有效。关于如何使用获得的互相关函数的各种方法可以在D. Bechler 和 K. Kroschel的考虑使用麦克风阵列的多源 TDOA 估计的 GCC 函数中的第二个峰值和通过线性的时间延迟估计中找到J. Benesty 等人的插值和互相关

最后,一篇结构良好(当然在我看来)的论文是Pavlidi 等人的Real-Time Multiple Sound Source Localization and Counting using a Circular Microphone Array 。本文的作者提出了各种方法来解决定位问题(仅角度估计,而不是距离),以及各种效果很好的改进。请记住,这指的是圆形麦克风阵列。