文章编号:1006-3080(2022)03-0352-08DOI:  10.14135/jki.1006-3080.20210110002
一种可适应运动声源的分布式汽车鸣笛声实时定位系统
肖    坛1,  郑力国2,  凌小峰1,  张雪芹1
( 1. 华东理工大学信息科学与工程学院,上海 200237;2. 上海汽车集团技术中心,上海 201804)
摘要:针对违章鸣笛车辆的定位问题,提出了一种基于分布式传声器阵列的运动声源快速定位系统。采用全球导航卫星系统(GNSS )时钟实现传声器间的时间同步,并将同步采集的声音信息传送到云端数据库,应用云计算技术实现声源定位算法。相比于集中式传声器阵列,该系统可大幅降低传声器的数量和运算资源,具有成本经济、部署灵活的优点。采用基于到达时间差-到达频率的快速定位算法,充分利用多普勒效应导致的分布式传声器之间到达频率差异信息来克服到达时间差法难以适应运动声源的瓶颈,避免了计算复杂、运算量大的消除多普勒效应过程,具有运算复杂度低、且能适应高速运动声源的优点。系统仿真和现场实验结果均表明该系统能够实现对高速运动声源的快速精确定位,可较好地适用于汽车鸣笛声定位场景。
关键词:分布式传声器阵列;到达时间差;多普勒效应;运动声源定位;云计算中图分类号:TP391
文献标志码:A
随着城市文明程度的提高,汽车鸣笛声造成的噪声污染问题越来越受到关注。基于传声器阵列的声源定位技术可以帮助交通执法部门快速、准确地锁定违章鸣笛车辆的方位,具有广泛的应用价值[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]为了重建任意形状振动
收稿日期: 2021-01-10
作者简介: 肖 坛(1995—),男,安徽阜阳人,硕士生,主要研究方向为声源定位。E-mail :通信联系人: 凌小峰,E-mail :引用本文:  肖    坛, 郑力国, 凌小峰, 等. 一种可适应运动声源的分布式汽车鸣笛声实时定位系统[J]. 华东理工大学学报(自然科学版), 2022, 48(3):
352-359.
Citation : XIAO Tan, ZHENG Liguo, LING Xiaofeng, et al . A Distributed Real-Time Location System for Automobile Whistle Adaptive to Moving Sound
Source[J]. Journal of East China University of Science and Technology, 2022, 48(3): 352-359.
华 东 理 工 大 学 学 报(自 然 科 学 版)
Vol. 48  No. 3
352
Journal of East China University of Science and Technology 2022-06
张揽月等[13]对基于球面传声器阵列的噪声源定位方法进行了研究,提出了球面近场声全息和球谐函数模态展开聚焦波束形成联合噪声源定位识别方法,在宽频带范围内定位性能良好。与波束形成法类似,声全息法也需要大量的传声器,对平台的计算能力要求很高。
TDOA是通过不同传声器接收到声源信号的时间差来确定位置,该方法理论上仅需3个传声器便可完成二维空间中的声源定位,具有所需阵列规模小、定位精度高、且计算量小的显著优点,在实现精确声源定位系统的低成本和小型化上具有很大的潜力。Boora等[14]提出了一种基于TDOA的多源定位方法,该方法利用体积映射解决了多源的TDOA关联的模糊性,并消除了求解复杂的双曲方程进行位置估计的需要。张焕强等[15]提出了一种基于TDOA的汽车鸣笛声定位方法,该方法仅需要5个传声器阵元就可以实现汽车鸣笛声的准确定位,其关键步骤是基于广义互相关的时差估计。然而由于运动车辆的多普勒效应
会导致广义互相关时差估计精度急剧恶化,因此该方法仅限于静止或低速运动的车辆,难以适应运动车辆的场景。杨殿阁等[16]为了解决运动声源的精确TDOA定位问题,提出了一种运动声源快速定位方法。该方法通过多普勒效应消除来提升TDOA估计的精度,较好地解决了TDOA难以用于运动声源定位的问题,但是该方法所设计的多普勒效应消除算法运算复杂度非常高,难以满足定位的实时性需求。
本文提出了一种基于分布式传声器阵列的运动声源实时定位系统。首先针对TDOA算法受多普勒效应影响难以对运动声源实时定位的瓶颈问题,将各传声器接收的声音到达频率(Frequency of Arrival, FOA)应用到定位算法中,提出了一种基于TDOA-FOA的快速定位算法。该算法建立在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个传声器m i (i=1,2,3,4,···)的距离为r i,由于距离不同,声音到达各个传声器的时间也不同,通过相关算法即可得到到达时间差。传声器m i接收的FOA
为F i,当声源与传声器之间发生相对运动时,各传声器接收到的F i相对于声源的频率也将发生相对偏移,该现象称为多普勒效应。利用基于TDOA 和多普勒信息差的快速定位算法,可以对静止或运动的声源进行定位。
... ...
...
m1m2
m4
r4r3
r2
r1
<图 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)的互相关函数R y1,
y2
(τ)以及互功率谱函数G y1,y2(ω)可分别表示为
其中:E[·]为数学期望;Y1(ω)、Y2(ω)分别为y1(n)、y2(n)的傅里叶变换;Y2*(ω)表示Y2(ω
)的共轭。
根据互相关函数与互功率谱函数之间的关系,可知引入频域加权函数W(ω)的广义互相关的表达式为
其中W可由滤波进行替代。
当互相关函数R(τ)取得最大值时,此时的τ就是声音从声源位置到达两个传声器的TDOA,广义互相关算法步骤如图3所示,其中FFT为傅里叶变换。
y1(n) y2(n)Filter
Filter
FFT
FFT
图 3    广义互相关算法流程图
Fig. 3    Flowchart of generalized cross correlation algorithm
在得到时延估计TDOA后,可以采用经典的Chan算法[18]进行位置估计。该算法是非递归双曲线方程组解法,具有解析表达式解,并且计算量小。如图2所示,鸣笛声的位置坐标S = [x, y],传声器m i的位置坐标m i =[x i, y i],传声器位置m i到声源位置S的
距离r i为
r i=√
(x
i−x)2+(y i−y)2
那么非参考传声器m i(i = 2,3,···)与参考传声器m1到声源位置的距离差r i,1为
其中:c为声音的传播速度大小;τi,1为声源达到传声
器m i与m1的时间差。
由式(5)和式(6)可以得出:
354华 东 理 工 大 学 学 报(自 然 科 学 版)第 48 卷
其中:x i ,1 = x i  − x 1;y i ,1 = y i  − y 1;K i = x i 2+y i 2。
若仅有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 定位算法在运动声源定位中无法达到预期效果。
多普勒效应导致了幅值和相位的偏移,但是也带来了其他信息。由理论声学可知,传声器m i 接收到的声音频率F i 与声源发出信号的频率f 的关系为
为了满足不同运动情况下的定位要求,本文提出了基于TDOA -FOA 的快速定位算法。在汽车鸣笛声定位的场景中,汽车的运动方向一般和道路一致,因此声源运动方向可以认为是已知的。根据TDOA 和式(
6)能够求得声源到非参考传声器m i 和参考传声器m
1之间的距离差r i ,1。将声源面进行离散化处理,分为多个网格,假定某个网格的中心坐标[x 0, y 0]就是鸣笛声的实际位置,由式(5)可以得到假设位置到非参考传声器m i 和参考传声器m 1之间的距离差R i ,1,R i ,1与r i ,1的偏差度为
同时假设位置与不同传声器对应的θi 也可以得
到,根据式
(10),利用m 1和m 2的FOA,可以得到速度大小以及声源频率的估计v 0和f 0。由此可以得到传声器m i (i ≥3)接收的声音信号估计频率F i ,0,其与传声器真实接收频率F i 的差的模为
当传声器数量为n (n  ≥ 3)时,可以
得到基于TDOA 和FOA 的代价函数D 1以及D 2:
遍历整个声源平面就可以得到D 1(x ,y )、D 2(x ,y )。当D 1取得最小值时,对应的位置就是基于TDOA 的估计位置S 1;当D 2取得最小值时,对应的位置就是基于FOA 的估计位置S 2,此外还可以得到速度估计v 。将速度估计与阈值v th 比较,以确定鸣笛声位置,
通过实验得到v th =3 m/s 时算法定位精度最高。当v <v th 时,认为TDOA 的可信度更高,鸣笛声位置S  =S 1;当v ≥v th 时,鸣笛声位置S  = S 2。
传声器距离声源越近,传声器接收到的声音能量越大,由此可知声源位于接收声音信号能量最大的传声器位置附近。为了进一步提高该算法的实时性,可先通过能量检测,对声源位置进行预估计,以缩小搜索的范围。此外,当定位范围很大时,需要布置更多的传声器,但是在某次具体的定位中,由于声音的衰减比较快,若某些传声器距离声源过远,可能无法接收到良好的声音信号,利用这些信号对声源进行定位可能会导致更大的误差,所以通过能量检测还可以去掉冗余的信号,提高定位精度及效率。TDOA -FOA 算法的具体流程如图4所示。
与文献[16]中应用多普勒消除算法将声音信号还原、再利用TDOA 的方法计算声源位置相比,TDOA -FO
A 的计算量显著减少,进而大大降低了计算耗时。该方法的定位精确程度取决于声源所在平面的网格划分,网格的数量增加可以提高定位的精度;但是网格的数量过多时,计算量会显著增加,进而影响定位的实时性,在实际选取时,应根据期望的声源定位精度和运算时间来合理选取网格大小。
3    实验验证
传声器的数量以及位置对声源定位的精度有重要影响,由于本文针对的定位目标是汽车鸣笛声,因此传声器一般布置在道路两边。为了验证传声器数
第 3 期肖    坛,等:一种可适应运动声源的分布式汽车鸣笛声实时定位系统355
量对定位精度的影响,在传声器数量不同的情况下,对TDOA-FOA快速定位算法进行了仿真。假设需要定位的范围为宽15 m、长50 m的马路,不同数量的传声器交错均匀分布在道路两侧(如图2所示),这种布局在能量检测后,需要搜索的范围更小。传声器的高度与汽车喇叭的高度一致。汽车鸣笛声的频率一般在1 800~3 550 Hz,在仿真平台下,设计了一个200 ms、2 500 Hz的单频声源代替鸣笛声,采样频率为48 kHz,加入30 dB的背景白噪声。声音的传播速度为340 m/s,网格的大小为0.5 m×0.5 m,分别对静止和运动速度为10 m/s的声源进行定位仿真,每种情况都进行200次仿真,结果如表1所示。从实验结果可以看出,当传声器数量过少时,运动定位误差很大;当传声器数量达到4个时,定位精度就可以满足鸣笛声定位的要求,再增加传声器的数量并不能明显地提升定位精度,因此从经济性以及定位精度
的需求方面考虑,选用4个传声器较为合适。
为了验证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 的运动声源快速定位算法计算量小,遍历整个平面的计算耗时能够达到毫秒级,满足实时定位的要求。
为了进一步检验本文方法在实际应用中对汽车鸣笛声的定位效果,将其与文献[16]中的基于声达时差的运动声源快速定位(Fast Moving Time Difference
图 4    TDOA-FOA快速定位算法流程图
Fig. 4    Flowchart of fast location algorithm based on TDOA-FOA
表 1    传声器数量对定位精度的影响
Table 1    Influence of microphone numbers on positioning accuracy
Number of microphone Static error /m Motion error /m
30.479  2.463
40.4280.601
50.4150.589
60.3970.576
356华 东 理 工 大 学 学 报(自 然 科 学 版)第 48 卷