Entschärfung von Zeitreihendaten durch Wavelet-Transformation

26
.
Sep 2022
von
Alexej Timin
&
Original-Signal
Sieht laut aus, nicht wahr?

Ein beliebter Ansatz für die bedingte Überwachung mechanischer Maschinen besteht darin, Schwingungssensoren in die Maschine einzubauen und sie "abzuhören". Die Daten der Sensoren müssen irgendwo gespeichert werden. Je effizienter wir sie also komprimieren, desto länger können wir sie aufbewahren. Wenn wir mit Sensoren arbeiten, haben wir immer Rauschen von ihnen, und wenn eine Maschine angehalten wird, haben wir nur Rauschen, das unseren Speicherplatz verschwendet. WaveletBuffer wurde entwickelt, um dieses Problem zu lösen, indem es die Wavelet-Transformation und eine effiziente Komprimierung der entrauschten Daten nutzt. Allerdings muss der Benutzer viele Einstellungen kennen, um das Programm effizient nutzen zu können. In diesem Lernprogramm erfahren Sie, wie Sie Entrauschungsparameter finden, um das weiße Rauschen in Ihren Daten zu beseitigen.

Grundlagen

Zu Lehrzwecken habe ich zwei Proben von einem Schwingungssensor mitgebracht, der an einer echten Maschine betrieben wird. Sie finden sie im Verzeichnis docs/tutorials. buffer_signal.bin enthält eine Sekunde des Signals, wenn die Maschine in Betrieb ist. buffer_no_signal.bin enthält nur Rauschen, weil die Maschine angehalten ist. Beide Dateien sind serialisierte Puffer ohne Rauschunterdrückung, d.h. sie sind gleich groß, enthalten aber unterschiedlich viele Informationen!

Wir müssen weißes Rauschen und Informationen trennen, also brauchen wir die Probe mit der Arbeitsmaschine. Lassen Sie es uns deserialisieren:

Ausgabe:

Sie können sehen, dass das Signal etwa 48000 Punkte hat und die Größe der Datei etwa 200kB beträgt. Werfen wir einen Blick auf das Signal selbst:

Sieht verrauscht aus, oder? Wenn wir das ursprüngliche Signal wiederhergestellt haben, können wir WaveletBuffer verwenden, um es zu entrauschen. Zur Demonstration verwenden wir einen zufälligen Schwellenwert. Später werden wir lernen, wie man den optimalen Parameter findet. Wenn wir denoise.Threshold(a=0, b=0.04) in der WaveletBuffer.decompose-Methode übergeben, werden alle Werte in den hochfrequenten Teilbändern, die kleiner als a*x+b sind, auf 0 gesetzt, wobei x ein Zerlegungsschritt des aktuellen Teilbandes ist.

Erkennung von Informationsverlusten

Das entrauschte Signal sieht gleich aus, aber wir wissen nicht, ob wir nur das Rauschen oder einen Teil des Signals entfernt haben. Um das herauszufinden, können wir die Differenz zwischen dem entrauschten und dem ursprünglichen Signal nehmen und prüfen, ob sie Informationen oder nur Rauschen enthält. Wenn das Signal einige Informationen enthält, haben wir es entrauscht.

Lesen Sie hier weiter

Ursprünglich veröffentlicht auf driftpythonclient.readthedocs.io

Folgen Sie mir auf
Wir optimieren nicht nur die Produktionsprozesse, sondern auch unsere Website! Hierfür verwenden wir Tools wie Cookies für Analyse- und Marketingzwecke. Sie können Ihre Cookie-Einstellungen jederzeit ändern. Informationen und Einstellungen