基于麦克风阵列的声源定位系统设计

2012-12-07 06:05陆灏铭刘寿宝
传感器与微系统 2012年4期
关键词:麦克风声源舵机

陆灏铭,陈 玮,刘寿宝

(1.广东工业大学自动化学院,广东广州510006;2.华中科技大学图像识别与人工智能研究所,湖北武汉430074)

0 引言

基于麦克风阵列的声源定位广泛应用于具有嘈杂背景的语音通信环境,如,视频会议、多媒体教室、车载电话等[1],以提高通信质量;在地震研究、降噪设计、压力容器的无损检测[2]等诸多领域也有着广泛的应用。本文设计提出的基于麦克风阵列的声源定位系统可以估算出声源位置和方向角,并对声源进行实时跟踪。

声源定位算法研究主要集中在计算机实验仿真,采用Matlab与C语言[3]结合,难以开发出界面友好的程序,流程控制能力不理想,在数据采集、硬件控制等方面都比较繁琐,编程难度大,而程序的通用性也受到制约。本文采用LabVIEW图形化编程语言,方便地完成数据采集与存储、分析与处理、硬件及仪器控制等任务。同时从平面四元方阵定位模型出发,开发出一种基于虚拟仪器的实时声源定位系统,并配合激光笔对声源进行实时跟踪。该系统控制界面友好,定位速度较快,精度理想,基本能满足对近场语音信号的实时定位要求。

1 系统设计

本系统主要由麦克风阵列、放大电路、PXI—4472数据采集卡、PXI平台、舵机、激光笔组成,整体构成如图1所示。

1.1 麦克风阵列设计

1.1.1 麦克风工作原理

在通信领域中使用的麦克风主要是动圈式和电容麦克风。电容麦克风频率响应平直、音质保真、性价比高。驻极体电容麦克风是在电容麦克风优良的基础上融合了现代化工技术而诞生的新一代电容麦克风。

驻极体麦克风的工作原理是:当麦克风受到振动或受到气流摩擦时,两极板间的距离发生改变,即电容改变,从而引起电压变化。电压变化的大小和频率分别反映了外界声压的强弱和频率。

图1 系统结构框图Fig 1 Block diagram of system structure

1.1.2 麦克风阵列的选择

麦克风阵列是指由一定的几何结构排列而成的若干个麦克风组成的阵列,按几何结构可以分为线性阵列、平面阵列和立体阵列。直线阵列结构简单,对应的算法复杂度较低,但是只能定位空间范围内的特定区域;三维阵列对空间定位性能好,但是结构复杂,可以选择的算法不多,且实现成本较高;平面阵列在平面内定位性能优越,在空间内定位性能也较好,可以选择的定位算法很多,适合于绝大多数的定位系统。出于对定位精度、成本和复杂度方面的考虑,本系统采用平面阵列。

为了测出三维空间目标的距离、方位角和俯仰角,需要有3个独立的时延量,所以,至少需要4个麦克风。如图2给出了一种平面四元十字阵的几何模型,4个阵元的坐标分别为M1(d,0,0),M2(0,d,0),M3(-d,0,0),M4(0,-d,0)。

图2 平面四元十字阵定位原理图Fig 2 Positioning principle diagram of planar four-element crossing array

1.2 数据采集电路

由于麦克风输出的电压信号为mV级,所以,需要设计有足够增益的放大电路。LM324通用运算放大器满足系统所要求的带宽、增益要求,而且有较宽的电源电压工作范围,保证放大电路有着很宽的线性工作区域。根据信号的特点,本系统中的放大电路采用两级放大,第一级放大电路为固定增益;第二级放大电路为可调增益,使每一路的麦克风均可通过第二级放大电路将其输出放大到适合的幅度范围。本系统设计的两级放大电路如图3所示。

A/D转换电路是通过数据采集卡PXI—4472完成的,该采集卡是NI公司专为高通道数的声音和振动应用而设计的高精度数据采集(DAQ)模块,支持8路同步采样模拟输入,最高采样率达102.4 kS/s,满足本系统的需求。

图3 两级放大电路设计图Fig 3 Design diagram of two-stage amplifier circuit

1.3 信号预处理

由采集设备采集到的声音信号中,夹杂着电子噪声和背景噪声,污染了声音信号。为了抑制噪声对后续信号分析的影响,需要进行预处理。信号预处理[4]包括带通滤波、分帧加窗、端点检测,具体流程如下:

1)预滤波:采用带通滤波器滤波,以抑制输入信号各频域分量中频率超出fs/2(fs为采样率)的所有分量,防止混叠干扰,同时抑制50 Hz的电源干扰;

2)分帧:采用帧与帧重叠的方法,避免失帧;

3)加窗:用窗函数w(n)乘信号s(n),形成加窗函数sw(n)。窗函数的作用是保持帧与帧之间的连续性,本系统使用的是Hamming窗,其表达式如下(N为帧长)

4)计算短时能量E:若E小于门限值可认为是噪声,否则,进入下一步

5)计算短时过零率Z0:若Z0在门限内,则表示检测到语音

1.4 声源定位

声源定位算法[5]可以分为三类。第一类是基于波束形成的方法,该方法可以用于多声源的定位,但存在着对初值敏感和需要声源和背景噪声等先验知识的问题。第二类是基于高分辨率谱估计的方法,该方法可以随声源方向进行有效的估计,精度高,但是计算量比较大。第三类是基于到达时间差(time difference of arrival,TDoA)的方法,通过声音信号到达不同阵元的时间差,建立三维声源定位模型方程组进行定位,由于该方法原理简单,易于实现,计算量小,故本文所提出的系统采用基于TDoA的方法进行定位。

