主要内容

删除并可视化数据中的异常值

这个例子展示了如何使用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);

可视化数据

绘制原始数据和过滤后的数据。显示检测到和移除的异常值。

情节(data.Timestamps data.WindSpeedmph);持有情节(data.Timestamps filteredData);情节(data.Timestamps(异常),data.WindSpeedmph(异常值),“标记”“广场”“线型”“没有”“颜色”“黑”);ylabel (的风速(英里/小时));传奇(“原始数据”过滤数据的“离群值”);
当前的情节举行

将数据写入thingSpeak

将检测到的异常值数量发送到ThingSpeak通道thingSpeakWrite函数。改变channelIDwriteAPIKey将数据发送到您的通道。

channelID = 17504;writeAPIKey =“23 zlgobbu9twhg2h”;thingSpeakWrite (channelID总和(异常值),“WriteKey”, writeAPIKey);

另请参阅

功能