一种可适应运动声源的分布式汽车鸣笛声实时定位系统

2022-07-06 08:09郑力国凌小峰张雪芹
关键词:声源鸣笛定位精度

肖 坛, 郑力国, 凌小峰, 张雪芹

( 1. 华东理工大学信息科学与工程学院,上海 200237;2. 上海汽车集团技术中心,上海 201804)

随着城市文明程度的提高,汽车鸣笛声造成的噪声污染问题越来越受到关注。基于传声器阵列的声源定位技术可以帮助交通执法部门快速、准确地锁定违章鸣笛车辆的方位,具有广泛的应用价值[1]。基于传声器阵列的高精度声源定位方法主要包括波束形成法、声全息法和到达时间差法(Time Difference of Arrival, TDOA)[2-4]。波束形成法是将传声器采集到的信号进行滤波处理、加权叠加后形成波束,通过扫描整个声音域能够得到功率分布图,从而得到声源位置[5]。Meng等[6]提出了利用压缩波束形成(Compressive Beamforming, CB)重建快速移动的声源信号,该方法基于伪随机传声器阵列,具有较低的重建误差,但是随着声源与传声器阵列间距离的增加,重建效果会恶化。Zhang等[7]针对风力发电机的声源定位与跟踪问题,提出了一种基于经典波束形成理论的瞬时速度和延迟方位角旋转校正算法对旋转声源进行定位和跟踪,该算法能够实时精确跟踪和识别风力机叶片声源。Ning等[8]提出了一种快速完成交叉谱矩阵的非迭代分块厄米特矩阵补全(Block Hermitian Matrix Completion, BHMC)方法来实现非同步测量波束形成的声源定位,该方法可以获得主瓣狭窄、无副瓣的源映射,计算时间会随着非同步测量次数的增加而缓慢增加。基于波束形成的定位方法对持续发声的运动声源定位效果较好,随着阵列规模的增加也可以做到较高的空间分辨率,是目前汽车鸣笛声抓拍的主流方法,已经有较多的实际应用案例[9]。但是该方法需要大量的传声器,且大规模阵列波束的形成处理过程复杂,对平台的运算能力要求很高,仍然存在设备成本高、体积和质量较大,且安装与维护困难等方面的不足。

声全息法通过全息面数据的采集和数据处理重构出整个声场,进而确定声源位置[10]。Aujoguo等[11]为了测量板状结构的振动情况,提出了应用时空近场声全息法(Time-Space Domain Nearfield Acoustical Holography, TSD-NAH),从声源测量中恢复平面声源的瞬态法向速度。Valdivia[12]为了重建任意形状振动表面的声场,提出了基于时域边界元法(Time Domain Boundary Element Method, TDEM)的近场全息技术。张揽月等[13]对基于球面传声器阵列的噪声源定位方法进行了研究,提出了球面近场声全息和球谐函数模态展开聚焦波束形成联合噪声源定位识别方法,在宽频带范围内定位性能良好。与波束形成法类似,声全息法也需要大量的传声器,对平台的计算能力要求很高。

TDOA是通过不同传声器接收到声源信号的时间差来确定位置,该方法理论上仅需3个传声器便可完成二维空间中的声源定位,具有所需阵列规模小、定位精度高、且计算量小的显著优点,在实现精确声源定位系统的低成本和小型化上具有很大的潜力。Boora等[14]提出了一种基于TDOA的多源定位方法,该方法利用体积映射解决了多源的TDOA关联的模糊性,并消除了求解复杂的双曲方程进行位置估计的需要。张焕强等[15]提出了一种基于TDOA的汽车鸣笛声定位方法,该方法仅需要5个传声器阵元就可以实现汽车鸣笛声的准确定位,其关键步骤是基于广义互相关的时差估计。然而由于运动车辆的多普勒效应会导致广义互相关时差估计精度急剧恶化,因此该方法仅限于静止或低速运动的车辆,难以适应运动车辆的场景。杨殿阁等[16]为了解决运动声源的精确TDOA定位问题,提出了一种运动声源快速定位方法。该方法通过多普勒效应消除来提升TDOA估计的精度,较好地解决了TDOA难以用于运动声源定位的问题,但是该方法所设计的多普勒效应消除算法运算复杂度非常高,难以满足定位的实时性需求。