基于TDoA的声源定位算法由两步组成,第一步为时延估计,用于计算同一声源的信号到达2个麦克风的时间差;第二步为位置估计,根据时延差估计值和麦克风阵元间的几何关系确定声源位置。

1.4.1 时延估计算法

采用广义互相关函数(GCC)法作为时延估计方法。该方法借助于来自同一声源的信号存在一定的相关性这一特性,通过计算麦克风阵列接收信号之间的互相关函数,从而估计出TDoA值。GCC时延估计框图如图4所示。

图4 GCC时延估计框图Fig 4 Block diagram of GCC time delay estimation

麦克风接收到的信号为

其中,s(t)为声源信号;αi,τi,ni分别表示从声源到第i个麦克风的幅值衰减系数、延迟和加性噪声。

广义互相关法通过求两信号之间的互功谱,并在频域内给予一定的加权,对信号和噪声进行白化处理,增强信号中信噪比较高的频率分量,从而抑制噪声的影响。再反傅里叶变换到时域,得到两信号之间的广义互相关函数

其中,Xi(w)(w)为2个麦克风接收信号xi(t)与xj(t)之间的互功率谱,Ψij(w)为权函数。时延估计为

1.4.2 位置估计算法

S(x,y,z)表示声源。设ri表示声源到麦克风Mi的距离,τij表示声源到麦克风 Mi与 Mj间的时延,r,θ[0°,90°],φ[0°,360°]分别表示声源到坐标原点的距离、俯仰角和方位角,d为麦克风阵元到原点距离,c为声速。

在直角坐标系中,利用两点间距离公式和速度公式,联立如下方程组

解方程得

1.5 舵机控制

脉宽调制(pulse width modulation,PWM)波是一种可用程序控制占空比、周期和相位的波形。舵机是通过周期固定的脉冲信号控制的,舵机的转位正比于脉冲的宽度,这个连续的脉冲信号可以由PWM实现。舵机内部会产生一个频率为若干Hz的基准信号,通过基准信号与外部所给PWM波的正脉冲持续时间进行比较,从而确定转向和转角的大小。PWM波可由LabVIEW编程实现,由于PXI—6221只有I/O口,所以,使用软件编程将模拟 I/O转换成为PWM波,每个PWM通道都可以通过编程使能调整占空比大小,完成对舵机的控制。

本系统中,舵机需要2个自由度的方向驱动,采用2个舵机固连的方式,即一个舵机连接激光笔作为第一个自由度,第二个舵机连接第一个舵机与激光笔这个整体,作为第二个自由度。通过两路PWM信号控制2个舵机的转动,从而达到定位的目的。

2 软件设计

基于LabVIEW图形化[6]的编程方式,直接简便,降低了程序的开发难度,减少了开发时间。LabVIEW程序包含2个主要组成部分,前面板(front panel)和程序框图(block diagram)。前面板是虚拟仪器的交互式人机界面,有输入参数的控制量和显示输出结果的指示量。程序框图中,用数据流的连线连接前面板上控制量、指示量、结构以及各种函数节点,实现仪器功能。

声源定位系统的主界面包含实时数据采集与结果显示。声源定位软件程序流程图如图5所示。

图5 程序流程图Fig 5 Flow chart of program

3 测试结果

在实际声场中,对真实的声源进行测量,以检验声源定位系统的定位效果。选择空旷的室内,选用的声源为正弦波声源。测试结果如表1所示。从实际测量数据可知,所设计的系统的测量误差较小,能满足在混响和噪声不是很强的视频会议等场合。

表1 声源坐标测量结果Tab 1 Test results of acoustic source coordinate

经过多次实验验证,本系统定位距离为5 m半径;距离的定位精度为±15 cm,角度的定位精度为±5°。

4 结束语

基于麦克风阵列的声源定位已经广泛应用于具有嘈杂背景的语音通信环境和工业噪声检测与降噪设计中。Lab-VIEW作为一种图形化开发平台,强调在通用硬件平台的基础上充分发挥计算机的能力,使用户可以根据自己的需要定义和制造各种功能强大的仪器,为此,提供了强大的计算机数据采集和数字信号处理功能。本文将LabVIEW应用于声源定位,搭建了完整的硬件系统,运用广义互相关函数法进行时延估计,结合平面四元十字阵模型建立方程组实现定位。该系统人机界面友好,具有较强的数据分析和处理能力,实时性强,能及时跟踪声源的位置变化。

[1]邵怀宗.基于麦克风阵列的声源定位研究[J].云南民族大学学报,2004(10):256-258.

[2]赵文峰.基于麦克风阵列的声源定位系统研究及实现[D].武汉:华中科技大学,2009.

[3]杨亦春.小孔径方阵对大气中运动声源的定位研究[J].声学学报,2004(4):347-352.

[4]陈露明.嘈杂背景下的声源定位及语音分离实现技术的研究[D].成都:电子科技大学,2007.

[5]孙懋珩.汽车鸣笛声定位系统仿真[J].声学技术,2009(10):640-644.

[6]阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2009.

猜你喜欢
麦克风声源舵机
GRAS发布新12Bx系列、支持TEDS的测量麦克风电源模块
虚拟声源定位的等效源近场声全息算法
含齿隙弹载舵机的全局反步模糊自适应控制
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
基于GCC-nearest时延估计的室内声源定位
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
麦克风的艺术
运用内积相关性结合迭代相减识别两点声源
麦克风