0001 function y=nt_deboing(x,events)
0002
0003
0004
0005
0006
0007
0008
0009
0010 nt_greetings;
0011
0012 if nargin<2; error('!'); end
0013
0014 if size(x,2)>1;
0015 error('x should be column vector');
0016 end
0017
0018 ORDER=10;
0019 NSAMPLES=100;
0020 EXTRA=50;
0021 NNUM=8;NDEN=8;
0022 THRESH=3;
0023
0024
0025 events(find(events<EXTRA))=[];
0026 events(find(events>size(x,1)-NSAMPLES))=[];
0027
0028 y=x;
0029 for iEvent=1:numel(events)
0030 event=events(iEvent);
0031
0032
0033 event_response=x(event-EXTRA:event+NSAMPLES);
0034 event_response=nt_detrend(event_response,ORDER,[],[],THRESH);
0035 event_response=event_response(EXTRA+1:end);
0036
0037 event_response=event_response(2:end);
0038
0039
0040 event_response=[event_response;zeros(size(event_response))];
0041 [B,A]=stmcb(event_response,NNUM,NDEN);
0042
0043
0044 model=filter(B,A,[1;zeros(NSAMPLES,1)]);
0045 y(event+(1:size(model,1)))=x(event+(1:size(model,1))) - model;
0046
0047 end
0048
0049 if nargout==0
0050
0051 figure(1); clf;
0052 plot([x,y]);
0053
0054 clear y
0055 end
0056
0057