终于进入正戏了,前述点缀太多以至于我一度怀疑我在干嘛。

废话不多说了,麦克风阵列,用一系列的麦克风组合达成“空间采样”的目的,阵列里的许多原理概念,其实同数字信号处理里的很多概念很类似,比如混叠、加窗等。这很好理解,毕竟都是采样,只不过一个是对空间,一个是对时间罢了。

用于声学的麦克风阵列,其实很多都借鉴于天线、雷达,用以实现信号检测、降噪、达波方向估计等,并且可以利用阵列中不同采样点接受到信号的相位信息控制波束的指向从而完成定向信息接受(波束成形技术,Beamforming)。

其实波束形成或者阵列的玩法,本质上是操作阵列输入信号的滤波器,对于一类固定滤波器系数的阵列来说,无论输入信号或者噪声信号是啥样的(统计特征),其滤波器系数雷打不动,此类波束形成叫Fixed Beamforming,固定波束形成好比传统数字信号处理里面的经典滤波器;可以联想到,现代数字信号里面有一类自适应滤波器,对应的,阵列里就有相应的Adaptive Beamforming,其滤波器的系数是跟随着噪声场的变化而变化的。

此外,阵列根据形状不同还分为线阵、环针、中心阵等,为了便于理解,我们先从一维的Fixed Beamforming开始着手研究uniform linear arrays,由此普适情况推导其他也不会是什么难事。

问题建模及求解

首先远场平面波假设,有一线阵由M个麦克风等间距组成,声速为c,则阵列在处理入射信号的旋转向量(Steering Vector,翻译的有点生硬啊)为:

其中theta为入射角, 为入射角等于0时两个麦克风之间的时延,f代表频率。

假设信号从theta 入射,见上图,则接受到的信号

其中 v为噪声,前半部分为我们想要的信号,进而接受信号的功率谱密度:

其中 为信号的方差,为噪声的相关系数矩阵。

Fixed Beamforming过程中我们最终求解都是为了降低其他方向的噪声而不失真的提取到目标信号。

线阵模型

上述提到阵列信号处理无非就是对每个接受信号乘以滤波器的系数在求和,在频域表现则是直接频谱相乘再相加:

是最终输出信号, 是阵列的在频率等于f时候的滤波器系数, 是我们想要的信号, 则是残留噪声。

在Fixed beamforming中我们想要保留想要的信号不失真,则在 中,我们要求 即可满足。

性能指标

固定波束形成中所提到的性能指标都是关于频率的函数,即提到以下指标时要注明所讨论的频率。

1.阵列的增益

阵列的输出信噪比比上阵列的输入信噪比,推导过程不上了,公式为:

,其中 是噪声的空间相关系数矩阵。

2.白噪声增益

当噪声是白噪声时,空间中不同的任意两点的相关系数为0,所以上述 是主对角为1,其余全为0 的单位阵。上述Array Gain可以写成:

可以证明WNG最大值为M,即阵列中麦克风的个数,

3.指向性因数Directivity Factor(DF)

则是考虑阵列工作于扩散声场,因此可同理写为:

,其中 , 翻看讲义一里面的声场统计模型,有关于此的讨论。

所以,关于任意beamforming的讨论,只要得到阵列的滤波器系数,其他(三指标)的自然都迎刃而解了。

空间混叠

开篇已经提及了,这里面的采样混叠其实和数字信号采样混叠道理是一样一样的,这里作一下推导演绎。

空间发生混叠,即阵列分不清信号来自哪个方向了,也就是存在两个不同的 theta, 满足  , 观察steering vector,可以得到:

   or   

此时steering vector中的任一项是满足在两个角度下相等的,所以,此时发生了混叠。由基本三角函数定理

所以满足 时,空间混叠才不会发生。

关于麦克风阵列的基本概念写完了,很多公式令人眼花缭乱,其实麦克风阵列问题归根而言只不过在不同约束条件下求解不同的滤波器系数,比如使得Directivity Index最大的MaxDF阵列,比如使得WNG最大的Delay and Sum,搞明白了以上公式间的关系自然不会觉得这些公式难懂。

另外,这些公式敲起来确实非常麻烦,下面再叙写不同麦克风阵列时,也尽量避免不必要的公式,主要以通过Python编程仿真的一系列图片为主,这样大家看起来也不会脑阔疼,在编程实现不同算法时,也会加深对不同阵列算法的理解。下一篇就搞一搞阵列里最简单的Fixedbeam吧。。

参考:Benesty/Cochen/Jingdong chen的Fundametals of Signal Enhancement and Array Signal Processing

