Elimine los valores atípicos en sus datos
Este ejemplo muestra cómo detectar y eliminar valores atípicos en los datos de su canal ThingSpeak™ utilizando un filtro Hampel. Este filtro está estrechamente relacionado con un filtro de mediana y ayuda a eliminar valores atípicos de una señal sin suavizar demasiado los datos.
Leer datos
Lea la velocidad del viento almacenada en el canal 22641 usando la función thingSpeakRead
.
data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');
Eliminar valores atípicos
Elimine los valores atípicos en los datos sin procesar aplicando la función hampel
. Especifique el tamaño de la ventana como 6, o aproximadamente tres minutos de datos a cada lado de la ventana de medición. Esta configuración permite disponer de datos suficientes para decidir si cada punto es un valor atípico. Dado que los datos son dinámicos, sus resultados pueden variar según el clima actual. Especifique que el número de desviaciones estándar sea 2. Si un punto de datos difiere de la mediana local en más de este número, se reemplaza con el valor de la mediana local.
windowSize = 6; numMedians = 2; [filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);
Escribir datos en ThingSpeak
Envíe el número de valores atípicos detectados a un canal ThingSpeak usando la función thingSpeakWrite
. Cambia el channelID
y el writeAPIKey
para enviar datos a tu canal.
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; totalOutliers = sum(outliers) thingSpeakWrite(channelID,totalOutliers,'WriteKey',writeAPIKey);
totalOutliers = 8
Consulte también
Funciones
thingSpeakRead
|hampel
(Signal Processing Toolbox)