Main Content

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Entfernen und visualisieren 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 jeder Probe im Messfenster 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 visualisieren

Stellen Sie die Originaldaten und die gefilterten Daten grafisch dar. Zeigt die erkannten und entfernten Ausreißer an.

plot(data.Timestamps,data.WindSpeedmph);
hold
plot(data.Timestamps,filteredData);
plot(data.Timestamps(outliers),data.WindSpeedmph(outliers),'Marker','Square','Linestyle','None','Color','black');
ylabel('Wind Speed (mph)');
legend('Orginal Data', 'Filtered Data','Outliers');
Current plot held

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';
thingSpeakWrite(channelID,sum(outliers),'WriteKey',writeAPIKey);

Siehe auch

Funktionen