This function implements a one-dimensional smoothing filter, applying a sliding window to a numerical sequence. Such filtering replaces the center value in the window with the arithmetic mean computed among the points within the window.
When the sliding window is exceeding the lower or upper boundaries of the input vector, the average is computed only among the available points.
This function can be conveniently employed for smoothing one-dimensional noisy signals and its results are very similar to other "quick and dirty" smoothing techniques.
When compared to a standard first-order low-pass filter, it is important to note that the averaging performed here does not only involve the past history of the signal but the future samples as well.
I underline that the filtering by the present routine resembles what the median filter performs (see medfilt1()), although there is no "artifact" or transient responses at the beginning and the end of the signal, due to the presence of a non-zero offset in the data (see the screenshot).
Used to use this file. Now, i find the fast moving_average.m by carlos vargas, works with nans, and for matrix too... anyway, thanks michele
Well written .. and very usefull
Inefficient and limited to 1D data only. Should use summed area tables.
BSD License update.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.