Ich führe einige Tests durch, bei denen ich Beschleunigungsmessermessungen aufzeichne. Ich möchte Elemente der Signalverarbeitung für dieses Signal verwenden, bin mir jedoch nicht sicher, wo ich anfangen soll oder wie ich vorgehen soll.
Mein oberstes Ziel ist es, die Beschleunigungswerte in Echtzeit überwachen und dann eine Benachrichtigung anzeigen zu können, wenn dies event
auftritt. Wie Sie um die 150.000 Abtastzeit sehen können, event
tritt ein auf.
- Wenn ich diese Daten in Echtzeit überwache, welche Art von Signalverarbeitungstechniken könnten implementiert werden, um auf dieses Ereignis zu reagieren?
- Wäre eine Kurzzeit-Fourier-Transformation (STFT) eine Option?
Ich überwache meine Daten in Python und sie haben eine anständige STFT-Funktion .
Die Argumente dieser Funktion lauten wie folgt:
scipy.signal.stft (x, fs = 1.0, window = 'hann', nperseg = 256, noverlap = None, nfft = None, detrend = False, return_onesided = True, border = 'Nullen', aufgefüllt = True, axis = -1)
Wie bestimme ich optimale Parameter für die Verarbeitung dieses Signals?
Gibt es andere Methoden, von denen Sie glauben, dass sie mir helfen könnten, festzustellen, wann sie
event
in Echtzeit auftreten (anstatt nur die Größe der Beschleunigung zu verwenden)?
EDIT 1:
Mein STFT wurde oben hinzugefügt.
event
zu erfassen ist - vorausgesetzt, sie erfasst alle Versionen von Ihnen , die Sie erkennen möchten. In der Antwort von Fat32 finden Sie ein Beispiel dafür, wovon ich spreche.event
.Wenn diese Grafik das typischste Anwendungsszenario darstellt, würde ich eine einfache Schätzung der kurzen Fenstervarianz vornehmen und anschließend eine Schwellenwertbildung durchführen.
Woxa c[ n ] ist das DC-entfernte Eingangssignal; dhxa c[ n ] = x [ n ] -x¯[ n ] wo x¯[ n ] ist der DC (Mittelwert) des Eingangs x [ n ] die lokal geschätzt werden kann durch
Wählen Sie eine ausreichend kleine FenstergrößeN. passend für Ihre Bewerbung. Sie können die Entscheidung des Ereignisses basierend auf einem Vergleich der Standardabweichung (Quadratwurzel dieser berechneten Varianzschätzung) mit einem richtig ausgewählten Schwellenwert durchführen.
Dies lässt sich im Vergleich zu einer Frequenzbereichsanalyse leicht in Echtzeit mit viel weniger Rechenaufwand berechnen. Beachten Sie, dass in der Echtzeitanwendung Ihre Summierungsindizes von der aktuellen Stichprobe rückwärts gehen sollten (anstelle der obigen Formeln, die eine nicht kausale Summierung verwenden).
Als zweite effiziente Alternative können Sie auch eine Erkennung der Zeitbereichshüllkurve (gefolgt von einem Schwellenwert) implementieren , um das Ereignis auszulösen.
quelle