findpeaks ( 'WidthReference','halfheight' ) not finding width of peak
    14 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    sarmad m
 el 1 de Abr. de 2017
  
    
    
    
    
    Comentada: Netanel shachak
 el 5 de Jun. de 2023
            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

0 comentarios
Respuesta aceptada
  Greg Dionne
    
 el 4 de Abr. de 2017
        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 comentarios
  Netanel shachak
 el 5 de Jun. de 2023
				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?
Más respuestas (2)
  sarmad m
 el 2 de Abr. de 2017
        1 comentario
  Amanda Figueroa
 el 4 de Jun. de 2019
				
      Editada: Amanda Figueroa
 el 4 de Jun. de 2019
  
			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
      
 el 14 de En. de 2019
        Maybe you can paste your code here and have a look.
Are you able to find the peaks on your data?
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





