ICA(独立分量分析)快速定点算法

时间:2011-03-05 19:40:33

标签: matlab artificial-intelligence machine-learning

有几种ICA算法正在使用中。如Fast-ICA算法,有一个由Jyh-Shing和Roger Jang开发的称为快速定点算法。 你知道是否有使用这种算法的实现或例子,也许是MATLAB?

1 个答案:

答案 0 :(得分:12)

我有点困惑。你提到的FastICA在MATLAB中实现了快速定点算法。那么这就是你的答案呢?

编辑:FastICA代码非常易于使用。它需要的唯一输入是混合信号,然后尝试取消混合。你也可以给它额外的输入,比如做PCA等。主要的困难是创建混合信号,需要是 nx N 矩阵, n 是观察的数量, N 是信号的长度。

这是一个示例,首先创建一个带有4个观测值的信号,然后通过将其与随机信号相乘来混合该信号,最后在混合信号上使用ICA来尝试恢复原始信号。

N=500; %data size

v=[0:N-1];

sig(1,:)=sin(v/2); %sinusoid
sig(2,:)=((rem(v,23)-11)/9).^5; %funny curve
sig(3,:)=((rem(v,27)-13)/9); %saw-tooth
sig(4,:)=((rand(1,N)<.5)*2-1).*log(rand(1,N)); %impulsive noise

%create mixtures

Aorig=rand(size(sig,1));
mixedsig=(Aorig*sig);

%preform ica to unmix signal
ica = fastica(mixedsig);