文献标识码:A
DOI:10.16157/j.issn.0258-7998.190864
中文引用格式:余秋婷,熊俊俏. 基于六元空间阵列的声源定位系统实现[J].电子技术应用,2020,46(2):58-61.
英文引用格式:Yu Qiuting,Xiong Junqiao. Realization of sound source locating system based on six-dimensional space array[J]. Application of Electronic Technique,2020,46(2):58-61.
0 引言
听觉是人感知外界环境,并与外界环境进行交互的重要方式,根据不同物体发出的声音,人们可以判断出声源的方位。而在某些特定场合,就需要机器来准确定位出声源的位置[1]。因此,基于麦克风阵列的声源定位技术得到了广泛的关注和快速的发展,对其开展研究具有很强的实践价值[2]。
目前,常用的基于麦克风阵列的声源定位方法有3种:基于最大输出功率的可控波束形成定位方法[3]、基于高分辨率谱估计技术的定位方法[4]和基于时延估计的定位方法[5]。其中,基于时延估计的定位方法由于运算量小、实时性好、易于实现等优点而成为最普遍的使用方法[6]。其方法首先估计了声源到达各个麦克风的时延,再根据几何关系得到声源的位置。文献[7]提出了一种改进时延估计的声源定位方法。该方法首先设计了四元十字型麦克风阵列,然后在广义互相关的基础上引入二次相关算法来削弱环境噪声产生的干扰,同时采用自适应滤波算法来提高环境混响的时延精度,从而获得更准确的声源位置。但缺少界面的直观显示。文献[8]首先提出了GCC-IMLPT算法,并通过仿真验证了该算法的性能,且选取了计算量小、实时性较好的球形插值法来得到声源位置,然后研究了麦克风拓扑结构,确定麦克风阵列的大小,最后在实际环境中测试了系统的性能,但由于系统是在计算机上实现的,不方便携带。当前,优化算法提高定位精度,实现界面的直观显示,以及方便携带成为考虑的热点问题。
本文提出一种基于麦克风阵列的声源定位系统。采用改进的广义互相关算法获取时延,进而得到声程差,并根据几何关系确定声源在空间中的位置,最后在嵌入式平台上进行实验。实验结果证明,该方法能较准确地得到声源位置。
1 声源定位系统原理
1.1 声源定位原理
由于同一个声源传播到位置不同的各个麦克风时会产生时间差,这个时间差称为时延。时延与声速相乘即可得到声程差。由双曲线的性质可知,双曲线上任意一点到两个焦点的距离之差的绝对值为双曲线的实轴长。因此,声源在以任意两个麦克风为焦点,声程差为实轴长的多条双曲线的焦点上[9]。声源定位原理图如图1所示,S为声源。
1.2 改进的广义互相关算法
广义互相关算法是目前最常用的一种时延估计方法。广义互相关算法是通过将两路声音信号从时域变化为频域,并求得两信号之间的互功率谱,再进行加权,这样可以降低噪声和反射带来的误差,然后经过反傅里叶变换,将频域转换回时域得到互相关函数并计算峰值,峰值所对应的位置即时延[10]。广义互相关时延估计基本原理和流程图如图2所示。
由于声源不断产生声音信号,麦克风接收到声源传来的声音信号。假设麦克风1、2接收到声音信号的理想模型为:
在理想情况下或在弱噪声和弱混响的环境下互功率谱可近似表示为:
互功率谱加权函数(PHAT)通过对信号互功率谱归一化,去除信号的幅度信息,只保留了信号的相位特性,对噪声和混响有一定的抑制作用[11]。
2 空间定位方法
目前有2种方法估计声源位置:通过搜索的方式和通过几何的方式。由于本文采用的是三维阵列,故采用几何的方法估计声源位置。
本文采用球形插值法对声源位置进行估计。球型插值法根据多个麦克风相对参考麦克风的时延和各个麦克风的矢量位置得到一个误差方程组,并求其最小二乘解[12]。
如图3所示,声源的坐标点用s(x,y,z)表示,麦克风m0放在原点处作为参考点,mi表示其他麦克风的坐标位置,i∈[1,5],各麦克风与参考麦克风之间的声程差用di表示。
声源s应该满足矢量方程:
3 实验结果与分析
3.1 实验设备
本文系统在硬件上主要包括三维阵列、麦克风模块、数据采集卡以及计算机。三维阵列模型如图4所示,相邻两麦克风之间的距离为50 cm,麦克风采用MAX9812麦克风模块,为全向性麦克风,20 dB固定增益放大。选用 USB DAQ多功能数据采集卡采集声音数据,采集卡的输入端通过6根数据线与麦克风阵列相连,输出端通过USB连接计算机,USB DAQ采集卡具有8路差分16位高速同步模拟信号采集,8 个AD620高精度差分放大器,16路数字信号单向输入,16路数字信号单向输出。单通道的采样频率最大可达200 kHz。本实验只使用了其中6路通道。
3.2 实验分析
通过具体实验对麦克风阵列以及算法进行验证。本实验环境内存在一定的噪声,噪声主要来源于室内照明设备、电脑风扇以及空调,声源为手机播放的一段音乐。数据采集卡的采样频率设置为200 kHz,采样位数为16位,采样点数设为1×105个。
测试时,对每个位置都进行6次实验,求取的实验结果为6次实验的平均值。实验结果如表1所示。
由表1的定位结果来看,该系统实现了声源定位的基本功能,角度的误差在±5°以内,能够较准确地找到声源所在的方位,距离误差不超过±15 cm,在所接受的范围内。
4 结论
本文设计实现了基于麦克风阵列的声源定位系统,该系统采用6个麦克风组成的三维阵列,并根据改进的广义互相关算法获取时延,再根据球形插值法确定声源在空间中的位置。
从实验结果与分析可以看出,该算法得到的声源位置较准确。而且本系统能将声源的位置信息显示在界面上,具有更加直观的效果。不足的是,系统不够便携且只能定位单声源,后续需要进一步研究将算法移植到便携式开发板上以及多声源定位算法。
参考文献
[1] 韩文革,苏淑靖,薛彦杰.基于麦克风阵列的声源被动定位系统设计[J].电子技术应用,2017,43(12):61-64.
[2] 姜志鹏,唐加能,梁瑞宇.实时声源定位算法研究与实现[J].电子器件,2015,38(6):1406-1411.
[3] 葛李贺.基于波束形成算法的声源定位研究及DSP实现[D].南京:南京信息工程大学,2015.
[4] 刘宾.基于声源定位的靶标测量技术研究[D].西安:西安电子科技大学,2017.
[5] 刘璐.基于麦克风阵列的机器人声源定位系统研究[D].长春:长春工业大学,2018.
[6] 伏智超.基于Cortex-A8嵌入式系统的声源定位技术研究与实现[D].南京:东南大学,2015.
[7] 程方晓,刘璐,姚清华,等.基于改进时延估计的声源定位算法[J].吉林大学学报(理学版),2018,56(3):681-687.
[8] 刘云飞.基于麦克风阵列的声源定位方法的研究[D].杭州:杭州电子科技大学,2018.
[9] 陈国良,徐扬,黄晓琴.基于正四棱锥结构的机器人声源定位系统研究[J].计算机应用研究,2018,36(4):1088-1092.
[10] 郭俊成.基于传声器阵列的声源定位技术研究[D].南京:南京航空航天大学,2007.
[11] 乔健,王建明.抑制风噪声的频点离散值加权GCC-PHAT时延估计算法[J].电子技术应用,2018,44(3):72-76,80.
[12] 张明瀚.基于时延估计的声源定位系统研究[D].重庆:重庆大学,2009.
作者信息:
余秋婷,熊俊俏
(武汉工程大学 电气信息学院,湖北 武汉430205)