本文提出了一种基于分布式传声器阵列的运动声源实时定位系统。首先针对TDOA算法受多普勒效应影响难以对运动声源实时定位的瓶颈问题,将各传声器接收的声音到达频率(Frequency of Arrival,FOA)应用到定位算法中,提出了一种基于TDOAFOA的快速定位算法。该算法建立在TDOA算法的基础上,只需要少量的传声器单元即可实现精确的笛声定位。在低速时主要依靠TDOA算法实现定位,在高速时也无需进行复杂的多普勒效应消除,而是有效利用高速时的多普勒效应引起的FOA变化来辅助实现运动声源的精确定位,从而有效适应静止和运动声源定位场景,并且具有较好的实时性。在此基础上进一步设计了基于分布式同步采集和云端音频处理的运动声源实时定位系统,在云端对分布式传感器的原始数据进行精确的相关处理来实现精确的TDOA计算和FOA参数测量,并且可以利用云端强大的计算能力达到更好的实时性。仿真和现场实验结果表明,本文提出的基于分布式传声器的运动声源实时定位系统能够适应汽车非法鸣笛声定位的场景,达到2 m以内的精度,并且具有可扩展性和灵活性。

1 系统设计

定位系统由声音采集和云端处理两部分组成,如图1所示。其中,声音采集部分利用分布式传声器阵列获取不同位置的声音信号,与传统的集中式传声器阵列相比,分布式传声器阵列所需传声器数量更少、布置更加灵活,当然也面临着多传声器的同步采集问题。该系统利用GNSS同步时钟来实现传声器间的时间同步,将采集的声音信号按秒组帧并用当前读取的GNSS时间打时间戳,利用GNSS时钟10 ns量级的授时精度,每秒对本地时钟进行校准,可利用常规晶振实现10 μs量级的同步精度,完全满足声音信号同步采集的要求。云端部分完成声音存储及定位解算等关键工作,传声器采集到的声音文件通过网络发送到云端的数据库中,利用云端的计算资源对云端存储的声音信号进行处理,最终实现对目标声源的定位。

图1 定位系统设计Fig. 1 Design of positioning system

与现有的基于集中式传声器阵列的汽车鸣笛声定位系统不同,该系统采用分布式传声器阵列,大幅降低了传声器的使用规模;与此同时将云计算应用到声源定位系统中,最大限度地降低了终端设备的计算资源要求,不仅有助于节约硬件和算力成本,而且具有良好的灵活性与可扩展性。

2 鸣笛声定位算法

图2示出了分布式汽车鸣笛声定位系统的声源测量时空模型。传声器放置在道路两边,汽车以速度v在道路上运动,运动方向与道路方向一致。从声源位置到第i个传声器mi(i=1,2,3,4,···)的距离为ri,由于距离不同,声音到达各个传声器的时间也不同,通过相关算法即可得到到达时间差。传声器mi接收的FOA为Fi,当声源与传声器之间发生相对运动时,各传声器接收到的Fi相对于声源的频率也将发生相对偏移,该现象称为多普勒效应。利用基于TDOA和多普勒信息差的快速定位算法,可以对静止或运动的声源进行定位。

图2 声源测量时空模型Fig. 2 Spatio-temporal model of sound source measurement

2.1 基于TDOA的定位算法

由于基于TDOA的定位算法具有设备简单、计算量小、定位精度高等优点,在定位系统中得到了广泛的应用,该算法的关键步骤是时延估计和位置估计。

时延估计是为了得到声源到达不同传声器的时间差,时延估计的准确性对定位的精度有直接影响。广义互相关是应用广泛的时延估计方法[17],通过参考传声器与任一非参考传声器接收到的声音信号进行相关处理,最终得到TDOA的值。该方法具有计算量小、运算速度快的优点,可以适应实时性的要求。

假设声源信号为s(n),φ1、φ2为两个传声器接收到的加性噪声信号,且互不相关;声波从声源位置到两个传声器的传输增益为α1、α2;传播时间为τ1、τ2,则两个传声器接收到的信号y1(n)和y2(n)为

