作者:桂。

时间:2017-06-03  15:40:33

链接:http://www.cnblogs.com/xingshansi/p/6937576.html


前言

本文主要记录麦克风阵列的几个基本知识点,并简单介绍基本的波束合成方法:Delay and sum (DSB).

一、栅瓣效应

类似干涉仪中的phase-wrapping问题:传感器的距离超过半波长的距离。

  A-Beam Pattern

以线性阵列为例

输出为

对应的增益,也就是output,取频率为1KHz的数据:

有时候也用极坐标表示

  B-Frequency Response

考虑如下场景

实际只有一个波峰,却在不同角度长出多个一样的,这就是栅瓣

相位是角度、频率的共同作用,对应的栅瓣从二维平面更容易理解

从每一个来看,grating lobe就是栅瓣:

二、Delay and sum

DSB核心的思想就是延迟相加,对于栅瓣的DOA估计需要解模糊。假设估计出DOA,进行补偿之后(delay)通过叠加(sum)就可以实现目标信号的增强:

关于delay的操作,可以在时域进行也可以在频域进行,本质上是小数延迟的问题(fractional delays).例如对于下面的dual-channel问题:

需要延迟 是0.5149ms,也就是24.717samples,而不是整数。

小数延迟实现的思路有很多种,例如可以通过线性相位(延迟)的FIR构造,对应就是sinc函数,通常构造完成之后会做一个加窗的平滑处理:

double delay = 0.25;               // Fractional delay amount
int filterLength = 11; // Number of FIR filter taps (should be odd)
int centreTap = filterLength / 2; // Position of centre FIR tap for (int t=0 ; t<filterLength ; t++)
{
// Calculated shifted x position
double x = t - delay; // Calculate sinc function value
double sinc = Math.sin(Math.PI * (x-centreTap)) / (Math.PI * (x-centreTap)); // Calculate (Hamming) windowing function value
double window = 0.54 - 0.46 * Math.cos(2.0 * Math.PI * (x+0.5) / filterLength); // Calculate tap weight
double tapWeight = window * sinc; // Output information
System.out.printf("%3d % f % f % f\n", t, sinc, window, tapWeight);
}

  其他如:重采样技术(Resample)、Farrow-filter技术,都可以实现这样的功能。

参考

  • http://www.labbookpages.co.uk/audio/beamforming/delaySum.html#pattern

【麦克风阵列增强】Delay and sum beamforming的更多相关文章

  1. 【论文:麦克风阵列增强】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 ...

  2. 【论文:麦克风阵列增强】An Algorithm For Linearly Constrained Adaptive Array Processing

    作者:桂. 时间:2017-06-03  15:06:37 链接:http://www.cnblogs.com/xingshansi/p/6937635.html 原文链接:http://pan.ba ...

  3. 【论文:麦克风阵列增强】Signal Enhancement Using Beamforming and Nonstationarity with Applications to Speech

    作者:桂. 时间:2017-06-06 13:25:58 链接:http://www.cnblogs.com/xingshansi/p/6943833.html 论文原文:http://pan.bai ...

  4. 【论文:麦克风阵列增强】Speech Enhancement Based on the General Transfer Function GSC and Postfiltering

    作者:桂. 时间:2017-06-06  16:10:47 链接:http://www.cnblogs.com/xingshansi/p/6951494.html 原文链接:http://pan.ba ...

  5. 【论文:麦克风阵列增强】Microphone Array Post-Filtering For Non-Stationary Noise Suppression

    作者:桂. 时间:2017-06-08  08:01:41 链接:http://www.cnblogs.com/xingshansi/p/6957027.html 原文链接:http://pan.ba ...

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

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

  7. 基于麦克风阵列的声源定位算法之GCC-PHAT

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

  8. 详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)

    前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acoustic Echo Cancellation)的基本原理与优化方向,这一章我们接着聊另外一个 "A" - ...

  9. JavaCV FFmpeg采集麦克风PCM音频数据

    前阵子用一个JavaCV的FFmpeg库实现了YUV视频数据地采集,同样的采集PCM音频数据也可以采用JavaCV的FFmpeg库. 传送门:JavaCV FFmpeg采集摄像头YUV数据 首先引入 ...

随机推荐

  1. PowerBI 第二篇:数据建模

    在分析数据时,不可能总是对单个数据表进行分析,有时需要把多个数据表导入到PowerBI中,通过多个表中的数据及其关系来执行一些复杂的数据分析任务,因此,为准确计算分析的结果,需要在数据建模中,创建数据 ...

  2. bzoj2560 串珠子

    Description 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不 ...

  3. JS基础,你需要掌握的要点!

    [循环控制语句]1.break:终止本层循环,继续执行循环后面的语句: 当循环有多层时,break只会跳过一层循环:2.continue:跳过本次循环,继续执行下一次循环: 对于for,continu ...

  4. CSS中的字体设置

    五大类:serif, sans-serif, monospace, cursive, fantasy serif 衬线字体,如 Big Caslon, 宋体 sans-serif 非衬线字体,如 He ...

  5. php中表单提交复选框与下拉列表项

    在赶项目中,抽出半个小时来写篇博客吧,这个功能说实话不难,为什么要写呢,因为在复选框那里有小小的难点,我试了好多遍才试成功的,希望能为以后需要帮助的同学提供点思路. 先看一下我做的效果吧 就是给每个业 ...

  6. kafka java使用

    首先添加maven依赖 Kafka <dependency> <groupId>org.apache.kafka</groupId> <artifactId& ...

  7. [原创]JS实现数据筛选(each)

    做列表的时候,有时候需要按照某些条件进行查询,如班级,分组之类.但是又不想在重新从服务器获取数据,可以进行隐藏

  8. poj2481 Cows 树状数组

    题目链接:http://poj.org/problem?id=2481 解题思路: 这道题对每组数据进行查询,是树状数组的应用.对于二维的树状数组, 首先想到排序.现在对输入的数据按右值从大到小排序, ...

  9. WPF 简易手风琴 (ListBox+Expander)

    概述 之前听说很多大神的成长之路,几乎都有个习惯--写博文,可以有效的对项目进行总结.从而提高开发的经验.所以初学WPF的我想试试,顺便提高一下小学作文的能力.O(∩_∩)O哈哈~ 读万卷书不如行万里 ...

  10. java图片上传(mvc)

    最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.i ...