Indicate peak value of a signal in matlab plot
    39 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Joseph Nikhil Raj Koppula
 am 23 Mai 2019
  
    
    
    
    
    Beantwortet: Sergio Yanez-Pagans
      
 am 20 Aug. 2021
            Is there a way to indicate the max peak value of a signal in the plot itself rather than maually hovering the mouse over it?
I know that we can use the function  'findpeaks' to indicate the peaks of a signal, but is it possible to indicate/label the numerical value of that peak at that particular point?
0 Kommentare
Akzeptierte Antwort
  Shunichi Kusano
    
 am 24 Mai 2019
        Does this meet your thought? I just changed the example of "findpeaks" a little.
%% sample signal generation
x = linspace(0,1,1000);
Pos = [1 2 3 5 7 8]/10;
Hgt = [3 4 4 2 2 3];
Wdt = [2 6 3 3 4 6]/100;
for n = 1:length(Pos)
    Gauss(n,:) = Hgt(n)*exp(-((x - Pos(n))/Wdt(n)).^2);
end
PeakSig = sum(Gauss);
%% Plot the individual curves and their sum.
plot(x,Gauss,'--',x,PeakSig)
%% Use findpeaks with default settings to find the peaks of the signal and their locations.
[pks,locs] = findpeaks(PeakSig,x);
%% Plot the peaks using findpeaks and label them.
findpeaks(PeakSig,x)
text(locs-.03,pks+.3,num2str(pks')) % put the text on the plot
hope this helps.
Weitere Antworten (1)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


