目前基于麦克风阵列的声源定位方法大致可以分为三类:基于最大输出功率的可控波束形成技术、基于高分辨率谱图估计技术和基于声音时间差(time-delay estimation,TDE)的声源定位技术。

基于TDE的算法核心在于对传播时延的准确估计,一般通过对麦克风间信号做互相关处理得到。进一步获得声源位置信息,可以通过简单的延时求和、几何计算或是直接利用互相关结果进行可控功率响应搜索等方法。这类算法实现相对简单,运算量小,便于实时处理,因此在实际中运用最广。

GCC-PHAT

基于广义互相关函数的时延估计算法引入了一个加权函数,对互功率谱密度进行调整,从而优化时延估计的性能。根据加权函数的不同,广义互相关函数有多种不同的变形,其中广义互相关-相位变换方法(Generalized Cross Correlation PHAse Transformation,GCC-PHAT)方法应用最为广泛。GCC-PHAT方法本身具有一定的抗噪声和抗混响能力,但是在信噪比降低和混响增强时,该算法性能急剧下降。

研究表明麦克风对的GCC-PHAT函数的最大值越大则该对麦克风的接收信号越可靠,也就是接收信号质量越高。

1、计算传播时延

广义互相关函数时延估计算法根据两个麦克风信号的互相关函数峰值来估计时延值。在声源定位系统中,麦克风阵列的每个阵元接收到的目标信号都来自于同一个声源。因此,各通道信号之间具有较强的相关性。理想情况下,通过计算每两路信号之间的相关函数,就可以确定两个麦克风观测信号之间的时延。

阵列中两个麦克风的接收信号为:

其中s(t)为声源信号,n1(t)和n2(t)为环境噪声,τ1和τ2是信号从声源处传播到两个麦克风阵元的传播时间。相关参数可参见下图:

互相关算法经常被用来做时延估计,表示为:

代入信号模型,则有:

此时因为s(t)和n1(t)互不相关,上式可以简化为:

其中τ12=τ1-τ2,假设n1和n2是互不相关的高斯白噪声,则上式可以进一步简化为:

由相关函数的性质可知,当τ12=τ1-τ2时,Rx1x2(τ)取最大值,是两个麦克风之间的时延。

互相关函数和互功率谱的关系:

在麦克风阵列信号处理实际模型中,由于存在混响和噪声影响,导致Rx1x2(τ)的峰值不明显,降低了时延估计的精度。为了锐化Rx1x2(τ)的峰值,可以根据信号和噪声的先验知识,在频域内对互功率谱进行加权,从而能抑制噪声和混响干扰。最后进行傅里叶逆变换,得到广义互相关函数Rx1x2(τ):

其中φ12(w)表示频域加权函数。广义互相关时延估计算法框图如下:

2、常用加权函数及其特点

相位变换加权函数的表达式为:

由上式可知,相位变换加权函数实质上是一个白化滤波器,使得信号间的互功率谱更加平滑,从而锐化广义互相关函数。经过PHAT加权之后,Rx1x2(τ)广义互相关函数的表达式为:

可以看出,经过PHAT加权的互功率谱近似于单位冲激响应的表达式,突出了时延的峰值,能够有效抑制混响噪声,提高时延估计的精度和准确度。

3、互相关函数

x(n)和y(n)的互相关函数是将x(n)保持不动, y(n)左移m个样本点,两个序列逐个相乘的结果,顺序不能互换。但是,按照时域卷积的方式求互相关函数的方法计算复杂度较大,所以将在频域进行操作(FFT和IFFT),即线性卷积的FFT算法。

两个信号的互相关函数的频域等于x信号频域的共轭乘以Y信号的频域。

4、近场和远场

需要说明的是,GCC-PHAT算法是用在近场模型下的。

当声源足够远时,麦克风阵列的直径与声源距离相比可W忽略,此时一般采用远场模型。远场模型认为声源位于无穷远处,麦克风接收到的声波为平面波,此时我们仅考虑声波的入射方向,而不考虑声源相对于麦克风阵列的的距离。

