Smooth noisy time-series faithfully, without distorting lower-order time-derivatives


Updated 6 Jan 2015

View License

Smoothing noisy time-series using ordinary "smooth.m" may cause artifacts, especially if one wants to estimate time-derivatives of the underlying noisy-free dynamics. The function "powersmooth.m" solves this problem, providing a smoothed time-series with faithful estimates of the first n time-derivatives of the noise-free dynamics. The function uses quadratic programming to simultaneously minimize (i) the residuals between the original, noisy time-series and the smoothed curve, and (ii) the (n+1)-th time-derivative of the smoothed curve. The user has to specify the noisy time-series (vec), the desired order n (order), and a regularization weight (weight).

Cite As

Benjamin Friedrich (2023). powersmooth (https://www.mathworks.com/matlabcentral/fileexchange/48799-powersmooth), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

- now using sparse matrices, yielding dramatic speed-up (thanks to Cagtay F.)

- bug fix for case 'order==0'
- example of a very long time series

Minor code clean-up.