Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

不規則にサンプリングされたデータの正則化

この例では、不規則にサンプリングされたデータを、測定の時間間隔が一定の、定期的にサンプリングされたデータへと正則化する方法を説明します。ThingSpeak™ チャネル内のデータのタイムスタンプを更新して、不規則性を除去します。データの前処理アルゴリズムとデータ解析アルゴリズムは、定期的にサンプリングされたデータに適用できます。したがって、こうした用途では、ネットワークのレイテンシによって生じた測定データのタイムスタンプのばらつきを修正することが重要です。

データの読み取り

ThingSpeak のチャネル 12397 には、マサチューセッツ州ネイティックにある MathWorks® の気象計のデータが含まれています。データは 1 分ごとに収集されます。チャネルの Field 4 には気温データが含まれています。関数 thingSpeakRead を使用してチャネル 12397 からの気温データを読み取り、不規則にサンプリングされたデータを確認します。

data = thingSpeakRead(12397,'NumMin',5,'Fields',4,'outputFormat','timetable'); 

不規則にサンプリングされたデータのチェック

チャネル 12397 の最後の 60 分間のデータは、data に timetable として格納されます。関数 isregular を使用して、チャネルのデータが定期的にサンプリングされているかどうかをチェックします。データが不規則にサンプリングされている場合は、対象期間用に一定間隔の時間ベクトルを生成します。startTimestopTime、および測定間で想定される timePeriod を使用して、新しい時間ベクトルを生成します。

regularFlag = isregular(data,'Time');

if ~regularFlag
    startTime = data.Timestamps(1);
    stopTime  = data.Timestamps(end);
    timePeriod = minutes(1);
    newTimeVector = startTime:timePeriod:stopTime;
    data.Timestamps = newTimeVector;
end

ThingSpeak へのデータの送信

関数 thingSpeakWrite を使用して、ThingSpeak チャネルに処理済みのデータを送信します。

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

参考

関数