Home > NoiseTools > nt_rereference2.m

nt_rereference2

PURPOSE ^

[y,mn]=nt_rereference2(x,mask,thresh,factor) - robust rereferencing

SYNOPSIS ^

function [y,mn,mask]=nt_rereference2(x,mask,thresh,factor)

DESCRIPTION ^

[y,mn]=nt_rereference2(x,mask,thresh,factor) - robust rereferencing

   y: rereferenced data
   mn: subtracted reference
   mask: channel mask

   x: data to rereference (time X channels)
   mask: channel mask
   thresh: std threshold to discard channel [default: 3]
   factor: apply to mean before subtracting [default: 1]
   
 See also: nt_rereference, nt_detrend, nt_outliers

 NoiseTools

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [y,mn,mask]=nt_rereference2(x,mask,thresh,factor)
0002 %[y,mn]=nt_rereference2(x,mask,thresh,factor) - robust rereferencing
0003 %
0004 %   y: rereferenced data
0005 %   mn: subtracted reference
0006 %   mask: channel mask
0007 %
0008 %   x: data to rereference (time X channels)
0009 %   mask: channel mask
0010 %   thresh: std threshold to discard channel [default: 3]
0011 %   factor: apply to mean before subtracting [default: 1]
0012 %
0013 % See also: nt_rereference, nt_detrend, nt_outliers
0014 %
0015 % NoiseTools
0016 
0017 if nargin<1; error('!'); end
0018 if nargin<2||isempty(mask); mask=ones(1,size(x,2)); end
0019 if nargin<3||isempty(thresh); thresh=3; end
0020 if nargin<4||isempty(factor); factor=1; end
0021 
0022 if size(mask,1)~=1; error('!'); end
0023 if size(mask,2) ~= size(x,2); error('!'); end
0024 
0025 y=x;
0026 NITER=5;
0027 for iRepeat=1:NITER
0028     if ~sum(mask); error('!'); end
0029     mn=sum(y(:,find(mask)),2)./sum(mask);
0030     y=bsxfun(@minus,y,mn*factor);
0031     yy=y(:,find(mask));
0032     idxBad=std(y)/std(yy(:))>thresh;
0033     mask(idxBad)=0;
0034     %disp(mean(mask))
0035     %figure(1); clf; plot(std(y)/std(yy(:))); pause
0036 end
0037 disp(['proportion channels used for mean: ', num2str(mean(mask))])
0038 
0039 
0040

Generated on Sat 29-Apr-2023 17:15:46 by m2html © 2005