0001
0002
0003
0004
0005
0006
0007
0008 clear;
0009 disp(mfilename);
0010 help(mfilename)
0011
0012
0013 nsamples=100*3;
0014 nchans=30;
0015 ntrials=100;
0016 noise_dim=20;
0017 freqs=[1 2];
0018 mix1=randn(1,nchans);
0019 mix2=randn(noise_dim,nchans);
0020 for iCondition=1:2
0021 source{iCondition}=[zeros(nsamples/3,1);sin(2*pi*freqs(iCondition)*(1:nsamples/3)/(nsamples/3))';zeros(nsamples/3,1)];
0022 s=source{iCondition}*mix1;
0023 s=repmat(s,[1,1,100]);
0024 SNR=0.1;
0025 noise=nt_mmat(randn(nsamples,noise_dim,ntrials), mix2);
0026 data{iCondition}=noise/rms(noise(:))+SNR*s/nt_rms(s(:));
0027 end
0028
0029
0030 c0=zeros(nchans); c1=zeros(nchans);
0031 for iCondition=1:2
0032 c0=c0+nt_cov(data{iCondition});
0033 c1=c1+nt_cov(mean(data{iCondition},3));
0034 end
0035 [todss,pwr0,pwr1]=nt_dss0(c0,c1);
0036 for iCondition=1:2
0037 z{iCondition}=nt_mmat(data{iCondition},todss);
0038 end
0039
0040
0041 figure(1); clf
0042 subplot 231;
0043 plot(source{1}); title('source, condition 1');
0044 subplot 232;
0045 plot(mean(data{1},3)); title('data');
0046 subplot 233;
0047 nt_bsplot(z{1}(:,1,:)); title('recovered');
0048 subplot 234;
0049 plot(source{2}); title('source, condition 2');
0050 subplot 235;
0051 plot(mean(data{2},3)); title('data');
0052 subplot 236;
0053 nt_bsplot(z{2}(:,1,:)); title('recovered');
0054