ICA (Independent Component Analysis) fast-fixed po

2020-03-31 05:40发布

There are several ICA algorithms in use. Such as Fast-ICA algorithm, there is one developed by Jyh-Shing and Roger Jang called a fast-fixed point algorithm. Do you know if there is an implementation or an example using this algorithm, maybe MATLAB?

1条回答
疯言疯语
2楼-- · 2020-03-31 06:25

I'm a bit confused. FastICA, which you mention, implements the fast-fixed point algorithm in MATLAB. So that would be your answer then?

EDIT: The FastICA code is pretty easy to use. The only input it needs is a mixed signal, which it then tries to unmix. You can also give it additional inputs, like doing PCA, etc.. The main difficulty is in creating the mixed signal, which needs to be a n x N matrix, with n being the number of observations and N the length of the signal.

Here is an example that first creates one signal with 4 observations, then mixes that signal by multiplying it with a random signal, and finally uses ICA on the mixed signal to try to recover the orignal signal.

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);
查看更多
登录 后发表回答