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.
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.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.