Entfernen Sie Ausreißer in Ihren Daten
Dieses Beispiel zeigt, wie Sie mithilfe eines Hampel-Filters Ausreißer in Ihren ThingSpeak™ -Kanaldaten erkennen und entfernen. Dieser Filter ist eng mit einem Medianfilter verwandt und hilft dabei, Ausreißer aus einem Signal zu entfernen, ohne die Daten übermäßig zu glätten.
Daten lesen
Lesen Sie die im Kanal 22641 gespeicherte Windgeschwindigkeit mit der Funktion thingSpeakRead
ab.
data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');
Ausreißer entfernen
Entfernen Sie Ausreißer in den Rohdaten, indem Sie die Funktion hampel
anwenden. Geben Sie die Fenstergröße auf 6 oder etwa drei Minuten Daten auf beiden Seiten des Messfensters an. Diese Einstellung ermöglicht ausreichend Daten, um zu entscheiden, ob es sich bei jedem Punkt um einen Ausreißer handelt. Da die Daten dynamisch sind, können Ihre Ergebnisse je nach aktuellem Wetter variieren. Geben Sie die Anzahl der Standardabweichungen auf 2 an. Wenn ein Datenpunkt um mehr als diesen Wert vom lokalen Median abweicht, wird er durch den lokalen Medianwert ersetzt.
windowSize = 6; numMedians = 2; [filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);
Daten in ThingSpeak schreiben
Senden Sie die Anzahl der erkannten Ausreißer mit der Funktion thingSpeakWrite
an einen ThingSpeak Kanal. Ändern Sie channelID
und writeAPIKey
, um Daten an Ihren Kanal zu senden.
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; totalOutliers = sum(outliers) thingSpeakWrite(channelID,totalOutliers,'WriteKey',writeAPIKey);
totalOutliers = 8
Siehe auch
Funktionen
thingSpeakRead
|hampel
(Signal Processing Toolbox)