语音增强二,麦克风阵列相关推荐

  1. android usb麦克风阵列,语音设备 SDK 麦克风阵列建议

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 语音设备 SDK 麦克 ...

  2. 微信语音技术原理_智能语音技术中麦克风阵列的原理

    麦克风阵列(Microphone Array),从字面上,指的是麦克风的排列.也就是说由一定数目的声学传感器(一般是麦克风)组成,用来对声场的空间特性进行采样并处理的系统. 早在20世纪70.80年代 ...

  3. 多麦克风做拾音的波束_语音交互:先从麦克风阵列聊起

    随着智能音箱.智能家居等智能硬件的普及,语音交互热度也不断飙升.想要了解语音交互,第一步是了解麦克风阵列,本文从概念.分类.作用几个方面对麦克风阵列展开了说明,与大家分享. 语音交互从亚马逊音箱(Ec ...

  4. 多麦克风做拾音的波束_【语音交互】先从麦克风阵列聊起

    语音交互从亚马逊音箱(Echo)诞生的那一刻,就逐步走进了人们的视野,越来越多的人开始接触到语音交互的设备.从电视里的机器人,到家里的音箱,最后到手上的手机,语音交互变得触手可及. 语音交互的第一步就 ...

  5. 大牛讲堂 | 语音专题第一讲,麦克风阵列的语音信号处理技术

    雷锋网按:徐荣强(Kevin),地平线硬件音频工程师.2011年11月毕业于英国爱丁堡大学通信与信号处理专业,曾任诺基亚,联想,微软高级音频工程师.现在Horizon-Robotics负责语音相关硬件 ...

  6. 语音识别(20201030)——麦克风阵列(采集语音信号)

    目录 麦克风阵列的原理 麦克风阵列的功能 麦克风阵列解决噪声干扰 存在的干扰 算法 1.多通道降混响算法(室内) 2.多通道点干扰抑制算法(室外) 3.多通道目标说话人提取算法(声纹,不适用) 麦克风 ...

  7. 聊一聊麦克风阵列技术:语音交互应该选用怎样的方案?(转载)

    转自:http://news.soundai.com/?id=7 雷锋网(公众号:雷锋网)按:本文作者陈孝良,工学博士,声智科技创始人.雷锋网独家文章. 亚马逊Echo和谷歌Home争奇斗艳,除了云端 ...

  8. 语音专题第一讲,麦克风阵列的语音信号处理技术

    转载自地平线机器人大讲堂,主讲人徐荣强. 2011年11月毕业于英国爱丁堡大学通信与信号处理专业,曾任诺基亚,联想,微软高级音频工程师.现在Horizon-Robotics负责语音相关硬件系统设计,涉 ...

  9. 多麦克风做拾音的波束_麦克风阵列是什么 有哪些关键技术?

    麦克风阵列是什么 有哪些关键技术? 亚马逊Echo和谷歌Home争奇斗艳,除了云端服务,他们在硬件上到底有哪些差异?我们先将Echo和Home两款音箱拆开来看,区别最大的还是麦克风阵列技术.Amazo ...

  10. 音视频开发(37)---麦克风阵列语音增强(二)

    麦克风阵列语音增强(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhanglu_wind/article/details/81217093 ...

最新文章

  1. Python报错UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 1413-1418: ordinal not
  2. [iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端二)
  3. Java经典面试题整理及答案详解(四)
  4. C++——统计多行单个字符类型个数
  5. threadx 信号量 应用_操作系统及ThreadX简介.ppt
  6. oracle12c多个pdb,ProxmoxVE 之 oracle12C 多CDB和PDB
  7. 勇于尝鲜,感受世界——对话阿里云 MVP黄坤
  8. jQuery 中json字符串与对象互转
  9. gem5的安装、编译及运行
  10. MySql.Data.dll官网下载
  11. 2019手机浏览器排名_不开玩乐!2019最强手机浏览器
  12. ie为什么那么垃圾(不是ie垃圾,是ie用的人太多了,很多在用低版本)
  13. 在线动态几何编辑器 GeometryEditor
  14. 省市县乡村五级行政区域数据2021(国家统计局)
  15. 情人节程序员用HTML网页表白【表白对话】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  16. python jinja2_Python模块学习 - jinja2
  17. ftp服务器文件不让上传,ftp服务器不让上传文件
  18. 《Excel大神上分攻略》学习笔记3——函数求和及常见函数
  19. eclipse快捷键使用以及一些小机灵
  20. 详解Quartz中的注解:@DisallowConcurrentExecution和@PersistJobDataAfterExecution

热门文章

  1. C#学习笔记29——c#使用word、excel、pdf
  2. 使用OBS做无延时/低延迟直播(实测)
  3. Android6.0之AMS启动app中篇之创建app进程
  4. 计算机毕业设计jsp酒店管理系统
  5. BabeLua--Lua调试器
  6. Ubuntu20.04、22.04安装nvidia显卡驱动
  7. MathType安装教程,以及部分功能变灰,重新点亮
  8. linux环境 下载Neo4j
  9. 如何写好一篇技术博客
  10. LCD1602单片机(STC51/STM32)驱动程序详解