2017-05-25 1 views
1

ich MATLAB findpeaks mit der Funktion, um schnell Spitzen in Daten zu identifizieren:Finding signifikante Peaks mit MATLAB findpeaks()

Full signal

Sie werden den Gipfel auf dem zweiten negativen geneigten Abschnitt bemerken, hier vergrößert :

Magnified false peak

Dieser Peak ist ein bekanntes Artefakt der Messung, und ich möchte es auszuschließen. Ich habe viele solche Daten, einige mit dem Artefakt und einige ohne, also möchte ich einen automatisierten Weg, um sie auszuschließen, wenn sie angetroffen werden. Welche Einstellungen muss ich in Findpeaks vornehmen, um diese Pseudo-Peaks zu entfernen? Ich habe mit 'MinPeakProminance', 'Threshold' und 'MinPeakWidth' vergeblich experimentiert. Obwohl es aus den Bildern nicht offensichtlich ist, haben diese Daten Tausende von Datenpunkten, so dass die nächsten Nachbarn von jedem Punkt sehr ähnlich sind (siehe die X-Achsen-Skala).

+0

Die Daten filtern, wiederholen. –

+1

Mein Problem ist, da ich sehr empfindlich auf den Peak-Standort bin, ich möchte es nicht einmal leicht mit einem Filter ändern. – Pete

+0

@Pete: Was hat nicht über "MinPeakProminity" oder "MinPeakWidth" funktioniert? Scheint wie eine minimale Spitzenprominenz von gerade 0.1 würde dieses Beispiel leicht fangen. – gnovice

Antwort

1

zunächst die Daten glätten einen Medianfilter: y = medfilt1(x) und gelten dann finden Spitzen auf sie z = findpeaks(y)

Alternativ finden die Gipfel: [pks,locs] = findpeaks(data), dann über jede der Spitzen gehen und sehen, ob es das absolute Maximum ist in seiner Umgebung:

span = 10;%play with this number 
counter = 0 
for ii = 1:length(pks) 
    if pks(ii) == max(data(locs(ii)-span:locs(ii)+span)) 
     counter = counter + 1; 
     new_pks[counter] = pks[ii]; 
     new_locs[counter] = locs[ii]; 
    end 
end 
1

Wenn Sie R2014b oder später haben, versuchen Sie die MinPeakProminence name-value pair Check-out. Dies kann Ihnen dabei helfen, Peaks zu wählen, die stärker hervortreten (ein relatives Maß dafür, wie stark sie hervorstechen), anstatt sie als absoluten Wert auszuwählen.

Verwandte Themen