王华松,赵 鑫
(92941部队,辽宁葫芦岛 125001)
关键字:端点检测;脉冲声源定位;广义互相关;时延提取
基于传声器阵列的声源定位问题,就是将一组传声器按一定方式布置在空间特定的位置上,形成传声器阵列,用传声器接收语音信号,相当于对空间分布的声场信号进行采样,得到声源的空间离散观测数据,通过一定的信号处理算法,估计声源的空间位置。基于传声器阵列的定位方法按照定位原理大体上可以分为3类[1]:基于最大输出功率的可控波束形成技术、基于高分辨率谱估计的定位技术和基于到达时间差(Time Difference Of Arrival,TDOA)的定位技术。本文主要研究第三种定位方法,这种方法分为两步:第一步获得麦克风两个时间延迟估计(Time Delay Estimation, TDE),常用的方法有互相关法(Cross Correlation, CC)[2]、互功率谱相位法(Cross PowerSpectrum Phase, CSP)[3]、自适应特征值分解法(Adaptive Eigenvalue Decomposition,AED)[4]等;第二步进行空间定位,常用的方法有最小二乘法、最优化方法等。基于TDOA的定位方法计算量小,原理简单,易于实时实现,可用于单脉冲声源的定位。
时延估计是声源定位中的关键环节,对于语音信号,由于持续时间比较长,可以运用滑动平均的方式[5]来消除部分误差。但是,对于短时脉冲声信号,由于持续时间比较短,受混响干扰比较明显,这种方式不再有效。本文运用传统的互相关方法求出时延值,利用端点检测信息判断时延值的优劣,提取好的时延值,再利用最优化方法进行空间定位,提出了一种在非高斯白噪声与高混响环境下室内脉冲声定位的方案。为了验证方案的有效性,实际构建了由6个麦克风组成的传声器阵列,模拟点声源在室内的真实声场环,开展相关定位实验,并对定位精度进行分析比较。实验结果表明,该方案能够实现单个脉冲声源的定位并且具有较高的定位精度。
为了抑制噪声的影响,可在频域内对互相关函数进行加权,这种方法称为广义互相关法(Generalized Cross Correlation, GCC)[2]。本文主要运用广义互相关-相位变换算法(Generalized Cross Correlation PHAse Transformation, GCC-PHAT),该方法相当于对互功率谱函数进行白化滤波,只保留信号的相位信息,可使互相关函数峰值更加尖锐。但是这种方法是建立在非混响模型基础上的,通常适用于低混响和低信噪比信号的场合[6],对于高混响和非相关白噪声环境下,不能很准确地估计出时延值。
基于TDOA的声源定位,就是根据距离差均方误差最小值原则,求解声源所在位置。
当确定了N组时延值之后,即可按照最优化的方式来求解声源所在的位置。该最优化问题可以表示为
采用广义互相关法得到的TDOA相对比较精确,但是该方法易受噪声和混响的干扰,会出现较大偏差的TDOA。
由于受到同步非高斯白噪声的影响,在零时延处广义互相关波形存在伪峰,伪峰的幅值甚至可能超过真实峰值的幅值,造成时延估计的错误。分别对传声器接收到的原始信号和噪声信号进行频谱分析,对原始脉冲声信号进行带通滤波,保留有效频率成分。实验中我们发现滤波后部分处于零时延的幅值已经低于真实时延处的幅值,零时延处的虚假峰值在一定程度上被抑制。
由于受到混响影响,互相关函数也会出现伪峰。假设麦克风对空间距离为l,声源到麦克风对的距离差为d,由三角形几何关系可知,d<l,因此时延估计中互相关函数峰值存在区间为■-lfsc,lfsc■,其中fs为采样频率,峰值区间以采样点为单位。通过限定搜索区间,如图1所示,可将部分伪峰排除在搜索区间之外,这种方法可以一定程度上改善由于混响产生的伪峰影响,提高时延估计的性能。
图1 限定互相关函数峰值搜索区间Fig.1 Limitation of the peak search range of CC function
在时延估计过程中,端点检测是一个重要环节。端点检测的目的是从包含脉冲声信号的一段信号中确定脉冲声的起始点。有效的端点检测技术能够排除部分噪声段的干扰,还可以为截取有效信号参与互相关运算提供依据,节约数据处理时间。传声器接收到的一路原始信号和对应的短时能量如图2所示,其信噪比为23.27。由于信噪比较高,脉冲声信号短时能量远远大于噪声段的短时能量,本文中端点检测采用基于短时能量的算法,设置合适的能量阈值即可判断脉冲到达的时间点。信号x的短时能量定义为[8]
图2 传声器接收信号和对应的短时能量Fig.2 Signal received by microphone and the corresponding short-term energy
采用端点检测方法可得到时延的粗略估计,端点检测结果为帧长一半的倍数,因此对信号分帧时应尽量减小帧长以提高时延估计精度。采用该方法得到的TDOA,不易受噪声和混响的干扰,不会出现较大偏差的TDOA;但是该方法时延估计精度偏低。
尽管进行滤波处理并且缩小峰值搜索区间可以提高时延估计精度,但在实验中发现,混响对于时延估计精度的影响仍然比较大。与语音信号的时延估计不同,脉冲声信号持续时间很短,无法通过滑动平均的方式消除部分时延估计误差。在混响环境中,根据端点检测信息,截除部分噪声段,截取端点后很少一部分信号段,尽可能地将反射波排除在有效信号段之外,仅利用部分有效信号段进行互相关处理,可提高时延估计精度,减少计算量。但存在的主要问题是,在声源定位过程中,在预先不知道声源具体位置的情况下,很难准确地截取直达波部分,截取的有效信号段不可避免地包含一部分反射波信号,给精确的时延估计带来很大的困难。如果直接利用所有时延值进行定位估计,会带入误差比较大的时延估计值,定位误差会比较大,得不到理想结果。
采用端点检测得到时延估计的方法,时延估计精度为帧长的一半,精度偏低,但是这种方法不易受到噪声和混响的影响,不会出现较大偏差的时延估计。互相关方法得到的时延估计是以采样点个数来进行描述的,其精度取决于采样频率,理论上讲,时延估计精度应该高于端点检测法得到的结果。但是对于短时脉冲声信号而言,互相关法特别容易受混响的影响,异常值较多。
可以将2.1和2.2节的两种时延估计方法相结合,充分利用端点检测法不易受到噪声和混响的影响和互相关法精度较高的优点。考虑利用端点检测信息提取部分精度较高的互相关时延估计进行定位,将误差较大的互相关时延估计剔除掉不参与定位。如果两种方法得到的时延估计比较接近,说明两者精度都较高,我们更倾向于选择互相关法得到的时延估计,并将其提取出来,把其余TDOA值舍去。具体实现方法为
式中:τij为互相关方法得到的时延;τi′j为端点检测方法得到的时延;G为设定的阈值,G的选取和采样频率有关,当采样频率较高时,G的取值可以适当大一些。保留满足式(11)的时延即为精确的时延,利用这些可用时延可完成脉冲声源定位。
这种精确时延提取方法综合了两种时延估计方法的优点,时延估计精度较高,且不易受噪声和混响干扰。
基于第2节提出的精确时延提取方法,本文设计了由6个麦克风构成的传声器阵列(阵列结构在第4节进行进一步描述),一共产生16组时延。任意四个传声器都可以包含三维空间信息,至少提取四组较好的时延,就可以包含四个传声器接收到的声信号。因此,提取四组以上较好的时延就可以比较准确地估计出声源的空间位置。
本文提出的声源定位方案框图如图3所示。该方案首先对采集的脉冲声信号进行滤波处理,接着利用能量信息进行端点检测,根据端点相减的方法求取时延,再截取有效信号段运用互相关方法求时延。将互相关法求得的时延与端点相减求得的时延对比,保留差值小于4个采样点的时延,最后按照最优化方式求出声源的估计位置。
图3 脉冲声源定位方案流程图Fig.3 Flowchart of the pulse sound source positioning scheme
为了验证时延提取方法有较好的声源估计性能,下面分别对时延提取前后,时延估计误差和声源估计误差与端点之后截取点数的关系进行比较。端点之后截取点数越多,信号包含的反射波信号成分也越多,混响越强。声源位置为s=(2.785 m,1.025 m, -0.43 m)。定义声源估计误差为估计值和实际值之间的空间距离;时延估计误差为时延估计值和实际时延值差值绝对值的均值,以采样点度量;异常点百分比[9]为时延估计值偏离实际时延值大于3个采样点的个数在所有时延估计个数中的百分比。表1和表2中K0和K1分别表示时延提取前后的异常点百分比,由此可知,时延提取后,异常点百分比有所降低。图4~6表明,提取时延后,互相关时延估计误差在5个采样点之内,时延估计性能较时延提取前有较大改善,有比较强的抗混响能力。图7和图8表明,时延提取后与直接利用16组时延相比,定位精度大大提高。如果直接利用一般互相关法得到的16组时延直接定位,由于时延估计异常点较多,误差会达到10 m甚至更大,导致定位结果出现错误。图9为时延提取后一般互相关和广义互相关定位误差对比,由图可知,时延提取后定位精度都能达到分米级;在端点之后截取点数较多的情况下,广义互相关时延估计性能明显优于一般互相关,运用广义互相关法完成定位,其定位精度基本能达到厘米级。
表1 时延提取前后一般互相关方法的异常点百分比Table 1 The percentage of abnormal points of common CC method before and after extracting TDE value
表2 时延提取前后广义互相关方法的异常点百分比Table 2 The percentage of abnormal points of GCC method before and after extracting TDE value
图4 时延提取前后一般互相关方法的时延估计误差对比Fig.4 Comparison of TDE error before and after extracting TDE value for common CC method
图5 时延提取前后广义互相关方法的时延估计误差对比Fig.5 Comparison of TDE error before and after extracting TDE value for GCC method
图6 时延提取后一般互相关和广义互相关方法的时延估计误差Fig.6 TDE errors after extracting TDE value for common CC and GCC methods
图7 时延提取前后一般互相关定位估计误差对比Fig.7 Comparison of localization error before and after extracting TDE value for common CC
图8 时延提取前后广义互相关方法的定位估计误差对比Fig.8 Comparison of localization error before and after extracting TDE value for GCC method
图9 时延提取后一般互相关和广义互相关方法的定位误差Fig.9 Localization error after extracting TDE value for common CC and GCC methods
实验系统由六个麦克风构成的传声器阵列组成,麦克风阵列空间摆放位置如图10所示,参考传声器m1为坐标原点,麦克风孔径L为0.5 m。各个阵元坐标如表3所示。实验在一个7 m×5 m×4 m的室内空间进行,存在空调、灯、CPU风扇等噪声源。敲击钢管模拟点声源。麦克风将声音信号转换为电信号,经过两个四通道信号调理器放大,再通过阿尔泰PCI8510数据采集卡将六路信号采集到主机,采样频率为100 kHz。六个麦克风两两结合构成15个麦克风对,共产生15组时延。在不同的位置做六组实验,每组实验在相同的环境下重复模拟点声源。
表3 传声器阵列各麦克风坐标(L=0.5 m)Table 3 The coordinates of each microphone (L=0.5 m)
图10 麦克风阵列布设图Fig.10 Layout of microphone array
表4为六组实验定位结果,其中t表示实测环境温度,r表示声源位置到参考麦克风距离。REMS定义为声源估计位置到实际位置距离的均值。径向误差定义为声源估计位置到麦克风参考点M1(坐标原点)距离和实际位置到参考点距离的差值的均值。我们认为定位误差(REMS)大于0.5 m时,定位失败。由表4可知,声源距离参考麦克风距离近时(≤3 m),定位成功率比较高,都能达到90%以上;定位精度比较高,除第二组外,定位精度可达到厘米级。第二组由于声源离墙角比较近,受墙面反射影响比较严重,误差比较大,定位精度为分米级。声源距离参考麦克风距离远时(3~6 m),定位成功率相对较低,定位误差相对较大,定位精度为分米级。实验结果表明,本文提出的方案可以在很大程度上克服非高斯白噪声和室内混响的影响,有效实现近场单脉冲声源的实时准确定位。实验中还发现,提高信噪比有利于提高定位成功率和定位精度。
表4 六组实验定位结果Table 4 The positioning results of six groups of tests
对于短时脉冲声信号,由于易受噪声及混响影响,运用互相关法进行时延估计异常点比较多,直接运用所有时延值无法得出准确的声源估计结果。本文主要运用端点检测信息,对互相关法估计的时延值进行提取,挑选好的时延值进行空间位置估计。
实验过程中发现,由于室内混响的影响,端点信号后的信号截取点数对时延估计精度有很大影响,利用端点相减求出的时延与用互相关法求出时延进行对比判断,提取四组以上好的时延估计,这种方法综合了互相关法精度较高和端点检测法不易受噪声和混响干扰的优点,可降低异常点百分比,同时能够克服噪声和混响的影响。在互相关法求峰值过程中,利用传声器对的距离信息,减小峰值搜索区间,可提高时延估计性能。
实验证明,该方案实现简单,一次定位的时间不超过4 s,可实现单脉冲声源的实时准确定位,定位精度可达到分米甚至厘米级,并且有较好的鲁棒性。
今后进一步研究的重点为,在保证定位精度的前提下,尽量减少传声器的数量,减小算法的复杂性。以较小的硬件为代价,实现单脉冲声源的实时准确定位。