findpeaks ( 'WidthRefe​rence','ha​lfheight' ) not finding width of peak

13 ビュー (過去 30 日間)
sarmad m
sarmad m 2017 年 4 月 1 日
コメント済み: Netanel shachak 2023 年 6 月 5 日
Hi
I'm trying to find ( 'WidthReference','halfheight') something like this image
but it is not showing using this code , could you please show
me where is my error .
order =3 ;
framelen =13;
Averages=[R,L]';
Averages=mean(Averages)';
AV=smooth(Averages,6);
x=AV;
lx = 20;
sgf = sgolayfilt(x,order,framelen);
plot(sgf);
hold on;
findpeaks(sgf,'MinPeakProminence',0.003);
[pks,locs,widths,proms]=findpeaks(sgf,'Annotate','extents','WidthReference','halfheight');
pks= -pks;
plot(locs,pks,'g*');
text(locs+.02,pks,num2str((1:numel(pks))'));
this the output I get

採用された回答

Greg Dionne
Greg Dionne 2017 年 4 月 4 日
I think you wanted this instead:
findpeaks(sgf,'MinPeakProminence',0.003,'WidthReference','halfheight','Annotate','extents');
[pks,locs,widths,proms]=findpeaks(sgf,'MinPeakProminence',0.003,'WidthReference','halfheight');
(use the same settings for when you plot without output arguments vs. when you do your assignment).
  4 件のコメント
sarmad m
sarmad m 2017 年 4 月 13 日
thanks it works now
Netanel shachak
Netanel shachak 2023 年 6 月 5 日
Hi,
Is there any way to determined spacific width indipendent the peak height?
i have a signal of pump (RPM) - i'm looking for time interval that the the RPM was above a spacific value with a width grater than a spacific value. for example:
i tried using findpeaks:
m=10;
pks=110;
findpeaks(Y,t,'Annotate','extents','MinPeakWidth',minutes(m),'MinPeakHeight',pks);
but in that case it find point with:
pks>110 & width=pks/2;
any suggust?

サインインしてコメントする。

その他の回答 (2 件)

sarmad m
sarmad m 2017 年 4 月 2 日
I'm using R2017a version .I tried the example that in the documentation and it shows the halfheight correctly . but when I try it on my data it not showing them
  1 件のコメント
Amanda Figueroa
Amanda Figueroa 2019 年 6 月 4 日
編集済み: Amanda Figueroa 2019 年 6 月 4 日
I had the same issue until I removed the outputs (pks, locs, widths,proms)
[pks,locs,widths,proms] = findpeaks(Peaks(:,2),Peaks(:,1),...
'MinPeakHeight',4e7,'MinPeakProminence',4e6,'Annotate','Extents'...
);
The plot should show up if you remove them as shown below:
findpeaks(Peaks(:,2),Peaks(:,1),...
'MinPeakHeight',4e7,'MinPeakProminence',4e6,'Annotate','Extents'...
);
And this is my plot (zoomed in):

サインインしてコメントする。


Matlaber
Matlaber 2019 年 1 月 14 日
Maybe you can paste your code here and have a look.
Are you able to find the peaks on your data?

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by