📄 demor.m
字号:
disp('This code is just a front-end to check that the real implementation');disp('of JADE does run as seen on TV.');disp(' ');disp('This is indeed just a toy problem... Please run JADE on your real data.');disp(' ');disp(' ');disp('The demo will display a figure with 3 rows: ');disp('o First row: three `source signals'': a sine wave, a square wave, a');disp(' whiste Gaussian process.');disp('o Second row: the result of mixing by a 4x3 matrix and adding a');disp(' small Gaussian noise.');disp('o Thrid row: the result of Jade processing');disp(' ');disp(' ');disp('The program repeatedly tries random mixing matrices.');disp(' ');disp(' ');disp(' ');disp('Hit <Return> key when ready.'); pause;%%%%Comments, bug reports, info requests are appreciated%and should be directed to cardoso@sig.enst.fr (Jean-Francois Cardoso)%Author : Jean-Francois Cardoso CNRS URA 820 / GdR TdSI / Telecom Paris%=======================================================================n = 3 ; % M = number of sourcesm = 4 ; % m = number of sensors (add the relevant lines in S= ...)T = 200 ; % sample sizeNdB = -30 ; % kind of noise level in dB%----------------------------------------------------------------------------f1 = 0.013 ;f2 = 0.02 ;s1 = cos(2*pi*f1*(1:T)) ;s2 = sign(cos(2*pi*f2*(1:T))) ;s3 = randn(1,T) ;s4 = sign(randn(1,T)) ;S = [ s1 ; s2 ; s3 ] ;figure; clf disp('____________________________________________________________');while 1%%%%%%%%%%% Source signals %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for is=1:n, subplot(3,m,is); plot(S(is,:)); axis([ 1 T -2 2 ]); set(gca,'Xtick',[1 T ]); set(gca,'Ytick',[]);end;drawnow; fprintf('First row in figure: the source signals\n');%%%%%%%%%%% Mixing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% mixing and noising% random mixing matrixA = randn(m,n) ;disp('Mixing matrix');disp(A);noiseamp = 10^(NdB/20) ;X = A*S + noiseamp*randn(m,T) ;for ic=1:m subplot(3,m,ic+m); plot(X(ic,:));% title('Hist. of observations'); set(gca,'Xtick',[1 T ]); set(gca,'Ytick',[]);end;drawnow; fprintf('Second row in figure: the observed mixtures\n');%%%%%%%%% Separation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Separationfprintf('\nStrike any key to unmix\n');pause;fprintf('\nIdentification running ......\n');B = jadeR(X,n);fprintf('\nIdentification completed ......\n');Se = B * X ;for is=1:n, subplot(3,m,is+m+m); plot(Se(is,:));% title('Sep. histogram'); axis([ 1 T -2 2 ]); set(gca,'Xtick',[1 T ]); set(gca,'Ytick',[]);end;drawnow; fprintf('Third row in figure: the estimated source signals\n');% Performancedisp(' ');disp(' ');disp('Global system:');disp('If this matrix is close to a product Permutation*Diagonal,')disp('then separation was successful.');% The so called `rejection rates'disp((B*A).^2);disp('____________________________________________________________');fprintf('\nHit <Return> for another experiment with a different mixture\n');pause;clf ;end; %endless loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -