## tolpk - peaks raising by a tolerance

Version 1.0.0.0 (1.93 KB) by
The function finds all peaks raising above adjacent valeys by a tolerance

Updated 12 Jan 2009

TOLPK finds all peaks raising above adjacent valeys from both sides by a given tolerance. The function tests differences between peaks and adjacent valeys of an arbitrary function and returns indeces of peaks raising above neighbouring valeys more than an allowed tolerance. The function finds at least one highest peak even in case of small ripple (noise) over all function values.

Call of the function:
I = tolpk(tol,y);
Input arguments:
tol = Tolerance for skipping over small peaks
>0 tolerance in units of y,
<0 tolerance in percents of the maximum peak of y
y = samples of the function y(x) for monotone sequence of x,
x = argument of the function y(x).
If no x is given, vector x = 1:length(y) will be generated.
Output parameter:
yp = vector of peaks with relative heights greater than tol, and maximum peak including
xp = argument values of yp.

Example:
tol = -5; % tol = 5% of y_{max}
x = 0:.1:2*pi;
y = sin(x)+.15*cos(51.23*x)+.07*sin(141*x)+1;
plot(x,y); hold on, grid on
[yp,xp] = tolpk(tol,y,x); % coordinates of accepted peaks
plot(xp,yp,'*r')
hold off

### Cite As

Miroslav Balda (2023). tolpk - peaks raising by a tolerance (https://www.mathworks.com/matlabcentral/fileexchange/22662-tolpk-peaks-raising-by-a-tolerance), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2006b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux
##### Categories
Find more on Descriptive Statistics in Help Center and MATLAB Answers