2011-03-05 30 views
0

有幾種ICA算法正在使用中。如Fast-ICA算法,Jyh-Shing和Roger Jang開發了一種稱爲快速固定點算法的算法。 你知道是否有一個實現或使用這個算法的例子,也許MATLAB嗎?ICA(獨立分量分析)快速定點算法

回答

12

我有點困惑。您提到的FastICA在MATLAB中實現了快速固定點算法。那麼這將是你的答案呢?

編輯:FastICA代碼非常容易使用。它需要的唯一輸入是一個混合信號,然後它嘗試去混合。你也可以給它額外的輸入,比如做PCA等。主要困難在於創建混合信號,它需要是一個nx 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); 
+0

好吧,如果你有一個例子,你很好地回答了 – cMinor 2011-03-06 16:07:25

+0

@darkminor:那好嗎? – Ghaul 2011-03-06 19:11:44