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

cMi*_*nor 0 matlab artificial-intelligence machine-learning

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

Gha*_*aul 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);
Run Code Online (Sandbox Code Playgroud)