根据信息论可知,等方差分布中高斯分布的熵最大。而根据概率论的中心极限定理可知,若一随机变量由许多相互独立的随机变量组成,只要具有有限的均值与方差,则无论其为何种分布,随机变量较更接近高斯分布。反之,对一个混合信号来说,如果完成对信号的分离,则会使得分离后的结果之间的非高斯性变大,即信号之间可看成相互独立的。故引入负熵来度量,其公式定义为

式中是与具有相同方差的高斯变量。从式子可以看出,当且仅当信号满足高斯分布时,其负熵才会为零。而不满足高斯分布是,负熵都会大于零,特别的当负熵达到最大时可以知道此时信号的熵为零,亦即可以得出此时信号之间的独立性最大。故在分离信号的时候用可用负熵来度量。详细的推导过程见李云霞的博士论文《盲信号分离算法及其应用》。
我们在看完其推导之后,往往会发现其实际编程的时候会有困难,基于此,我在这里详细讲解如何实现编程。编程的步骤一般如下:
1)对接收信号中心化与预白化
2)设置迭代次数,选择初始权
3)程序主体
4)正交化,这是避免提取出重复的源信号
5)对迭代权值归一化
6)判断是否收敛,没有的话返回3)继续,知道收敛为止。
好了,不多说,我们讲解如何编写:
我们分离正定信号,4个信源,4个传感器,2000个采样点;接收信号为X,其行列为4*2000。
%%去均值与预白化

       [m,n]=size(X);%获的输入数据的行列Zerox=X-mean(X,2)*ones(1,n);Rxx=Zerox*Zerox'/n;[S,V,D]=svd(Rxx);WhiteMartix=V^(-1/2)*S';Z=WhiteMartix*Zerox; 

上面处理过后,Z为白化之后的数据,接着我们处理白化后的数据即可

%设置收敛门限与最大的迭代次数
设置最大的迭代次数的迭代次数是防止收敛门限设置过小的时候程序达不到为陷入死循环。

