NOTE: this function is now available from the IoSR Matlab Toolbox as iosr.dsp.vsmooth.
SMOOTH Perform windowed smoothing on a vector using mathematical functions
Y = smooth(X,FRAME)
Y = smooth(X,FRAME,MODE)
Y = smooth(X,FRAME) smooths the input vector X by calculating the running RMS over a series of frames. FRAME specifies the frame characteristics; it can be set to:
a scalar - this will be used as the length of the frame, the window will be rectangular
a vector - this specifies the shape of the analysis window, the frame length will be length(frame).
Y = smooth(X,FRAME,MODE) allows the user to specify a different mathematical smoothing function. The options are:
'rms' - calculates the running rms (default)
'mean' - calculates the running mean (moving average filter)
'median' - calculates the running median
NOTE: SMOOTH uses a vectorized implementation that may be slow when X and/or FRAME_LENGTH are very large. The number of elements that are used for calculation is length(X)*FRAME_LENGTH. The algorithm vectorizes the operation by creating a matrix of indexes and extracting its diagonals. E.g. for a vector of length 4 and frame_length of 2, the algorithm creates a temporary zero-padded matrix x2 from which it creates a set of indexes:
It then extracts the diagonals where -length(x2)+frame_length<=k<=0, yielding:
this is used to index x2; operations are then performed along the rows.
Christopher Hummersone (2023). smooth (https://github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Versions that use the GitHub default branch cannot be downloaded
Migrated to GitHub.