% test de l'ICA sur 3 sources MSK % ecrit a partir de main.m % 19 aout 98 % F: identifie le melange, cad A = F*Lambda*P idealement % S: estime les sources %%%%%%%%%% A EXECUTER POUR DES DONNEES EXPLICITES %%%%%%%%%%%%%%%%% clear; randn('state',0); rand('state',0); ii=sqrt(-1);tol=1e-9;format compact; path(path,'/home/grellier/Matlab/Fonctions'); dur=1000; fprintf('INTEGRATION: dur = %g \n',dur); K1 = 2; K2 = 5; P = 3; P2 = 4; NbTests = 50; NbR = 11; % Chargement du best Mix load BPSKK2P3.mat -ascii; RSB = BPSKK2P3(:,1); A1 = BPSKK2P3(:,2); A2 = BPSKK2P3(:,3); A3 = BPSKK2P3(:,4); A4 = BPSKK2P3(:,5); NbRSB = length(RSB); Ber1 = zeros(1,NbTests); Ber2 = zeros(1,NbTests); % Calcul du melange A = [A1(NbR), i*A2(NbR), 0, 0; 0, i*A3(NbR), A4(NbR),0]; for tests = 1:NbTests, dur = 1000; %%% SOURCES x(1:P,1:dur)=zeros(P,dur); for i=1:P, x(i,1:dur)=msk2(dur);ect=std(x(i,1:dur));x(i,1:dur)=x(i,1:dur)/ect; end; bleu = (-1).^[1:1:dur]; x(4,1:dur) = bleu.*x(1,:).*x(2,:).*x(3,:); w=-1% %%% signe presume des kurtosis source %%% OBSERVATIONS brt = bruit(K1,dur,RSB(NbR)); yn(1:K1,1:dur)=A*x+brt; n1 = 1:2:dur; n2 = 2:2:dur; y1 = yn(1,n1);y2 = yn(2,n1); y(1:K2,1:dur/2)=[y1;y2;y1.^3;(y1.^2).*y2;y2.^3]; dur = dur/2; %%% OBSERVATIONS STANDARDISEES [U,S,V]=svd(y',0);tol=1e-9; s=diag(S);I=find(s