Wie soll ich die Daten meines Beschleunigungssensors normalisieren?


9

Ich arbeite mit einem großen Satz von Beschleunigungsmesserdaten, die mit mehreren Sensoren erfasst wurden, die von vielen Probanden getragen werden. Leider scheint hier niemand die technischen Spezifikationen der Geräte zu kennen, und ich glaube nicht, dass sie jemals neu kalibriert wurden. Ich habe nicht viele Informationen über die Geräte. Ich arbeite an meiner Masterarbeit, die Beschleunigungsmesser wurden von einer anderen Universität ausgeliehen und insgesamt war die Situation etwas intransparent. Vorverarbeitung an Bord des Geräts? Keine Ahnung.

Was ich weiß ist, dass es sich um dreiachsige Beschleunigungsmesser mit einer Abtastrate von 20 Hz handelt; digital und vermutlich MEMS. Ich interessiere mich für nonverbales Verhalten und Gestikulieren, das laut meinen Quellen hauptsächlich Aktivitäten im Bereich von 0,3 bis 3,5 Hz erzeugen sollte.

Das Normalisieren der Daten scheint durchaus notwendig, aber ich bin mir nicht sicher, was ich verwenden soll. Ein sehr großer Teil der Daten liegt nahe an den Restwerten (Rohwerte von ~ 1000, bezogen auf die Schwerkraft), aber es gibt einige Extreme wie bis zu 8000 in einigen Protokollen oder sogar 29000 in anderen. Siehe das Bild unten . Ich denke, das macht es zu einer schlechten Idee, durch das Maximum oder das Standard zu dividieren, um sich zu normalisieren.

Was ist der übliche Ansatz in einem solchen Fall? Durch den Median teilen? Ein Perzentilwert? Etwas anderes?

Als Nebenproblem bin ich mir auch nicht sicher, ob ich die Extremwerte abschneiden soll.

Vielen Dank für jeden Rat!

Bearbeiten : Hier ist ein Diagramm von ca. 16 Minuten Daten (20000 Beispiele), um Ihnen eine Vorstellung davon zu geben, wie die Daten normalerweise verteilt sind.

Geben Sie hier die Bildbeschreibung ein


1
Können Sie etwas mehr Informationen zu Ihrem Messaufbau geben? Fragen, die mir in den Sinn kommen: ( 1 ) Sind diese einachsigen Beschleunigungsmesser oder mehrachsig? ( 2 ) Sind sie hochpassgefiltert oder nicht und wenn ja, wie? (Laut Ihrer Beschreibung klingt dies nicht so.) ( 3 ) Was genau messen Sie und wie hoch ist der Frequenzbereich des interessierenden Signals? ( 4 ) Was ist der Erfassungsmechanismus (dh MEMS, piezoelektrisch, kapazitiv usw.) oder sogar die Teilenummer (!) Der von Ihnen verwendeten Beschleunigungsmesser? ...
Kardinal

... (Fortsetzung) ( 5 ) Sind diese vollständig digital oder haben Sie einen eigenen ADC (16-Bit, möglicherweise gemäß der von Ihnen angegebenen Beschreibung)?
Kardinal

@cardinal: Ich habe die Antworten auf deine Fragen bearbeitet, danke fürs Fragen. Ich bin mir nicht sicher, was ein ADC ist. Ich war an dem Experiment beteiligt, aber nicht an der Extraktion der Daten aus dem Gerätespeicher. Es gibt eine Lücke zwischen der Datenerfassung und dem Erhalt einer Reihe von Binärprotokollen.
Junuxx

Hallo Junuxx. Entschuldigung für das ungeklärte Akronym (ADC = "Analog-Digital-Wandler"); Ich habe implizit angenommen, dass Sie es anhand Ihrer Frage erkennen würden.
Kardinal

1
Was versuchen Sie aus diesen Daten herauszufinden? Versuchen Sie vielleicht, bestimmte Arten von Ereignissen zu erkennen, Häufigkeiten von Ereignissen zu schätzen, mittlere Beschleunigungen zu schätzen, Korrelationen zwischen verschiedenen Beschleunigungsmessern zu finden, ...? Der Punkt ist, dass Sie, wenn Sie gute, relevante Ratschläge wünschen, nicht nach technischen Verfahren mit den Daten fragen (die je nach Anwendung irrelevant oder sogar nutzlos sein können): Sagen Sie uns zuerst, welches Problem Sie lösen möchten.
whuber

Antworten:


14

Die oben angezeigten Rohsignale scheinen ungefiltert und nicht kalibriert zu sein. Durch geeignete Filterung und Kalibrierung mit einer gewissen Zurückweisung von Artefakten werden die Daten tatsächlich normalisiert. Der Standardansatz mit Beschleunigungsmesserdaten ist der folgende:

  1. Filter - zB 4. Ordnung, Nullphasen-IIR-Tiefpass- oder Bandpassfilter
  2. Zurückweisung von Artefakten - Schwellenwert basierend
  3. Kalibrieren - Die Methode von Ferraris et al. (Die Methode zur mühelosen Kalibrierung von dreiachsigen Geschwindigkeitskreiseln und Beschleunigungsmessern vor Ort, F. Ferraris, U. Grimaldi, M. Parvis - Sensoren und Aktoren, 1995 ) eignet sich gut dafür.

