Rimuovi e visualizza i valori anomali nei tuoi dati
Questo esempio mostra come rilevare e rimuovere i valori anomali nei dati del canale ThingSpeak ™ utilizzando un filtro Hampel. Questo filtro è strettamente correlato a un filtro mediano e aiuta a rimuovere i valori anomali da un segnale senza smussare eccessivamente i dati.
Leggi i dati
Leggere la velocità del vento memorizzata nel canale 22641 utilizzando la funzione thingSpeakRead.
data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');
Rimuovi valori anomali
Rimuovere i valori anomali nei dati grezzi applicando la funzione Hampel. Specificare la dimensione della finestra su 6, ovvero circa tre minuti di dati su ciascun lato di ciascun campione nella finestra di misurazione. Questa impostazione consente di disporre di dati sufficienti per decidere se ogni punto è un valore anomalo. Poiché i dati sono dinamici, i risultati potrebbero variare a seconda delle condizioni meteorologiche attuali. Specificare che il numero di deviazioni standard sia 2. Se un punto dati differisce dalla mediana locale per un numero superiore a questo, viene sostituito con il valore della mediana locale.
windowSize = 6; numMedians = 2; [filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);
Visualizza i dati
Rappresenta graficamente i dati originali e quelli filtrati. Mostra i valori anomali rilevati e rimossi.
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

Scrivi dati su ThingSpeak
Invia il numero di valori anomali rilevati a un canale ThingSpeak utilizzando la funzione thingSpeakWrite. Modifica channelID e writeAPIKey per inviare dati al tuo canale.
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,sum(outliers),'WriteKey',writeAPIKey);
Vedi anche
Funzioni
thingSpeakRead|hampel(Signal Processing Toolbox)