当声源的距离较近时,我们需要考虑声源相对于麦克风阵列中的距离,此时远场模型里不再适用,应当采用近场模型。近场模型认为麦克风接收到的声波为球面波。近场模型更符合实际应用情况,能提供更多的声源位置信息,提高定位的精度。

通常,判断近场和远场的经验公式为:

其中d为麦克风阵列的直径,λ为目标信号的波长,r为麦克风阵列和声源之间距离。
在实际的近场模型应用中,麦克风阵列所接收到的信号主要包括3部分;声源直达信号、经过墙壁或障碍物的反射信号以及环境噪声信号。

SRP-PHAT

SRP-PHAT(Steered Response Power - Phase Transform) 基于相位变换加权的可控响应功率的声源定位算法。

基于麦克风阵列的声源定位方法很多,相位变换加权的可控响应功率SRP-PHAT声源定位算法在混响环境中有较强的鲁棒性,可实现真实环境中的声源定位,因此该算法得到了广泛应用。SRP-PHAT对阵型没有特定要求,因此也适用于分布式阵列,事实上很多基于分布式阵列的定位系统采用了该算法。

SRP-PHAT算法的基本原理是在假想声源位置计算所有麦克风对接收信号的相位变换加权的广义互相关GCC-PHAT函数之和,在整个声源空间寻找使SRP值最大的点即为声源位置估计。SRP-PHAT对混响有较强的鲁棒性,但是在低信噪比SNR(Signal-to-NoiseRatio)环境中其定位性能较差。

SRP-PHAT算法的计算流程如下:

其中, Q 为预先设定的搜索空间。

SRP-PHAT法是一种对窄带和宽带信号均可适用的有效方法, 得到了广泛研究和应用。但是由于其全局搜索算法运算量较大,限制了该方法的实时性。

扩展

GCC时延估计中,信号x1和x2都采用理想模型,并没有过多考虑混响噪声,所以当混响较强时,GCC时延估计算法效果较差。而自适应最小均方算法采用麦克风信号的实际模型,通过自适应滤波产生h1(n)和h2(n),再从h1(n)和h2(n)中估计时延,可以有效抑制混响的影响。

实际模型中,第i个麦克风接收的信号xi(t)可以表示为:

其中aik表示第k条反射路径到达第i个麦克风的能量衰减,τik表示对应的时延。*表示信号卷积,hi(t)称之为房间单位冲激响应函数,从数学角度反映了房间互相的物理特性。麦克风阵列信号的实际模型见下图:

如图所示,实际模型中,麦克风接收信号不仅包括声源的直达信号和环境噪声,还包括语音信号在墙壁以及房间的其他物体之间重复反射再到达麦克风的信号,我们称之为混响。

更多地,麦克风阵列信号的理想模型参见下图:

如上图所示,在理想模型中,假设麦克风阵列的所有阵元接收到的语音信号只包含直达信号与噪声信号,噪声信号为环境噪声(高斯白噪声),并且每个麦克风之间的噪声相互独立。