W=eye(m,m);%设定初始的权矢量
W=W*real(inv(W'*W)^(1/2));%采用对称正交化
Wold=zeros(m,m);
crit=zeros(1,m);
epsilon=1E-6;%设定收敛的门限值
while(1-min(crit)>epsilon)Wold=W;U=W'*Z;%选择的G函数是G(y)=logcosh(ay)/a    %超高斯与亚高斯都存在可以用
%         a=1;
%         g=tanh(a*U);
%         dg=a*(1-tanh(U).^2);%选择的G函数是G(y)=-exp(-y^2/2)      %适用于超高斯信源
%             g=U.*exp(-0.5*U.^2);
%             dg=(1-U.^2).*exp(-0.5*U.^2);%选择的G函数是G(y)=y^4/4           %适用于亚高斯信源g=U.^3;dg=3*U.^2;W=Z*g'/n-diag(mean(dg.'))*W;%核心公式W=W*real(inv(W'*W)^(1/2));%采用对称正交化crit=abs(sum(W.*Wold));
end
Z=W'*Z;

基于负熵(fastICA)的盲源分离相关推荐

  1. 盲源分离matlab程序,盲源分离matlab程序

    23 卷第 2008 年 3 月第 2 期 陈锡明 ,黄硕翼 盲源分离综述 --- 问题 . 原理和方法 1 1 引言 盲源分离 (BSS) 是信号处理领域的一个基本 问题 ,...... 盲源分离与 ...

  2. 基于独立分量分析的语音信号盲源分离

    一.盲源分离介绍 语音信号处理是当今通信技术领域的研究热点之一.在实际应用中,我们常常遇到多个语音信号混杂在一起的情况,这就需要对这些混合信号进行分离,提取出原始的独立语音信号.盲源分离(Blind ...

  3. 盲源分离技术 matlab,基于ICA盲源分离的研究及matlab实现(毕业学术论文设计).doc...

    ********* 大 学 毕业设计(论文)任务书 毕业设计(论文)题目: 基于ICA盲源分离的研究及matlab实现 毕业设计(论文)要求及原始数据(资料): 论文要求: 查找盲源分离的现状及发展历 ...

  4. 密集假目标 Matlab,基于盲源分离的抗密集假目标干扰技术研究.pdf

    基于盲源分离的抗密集假目标干扰技术研究.pdf Vol. 42 ,No. 2 火力与指挥控制 第42 卷 第2 期 Feb ,20 17 Fire Control & Command Cont ...

  5. 麦克风阵列盲源分离技术

    麦克风阵列盲源分离技术 盲源分离技术仅根据观察到的每一路混叠信号估计原始多路信号,独立成分分析(independent component analysis)卷积混合情况的盲源分离技术.第一部分麦克风 ...

  6. 国际上进行盲源分离研究的主要学者及其研究方向

    E. Moreau及 P.Comon 等人对盲源分离的可行性准则等进行了讨论和分析:J. –F. Cardoso等人对基于似然估计的盲分离方法进行了研究:L. De Lathauwer等人则是对基于代 ...

  7. 同步压缩变换在时频分析和盲源分离等方面的应用

    时频分析方法使用时-频域联合分布描述信号的瞬态特征,并通过瞬时频率估计来表征信号特征频率随时间变化的趋势.广泛使用的短时傅里叶变换STFT 和小波变换WT的时频分辨率取决于窗口和基函数的选择,但是由于 ...

  8. 盲源分离与压缩感知结合-论文阅读笔记

    目录 盲源分离与压缩感知结合-论文阅读笔记 欠定盲源分离基础理论 欠定盲源分离恢复算法研究 基于压缩感知的欠定混合源信号恢复算法研究 盲源分离与压缩感知结合-论文阅读笔记 今天阅读的论文主要是:&qu ...

  9. 第八章---《实时语音处理实践指南》盲源分离笔记

    本章利用信号的高阶统计量来分离出目标语音,盲语音分离就是假定源信号具有相互独立的统计特性,利用高阶统计量度量独立性,它能分离出所有非高斯性声源,实际使用中最常用的为独立成分分析法(ICA).一般根据麦 ...

  10. 同步压缩变变时频分析和盲源分离

    同步压缩变变时频分析和盲源分离 代码运行环境为MATLAB r2018a 同步压缩变换SST通过同步压缩算子对时频系数进行重排,将信号在时频平面任一点处的时频分布移到能量的重心位置,增强瞬时频率的能量 ...

最新文章

  1. 【spring】使用spring的环境配置及从官网获得配置文件所用代码的方法
  2. 技术图文:Matlab向量 VS. Python列表
  3. HDU - 4847 Wow! Such Doge!
  4. Linq to xml:使用 XSLT 转换 XML 树
  5. Python cmd中输入'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。...
  6. [C++] socket - 3 [线程简单例子 代码]
  7. 关于linux的进程和线程
  8. 推荐一个 Java 接口快速开发框架,超级nice!
  9. oracle导出自增设置,oracle008:oracle自增,自适应,数据闪回,导入导出
  10. 惠普服务器硬件检测软件吗,惠普 PROLIANT 服务器硬件检测工具使用方法
  11. windows 驱动开发使用的一些工具
  12. 人员基础信息一体化采集系统平台
  13. EBT 道客巴巴的加密与破解 - 实用组合工具箱
  14. 三线压力传感器原理_空调压力传感器三线原理图 压力传感器内部原理
  15. Emulex/QLogic万兆争夺继续 存储还是板载优先?
  16. strongswan源代码结构与数据结构
  17. ecshop mysql 标题表_ECSHOP商城全站自定义TITLE标题设置
  18. Java中Json解析
  19. DNW刷机210步骤和常见问题
  20. 分布式系统的解决方案,学好这个就够了

热门文章

  1. ios怎么把电话号码存到android,如何将苹果手机的通讯录导入到安卓手机中?看这里...
  2. linux kvm参数,virt-install创建kVM参数
  3. 后端开发java与php,【后端开发】java与php的区别是什么
  4. LeetCode——线段树
  5. 开源TMS团队协作web系统
  6. 计算机应用能力考试ppt2003,全国专业技术人员计算机应用能力考试_PPT_2003_题库版.docx...
  7. 标梵微信小程序开发价格之做一个小程序要多少钱?
  8. 抢红包算法 c++_“抠抠族”的出行利器,斤斤计较的几何C为了节能果然够拼
  9. 读书笔记之《大型分布式网站架构设计与实践》
  10. 谷歌字体连接超时解决方案