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, 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.
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 mit 6 an, also etwa drei Minuten Daten auf beiden Seiten des Messfensters. Diese Einstellung ermöglicht es, dass genügend Daten vorhanden sind, um zu entscheiden, ob jeder Punkt ein Ausreißer ist. 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 diese Zahl 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 mithilfe 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)