麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程

2022-11-08 20:25:04 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

本发明涉及计算机信号处理领域,具体涉及一种用麦克风阵列时延估计定位声源的方法。

背景技术:

20世纪80年代以来,麦克风阵列信号处理技术得到迅猛的发展,并在雷达、声纳及通信中得到广泛的应用。这种阵列信号处理的思想后来应用到语音信号处理中。在国际上将麦克风阵列系统用于语音信号处理的研究源于1970年。1976年,Gabfid将雷达和声纳中的自适应波束形成技术直接应用于简单的声音获取问题。1985年,美国AT&T/Bell实验室的Flanagan采用21个麦克风组成现行阵列,首次用电子控制的方式实现了声源信号的获取,该系统采用简单的波束形成方法,通过计算预先设定位置的能量,找到具有最大能量的方向。同年,Flanagan等人又将二维麦克风阵列应用于大型房间内的声音拾取,以抑制混响和噪声对声源信号的影响。由于当时技术的制约,使得该算法还不能够借助于数字信号处理技术以数字的方式实现,而主要采用了模拟器件实现,1991年,Kellermann借助于数字信号处理技术,用全数字的方式实现了这一算法,进一步改善了算法的性能,降低了硬件成本,提高了系统的灵活性。随后,麦克风阵列系统已经应用于许多场合,包括视频会议、语音识别、说话人识别、汽车环境语音获取、混响环境声音拾取、声源定位和助听装置等。目前,基于麦克风阵列的语音处理技术正成为一个新的研究热点,但相关应用技术还不成熟。

技术实现要素:

鉴于麦克风阵列的声源定位方法具有广泛的应用前景和潜在的经济效益,本发明旨在提供一种利用麦克风阵列进行声源定位的方法,以期应用在包括语音识别、强噪声环境下的语音获取、大型场所的会议记录、声音检测和助听装置等领域。

为实现上述目的,本发明采用以下技术方案:

一种利用麦克风阵列进行声源定位的方法,包括时延估计和声源定位,其特征在于:首先,通过算法估计声源信号到达阵列中麦克风阵元的相对时间差;第二步则利用估计时间差来计算出声源到达各阵元的距离差,然后结合阵列拓扑结构用几何算法或搜索确定声源位置。

所述时延估计的具体方法是:假设只有唯一的声源,麦克风阵列为均匀直线形阵列的情况,远场环境中有一个待定位的声源信号s(k),选择第一个麦克风阵元为参考点,第n个阵元在k时刻接收到的信号表示为:

yn(k)=αns(k-t-τn1) vn(k)

=αns[k-t-Fn(τ)] vn(k)

=xn(k) vn(k),n=1,2,…,N

其中αn(n=l,2,…,N)为信号在传播过程中的衰减,其值介于[0,1]之间;t表示信号从s(k)传播到1号阵元之间的传播时间;vn(k)表示在第n个阵元上接收到的加性噪声;τ表示l号麦克风阵元与2号麦克风阵元所接收到的信号时延差;Fn(τ)函数表示第n个阵元与第一个阵元之间的信号时延。

所述声源定位的具体方法是:根据声源和阵列之间的几何关系确定出声源方向角与距离。

本发明可实际应用于以下领域:视频会议,声源定位技术可为视频会议中的发言人跟踪定位;机器人技术,利用双耳时延模型及互相关操作来实现机器人对声源的定位及跟踪;噪声检测,为了更好的控制汽车、摩托车等发动机及大型器械中的噪声,声源定位技术是对发动机性能评估、大型机械稳定性测试的重要方法;医疗诊断及医疗设备,在医疗设备中,声源定位技术可用于病变部位的分析,疾病的诊断起到极大的促进推动作用。

附图说明

图1是本发明的声源定位原理图。

具体实施方式

本发明的声源定位方法通常分为两个步骤,即时延估计和声源定位。本发明首先通过算法估计声源信号到达阵列中麦克风阵元的相对时间差;第二步则利用估计时间差来计算出声源到达各阵元的距离差,然后结合阵列拓扑结构用几何算法或搜索确定声源位置。

1.时延估计

阵列的几何形状对声源定位性能至关重要,根据麦克风阵列所处的环境,时延估计的模型可以被分为理想模型与混响模型。我们把麦克风阵元这种只接收通过直接路径到达麦克风阵列的声音信号的模型称作理想模型。把这种不仅考虑通过直接路径到达的信号,还考虑声源发出的信号遇到墙壁、桌子等反射后间接到达阵列的信号的这种模型称作混响模型。由于混响信号的路径的数量具有不确定性,基于混响模型的算法复杂度与理想模型相比其算法复杂度相对比较大,基于混响模型的算法是用数学模型去拟合干扰的影响并不像理想模型回避间接路径信号的干扰,因此基于混响模型的算法的时延估计效果比较好。尽管如此,为了降低算法的复杂度,本发明主要就理想模型来研究麦克风阵列的时延估计。

假设只有唯一的声源,麦克风阵列为均匀直线形阵列的情况。远场环境中有一个待定位的声源信号s(k),如果我们选择第一个麦克风阵元为参考点,那么第n个阵元在k时刻接收到的信号可以表示为:

yn(k)=αns(k-t-τn1) vn(k)

=αns[k-t-Fn(τ)] vn(k)

=xn(k) vn(k),n=1,2,…,N

其中αn(n=l,2,…,N)为信号在传播过程中的衰减,其值介于[0,1]之间。t表示信号从s(k)传播到1号阵元之间的传播时间。vn(k)表示在第n个阵元上接收到的加性噪声。假设噪声与语音信号以及其它阵元的噪声信号互不相关。τ(注意)表示l号麦克风阵元与2号麦克风阵元所接收到的信号时延差。Fn(τ)函数表示第n个阵元与第一个阵元之间的信号时延。这里假设使用的麦克风阵列模型为位于远场环境中的均匀直线阵列,于是可以得到:

F1(τ)=0,F2(τ)=τ,Fn(τ)=(n-1)τ,n=2,…,N

在近场中,信号是以球面波形式到达麦克风阵列的,所以Fn是τ的非线性函数。这时Fn既与麦克风阵元间距有关,而且对声源信号相对于阵列的位置有着很大的依赖性。对于均匀直线形阵列,Fn函数已知,所以求时延估计的问题就等价于估计τ的问题,通过时延估计算法,从采集到的有限帧的多通道声音信号中计算出

2.声源定位

麦克风阵列时延估计后,就可以根据声源和阵列之间的几何关系确定出声源方向角与距离,但在定位精度会受到很多因素的影响,其中影响定位精度的主要因素是时延估计方法和定位方法。本技术采用改进的声源定位算法,将声源看作是点声源并假设声源在无穷远处,那么波前就垂直于波面。麦克风A和B接收到信号的时间先后如图1所示,其中L是两个麦克风阵元间的间距,c是声音在空气中传播速度,τAB是声源到两个麦克风的时间差也就是阵元间的时延,θ是声源的方向角。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190747.html原文链接:https://javaforall.cn

0 人点赞