Seite 1 von 1

Peaks in beschleunigendem Signal

Verfasst: Freitag 7. Januar 2022, 12:02
von piratos
Hallo,

Ich suche eine Möglichkeit die Peaks in einem beschleunigenden Signal zu erfassen. In meinem angefügten Bild rot eingekreist, dabei ist nur ein Auszug meines gesamten Datensatzes dargestellt.
Bild

Das Problem besteht darin, dass der zeitliche Abstand zwischen den Peaks immer kleiner wird. Die Amplitude der Peaks wird zudem immer größer. Ich kenne die Peakerfassung bisher leider nur so (detecta, scipy), dass man einen Mindestabstand zwischen zwei Peaks bzw. eine Mindesthöhe des Peaks angibt. Das kommt hier leider leider nicht in Frage.

Ziel ist es durch die Abstände dieser Peaks die Beschleunigung der Rotation zu bestimmen. Hat hier vielleicht jemand eine Idee, wie man das Problem am besten angeht?


Vielen Dank und Grüße,
Jeff

Edit: Um genau zu sein, ich brauche eigentlich nicht die "Peaks" sondern die Abstände der "Hügel".

Re: Peaks in beschleunigendem Signal

Verfasst: Freitag 7. Januar 2022, 13:11
von __deets__
Gibt es einen Grund, warum du nicht die nach unten gerichteten Peaks nimmst? Oder Valleys, wenn man so will? Die sehen viel sauberer aus, ein Threshold von unter 200 wuerde zB gut funktionieren, plus natuerlich einem gleitenden Durchschnitt oder Windowing-Ansatz (das wird in diesen peak-detections schon alles eingebaut sein).

Re: Peaks in beschleunigendem Signal

Verfasst: Freitag 7. Januar 2022, 13:30
von piratos
Das ist eine sehr gute Idee mit den Valleys. Danke!

Ein Threshold ist aber leider schwierig, weil die Temperatur sich sehr stark verändert über den gesamten Datensatz. Es handelt sich hier um Live-Messwerte, daher ist es meiner Meinung nach leider auch nicht so einfach einen Threshold für verschiedene Segmente zu bestimmen. Ich dachte, dass es evtl. sinnvoller ist, die Valleys oder Hügel über die vorangegangene Steigung zu ermitteln. Das ist aber wiederum nicht so einfach, wegen der Form der Hügel.

Diese Form entsteht durch die Polgeometrie der Maschine. Nach 4 "Hügeln" ist eine Umdrehung abgeschlossen und daraus möchte ich dann die Drehzahl bestimmen.

Re: Peaks in beschleunigendem Signal

Verfasst: Freitag 7. Januar 2022, 13:52
von __deets__
Ich kann’s ja nur beurteilen anhand dessen, was du zeigst. Da reicht ein threshold. Du kannst den aber ja auch adaptiv machen. Du musst dann eben schrittweise vorgehen, und zb die Temperatur-Progression über die peaks dazu nutzen, den threshold entsprechend anpassen, und jeweils die nächsten peaks damit abgrasen.

Re: Peaks in beschleunigendem Signal

Verfasst: Freitag 7. Januar 2022, 13:54
von rogerb
@piratos, hast du dir mal die Dokumentation von
scipy.signal.find_peaks angeschaut?
https://docs.scipy.org/doc/scipy/refere ... find-peaks

Es scheint mir, du verwechselst "threshold" mit "height"
'threshold' ist der *relative* Unterschied benachbarter Samples. Dass die abolute Höhe variiert sollte also für 'threshold' unerheblich sein.

Wenn man in der Dokumentation ganz unten schaut sieht man auch ein Beispiel wo Peaks unterschiedlicher Höhe gefunden werden können.
Da wird mit dem Parameter "prominence" gearbeitet.

Wenn man die Peaks gefunden hat, hat man auch den Abstand der Peaks. Die Beschleunigung ist die zweite Ableitung der Abstandskurve. Die liefert scipy auch:
https://docs.scipy.org/doc/scipy/refere ... derivative