Я немного растерялся. 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);