tolpk - peaks raising by a tolerance

The function finds all peaks raising above adjacent valeys by a tolerance
2K Downloads
Updated 12 Jan 2009

View License

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 (2024). 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
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0