这个例子展示了如何使用Hampel过滤器检测和删除ThingSpeak™通道数据中的异常值。这个滤波器与中值滤波器密切相关,它有助于在不过度平滑数据的情况下去除信号中的异常值。
读取存储在通道22641的风速使用thingSpeakRead
函数。
data = thingSpeakRead (12397“NumPoints”, 80,“字段”,2,“outputFormat”,“表”);
通过应用去除原始数据中的异常值hampel
函数。指定窗口大小为6,或者在测量窗口的任意一侧大约3分钟的数据。这个设置允许有足够的数据来决定每个点是否为离群值。由于数据是动态的,您的结果可能会根据当前的天气而变化。指定标准偏差的数量为2。如果一个数据点与本地中值的差异大于此值,则将其替换为本地中值。
windowSize = 6;numMedians = 2;[filteredData,离群值]= hampel (data.WindSpeedmph、windowSize numMedians);
将检测到的异常值数量发送到ThingSpeak通道thingSpeakWrite
函数。改变channelID
和writeAPIKey
将数据发送到您的通道。
channelID = 17504;writeAPIKey =“23 zlgobbu9twhg2h”;totalOutliers = sum(outliers)“WriteKey”, writeAPIKey);
totalOutliers = 8
thingSpeakRead
|hampel
(信号处理工具箱)