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.