Evaluation of fast-convergence algorithm for ICA-based blind source separation of real convolutive mixture
实际卷积混合情况下,基于ICA的盲源分离算法快速收敛性能评估[1]。
提出了一种新的盲源分离算法,该算法将独立分量分析ICA和波束形成BF相结合,通过优化算法来解决盲源分离的低收敛问题。该方法由以下三部分组成:(1)基于到达方向(DOA)的频域ICA估计;(2)基于估计DOA的零波束形成;(3)基于迭代和频域算法多样性的(1)和(2)的集成。通过迭代优化,用基于零波束形成的矩阵代替ICA得到的混合矩阵的逆,ICA与波束形成的时间交替可以实现快速、高收敛的优化。实验结果表明,即使在混响条件下,该算法的信号分离性能也优于传统的基于ICA的BSS方法。
信号建模
如下图,信源数目L,阵元数目K,本文假设K=L=2。
频域中,混合信号可以表示为:,其中
为混合信号,
为源信号向量。
是复值的混合矩阵,因为存在到达时延以及混响。
频域ICA中,采用逐帧处理,进行DFT时频转换。,假设长度为L的解混信号为
,并且相互独立。在每个frequency bins都这样处理。最后对
采用IDFT和overlap-add技术,在时域重建源信号。
传统基于ICA的BSS方法中,采用下式迭代估计最优:
其中表示时间平均算子,第i次更新,非线性向量函数:
其中和
分别表示实部和虚部。
提出算法
传统ICA算法有一个重要的缺陷,在非线性优化过程中low convergence。本文提出了一种基于ICA和波束形成学习时间交替的算法。解混矩阵的逆矩阵可以通过ICA获得,用null BF的矩阵代替。具体参见图2。
文中算法在all frequency bins 并行地施行下述步骤:
1、初始化:随机设置,开始i=0.
2、一次ICA迭代:根绝下式优化分离矩阵:
3、DOA估计:根据阵列指向性模式估计DOA:
其中是
的元素。在方向性图中,方向零点只在两种情况下存在。通过在所有频率仓的零点方向的估计,可以估计得到源信号的DOA。第l个源信号的方向估计为:
,其中N是DFT的点数。而且
表示第l个源信号在第m个频率仓的DOA。并有:
4、波束形成:
在观测方向为,方向零点为
时:
反之,观测方向为,方向零点指向
时:
5、代价函数的多样性:代价函数的多样性关系到分离算法的多样性,我们采用两种分离信号间的余弦距离,该距离分别由ICA和BF得到:
其中是由ICA分离得到的信号,
是通过BF分离得到的信号。
如果i+1次更新达到收敛,去到步骤6;否则返回步骤2.
6、排序和缩放:根据第3步得到的DOA估计,可以纠正分离信号的排序和增益不一致性。
实验结果
采用2元线阵,间距4cm。语音信号在-30°和40°两个方向。实验中,原始语音和不同混响RTs(150msec和300msec)的脉冲响应卷积混合。采样率8k,帧长128msec,帧移为2msec,步长参数设置为10-5。
结合ICA与BF的兄弟篇
详细见参考文献[2]。同一团队于2003写的一篇,结合子带ICA以及null BF的盲源分离方法。主要内容如下:
参考文献
[1] Saruwatari H, Kawamura T, Sawai K, et al. Evaluation of fast-convergence algorithm for ICA-based blind source separation of real convolutive mixture[C]// Signal Processing Conference, 2002, European. IEEE, 2002:1-4.
[2] Saruwatari H, Kurita S, Takeda K, et al. Blind Source Separation Combining Independent Component Analysis and Beamforming[J]. Eurasip Journal on Advances in Signal Processing, 2003, 2003(11):569270.
Evaluation of fast-convergence algorithm for ICA-based blind source separation of real convolutive mixture的更多相关文章
- 【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information
基于图形信息的HEVC帧间预测快速算法/Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information <H ...
- Deep Learning 17:DBN的学习_读论文“A fast learning algorithm for deep belief nets”的总结
1.论文“A fast learning algorithm for deep belief nets”的“explaining away”现象的解释: 见:Explaining Away的简单理解 ...
- Reducing the Dimensionality of data with neural networks / A fast learing algorithm for deep belief net
Deeplearning原文作者Hinton代码注解 Matlab示例代码为两部分,分别对应不同的论文: . Reducing the Dimensionality of data with neur ...
- 论文笔记(2):A fast learning algorithm for deep belief nets.
论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...
- super fast sort algorithm in js
super fast sort algorithm in js sort algorithm Promise.race (return the fast one) Async / Await // c ...
- Direction of Arrival Based Spatial Covariance Model for Blind Sound Source Separation
基于信号协方差模型DOA的盲声源分离[1]. 在此基础上,作者团队于2018年又发布了一篇文章,采用分级和时间差的空间协方差模型及非负矩阵分解的多通道盲声源分离[2]. 摘要 本文通过对短时傅立叶变换 ...
- 【sqli-labs】 less48 GET -Error based -Blind -Numeric -Order By Clause(GET型基于盲注的整型Order By从句注入)
图片还是47...访问的的确是48 这个是基于bool的盲注 http://192.168.136.128/sqli-labs-master/Less-48/?sort=1 and sleep(0.1 ...
- ICA(独立成分分析)笔记
ICA又称盲源分离(Blind source separation, BSS) 它假设观察到的随机信号x服从模型,其中s为未知源信号,其分量相互独立,A为一未知混合矩阵. ICA的目的是通过且仅通过观 ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
随机推荐
- BJFU-215-基于链式存储结构的图书信息表的排序
这里用的是冒泡排序 #include<stdio.h> #include<stdlib.h> #define MAX 100 typedef struct Book{ doub ...
- Go 基本数据类型
Go基础语法 package main import "fmt" func main(){ fmt.Println("Hello world") } 注意点: ...
- ubuntu安装shadow socks-qt5
Ubuntu16安装shadow socks-qt5 在Ubuntu下也是有GUI客户端,怎么安装请看下面: 首先,针对Ubuntu16的版本可以直接这么安装: .$ sudo add-apt-rep ...
- Spring概述学习笔记
1.Spring概述 Spring致力于J2EE应用的各种解决方案,而不仅仅专注于某一层的方案. 可以说,Spring是企业应用开发的一站式选择,他贯穿于表现层.业务层.持久层. Spring并不想取 ...
- SOFT-NMS (二) (non maximum suppression,非极大值抑制)
import numpy as np boxes = np.array([[200, 200, 400, 400], [220, 220, 420, 420], [200, 240, 400, 440 ...
- SpringBoot启动原理详解
SpringBoot和Spring相比,有着不少优势,比如自动配置,jar直接运行等等.那么SpringBoot到底是怎么启动的呢? 下面是SpringBoot启动的入口: @SpringBootAp ...
- Celery:Optimizing
参考文档:http://docs.celeryproject.org/en/latest/userguide/optimizing.html#guide-optimizing
- python检测远程udp端口是否打开的代码
研发过程,把开发过程较好的代码收藏起来,如下的代码内容是关于python检测远程udp端口是否打开的代码,希望对各朋友有较大帮助. import socketimport threadingimpor ...
- Hive架构分析
一.Hive三种设计模式 1.默认配置[使用Netty存储元数据] 2.mysql[使用mysql存储元数据] 3.配置Thrift[使用mysql存储元数据] 二.执行步骤 三.scala访问Hiv ...
- 【方法整理】Oracle 获取trace跟踪文件名的几种常用方式
[方法整理]Oracle 获取trace跟踪文件名的几种常用方式 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...