有几种正在使用的ICA算法。例如Fast-ICA算法,由Jyh-Shing和Roger Jang开发的一种称为快速不动点算法。
您是否知道使用该算法的实现或示例,也许是MATLAB?

最佳答案

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

编辑:FastICA代码非常易于使用。它唯一需要的输入是混合信号,然后尝试将其分解。您还可以为其提供其他输入,例如进行PCA等。主要困难在于创建混合信号,该信号必须为n x 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);

关于matlab - ICA(独立分量分析)快速不动点算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5206301/

10-12 21:55