声源定位方法_声源定位算法

声源定位方法_声源定位算法目录1.TDOA简介2.时延估计3.定位估计4.声源定位根据现有的研究成果来看,声源定位(SoundSourceLocalization,SSL)存在以下几种方法:基于最大输出功率的可控波束成形的定位方法、基于高分辨谱估计的定位方法和基于到达时延差(TimeDifferenceofArrival,TDOA)估计的定位方法,以及基于机器学习的方法。其中基于时延估计的定位方法计算量小,实时性好,实用性强等特点,我们就先介绍这种较为简单的声源定位算法。基于TDOA的方法一般

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

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

目录

1. TDOA简介

2. 时延估计

3. 定位估计

4. 声源定位


根据现有的研究成果来看,声源定位(Sound Source Localization, SSL)存在以下几种方法:基于最大输出功率的可控波束成形的定位方法、基于高分辨谱估计的定位方法和基于到达时延差(Time Difference of Arrival,TDOA)估计的定位方法,以及基于机器学习的方法。其中基于时延估计的定位方法计算量小,实时性好,实用性强等特点,我们就先介绍这种较为简单的声源定位算法。基于TDOA的方法一般分为两步,首先计算声源信号到达麦克风阵列的时间差(时延估计),然后通过麦克风阵列的几何形状建立声源定位模型并求解从而获得位置信息(定位估计)。

1. TDOA简介

