image thumbnail

smooth

version 1.0.0.0 (150 KB) by Christopher Hummersone
Perform windowed smoothing on a vector using mathematical functions

2.4K Downloads

Updated 05 May 2018

From GitHub

View license on GitHub

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

SYNTAX

Y = smooth(X,FRAME)
Y = smooth(X,FRAME,MODE)

DESCRIPTION

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:

1 1
2 2
3 3
4 4
5 5
6 6

It then extracts the diagonals where -length(x2)+frame_length<=k<=0, yielding:

1 2
2 3
3 4
4 5

this is used to index x2; operations are then performed along the rows.

Cite As

Christopher Hummersone (2022). smooth (https://github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2009a
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!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.