到达两个麦克风的信号之间的频率相关相位差

信息处理 阶段
2022-02-05 10:38:17

我希望计算信号(可能是周期性的,也可能不是周期性的)到达立体声麦克风对的左右声道之间的时间差,该立体声麦克风对保持在大约 30 厘米的距离。我这样做是为了定位声源。

我计算左声道和右声道的 FFT,然后在感兴趣的特定频率区间找到 FFT 的值。然后,我将(复数)值相除以获得以弧度为单位的相位差。然后我将相位差转换为时间差(时间差 = 相位差 / 2* pi)并使用它来计算声源的到达角。

与查找时差的互相关方法相比,这种计算时差的方法可能会出现哪些歧义?

由于相位差的频率依赖性,我使用这种方法而不是互相关。

2个回答

对于恒定的时间差,在两个窗口中心测量的展开相位差与频率线性相关。(要测量 FFT 窗口中心的相位,请在 FFT 之前使用 fftshift,或翻转奇数 FFT 结果箱的相位。)因此您可以使用所有 FFT 结果,而不仅仅是一个箱。如果信号足够宽带,则低频单元可能有助于确定较高频率单元的潜在模糊相位展开。

我认为您的方法不会非常有效。查看这篇关于检测不同类型信号相位的帖子。该链接表明,对于更复杂的信号,使用 FFT 检测相位是一种糟糕的方法。

我建议使用更标准的基于波束形成的 DOA 方法,例如延迟和求和波束形成器。如果数学看起来有点混乱,有一个Matlab 工具箱可以提供帮助。但是,当您对宽带源(音频,20Hz-20kHz)中的窄带(即一个频率)感兴趣时,我建议先对音频数据应用带通滤波器,然后再执行 DOA 算法。

还要记住,为了避免空间混叠,麦克风之间的距离必须 <其中是感兴趣频率的波长。在 30cm 处,您可以毫无歧义地定位的最高频率约为 560Hzλ2λ