0001 function x=nt_smooth(x,T,nIterations,nodelayflag)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 if nargin<4; nodelayflag=0; end
0013 if nargin<3; nIterations=1; end
0014 if nargin<2; help nt_smooth ; error; end
0015
0016 if ndims(x)>4; error('!'); end
0017
0018 integ=floor(T);
0019 frac=T-integ;
0020
0021
0022 mn=mean(x(1:(integ+1),:,:),1);
0023 x=bsxfun(@minus,x,mn);
0024
0025
0026 B=[ones(integ,1);frac]/T;
0027 for k=1:nIterations-1
0028 B=conv(B,[ones(integ,1);frac]/T);
0029 end
0030
0031
0032 x=filter(B,1,x);
0033
0034 if nodelayflag
0035 shift=round(T/2*nIterations);
0036 x=[x(shift+1:end,:,:,:); zeros(shift,size(x,2),size(x,3),size(x,4))];
0037 end
0038
0039
0040 x=bsxfun(@plus,x,mn);