【Audio音频兴趣拓展】麦克风阵列_声音定位

一般来说,基于麦克风阵列的声源定位算法划分为三类:一是基于波束形成的方法;二是基于高分辨率谱估计的方法;三是基于声达时延差(TDOA)的方法。

波束形成(Beamforming)

基于最大输出功率的可控波束形成技术 Beamforming,它的基本思想就是将各阵元采集来的信号进行加权求和形成波束,通过搜索声源的可能位置来引导该波束,修改权值使得传声器阵列的输出信号功率最大。这种方法既能在时域中使用,也能在频域中使用。它在时域中的时间平移等价于在频域中的相位延迟。在频域处理中,首先使用一个包含自谱和互谱的矩阵,我们称之为互谱矩阵(Cross-Spectral Matrix,CSM)。在每个感兴趣频率之处,阵列信号的处理给出了在每个给定的空间扫描网格点上或每个信号到达方向(Direction ofArrival,DOA)的能量水平。因此,阵列表示了一种与声源分布相关联的响应求和后的数量。这种方法适用于大型麦克风阵列,对测试环境适应性强。

Beamforming 的基本工作原理图:

上图说明:使用波束形成算法,先决条件是远场声源(近场声源用 TDOA),这样可以假设入射声波都是平行的;平行的声场,如果入射角度与麦克风平面垂直,则能同时到达各个麦克风,如果不垂直,则出现图 1 的现象,声场到达每个麦克风都会有延时,这个延时大小是由入射角度而定。

 

从该图中可看出:不同的入射角度,叠加出来的最终波形强度是不一样的。如θ=-45 度,几乎没有信号,θ=0 度,微微有点信号,θ=45 度,信号达到最强。这说明把原来没有极性的单支麦克风组装成一个阵列后,整个阵列是有极性的,可以引出下一个极性图。

上图说明:每个麦克风阵列都是一个方向阵,这个方向阵的指向性可通过时域算法Delay&Sum 简单实现,控制不同的 Delay,实现不同方向的指向。这个方向阵指向可控相当于给了一个空间滤波器,可以先把定位区域进行网格划分,再通过每个网格点的 Delay 时间对各个麦进行时域 Delay,并最终把它 Sum 起来,就可以算出每个网格的声压,最终得到每个网格的相对声压,就可以出噪声源定位的全息彩图了。

基于高分辨率谱估计

基于高分辨率谱估计的方法包括了自回归 AR 模型、最小方差谱估计(MV)和特征值分解方法(如 Music 算法)等,所有这些方法都通过获取了传声器阵列的信号来计算空间谱的相关矩阵。在理论上可以对声源的方向进行有效估计,实际中若要获得较理想的精度,就要付出很大的计算量代价,而且需要较多的假设条件,当阵列较大时这种谱估计方法的运算量很大,对环境噪声敏感,还很容易导致定位不准确,因而在现代的大型声源定位系统中很少采用。

声达时间差(TDOA)

声达时间差(TDOA)的定位技术,这类声源定位方法一般分为二个步骤进行,先进行声达时间差估计,并从中获取传声器阵列中阵元间的声延迟(TDOA);再利用获取的声达时间差,结合已知的传声器阵列的空间位置进一步定出声源的位置。

下图解释了 TDOA 的基本工作原理。

 

红点是噪声源,黑点是麦克风,噪声源到两个麦(如麦 1,麦 3)的时延是一个常数,通过这个常数,我们可以画出绿色的双曲线,噪声源到麦 3,麦 2 的时延是另一个常数,同样地,我们可以画出黑色曲线,两条曲线相交,就是噪声源的位置。

这种方法的计算量一般比前二种要小,更利于实时处理,但定位精度和抗干扰能力较弱,适合于近场,单一音源,而且不是重复性的信号,如语音信号,微软 XBOX360 的 kinect 的麦阵(4 个间距不等的一维阵)就是典型的 TDOA 算法应用。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值