基于麦克风阵列的声源定位算法之GCC-PHAT的更多相关文章

  1. 麦克风阵列波束形成之DSB原理与实现

    语音识别有近场和远场之分,且很多场景下都会用到麦克风阵列(micphone array).所谓麦克风阵列是一组位于空间不同位置的麦克风按一定的形状规则布置形成的阵列,是对空间传播声音信号进行空间采样的 ...

  2. 【论文:麦克风阵列增强】An alternative approach to linearly constrained adaptive beamforming

    作者:桂. 时间:2017-06-03  21:46:59 链接:http://www.cnblogs.com/xingshansi/p/6937259.html 原文下载:http://pan.ba ...

  3. 声源定位之2精读《sound localization based on phase difference enhancement using deep neuarl networks》

    2.1.1 题目与摘要 1.为什么要增强IPD? The phase differences between the discrete Fourier transform (DFT) coeffici ...

  4. LED室内定位算法:RSS,TOA,AOA,TDOA(转载)

    转载自:https://blog.csdn.net/baidu_38197452/article/details/77115935 基于LED的室内定位算法大致可以分为四类: 1. 几何测量法 这种方 ...

  5. 基于浏览器的HTML5地理定位

    基于浏览器的HTML5地理定位 地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML ...

  6. 基于SNMP的路由拓扑发现算法收集

    一.三层(网络层)发现 算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008 数据结构: 待检路由设备网关链表:存放指定深度内待检路由设备的网关信息,处理后删除. ...

  7. [ZZ] 基于Matlab的标记分水岭分割算法

    基于Matlab的标记分水岭分割算法 http://blog.sina.com.cn/s/blog_725866260100rz7x.html 1 综述 Separating touching obj ...

  8. [CLPR] 定位算法探幽 - 边缘和形态学

    一. 引言 如何从一副图片中找到车牌? 这是机器视觉的一个应用. 理所当然地, 思考的角度是从车牌本身的信息入手, 为了讨论方便, 下面均以长窄型蓝白车牌为例. 下图就是这样一张车牌的基本信息. 一眼 ...

  9. 关于APIT定位算法的讨论

    关于APIT定位算法的讨论 [摘要]   无线传感器网络节点定位机制的研究中,基于距离无关的定位技术得到快速发展,其中基于重叠区域的APIT定位技术在实际环境中的定位精度高,被广泛研究和应用. [关键 ...

随机推荐

  1. Delphi阿里云短信【支持短信发送、短信批量发送和查询短信发送记录】

    作者QQ:(648437169) 点击下载➨Delphi阿里云短信             阿里云api文档 [Delphi 阿里云短信]是最新的阿里云短信接口,不是阿里大于短信接口,支持SendSm ...

  2. 不一样的go语言-玩转语法之一

      这段时间为俗事所累,疲以应付,落下了不少想法,错过了更新的日子.这个专题开始之际,已经准备了不下十几个主题,而在写作的过程中,又有新想法与主题涌现出来.未来预计想写写的内容主要包括: 玩转语法系列 ...

  3. MEF在WCF REST中实际应用2(Global.asax注册)

    IOCContainer文件: public class IOCContainer { /// <summary> /// 容器 /// </summary> public s ...

  4. IdentityServer4 实现OAuth2.0四种模式之密码模式

    接上一篇:IdentityServer4 实现OAuth2.0四种模式之客户端模式,这一篇讲IdentityServer4 使用密码模式保护API访问. 一,IdentityServer配置 1,添加 ...

  5. vs2017(Visual Studio Code)安装汉化

    一.打开vs2017,菜单栏选择 工具—扩展更新 二.联机搜索Chinese,选择简繁转换插件,点击下载,关闭vs,安装插件,重启即可汉化生效.

  6. Linux排查PHP-FPM进程过量常用命令

    命令如下: 查看每个PHP-FPM进程的内存占用:ps -ylC php-fpm –sort:rss 查看消耗内存最多的前 40 个进程:ps auxw|head -1;ps auxw|sort -r ...

  7. nginx配置访问xx.com跳转www.xx.com

    二.在nginx里面配置 rewrite 规则.打开 Nginx.conf 文件找到server配置段:[以下是我的server配置段] 禁止IP地址访问 server{ listen 80 defa ...

  8. 约束布局ConstraintLayout

    Android新特性介绍,ConstraintLayout完全解析 约束布局ConstraintLayout用法全解析 约束布局ConstraintLayout看这一篇就够了

  9. ETL讲解

    ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要的一个环节. 通常情况下,在 ...

  10. Docker05-容器

    目录 容器介绍 创建容器 案例:创建 redis 的容器 查看容器列表 启动容器 案例:启动redis容器 案例:通过redis客户端进行测试 创建并运行容器 案例:创建并运行一个redis容器 停止 ...