Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um das englische Original zu sehen.

Regularisieren unregelmäßig abgetasteter Daten

Dieses Beispiel zeigt, wie unregelmäßig abgetastete Daten reguliert werden, um einen konstanten Zeitraum zwischen den Messungen zu gewährleisten. Sie aktualisieren Zeitstempel von Daten, die aus einem ThingSpeak ™-Kanal gelesen werden, um Unregelmäßigkeiten zu beseitigen, und schreiben die Daten dann in einen Kanal. Zeitstempelabweichungen in Messdaten, die durch Netzwerklatenzen oder Hardware-Resets entstehen, können die Datenvorverarbeitung und die Algorithmen zur Datenanalyse beeinträchtigen. Viele Algorithmen benötigen regelmäßig abgetastete Daten, um korrekt zu funktionieren.

Daten vom Wetterstationskanal lesen

ThingSpeak-Kanal 12397 enthält Daten von der MathWorks ®-Wetterstation in Natick, Massachusetts. Die Daten werden einmal pro Minute erfasst. Feld 4 des Kanals enthält Daten zur Lufttemperatur. Um zu prüfen, ob die Daten unregelmäßig abgetastet wurden, lesen Sie die Lufttemperaturdaten aus Kanal 12397 mit der Funktion thingSpeakRead.

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

Überprüfen Sie, ob die Daten unregelmäßig abgetastet wurden

Die aus Kanal 12397 ausgelesenen Daten der letzten 60 Minuten werden als Timetable gespeichert. Verwenden Sie die Funktion isregular, um zu überprüfen, ob die Kanaldaten regelmäßig abgetastet werden. Wenn die Daten unregelmäßig abgetastet werden, generieren Sie einen regelmäßig verteilten Zeitvektor für den betreffenden Zeitraum. Generieren Sie einen neuen Zeitvektor mit linspace mit startTime, stopTime und der Anzahl der Messungen.

regularFlag = isregular(data,'Time');

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

Daten an ThingSpeak senden

Senden Sie die verarbeiteten Daten mithilfe der Funktion thingSpeakWrite an einen ThingSpeak-Kanal.

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

Siehe auch

(MATLAB) | (MATLAB) | (MATLAB)