Introduction - If you have any usage issues, please Google them yourself
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: