www.pudn.com > zxb.rar > get_data.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Copyright (c) by JV Stone, University of Sheffield. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [sources,mixtures,A]=get_data(num_ip_vecs); % Get sources and mixtures. % Matlab5:Toolbox:matlab:datafun: % Jim_Stones_G3a:APPS:Matlab5:Toolbox:matlab:datafun: global demo_id; num_sources = 3; num_mixtures = num_sources; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sources=zeros(num_sources,num_ip_vecs); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if demo_id==1 % The files handel chirp and gong are standard matlab sound files that come with matlab. fprintf('Playing original sources signals ...\n'); load handel; sources(1,:)=y(1:num_ip_vecs)'; soundsc(sources(1,:)); pause(1); load chirp; sources(2,:)=y(1:num_ip_vecs)'; soundsc(sources(2,:)); pause(1); load gong; sources(3,:)=y(1:num_ip_vecs)'; soundsc(sources(3,:)); end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if demo_id==2 % SUB-GAUSSIAN == SINE periods=30;x=1:num_ip_vecs ; x=x/num_ip_vecs *2*pi*periods; s=sin(x); sources(2,:)=s; % SUPER-GAUSSIAN == a sound [y,rate,bits]=wavread('why.wav'); y=y(1:num_ip_vecs)'; sources(1,:)=y; % GAUSSIAN == GAUSS s=randn(1,num_ip_vecs);s=sort(s); sources(3,:)=s; end; % demo1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Set each source to have zero-mean and unit variance. ss=sources; for i=1:num_sources s=ss(i,:); s=s-mean(s); s=s/std(s,1); ss(i,:)=s; end; sources=ss; for i=1:num_sources % soundsc(sources(i,:)); subplot(num_sources,1,i); plot(sources(i,:)); end; sources=sources'; % Make mixing matrix A. A = randn(num_mixtures,num_sources); mixtures=sources*A; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%