作者:einyboy or alert

(注本文有些图片来源于网络)

鸡尾酒宴会问题:

      假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了一组数据 ,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。

图示跟数学表达如下:


X=AS

S是原始信号,X是麦克峰采集出来的信号,A是表征信道特征的混合矩阵。另一种表达如下:

为了求由X求S,我们能不能写出S=inv(A)*X?是不行的,因为我们

没有A的相关知识。我们换个思路,显然由常识X的分量是相关的,认为S的分量是相互独立的(说白点就是不同的说话人),我们找一个矩阵W,使得U = WX,而U的个个分量是独立的就行了,有一种叫做ICA的独立成分分析算法我以解这种问题。请注意ICA算法要求原信号S是独立同分布的非高斯分布才行。ICA对高斯分布来说是病态,为什么呢,想想中心极限定理就知道了。下面对ICA的算法做一个介绍,不做深入的数学推导:

1、         中心化:也就是求X均值,然后让所有X减去均值。

          X = X-mean(X)

2、    白化:目的是将x乘以一个矩阵变成 ,使得 的协方差矩阵是 I 即

我们只需用下面的变换,就可以从x得到想要的 。

其中使用特征值分解来得到E(特征向量矩阵)和D(特征值对角矩阵),计算公式为

这样做的目的是消除二阶统计量的相关性,就是PCA分析了。

3、随机初始化一个矩阵W,并归一化:

4、计算

g是一个非线性函数,可以是下面一些函数:

5、W进行归范化:

6、如果W没有收敛,转第4步,否则算法结束

代码运行截图如下:

代码:http://download.csdn.net/source/3321665

man.wav   源信号

music.wav  源信号

MixedS1.wav混合信号

MixedS2.wav混合信号

SS1.wav解混信号

SS2.wav解混信号

ICADemo.m程序文件

鸡尾酒宴会问题---ICA独立成分分析[原创]相关推荐

  1. 结合matlab代码案例解释ICA独立成分分析原理

    目录 介绍 什么是ICA? 对数据进行白化 ICA算法 ICA特性 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 QQ交流群:941473018 关于ICA,可以查看Rose小哥之前分享的 ...

  2. ICA独立成分分析去除脑电伪影

    今天分享的这篇利用独立成分分析ICA去除EEG伪影是翻译自jung大神的一篇文章. 目录 1 介绍 2 方法 3 实验数据样本 1 介绍 眼动,眨眼,肌肉,心脏和线的噪音会严重污染脑电图活动,这在脑电 ...

  3. 【机器学习】【ICA-2】ICA独立成分分析的原理 + ICA前的预处理(中心化+漂白)

    前情提示:ICA算法成立的前提是:假设每个人发出的声音信号各自独立. 1.鸡尾酒宴会问题 n个人在一个房间开party,房间的不同配置摆放了n个声音接收器,每个接收器在每个时刻同时采集到n个人声音的重 ...

  4. ICA独立成分分析—FastICA基于负熵最大

    1. 概念 官方解释:利用统计原理进行计算的方法,是一种线性变换. ICA分为基于信息论准则的迭代算法和基于统计学的代数方法两大类,如FastICA算法,Infomax算法,最大似然估计算法等. 这里 ...

  5. 如何使用ICA(独立成分分析)来去除伪影

    关于使用ICA,可以采用mne的库来进行实现.具体可以查看官网:ICA使用 ICA的大致原理是:找到一个分解的矩阵,将原始数据分解成时间独立和空间固定的分量之和.然后先根据自己的经验去除伪迹分量,再通 ...

  6. ICA独立成分分析去除EEG伪影

    目录 介绍 ICA假设 方法 组件投影 实验数据样本 移除眨眼和肌肉伪影 一些严重污染的脑电数据 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群1:903290195(已满,请 ...

  7. ICA(独立成分分析)笔记

    ICA又称盲源分离(Blind source separation, BSS) 它假设观察到的随机信号x服从模型,其中s为未知源信号,其分量相互独立,A为一未知混合矩阵. ICA的目的是通过且仅通过观 ...

  8. ICA:独立成分分析

    本文是转载自:ICA:独立成分分析.下面开始介绍: 独立成分分析(Independent Component Analysis) 1. 问题: 1.上节提到的PCA是一种数据降维的方法,但是只对符合高 ...

  9. sklearn自学指南(part50)--独立成分分析(ICA)

    学习笔记,仅供参考,有错必纠 文章目录 分解信号的分量(矩阵分解问题) 独立成分分析(ICA) 分解信号的分量(矩阵分解问题) 独立成分分析(ICA) 独立成分分析将一个多变量信号分离成最大程度独立的 ...

最新文章

  1. [题解]UVA10054 The Necklace
  2. 学python有哪些书推荐-有哪些Python学习路线值得推荐?线路及书籍推荐都在这里...
  3. 快手-中科大最新研究:利用对话式推荐解决用户冷启动问题
  4. video自动全屏播放
  5. [原]ImportError: No module named thrift.Thrift问题解决
  6. iap java md5_苹果应用内支付(iOS IAP)的流程与常用攻击方式
  7. Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
  8. 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件怎么样
  9. java基础编程题库_JAVA基础编程练习题
  10. 单片机开发需要的工具以及软件有哪些
  11. 用计算机关闭无线网络连接,干货分享:打印机无线连接断开了怎么办?
  12. unity 2021.3.6f1 报错 dependencies manifest(Microsoft.NetCore.App.deps.json)was not found
  13. 2021年焊工(初级)考试总结及焊工(初级)模拟考试题
  14. 哈工大C语言程序设计精髓第十三周
  15. 1.1 区块链专业术语(中英对照)
  16. wxpython wx.Destroy()和wx.Close()区别
  17. 雷电3菊链功能_别选错!笔记本的Type-C和雷电3接口区别可大了
  18. 迈思德物联网网关问答集锦
  19. 项目十大管理之成本管理
  20. python中list函数例题_python 练习题(三)

热门文章

  1. Metro UI 界面完全解析 (转载)
  2. 学美术对我们有什么帮助?这4条总结的很全面~
  3. 教你用一个Json做一个App,移动应用开发框架
  4. mybatis mysql 模糊查询语句_mybatis模糊查询语句及注意事项
  5. RIKIBOT开箱使用说明
  6. mysql数据查询——复杂查询
  7. [nrf51][nrf52][SDK17] NRF系列怎么实现低功耗运行,带freertos能进入吗?
  8. 学习集合工具类CollectionUtils——List对象案例
  9. Unity Asset Bundles Manifest文件
  10. Springboot整合SM2加密的笔记