Mit findpeaks und minpeakdistance in MATLAB zu finden Gipfel, getrennt durch die Distanz eher als index

Ich versuche, den x-Koordinaten der peaks in eine MATLAB-Figur (Beispiel im Anhang). Ich habe mit findpeaks, aber es scheint nicht, wie die Tatsache, dass ich ' m Plotten Punkte anstelle von Linien.

Bin ich nicht immer haben zwei Spitzen. Manchmal werde ich haben drei, manchmal werde ich auch eine haben. Mehrere Gipfel werden immer getrennt durch mindestens 1/4 der Strecke x, und die Gipfel werden immer mindestens zweimal den Geräuschpegel.

Hier ist, was ich erwarten würde, funktionieren würde:

[pks,locs] = findpeaks(yData,...
                       'SortStr','descend',...
                       'MinPeakDistance',floor(range(xData)/4),...
                       'MinPeakHeight',floor(max(yData)/2)...
                       )

Anstatt zwei Spitzen, die, ich, vier alle gebündelt um den ersten Höhepunkt:

>> locs

locs =

    6774      166785      326792      486799
>> xData(locs)

ans = 

-96780.787939025         -96770.1800919265   
-96770.8959353367        -96771.6117787468

Ich gehe davon aus, dass MinPeakDistance arbeitet auf die im xData-Indizes, anstatt die Daten selbst. Wie bekomme ich die Abstände zwischen den peaks statt der Abstand zwischen den Indizes der Gipfel?

Mit findpeaks und minpeakdistance in MATLAB zu finden Gipfel, getrennt durch die Distanz eher als index

InformationsquelleAutor Nick Sweet | 2013-08-07

Schreibe einen Kommentar