y1(n)和y2(n)的互相关函数Ry1,y2(τ)以及互功率谱函数Gy1,y2(ω)可分别表示为

其中:E[·]为数学期望;Y1(ω)、Y2(ω)分别为y1(n)、y2(n)的傅里叶变换;Y2*(ω)表示Y2(ω)的共轭。

根据互相关函数与互功率谱函数之间的关系,可知引入频域加权函数W(ω)的广义互相关的表达式为

其中W可由滤波进行替代。

当互相关函数R(τ)取得最大值时,此时的τ就是声音从声源位置到达两个传声器的TDOA,广义互相关算法步骤如图3所示,其中FFT为傅里叶变换。

图3 广义互相关算法流程图Fig. 3 Flowchart of generalized cross correlation algorithm

在得到时延估计TDOA后,可以采用经典的Chan算法[18]进行位置估计。该算法是非递归双曲线方程组解法,具有解析表达式解,并且计算量小。如图2所示,鸣笛声的位置坐标S= [x,y],传声器mi的位置坐标mi=[xi,yi],传声器位置mi到声源位置S的距离ri为

那么非参考传声器mi(i= 2,3,···)与参考传声器m1到声源位置的距离差ri,1为

其中:c为声音的传播速度大小;τi,1为声源达到传声器mi与m1的时间差。

由式(5)和式(6)可以得出:

其中:xi,1=xi−x1;yi,1=yi−y1;Ki=xi2+yi2。

若仅有3个传声器,在二维空间内对鸣笛声进行定位,联立方程(7)、(8)并求解就可得到声源的位置。当传声器的数目n≥4时,则需要根据式(7)、(8)进行两步加权最小二乘法,最终得到鸣笛声的位置估计。

2.2 基于TDOA-FOA的快速定位算法

当声源与传声器之间发生相对运动时会引起多普勒效应。从系统的角度来看,当声源运动时,尽管系统仍然是线性的,然而是时变的。当声源沿着道路以速度v运动时,在t时刻声源位于S(t)处,但是此时传声器m所接收到的声音是声源位于S(t−τ)处发出的声音,其中τ=r(t−τ)/c,r(t−τ)为传声器m到声源位置S(t−τ)的距离。根据莫尔斯理论声学可知传声器接收到的声压信号为

其中:M=v/c是声源运动的马赫数;q(t−τ)和q’(t−τ)分别为声源强度函数及其导数;θ(t)为声源到传声器的矢量与运动方向的夹角。

由此可知,多普勒效应会对声音信号之间的相位关系产生影响,还会将声音拉长或压缩,这就导致无法利用互相关算法准确地求出到达时间差,因此对于静态或者是准静态声源定位具有良好效果的TDOA定位算法在运动声源定位中无法达到预期效果。

多普勒效应导致了幅值和相位的偏移,但是也带来了其他信息。由理论声学可知,传声器mi接收到的声音频率Fi与声源发出信号的频率f的关系为

为了满足不同运动情况下的定位要求,本文提出了基于TDOA-FOA的快速定位算法。在汽车鸣笛声定位的场景中,汽车的运动方向一般和道路一致,因此声源运动方向可以认为是已知的。根据TDOA和式(6)能够求得声源到非参考传声器mi和参考传声器m1之间的距离差ri,1。将声源面进行离散化处理,分为多个网格,假定某个网格的中心坐标[x0,y0]就是鸣笛声的实际位置,由式(5)可以得到假设位置到非参考传声器mi和参考传声器m1之间的距离差Ri,1,Ri,1与ri,1的偏差度为

同时假设位置与不同传声器对应的θi也可以得到,根据式(10),利用m1和m2的FOA,可以得到速度大小以及声源频率的估计v0和f0。由此可以得到传声器mi(i≥3)接收的声音信号估计频率Fi,0,其与传声器真实接收频率Fi的差的模为

当传声器数量为n(n≥ 3)时,可以得到基于TDOA和FOA的代价函数D1以及D2:

遍历整个声源平面就可以得到D1(x,y)、D2(x,y)。当D1取得最小值时,对应的位置就是基于TDOA的估计位置S1;当D2取得最小值时,对应的位置就是基于FOA的估计位置S2,此外还可以得到速度估计v。将速度估计与阈值vth比较,以确定鸣笛声位置,通过实验得到vth=3 m/s时算法定位精度最高。当v<vth时,认为TDOA的可信度更高,鸣笛声位置S=S1;当v≥vth时,鸣笛声位置S=S2。

