Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

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

この例では、不規則にサンプリングされたデータを正規化し、測定間隔が一定になるようにする方法を示します。ThingSpeak™チャネルから読み取られたデータのタイムスタンプを更新して不規則性を除去し、データをチャネルに書き込みます。ネットワーク遅延やハードウェアのリセットによって測定データにタイムスタンプの変動が生じると、データの前処理やデータ分析アルゴリズムに影響を与える可能性があります。多くのアルゴリズムが正しく機能するには、定期的にサンプリングされたデータが必要です。

気象観測所チャネルからデータを読み取る

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

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

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

チャネル12397 から読み取られた過去 60 分間のデータがタイムテーブルとして保存されます。isregular関数を使用して、チャネルデータが定期的にサンプリングされているかどうかを確認します。データが不規則にサンプリングされている場合は、対象期間に対して等間隔の時間ベクトルを生成します。linspacestartTimestopTime、および測定数を使用して、新しい時間ベクトルを生成します。

regularFlag = isregular(data,'Time');

if ~regularFlag
    startTime = data.Timestamps(1);
    stopTime  = data.Timestamps(end);
    newTimeVector = linspace(startTime,stopTime,height(data)); 
    data.Timestamps = newTimeVector;
end

ThingSpeak へのデータの送信

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

% Change the channelID and the writeAPIKey to send data to your channel.
channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,data,'WriteKey',writeAPIKey);

参考

(MATLAB) | (MATLAB) | (MATLAB)