Es ist ratsam, eine Artefaktunterdrückung für Trägheitssensordaten durchzuführen. Ich würde mir Sorgen machen, dass Sie die Herkunft der Daten nicht kennen und daher nicht garantieren können, dass die Sensoren korrekt und konsistent (in Bezug auf Orientierung und physische Platzierung) an allen Probanden angebracht wurden. Wenn die Sensoren nicht richtig angebracht wurden, können viele Signale in den Signalen auftreten, da sich der Sensor relativ zum Körpersegment bewegen kann. In ähnlicher Weise ist es schwierig, die Daten zwischen den Subjekten zu vergleichen, wenn die Sensoren auf verschiedene Subjekte unterschiedlich ausgerichtet sind (wie sie platziert wurden).

Angesichts der Größe der von Ihnen gemeldeten Ausreißer handelt es sich wahrscheinlich um Artefakte. Solche Artefakte würden fast sicher jede Kalibrierungsberechnung verzerren (obwohl ihre Wirkung durch geeignete Filterung verringert wird), und daher sollte die Kalibrierung nach der Zurückweisung von Artefakten durchgeführt werden.

Ein einfacher Schwellenwert kann für eine anfängliche Routine zur Zurückweisung von Artefakten gut funktionieren, dh NaNalle Proben oberhalb eines bestimmten empirischen Schwellenwerts entfernen (oder durch diese ersetzen ). Anspruchsvollere Techniken berechnen diesen Schwellenwert adaptiv unter Verwendung eines laufenden Mittelwerts oder eines sich bewegenden Fensters.

Abhängig von der Position des Sensors möchten Sie möglicherweise auch den Einfluss der Schwerkraft auf die Beschleunigungssignale korrigieren, obwohl hier ein detailliertes Verständnis der Sensorachsen und der Positionierung von entscheidender Bedeutung ist. Die Moe-Nillson-Methode ( R. Moe-Nilssen, Eine neue Methode zur Bewertung der Motorsteuerung im Gang unter realen Umgebungsbedingungen. Teil 1: Das Instrument, Clinical Biomechanics, Band 13, Ausgaben 4–5, Juni - Juli 1998, Die Seiten 320-327 ) werden am häufigsten verwendet und eignen sich gut für Trägheitssensoren am unteren Rücken.

Ein guter Ausgangspunkt, um die Daten auf Gestenerkennung zu untersuchen, besteht darin, die gefilterten, kalibrierten Daten in Epochen (z. B. 10 Sekunden) zu unterteilen, eine Reihe von Merkmalen pro Epoche zu berechnen und diese mit den Bezeichnungen zu verknüpfen, die Sie für die Daten haben. t spezifischere Ratschläge geben, ohne mehr über den Datensatz und die zugehörigen Etiketten zu wissen.

Hoffe das hilft.


Das ist eine erstaunliche Antwort @BGreene, vielen Dank! Referenzen sind auch sehr nützlich. Ich wünschte, ich hätte diese Frage vor ein paar Monaten gestellt. Die Sensoren wurden an einer Schnur um den Hals getragen (nicht meine Idee), so dass es definitiv viel Bewegung relativ zum Körper gibt. Einige Ihrer Vorschläge sind möglicherweise besser für weitere Recherchen geeignet, aber zumindest für meinen Abschnitt "Zukünftige Arbeit" hilfreich. Und zum Glück ist der Erkennungsteil nicht das Problem, ich habe einen ziemlich soliden Hintergrund im maschinellen Lernen, aber danke auch für die Vorschläge dazu.
Junuxx

Kein Problem. In diesem Fall denke ich, dass Sie sich darauf beschränken können, grobe Bewegungen zu untersuchen, da eine Schnur bedeutet, dass Sie nicht zuverlässig sagen können, wie sich der Körper bewegt hat, sondern nur den Sensor. Sie könnten möglicherweise schließen, dass große Sensorausgangswerte mit großen Bruttobewegungen gleichzusetzen sind, aber Sie verlieren viel die Schärfe eines richtig angebrachten Sensors.
BGreene

(+1 gestern) In (1.) oben könnten einige Dinge berücksichtigt werden. Da die Untergrenze des interessierenden Frequenzbereichs ziemlich klein ist, besteht eine Alternative darin, einfach ein Tiefpassfilter anzuwenden und den Mittelwert zu subtrahieren. Zweitens könnte man in diesem Fall anstelle eines IIR-Filters ein linearphasiges Filter mit endlicher Impulsantwort in Betracht ziehen. Ich sage dies, weil ich vermute, dass man zur Vorhersage von Gesten mithilfe des mehrachsigen Beschleunigungsmessersignals die Bewegung unabhängig von der Frequenz synchronisieren möchte. (Fortsetzung)
Kardinal

(...) Die nichtlineare Phasenantwort eines IIR-Filters verschiebt verschiedene Komponenten um unterschiedliche Beträge, und dieser Effekt ist in der Nähe der Grenzfrequenzen tendenziell schlechter. Da alles digital ist, ist es sinnvoll, ein linearphasiges FIR-Filter zu verwenden. Oft hat man auch eine bessere Kontrolle über das Einschwingverhalten. :-)
Kardinal

@ Cardinal das ist alles wahr - habe meine Antwort oben bearbeitet. Ich habe gerade meinen Code überprüft - mein neuester Beschleunigungsmesser-Algorithmus verwendet einen Nullphasen-Butterworth IIR-Filter. Obwohl ich es vorziehen
möchte,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.