Rimuovi i valori anomali dai 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 entrambi i lati della 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);
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'; totalOutliers = sum(outliers) thingSpeakWrite(channelID,totalOutliers,'WriteKey',writeAPIKey);
totalOutliers =
8
Vedi anche
Funzioni
thingSpeakRead|hampel(Signal Processing Toolbox)