Besides complementing find peaks function with the possibility to find all peaks, both local maximums, and local minimums.
This also provides a possible workaround for the findpeaks bug pointed out by PeakProminencesBugExample.mlx file.
The output of the findAllPeaks funcition is a set of structure arrays.
Positive, negative and all peaks respectively with the following fields:
- peak
- location
- width
- prominence
- base
- isNegative
- prominenceRatio
Usage example:
x_length = 1000;
x = linspace(0,1,x_length);
PeakSig = peakSigFcn(x, x_length);
[positive, negative, all] = findAllPeaks(PeakSig,x);
figure
plot(x, PeakSig);
hold on
% Plot positive peaks in red.
plot([positive.location],[positive.peak],'v','MarkerSize',5,...
'MarkerEdgeColor','black',...
'LineStyle','none',...
'MarkerFaceColor','red')
% Plot negative peaks in green.
plot([negative.location],[negative.peak],'^','MarkerSize',5,...
'MarkerEdgeColor','black',...
'LineStyle','none',...
'MarkerFaceColor','green')
% Plot peak computed bases. Prominences fixed.
plot([all.location],[all.base],'+','MarkerSize',5,...
'MarkerEdgeColor','black',...
'LineStyle','none')
引用格式
Daniel (2024). findAllPeaks (https://www.mathworks.com/matlabcentral/fileexchange/73943-findallpeaks), MATLAB Central File Exchange. 检索来源 .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Signal Processing > Signal Processing Toolbox > Measurements and Feature Extraction > Descriptive Statistics >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.5 | Example converted to mlx file. |
||
1.0.4 | Rename PeakProminencesBugExample to PeakProminencesBug |
||
1.0.3 | Fix initial and final peaks prominence and base. |
||
1.0.2 | Add feature to allow the inclusion or not of the initial or ending function values as peaks. |
||
1.0.1 | Add example files. |
||
1.0.0 |