基于BP神经网络的正四面体阵列声源定向研究*

2012-10-22 01:06邢钰姣祖丽楠
传感器与微系统 2012年5期
关键词:麦克风方位角声源

杨 鹏,邢钰姣,孙 昊,祖丽楠

(1.河北工业大学控制科学与工程学院,天津 300130;2.河北省控制工程技术研究中心,天津 300130)

0 引言

近年来,运用麦克风阵列进行声源定位研究已经成为信号处理领域的一个研究热点。一组麦克风按照一定的几何结构摆放组成麦克风阵列[1],拾取来自各个方向的声音信号,并进行空时处理,从而精确定位目标声源。该技术可在雷达、军事侦察与跟踪、机器人听觉定位、电视会议等领域广泛应用。

在工程应用中,根据麦克风阵列模型和声音球面传播模型构建的声源定位系统为一组复杂的非线性方程,难以用数值计算方法准确建模。在这种情况下,可以应用神经网络表达这种非线性系统。神经网络可以按照指定的精度逼近各种复杂的非线性系统,解决非线性系统的建模问题;对于信息采用分布式存储和处理方式,具有高运算效率和很强的容错性、鲁棒性[2,3]。

本文研究了可应用在多种场合的声源定向系统,采用BP神经网络对定向系统进行研究,并通过Matlab仿真证明了在正四面体的麦克风阵列模型下可以实现远场和近场的目标声源定向。

1 正四面体麦克风阵列模型

声源定向系统的结构如图1所示,由4个全向麦克风M1,M2,M3和M4组成一个正四面体阵列,对目标声源进行定向。若声源位于空间P点,该定向模型可通过已建立的神经网络得出其方位角α和俯仰角β,以实现对目标声源的跟踪。

图1 麦克风阵列结构模型Fig 1 Structure model of microphone array

2 建立神经网络模型

2.1 构建网络结构

BP神经网络是一种前馈神经网络,可根据系统输入输出数据的特点来确定BP神经网络的结构,输入数据为3个时延值,即声音信号到达阵列中不同位置的麦克风的时间差。把声源到麦克风M4的时间作为基准,到麦克风M1,M2,M3的时间与基准的差记作3个时延值,构成一组3个参数的输入数据。输出数据为目标声源的位置,本文的声源定位是为了实现移动机器人对目标声源的跟踪,所以,输出数据采用球坐标形式较为方便。该网络的输出也是有3个参数,方位角、俯仰角和距离。

理论上已经证明,在不限制隐含层节点数的情况下,只有一个隐含层的BP网络可以实现任意非线性映射[4]。如果节点数过多,不但网络学习时间增加,而且可能出现“过拟合”现象[5]。当样本数较多时,增加一个隐含层,可以适度减小网络规模[6,7]。本文选用有2个隐含层的BP网络,网络结构为3—30—30—3,即输入层和输出层有3个节点,2个隐含层分别有30个节点。

2.2 数据选择和归一化处理

假设4个麦克风之间的距离均为1 m,目标声源范围为一个半径为1~50 m的球体内的点(认为声源不会在麦克风阵列内或离阵列很近),声速为340 m/s,根据声源定位模型的几何关系随机取数得到系统2000组的输入输出数据。从中随机选取1900组数据作为网络训练数据,100组数据作为网络测试数据。

数据归一化是运用神经网络预测前对数据常做的一种处理方法。数据归一化处理把所有数据都转化为[0,1]或者[-1,1]之间的数,可以取消各维数据间数量级的差别,避免因为输入输出数据数量级差别较大而造成神经网络预测误差较大[8]。数据归一化方法主要有两种:最大最小法,平方数方差法[9]。本论文采用第一种方法对输入输出数据进行归一化,并对网络预测输出进行反归一化,通过Matlab自带函数mapminmax来实现。

3 Matlab仿真与结果分析

3.1 Matlab 仿真实现

Matlab 软件中包含Matlab神经网络工具箱,可以直接调用来构建各种类型的神经网络。本论文的BP神经网络主要用newff,train和sim3个神经网络工具箱自带函数来实现网络的构建,训练和仿真预测。2个隐含层的节点传递函数分别为tansig和logsig。

