Fast moving average

A fast implementation of the moving average filter for long kernels.
1K Downloads
Updated 19 Jan 2012

View License

In terms of behavior, this is an alternative to filter() for a moving-average kernel. The running time does not grow with filter length beyond N=500.

The code uses a variant of the cumsum-trick, although not the "garden variety" but in a way that does not run into numerical issues for long data arrays.

The function is suitable for incremental (online) processing.

Cite As

Christian Kothe (2024). Fast moving average (https://www.mathworks.com/matlabcentral/fileexchange/34567-fast-moving-average), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Signal Processing Toolbox in Help Center and MATLAB Answers
Acknowledgements

Inspired: downsample_ts

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

The N<500 case is now correctly implemented... (had a dumb error before)

1.1.0.0

Fixed an issue pointed out by Jan Simon (failed to determine along which dimension to filter when the signal was a scalar) and updated the docs.

1.0.0.0