传声器距离声源越近,传声器接收到的声音能量越大,由此可知声源位于接收声音信号能量最大的传声器位置附近。为了进一步提高该算法的实时性,可先通过能量检测,对声源位置进行预估计,以缩小搜索的范围。此外,当定位范围很大时,需要布置更多的传声器,但是在某次具体的定位中,由于声音的衰减比较快,若某些传声器距离声源过远,可能无法接收到良好的声音信号,利用这些信号对声源进行定位可能会导致更大的误差,所以通过能量检测还可以去掉冗余的信号,提高定位精度及效率。TDOA-FOA算法的具体流程如图4所示。

图4 TDOA-FOA快速定位算法流程图Fig. 4 Flowchart of fast location algorithm based on TDOA-FOA

与文献[16]中应用多普勒消除算法将声音信号还原、再利用TDOA的方法计算声源位置相比,TDOA-FOA的计算量显著减少,进而大大降低了计算耗时。该方法的定位精确程度取决于声源所在平面的网格划分,网格的数量增加可以提高定位的精度;但是网格的数量过多时,计算量会显著增加,进而影响定位的实时性,在实际选取时,应根据期望的声源定位精度和运算时间来合理选取网格大小。

3 实验验证

传声器的数量以及位置对声源定位的精度有重要影响,由于本文针对的定位目标是汽车鸣笛声,因此传声器一般布置在道路两边。为了验证传声器数量对定位精度的影响,在传声器数量不同的情况下,对TDOA-FOA快速定位算法进行了仿真。假设需要定位的范围为宽15 m、长50 m的马路,不同数量的传声器交错均匀分布在道路两侧(如图2所示),这种布局在能量检测后,需要搜索的范围更小。传声器的高度与汽车喇叭的高度一致。汽车鸣笛声的频率一般在1800~3550 Hz,在仿真平台下,设计了一个200 ms、2500 Hz的单频声源代替鸣笛声,采样频率为48 kHz,加入30 dB的背景白噪声。声音的传播速度为340 m/s,网格的大小为0.5 m×0.5 m,分别对静止和运动速度为10 m/s的声源进行定位仿真,每种情况都进行200次仿真,结果如表1所示。从实验结果可以看出,当传声器数量过少时,运动定位误差很大;当传声器数量达到4个时,定位精度就可以满足鸣笛声定位的要求,再增加传声器的数量并不能明显地提升定位精度,因此从经济性以及定位精度的需求方面考虑,选用4个传声器较为合适。

表1 传声器数量对定位精度的影响Table 1 Influence of microphone numbers on positioning accuracy

为了验证TDOA-FOA快速定位算法的有效性,对不同运动速度声源的定位进行仿真实验,并与Chan算法[18]进行比较。网格间隔为0.5 m×0.5 m,每个速度都进行了200次仿真实验,实验结果如图5所示。4个分布式传声器位置的测量误差为5 cm,利用前文加噪的单频声源代替鸣笛声,在静止的情况下其TDOA估计误差在1 ms左右。根据式(9)可知,随着声源运动速度的增加,各传声器接收到的声音信号变化愈大,进而导致TDOA估计误差会逐渐增大,FOA的估计误差为1 Hz。

图5 定位算法仿真结果比较Fig. 5 Comparison of localization algorithms simulation results

从仿真结果可以看出,在运动速度不同的情况下,TDOA-FOA快速定位算法的定位精度在2 m以内。声源在静止或准静止的情况下,Chan算法的定位效果很好,随着速度的增加,Chan算法的定位误差会迅速增大。与之相比,TDOA-FOA快速定位算法在准静止和高速运动的情况下,定位效果很好,在运动速度为3 m/s左右时,该算法定位效果略差,这种情况主要是由于运动导致TDOA误差较大,同时因为速度较慢,各传声器的FOA差异较小,因此无论是利用TDOA还是FOA都有较大的误差。

