基于FastICA的盲源分离摘要:近年来,ICA(IndependentComponentAnalysis,独立成分分析)已成为处理BSS(BlindSourceSeparation,盲源分离)问题的主要手段,同时也受到人们越来越多的关注,为此讨论ICA的原理及其优越性。首先介绍ICA,然后引入FastICA算法的推导过程,最后通过MATLAB仿真将其与梯度算法、PCA(PrincipalComponentAnalysis,主成分分析)算法所得的仿真结果进行对比分析。通过算法验证,经FastICA处理得到的分离信号与源信号相关系数的绝对值不小于0.99,与其他两种算法比较可以明显地得到FastICA是一种更为有效的盲源分离方法。关键词:独立成分分析;盲源分离;主成分分析;梯度算法中图分类号:TP301.6文献标识码:A文章编号:1673-629X(2011)12-0093-04BlindSourceSeparationBasedonFastICAAlgorithmInformationEngineering,NavalAeronauticalEngineeringInstitute,Yantai264001,China)Abstract:ICAhasbeenaprimarymethodsolvingBSSinrecentyears,andarousedmoreandmoreconcern,sodiscusstheprincipleandsuperiority.Inthispaper,introduceICAandFastICAalgorithmfirstly,thenanalyzesimulationresultbyFastICA,gradientalgorithmandPCA.Throughverification,absolutevalueofcorrelationcoefficientbetweenseparationsignalsandsourcesignalsisnotlessthan0.99.Comparedwithotheralgorithms,concludeFastICAisamoreeffectivealgorithm.Keywords:independentcomponentanalysis;blindsourceseparation;principalcomponentanalysis;gradientalgorithm0引言ICA是盲源分离的一个重要工具,其最著名的应用就是“鸡尾酒会”问题。ICA[1~4]理论的发展可以追溯到20世纪90年代中期,法国学者C.Jutten和J.Herault等人首次提出了ICA的概念。然而,当时正是神经网络研究的高潮期,ICA理论的研究只是在小范围内进行,并未受到广泛重视。直到90年代中期,ICA的理论和算法研究才真正得以发展,并受到国际信号处理界的广泛关注,P.Comon于1994年第一个将独立成分分析方法应用于盲源分离。之后,ICA就处于蓬勃发展中。文中引入FastICA算法[5~9],研究其原理及推导过程。通过MATLAB仿真,将FastICA与梯度算法、PCA两种算法得到的仿真结果进行分析。通过分析,FastICA是一种比梯度算法[10]和PCA算法[11,12]更为有效的算法。收稿日期:2011-04-26;修回日期:2011-07-28基金项目:国家自然科学基金(61032001,60972159,61002006)作者简介:王建雄(1987-),男,山西临汾人,硕士研究生,主要研究领域为盲信号处理;张立民,博士,教授,主要研究领域为信号与信息处理。1独立成分分析基本ICA模型是一个生成模型,它描述所观测的数据是如何由一个混合过程所产生。假设有n个统计独立的随机变量s1,s2,...,sn,其线性组合生成n个随机变量x1,x2,...,xn,即xi=ai1s1+ai2s2+...+ainsni=1,2,...,n(1)式中aij(i,j=1,2,...,n)是实系数。令x=[x1,x2,...,xn]T,s=[s1,s2,...,sn]T和A是元素为aij的矩阵,式(1)用向量-矩阵方式表示为:x=As(2)为了确保基本ICA模型是可解的,必须作出如下假设和约束[13]:(1)独立成分是统计独立的;(2)独立成分具有非高斯分布;(3)未知混合矩阵是方阵,即独立成分数等于观测混合信号数。若独立分量数小于观测信号数时,可对观测信号进行白化,从而降低数据维数。当满足以上三个假设条件后,可以考虑对上述混合矩阵求逆,而表示成一种线性求和的形式:s=A-1x(3)因此,为了估计其中一个独立成分,考虑对xi进行某种线性组合。用y=bTx=∑bixi表示该组合,其中b为待确定的向量。则由式(2)可得:y=bTx=bTAs=qTs=∑qsiii22.1FastICA算法中心化和白化(4)进行ICA之前,需要对信号进行中心化和白化。中心化就是观测矢量x减去它的均值,变成零均值矢量。白化的含义是将观测变量x进行线性变换Q,得到v=Qx,其中v的各分量vi互不相关,且具有单位方差(即E{vvT}=I)。1v=Qx=E-2UTx(5)式中:E=diag(d1,d2,...,dn),是相关阵Rx=E{xxT}的n个最大特征值组成的对角阵;U∈Cm×n,是n个相应的特征矢量组成的矩阵。变换之后,v和s之间的关系为:v=Qx=QAs=Bs。因为独立分量si有单位方差,E{vvT}=BE{ssT}BT=BBT=I,B为正交阵。因此一旦B求出后,就可以采用FastICA算法去实现盲源分离...