File Exchange

image thumbnail

Rank-Order Filter

version 1.0 (1.73 KB) by

Rank-Order filtering for 1D signals



View License

y = RankOrderFilter(x, window, thd) runs a rank-order filtering of order N on x. y is the same size as x. If x is a matrix, RankOrderFilter operates along the columns of x.

Rank-order filter calculates the p'th percentile of the data on an N sized window round each point of x. p can be a number between 0 and 100. To avoid edge effects, the x is expanded by repeating the first and the last samples N/2 times.

When p is equal to 50, the output of this function will be the same as MATLAB's MEDFILT1(x,N); however, RankOrderFilter is almost always much faster and needs less memory.

When p is close to 0 (or to 100), a RankOrderFilter calculates an approximate lower (or upper) envlope of the signal.

Comments and Ratings (1)

Hi thanks a lot for this !

Suggested improvement: either introduce a 'dimension' argument, either specify more clearly that it only works on column vectors, either transform row vectors to column vector and transform back at the end.

MATLAB Release
MATLAB 7.6 (R2008a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video