Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

データ内の外れ値の削除

この例では、Hampel フィルターを使用して ThingSpeak™ チャネルのデータの外れ値を検出し、削除する方法を説明します。このフィルターはメディアン フィルターと密接に関係しており、データを過度に平滑化することなく、信号から外れ値を削除するために役立ちます。

メモ

この例を実行するには、Signal Processing Toolbox を使用するライセンスの与えられた MathWorks アカウントにログインしていなければなりません。

データの読み取り

関数 thingSpeakRead を使用して、チャネル 22641 に格納されている気温 (摂氏) を読み取ります。

data = thingSpeakRead(22641,'NumPoints',8000,'Fields',2,'outputFormat','table');

外れ値の削除

関数 Hampel を適用して、生のデータ中にある外れ値を削除します。測定ウィンドウにおけるデータの各サンプルの両側の近傍の数を 60 に指定します。温度が 1 時間以内に 10 度を超えて変化することはないため、この設定により、十分なデータがあれば各点が外れ値かどうかを判断できるようになります。標準偏差の数を 10 に指定します。データ点と局所的中央値の差がこの数よりも大きい場合、データ点は中央値に置き換えられます。

windowSize = 60;
numMedians = 10;
hampelData = hampel(data.AirTemperatureC,windowSize,numMedians);

ThingSpeak へのデータの送信

関数 thingSpeakWrite を使用して、hampelData 値を ThingSpeak チャネルに送信します。

% Change the Channel ID and the 'WriteKey' to send data to your channel
thingSpeakWrite(<channelID>,numOccurences,60,'WriteKey','<write API key>');

参考

関数