为了验证网格大小对TDOA-FOA算法的精度和定位速度的影响,在网格大小不同的情况下进行了仿真实验,其中需要遍历的范围为15 m×30 m,声源运动速度为10 m/s,FOA误差的标准差为1 Hz,实验结果如表2所示。实验结果表明基于TDOA-FOA的运动声源快速定位算法计算量小,遍历整个平面的计算耗时能够达到毫秒级,满足实时定位的要求。

表2 网格大小对定位精度和计算耗时的影响Table 2 Influence of grid size on positioning accuracy and computing time

为了进一步检验本文方法在实际应用中对汽车鸣笛声的定位效果,将其与文献[16]中的基于声达时差的运动声源快速定位(Fast Moving Time DifferenceOf Arrival, FMTDOA)算法进行了比较,并利用户外实验进行了验证。实验采用的车辆为东风标致3008,其鸣笛声的时频特性如图6所示。汽车以不同的速度行驶,利用4个布置在道路两侧的手机传声器采集声音,通过4G网络将声音信号发送至云端数据库,最终利用云计算完成定位算法得到位置估计,实验场景如图7所示。手机固定在路边的树上,高度与汽车喇叭的高度一致,其具体位置如图8所示。云计算采用阿里云ECS服务器的2核4G虚拟CPU,实验结果见表3,表中的null表示该方法不适用这种情况,故没有定位结果。

表3 实验结果Table 3 Experimental results

图6 鸣笛声的时频特性Fig. 6 Time-frequency characteristis of whistle sound

图7 实验场景Fig. 7 Experimental scene

图8 手机位置Fig. 8 Location of mobile phones

从实验结果可以看出,与FMTDOA算法相比,本文算法计算耗时大幅减小,耗时控制在10 ms量级,在静止和高速运动的情况下定位精度在1 m以内,低速情况定位误差也可以保证在2 m以内,能够有效地对不同运动状态的鸣笛声进行定位,可以较好地满足对鸣笛声定位的精度及实时性要求。需要说明的是,虽然本实验只对单个车辆进行了定位实验,但是由于本文提出的方法采用互相关算法进行时差和频差估计,只要同时鸣笛的多辆车笛声信号之间相互独立,就可以适应多目标同时定位的场景;当然,由于典型的汽车鸣笛声多为双音信号,在信号制式上较为相似,尤其是同一车型的目标笛声频率也基本相同,很难通过互相关算法区分不同目标的时差和频差估计值,因此本文提出的方法在实际应用中仍会存在难以适应笛声频率非常接近的同时鸣笛车辆定位场景的问题。

4 结束语

本文提出了一种基于云计算的分布式运动声源实时定位系统,通过分布式传声器获取声源信息,并将其发送到云端数据库进行存储,最后利用云计算实现联合定位算法得到声源的位置估计。为了满足不同运动状态的鸣笛声实时定位的需求,提出了基于TDOA-FOA的快速定位算法,该算法在现有TDOA算法基础上进一步利用运动导致的多普勒频差来辅助定位,成功突破了TDOA算法难以适应高速运动场景的瓶颈问题,同时将算法复杂度仍保持在较低的水平。外场实验结果表明,系统仅需数10 ms就可完成对运动声源的快速定位,且系统对0~70 km/h车速的声源目标的定位精度都保持在2 m以内,可以较好地满足汽车鸣笛声定位的实时性和精度需求。本研究工作为短时发声的运动声源提供了一种经济、灵活的快速精确定位方法。需要特别说明的是,该方法的高性能、低成本特性不仅来自于本文提出的系统方案和算法本身,还建立在以北斗和GPS为代表的全球定位和授时系统,以及近年来蓬勃发展的高效能的物联网和云计算等信息基础设施之上。

猜你喜欢
声源鸣笛定位精度
管道有源噪声控制中壁面分布次级声源的空间分布优化
北方海区北斗地基增强系统基站自定位精度研究
小米8手机在城市环境下的单点定位精度研究
虚拟声源定位的等效源近场声全息算法
一种基于麦克风阵列用于分离单极子和偶极子声源的方法
低成本GNSS接收机机载单点动态定位精度评估
庚子清明国祭(二)
GPS定位精度研究
GPS定位精度研究
室内声音导航系统