Code covered by the BSD License  

Highlights from
Interactive Derivative

image thumbnail
from Interactive Derivative by Tom O'Haver
Interactive Derivative for time-series signals.

smoothwidth. Works well with signals up % to 100,000 points in length and smooth widths up to 1000 points. % Faster than bsmooth for smooth widths above 500 points. % T. C. O'Haver, 2006. w=round(smoothwidth); SumPoints=sum(Y(1:w)); s=zeros(size(Y)); ha
function SmoothY=fastbsmooth(Y,smoothwidth)
% fastbsmooth(Y,w) smooths vector Y by unweighted sliding-average
% (boxcar) smooth of width = smoothwidth. Works well with signals up
% to 100,000 points in length and smooth widths up to 1000 points. 
% Faster than bsmooth for smooth widths above 500 points.
%  T. C. O'Haver, 2006.
w=round(smoothwidth);
SumPoints=sum(Y(1:w));
s=zeros(size(Y));
halfw=round(w/2);
for k=1:length(Y)-w,
   s(k+halfw)=SumPoints;
   SumPoints=SumPoints-Y(k);
   SumPoints=SumPoints+Y(k+w);
end
SmoothY=s./w;

Contact us at files@mathworks.com