一、ICA原理
著名的鸡尾酒问题,n个人同时讲话,n个麦克风接收,采集n组叠加的声音数据,每组数据包括m个元素。问题:如何恢复n个人的讲话声音?
设原始信号为S,叠加的线性关系为A,接收的信号为X,则有
X=AS
其中,n个麦克风接收信号X(X1,X2,…Xn);源信号S(S1,S2,…Sn)。Xi,Si均为列矢量。
X和S的信号长度相同
A为混淆矩阵/混合矩阵,根据线性方程组的关系。S、X均为n行m列,则A只有为n行n列才能满足要求。
x11=A11.S11+A12.S21+…+A1n.Sn1 (A的某a行与S某b列相乘,得到Xab值)
x12=A11.S12+A12.S22+…+A1n.Sn2
x1m=A11.S1m+A12.S2m+…+A1n.Snm
x22=A21.S12+A22.S22+…+A2n.Sn2
因此 ,设
若要使求解矩阵最大程度上逼近S,这实际上就是个优化过程,只需要满足解混合矩阵是最佳估计A的逆矩阵就好。ICA是盲源信号分离。
ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。
基于信息论的方法,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算法,最大似然估计算法等。
基于统计学的方法,主要有二阶累积量、四阶累积量等高阶累积量方法。
本文为原创文章,转载请注明出处!