0001 function y=nt_phase_scramble(x)
0002
0003
0004
0005
0006
0007
0008
0009 if nargin<1; error('!'); end
0010 [nsample,nchan,ntrial]=size(x);
0011 if rem(nsample,2)~=0
0012 x(nsample+1,:,:)=x(nsample,:,:);
0013 end
0014
0015 for iTrial=1:ntrial
0016 xx=x(:,:,iTrial);
0017 yy=fft(xx);
0018
0019
0020 phasor=exp(-2*pi*j*rand(size(x,1)/2-1,nchan));
0021 yy=yy.*[ones(1,nchan);phasor; ones(1,nchan); conj(flipud(phasor))];
0022 yy=real(ifft(yy));
0023 y(:,:,iTrial)=yy;
0024 end
0025
0026 y=y(1:nsample,:,:);
0027