首先介绍下TDOA的概念,如图所示,假设我们在空间中有一个声源(记为s(t),其在空间的位置为S)两个麦克风(记为m1和m2,它们在空间的位置分别为M1M2,接收到的信号为x1(t)和x2(t)

声源定位方法_声源定位算法

那么麦克风m1和m2收到的信号分别为:

声源定位方法_声源定位算法

声源定位方法_声源定位算法

其中τ1和τ2分别是声源到达两个麦克风的延迟时间,n1(t)和n2(t)为加性噪声。那么声源信号到达两个麦克风的TDOA为

声源定位方法_声源定位算法

τ1和τ2可以通过下式计算

声源定位方法_声源定位算法

其中c是声速。一般情况下,我们选择一个麦克风的信号作为参考信号,例如我们把M2作为参考信号,那么τ2=0。在麦克风阵列几何形状已知的情况下,声源定位问题变为对时延的估计问题。

2. 时延估计

时延估计常用的有很多种比如使用广义互相关函数(Generalized Cross Correlation, GCC)估计时延,或者使用倒谱分析进行时延估计等,这里介绍常用的基于广义互相关函数时延估计方法。

 

互相关函数我们以前已经介绍过了,而广义互相关函数是为了减少噪声和混响在实际环境中的影响,在互功率谱域使用加权函数加权,然后经过IFFT运算后找到峰值估计时延,其流程如下图所示:

 

声源定位方法_声源定位算法

广义GCC计算公式为:

声源定位方法_声源定位算法

其中Ψ12为频域加权函数,常用的有如下几种

声源定位方法_声源定位算法

Gx1x2(ω)为互频谱,其计算公式为:

 

声源定位方法_声源定位算法

最后我们就可以通过式(8)估计语音信号到达两个麦克风的时延了。

声源定位方法_声源定位算法

3. 定位估计

如果要确定出声源在二维平面内的位置坐标,都至少需要三个麦克风。对于两个麦克风的情况,我们只能计算到达角(Direction of Arrival, DOA)。在介绍如何定位估计前需要先区分下近场(near-field)和远场(far-field),假设声速波长为λ,麦克风之间的距离为d(有的地方称为孔径,aperture),那么声源与麦克风之间的距离r大于2d2/λ时,符合远场模型,反之则为近场模型。对于远场模型来说,声源到达麦克风阵列的波形视为平面波,如下图所示:

声源定位方法_声源定位算法

此时根据麦克风阵列的几何关系,我们有

声源定位方法_声源定位算法

进而可以求出,声源相对麦克风阵列的角度

声源定位方法_声源定位算法

对于近场模型来说,声源到达麦克风阵列的波形视为球面波,如下图所示:

声源定位方法_声源定位算法

近场模型需要三个麦克风,我们假设τ12,τ13分别为第二和第三个麦克风与第一个麦克风的时延,那么

声源定位方法_声源定位算法

根据麦克风阵列的几何关系,我们得到

声源定位方法_声源定位算法

其中τ12,τ13通过时延估计得到,因此可以求解公式(11)到(13)的方程组,进而使用正弦定理可以得到θ2和θ3。

4. 声源定位

在麦克风孔径不大的情况下,一般都符合远场模型(不信读者可自己算一下),因此这里应用远场模型进行声源定位。声源位置在大约在45度角,麦克风之间的距离为0.15m,48 kHz的采样率,使用gcc-phat进行时延估计,结果如下图所示(代码和数据还是在公众号菜单More->Code里面)。

声源定位方法_声源定位算法

 

可以看到大体上方向还是被正确估计到,想必聪明的读者已经发现了声源定位的一些数据可以进行VAD结果的判定。这里的Demo比较简单,采用的是单源自由场模型,真实情况下需要考虑更多的问题,比如房间的混响,噪声,声源个数等问题。另外gcc-phat只能用于双麦克风阵列,如果你有多个麦克风,可以使用Spatial Linear Prediction Method 方法去利用麦克风之间的冗余信息获得更为精确的定位结果。此外波束成形(Beam forming, BF)和声源定位联系比较密切,因为时延和BF所要求的导向量等价,因此也有基于BF的声源定位算法。最后提一下机器学习/深度学习的定位方法,前面的流程还是不变,只是最后通过最大值估计时延的这一步换成了使用机器学习模型来估计时延,即模型输入为gcc-phat,输出结果为时延。然后根据这个时延进行声源定位。


参考文献:

[1]. https://www.canalu.tv/video/inria/time_difference_of_arrival_tdoa.33273

[2]. Springer, Micrphone Array Processing,2008


声源定位方法_声源定位算法

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在c语言中提供的条件运算符是什么_c语言条件运算符有哪些

    在c语言中提供的条件运算符是什么_c语言条件运算符有哪些Date:2020-02-01Author:SolerHOBook:CPrimerPlusDescription:条件运算符:?:C提供了条件表达式(conditionalexpression)作为表达ifelse语句的一种便捷方式,表达式使用:?:条件运算符。运算符分为两部分,需要3个运算对象。也就是所谓的三元运算符,也是C语言中的唯一的三元运算符。例如:x…

    2022年10月2日
    6
  • mac系统pycharm配置python环境_mac python开发环境

    mac系统pycharm配置python环境_mac python开发环境一、下载安装Python3解释器使用Python3Python之父GuidovanRossum在邮件列表上宣布Python2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python2.7有关的支持,则需要付费给商业供应商。12**GuidovanRossum表示:**Let’snotplaygameswithsemantics.**T…

    2022年8月27日
    19
  • pycharm搭配anaconda_在anaconda中安装pycharm

    pycharm搭配anaconda_在anaconda中安装pycharm为了以后自己忘记可以不用再去找方法,在此记下步骤一、为已存在的project设置环境File–Settings–Pythoninterpreter找到自己Anaconda下的python.exe这里勾选makeavailabletoallprojects在这里就可以看到这个环境里有什么包了,可以看到高亮部分有pandas二、newproject在这里要选择previouslyconfiguredinterpreter点击右边的…进行设置在Cond

    2022年8月29日
    4
  • cdr9导出对话框遮挡怎么办_sldprt文件ug怎么打开

    cdr9导出对话框遮挡怎么办_sldprt文件ug怎么打开说明因为之前旧项目采用的是MFC+BCG界面库的方法实现的。维护旧项目过程中,遇到选择文件对话框没有从默认位置选择的问题,学习和思考后,问题得到解决,特此记录。原来的BCG中配置选择的方法是这样的: lpszDefExt=_T(“DAT”); lpszFilter=_T(“文件|*.dat|\ 文件|*.bln|\ 文件|*.xyz|\ 文件|*.txt||”); m_editDataName.EnableFileBrowseButton(

    2022年10月8日
    5
  • pycharm推荐配色和字体_pycharm代码颜色

    pycharm推荐配色和字体_pycharm代码颜色pycharm的默认主题和字体什么的真是不敢恭维,尤其是在用惯了vscode的onedarkpro主题后,再看pycharm真是觉得有点。。。在网上找了许久,找到一款类似onedarkpro的主题,同时还下载了彩色括号的插件,换上类似vscode的字体,pycharm顿时顺眼多了。度云自取:https://pan.baidu.com/s/1Ia6oryWUXV3TKT0wjzbAc…

    2022年8月27日
    3
  • 模拟电子技术基础 思维导图

    模拟电子技术基础 思维导图模拟电子技术基础-思维导图参考孙肖子等编著.——北京:高等教育出版社,2012.12稍后将细致介绍每一章节的内容及重点应用!!!

    2022年6月20日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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