一、人耳是如何进行声音定位的?
在当今科技高度发达的社会中,声音中蕴含的信息受到普遍关注。不论是炮弹的落点,轴承的异常啸叫,还是收音设备的自动跟随等方面,判断其声音产生的方位都是一个重要课题。
现阶段的声音定位技术大多是根据“人耳”发展而来的。人类单耳判断声源的方法是利用了耳廓对声音的反射使声波发生干涉,从而达到判断声音的目的。当然更多情况下是双耳判断方向,主要有时间差(ITD)和声级差(ILD)两种形式,我们简单解释一下。
人类两耳间的距离大约在16-18cm,时间差正是利用了这一点。当声音从左侧传来,左耳首先接收到信号,在零点几毫秒后,右耳接受到声音信号。虽然时间很短,但也能让人类判断声音产生的方向了。
声级差效应的原理与时间差类似。当声源在头部的右侧时,声波经过头部的衰减,到达左耳的声音强度就会减弱,这样人们就可以通过声音强弱辨别声音的方向了。
二、用机器代替耳朵
人耳对声源的定位精度毕竟是有限,而现实生活的需要只靠人耳已经满足不了,所以人们发明出声强探头和麦克风阵列等声源定位仪器。
声强探头可以看作是单个耳朵靠近声源在听,通过不断移动探头以确定声源的位置。更为常用的则是麦克风阵列,麦克风也叫做传声器,它相当于人的耳朵,但是比人耳要灵敏的多。在麦克风阵列上有几个到几千个麦克风,它们按照一定的规则排布构成,因此叫做麦克风阵列。麦克风感知声音的原理在我们之前的文章中介绍过,所以这里我们主要介绍它是怎样代替耳朵判断声音位置的。
三、麦克风阵列代替耳朵的原理
如何通过麦克风阵列判断声源位置呢?我们介绍一种简单的TDOA算法,它可以利用时间差进行定位,下面进行详细说明。
假定一个平面上有3个基站,分别是A1,A2和A3,而且A1、A2、A3的坐标已知,分别是(X1,Y1),(X2,Y2),(X3,Y3)。假设待定位声源Tag的位置是(x,y)。这样就可以得到待测点T到每个基站的距离:,其中i=0,1,2。
可以想到:求解点的位置,能够转化成求解两条曲线的交点,但由Ri的表达式组成的方程组显然无法求解,因为方程组中的未知量太多。不过距离差R2,1= R2-R1、R3,1= R3-R1是已知的,因为声音的传播速度已知,约为340米每秒,而且通过采集设备能够计算出声音到达各基站的时间,也就能求出距离差R2,1和R3,1了。那么有没有一种曲线与距离差有关呢?这就是双曲线。它的定义是平面上一点到两个定点的距离之差的绝对值是定值的点的轨迹,这种曲线适用于上述情景。如下图所示,(x,y)是待求解的点,到A1、A3的距离是定值可构成一条曲线,到A1、A2的距离是定值可构成一条曲线。所以在刚刚的平面上我们就能画出这样的两条曲线,而它们的交点就是我们T的位置(x,