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

麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程本发明涉及计算机信号处理领域,具体涉及一种用麦克风阵列时延估计定位声源的方法。背景技术:20世纪80年代以来,麦克风阵列信号处理技术得到迅猛的发展,并在雷达、声纳及通信中得到广泛的应用。这种阵列信号处理的思想后来应用到语音信号处理中。在国际上将麦克风阵列系统用于语音信号处理的研究源于1970年。1976年,Gabfid将雷达和声纳中的自适应波束形成技术直接应用于简单的声音获取问题。1985年,美国…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

背景技术:

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是声源到两个麦克风的时间差也就是阵元间的时延,θ是声源的方向角。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mock测试使用说明

    mock测试使用说明mock测试使用说明1mock简介2mock的使用1下载moco的jar包2启动jar包3简单案例11创建配置文件config-get.json2启动jar包3测试4简单案例21创建配置文件config-post-get.json2启动jar包3测试5配置文件参数说明6总结因博主最近看测试同学偷偷在搭建mock进行测试,好奇看了一下,记录一下使用过程mock官网下载mock官网文档参考资料:https://blog.csdn.net/qq_32706349/arti

  • SHFileOperation的用法

    SHFileOperation的用法VC移动,复制,删除文件(SHFileOperation) 总结一下SHFileOperation的用法,希望对大家有用//删除文件或者文件夹boolDeleteFile(char*lpszPath){SHFILEOPSTRUCTFileOp={0};FileOp.fFlags=FOF_ALLOWUNDO|  //允许放回回收站     FOF_NOCONFIRMA

  • 使用vagrant一键部署本地php开发环境(一)[通俗易懂]

    使用vagrant一键部署本地php开发环境(一)

  • 【汇编小白】关于masm5.0 显示 Unable to open input file

    【汇编小白】关于masm5.0 显示 Unable to open input file   然后, <https://blog.csdn.net/w605283073/article/details/8334732?_t_t_t=0.2288642483095238>这里也有讲解(侵删)ummmmm…第一次在这个平台写东西,不知道有没有人看and…为啥这个文章的标签,中文我加不来。,。加不来啊 (win10自带的微软输入法。,。输中文输一…

  • xmind 使用教程[通俗易懂]

    1.这是刚刚打开xmind后的界面,在中央有一个中心主题,你可以把它替换成你自己的主题,比如图形推理。2、把光标定位到中心主题上,然后连续按3次Tab键,你会看到上面效果。tab键可以帮助你迅速的建立某个主题的子主题。3、下面你在连续按3次回车键,你就可以看到上面的效果,你可以通过回车键,建立同级主题。4、你自己在试一试,玩一玩者两个键吧!(tab键和enter回车键)5、如何改变主题的分布方式,你还要学习使用“右键”,选择一个主题,然后点击“右键”,你会发现有很多选择。6、选

  • LeetCode解题汇总目录

    此篇为学习完《数据结构与算法之美》后,在LeetCode刷题的汇总目录,方便大家查找(Ctrl+Find),一起刷题,一起PK交流!另有解题:《剑指Offer》、《程序员面试金典》、LintCode代码能力测试CAT。如果本文对你有帮助,可以给我点赞加油!通过2021,简单618/636,中等1120/1266,困难283/488

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号