function out = superFilter(todo,arg2,sig) % b = superFilter('setup',Fs); % dataout = superFilter('filt',b,datain); % IF datain is a matrix, make it (channel x data) % %OR... (if you want to specify the band pass yourself... % b = superFilter('setup',Fs,[.1 30]); % dataout = superFilter('filt',b,datain); % % This implements a zero phase FIR filter with a Hanning window switch todo case 'setup' fs = arg2; if exist('sig') & ~isempty(sig) out = fir1(150,sig*2/fs); else out = fir1(150,[.1 30]*2/fs); end case 'filt' b = arg2; if size(sig,1)~=1 & size(sig,2)~=1 % this is matrix data (channel by data) out = 0 * sig; fprintf('Channel: '); for i=1:size(sig,1) fprintf('%d ',i); out(i,:) = filtfilt(b,1,sig(i,:)); end fprintf('\n'); else % this is just one channel out = filtfilt(b,1,sig); end end return