在预测的100组输出数据中,舍去了预测距离的数据。这个声源定向系统以实现对目标声源的跟踪为目的,预测出方位角和俯仰角,就可以得出目标声源的空间方向,实现跟踪;再者由于BP神经网络的拟合能力有限,并不能对距离做出较为准确的预测,故舍去了这组数据。图2为100组预测数据的方位角预测误差,误差范围为±5°。图3为100组预测数据的俯仰角预测误差,误差范围为±4°。

图2 方位角预测误差Fig 2 Azimuth angle forecasting error

图3 俯仰角预测误差Fig 3 Pitch angle forecasting error

3.2 仿真结果分析与验证

传统的声源定位方法是利用几何关系建立一组时延和声源坐标的方程组,通过解方程组来得到时延和声源坐标的数值关系。但是在解方程组的过程中,为了简化运算,大都假设声源位于远场且声音信号以平面波传播,以此来约减得到近似结果。但当声源位于近场时,即当麦克风之间的距离相对于声源到麦克风的距离较大时,这种假设就不能成立了。如果仍然用近似的结果进行计算,那么得到的数据与真实数据相比就不是误差较大了,而是错误的。

用于BP神经网络预测的100组输入输出数据,是在2000组样本数据中随机选择的,远场和近场的声源位置都有,从Matlab仿真得到的图形来看,误差分布较均匀,说明并没有因为是近场声源神经网络就出现大的预测误差,表明该神经网络无论是近场还是远场都可以预测目标声源的方位角和俯仰角。

为了进一步验证网络在近场对声源的定向情况,选取目标声源范围为1~5 m的空心球体内的点,取测试样本100个,用已训练好的BP网络再次进行预测。预测的方位角误差和俯仰角误差分别如图4、图5所示。近场方位角预测误差大部分在±5°以内,有个别样本点的误差较大甚至预测错误,这是由于选取的样本点离坐标原点太近造成的,不影响实际应用。近场俯仰角预测误差结果和上次预测结果很相似,误差范围仍然是±4°。

4 结论

图4 近场方位角预测误差Fig 4 Azimuth angle forecasting error in close field

图5 近场俯仰角预测误差Fig 5 Pitch angle forecasting error in close field

本文应用BP神经网络进行声源定向研究,设计了一种适用于正四面体麦克风阵列的神经网络。经Matlab实验证明:输入相应的时延数据,无论目标声源是处于远场还是近场,都可以预测其方向角和俯仰角,进而对声源进行跟踪。但是由于网络拟合能力有限,并不能很好地预测声源的空间距离,因此,如何实现对空间距离的准确预测,是下一步的重点研究任务。

[1] 陆晓燕.基于麦克风阵列实现声源定位[D].大连:大连理工大学,2003.

[2] 韩立群.人工神经网络理论、设计及应用[M].北京:化学工业出版社,2002.

[3] 周开利,康耀红.神经网络模型及其Matlab仿真程序设计[M].北京:清华大学出版社,2005.

[4] 闫 石,何 轲,赵延安.一种基于四元立体阵的声定向方法[J].电声基础,2007,31(7):16 -19.

[5] 林 盾,陈 俐.BP神经网络在模拟非线性系统输出中的应用[J].武汉理工大学学报,2003,27(5):731 -734.

[6] 林 琳.基于BP神经网络的网格性能预测[D].长春:吉林大学,2004.

[7] 邓 伟.BP神经网络构建与优化的研究及其在医学统计中的应用[D].上海:复旦大学,2002.

[8] 孙书学,顾晓辉,孙晓霞.用正四棱锥形阵对声目标定位研究[J].应用声学,2006,25(2):102 -107.

[9] 刘小刚.基于四元十字阵的声被动定位研究[D].南京:南京理工大学,2005.

猜你喜欢
麦克风方位角声源
GRAS发布新12Bx系列、支持TEDS的测量麦克风电源模块
虚拟声源定位的等效源近场声全息算法
近地磁尾方位角流期间的场向电流增强
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
基于GCC-nearest时延估计的室内声源定位
无处不在的方位角
麦克风的艺术
运用内积相关性结合迭代相减识别两点声源
向量内外积在直线坐标方位角反算中的应用研究
麦克风