作者:桂。

时间:2017-06-03  15:06:37

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

原文链接:http://pan.baidu.com/s/1pKOYuiJ


前言

本文的算法就是在阵列信号增强中非常经典的Frost's Algorithm。上个世纪70年代的技术了,梳理一下该算法的思路。

一、理论框架

首先交代理论模型。噪声为加性噪声:

X为带噪信号,L为理想信号,N为噪声信号,目的是希望利用一组滤波器,实现特定信号的增强(Enhancement).

假设有M个麦克风,对应滤波器的抽头系数为J:

写成向量的形式就是:

MVDR通常是按频点处理,以对第k个频点的处理为例:滤波信号可以表示为

其实框架就是Delay and sum,不同的是权重W不再是均分分布,而是通过最小方差找出最优组合,这就定义了准则函数:

这是一个约束问题,可以借助拉格朗日乘子法求解:

从而得出理想的输出:

例如希望减少noise的时候,原信号保持不变:

这样完成了理论框架的搭建:模型建立→准则函数定义→目标参数求解。

接下来就是落地的问题,即如何将理论模型与实际的工程应用结合起来

二、实现思路

  A-初步实现

  首先是Rxx,它应该是一个先验知识priori:

它是随机信号的均值,实际应用中通常是不知道的,我们只有观测信号。因此通常时间换空间,在平稳遍历的基础上用R = 1/T (XXT)来近似表达,这样一来实际的W就可以求解,从而完成了理论的落地。

  B-改进思路

  这样的R通常是较大的,W的求解涉及到矩阵求逆的问题,运算速度较慢。最优解的求解,一般有最小二乘和梯度下降两个思路。矩阵求逆通常对应最小二乘思路,直接得出最优解,考虑到运算速度,一个直观的思路就是:利用梯度下降的思想。而对于均方意义下的准则函数,梯度是无法求解的,但基于遍历性的假设,可以利用不同时刻的样本进行近似梯度求解,这也就是自适应滤波的思路。梯度下降从样本量的角度来讲,有两个基本思路:随机梯度下降、批量梯度下降,这里以随机梯度下降为例(SGD).梯度下降从下降方式来讲,又有很多分支:一阶梯度下降、二阶梯度下降(Newton-Rapson)等。对于含有约束条件的梯度下降,常用的思路是:投影梯度下降法。文中利用拉格朗日乘子法将含约束的问题转化为无约束问题:

对应的梯度下降:

其中λ为:

从而梯度下降改写为

这样一来只有关于C的求逆,这是可以事先求解并固定不变的。定义:

迭代形式简化为

给出完成的梯度下降法思路(初始化+迭代):

至此,速度问题也得以优化,完成了整个MVDR的落地工作。注意到一点:μ作为迭代步长,需要人为给定。给的合适,收敛较好;给的不理想,收敛太慢甚至发散。

  C-迭代步长μ的选取

细节不罗列了,需要说明的是分析是基于随机过程的均值。实际LMS应用中的μ并不完全与它吻合。

首先考虑平稳噪声的场景,需要满足:

其次考虑非平稳噪声的场景,需要满足:

具体推导看原文吧,实际应用中由于场景不同,μ的设定更多的依靠工程经验,这个单靠理论是行不通的。

参考

  • Frost, Otis Lamont. "An algorithm for linearly constrained adaptive array processing." Proceedings of the IEEE 60.8 (1972): 926-935.

【论文:麦克风阵列增强】An Algorithm For Linearly Constrained Adaptive Array Processing的更多相关文章

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

  3. 【麦克风阵列增强】Delay and sum beamforming

    作者:桂. 时间:2017-06-03  15:40:33 链接:http://www.cnblogs.com/xingshansi/p/6937576.html 前言 本文主要记录麦克风阵列的几个基 ...

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

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

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

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

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

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

  8. 论文总结(negFIN: An efficient algorithm for fast mining frequent itemsets)

    一.论文整体思路: 作者提出了一种基于前缀树的数据结构,NegNodeset,其实是对之前前缀树的一种改进,主要区别在于采用了位图编码,通过这种数据结构产生的算法称为negFIN. negFIN算法高 ...

  9. 【论文阅读】A practical algorithm for distributed clustering and outlier detection

    文章提出了一种分布式聚类的算法,这是第一个有理论保障的考虑离群点的分布式聚类算法(文章里自己说的).与之前的算法对比有以下四个优点: 1.耗时短O(max{k,logn}*n), 2.传递信息规模小: ...

随机推荐

  1. angularjs中常用的ng指令介绍【转载】

    原文:http://www.cnblogs.com/lvdabao/p/3379659.html 一.模板中可使用的东西及表达式 模板中可以使用的东西包括以下四种: 指令(directive).ng提 ...

  2. linux内核Makefile整体分析

    转自:http://www.cnblogs.com/amanlikethis/p/3675486.html <请阅读原文> 一.概述 1.本文的意义 众多的资料(<嵌入式Linux应 ...

  3. MySQL存储过程_创建-调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向 ...

  4. [原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍

    声明:本文首发在博客园晨星落羽,Shulin_Cao和lvmememe首页,转载请注明出处. 前言 2016.5到2017.5,我们三人(lvmememe,Shulin_Cao,晨星落羽)共同完成了一 ...

  5. 关于Content-Type的问题

    今天我在编写html表单提交到 php时,出现了一个很奇怪的现象. 为了让php文件的字符编码与html一致,我在php文件加了一句 header("Content-Type:html/te ...

  6. 在Mvc中进行异步请求是出现(没有为该对象定义无参数的构造函数)

    解决办法就是给相应的类添加无参数的构造函数:

  7. 关于在"a"标签中添加点击事件的一些问题

    昨天做修改页面跳转时遇到一个问题,如果a标签的"href"属性为空的话,比如这样<a href="" onclick="roleupdate() ...

  8. jQuery的hover方法搭配css的hover选择器,实现选中元素突出显示

    问题简述: 今天做帮一个师姐做网页遇到一个这样的要求: 鼠标不移动进表格,表格透明度不变. 鼠标移动进表格,hover到的单元格透明度不变,没hover到的单元格透明度改变. 先贴我已经实现好的效果, ...

  9. Servlet的线程安全

    Servlet的线程安全 一.什么是Servlet的线程安全 1.在Servlet的整个生命周期中,构造方法只被执行一次.也就是说,在Servlet的整个生命周期中,只存在一个Servlet实例对象. ...

  10. 超简单jQuary链式操作代码实现手风琴效果

    超简单jQuery代码实现手风琴效果 HTML代码 <div id="cont"> <div> <p>人生若只如初见</p> < ...