Entrauschen von Zeitreihendaten mithilfe der Wavelet-Transformation

26/9/2022
|
Alexey Timin
&
Originalsignal
Sieht laut aus, nicht wahr?

Ein beliebter Ansatz Die bedingte Überwachung mechanischer Maschinen besteht darin, Vibrationssensoren in eine Maschine einzubetten und zu „hören“. Die Daten der Sensoren müssen irgendwo gespeichert werden. Je effizienter wir sie also komprimieren, desto länger können wir den Verlauf aufbewahren. Wenn wir mit Sensoren arbeiten, haben wir ständig Lärm von ihnen, und wenn eine Maschine angehalten wird, haben wir nur Lärm, der unseren Lagerraum verschwendet. WaveletBuffer wurde entwickelt, um dieses Problem durch die Verwendung der Wavelet-Transformation und der effizienten Komprimierung entrauschter Daten zu lösen. Allerdings muss ein Benutzer viele Einstellungen kennen, um es effizient nutzen zu können. In diesem Tutorial erfahren Sie, wie Sie Rauschunterdrückungsparameter finden, um weißes Rauschen in Ihren Daten zu entfernen.

Grundlagen

Zu Bildungszwecken: Ich habe zwei Proben eines Vibrationssensors mitgebracht, der an einer echten Maschine gewartet wird. Sie finden sie im Verzeichnis docs/tutorials. buffer_signal.bin enthält eine Sekunde des Signals, wenn die Maschine arbeitet. buffer_no_signal.bin hat nur Rauschen, weil die Maschine gestoppt ist. Beide Dateien sind serialisierte Puffer ohne Rauschunterdrückung, daher haben sie die gleiche Größe, aber unterschiedliche Informationsmengen!

Wir müssen weißes Rauschen und Informationen trennen, also brauchen wir das Beispiel mit der funktionierenden Maschine . Deserialisieren wir es:

Ausgabe:

Sie können Sehen Sie, dass das Signal etwa 48.000 Punkte hat und die Größe der Datei etwa 200 KB beträgt. Werfen wir einen Blick auf das Signal im Inneren:

Sieht laut aus, oder? Wenn wir das ursprüngliche Signal wiederhergestellt haben, können wir es mit WaveletBuffer entrauschen. Für die Demonstration verwenden wir einen zufälligen Schwellenwert. Später lernen wir, 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 Hochfrequenz-Teilbändern, die kleiner als a*x+b sind, auf 0 gesetzt, wobei x ein Zerlegungsschritt des aktuellen Teilbands ist.

Erkennung von Informationsverlusten

Das entrauschte Signal sieht genauso aus, aber wir wissen eigentlich 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 Originalsignal heranziehen und prüfen, ob es Informationen oder nur Rauschen enthält. Es enthält einige Informationen und bedeutet, dass wir es mit Rauschunterdrückung gelöscht haben.

Hier weiterlesen

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

Folgt uns auf
We do not only optimize production processes, but also our website! For this, we use tools such as cookies for analysis and marketing purposes. You can change your cookie settings at any time. Information and Settings