Wie ist es in einem Design, das nicht nur Beschleunigungsmesserwerte (X + Y + Z), sondern auch Kreiselwerte (X + Y + Z) aufzeichnet, möglich, die durch die Schwerkraft verursachten Beschleunigungsmesserwerte zu entfernen?
Ich habe viele Datensätze von Crawdad gefunden , die bessere Messwerte liefern, die nicht von der besagten durch die Schwerkraft verursachten Leerlaufbeschleunigung beeinflusst werden.
Ich habe einen Datenlogger vorbereitet , um die Bewegung eines bestimmten Tieres aufzuzeichnen. Im Leerlauf habe ich festgestellt, dass die Z-Achse kontinuierlich 9,81 ms^-2 aufzeichnet. Ich würde gerne wissen, ob es eine Methode gibt, mit der ich die Wirkung dieser unerwünschten Gravitationskomponente reduzieren kann. Ich beabsichtige nur, die Beschleunigung aufzuzeichnen, die durch die Bewegung der Tiere verursacht wird. Alle anderen Vorschläge sind sehr willkommen.
Je nachdem, ob Sie protokollierte Daten oder Echtzeitdaten verarbeiten, variiert die Methode. Was Sie brauchen, ist davon auszugehen, dass das Objekt nicht ständig beschleunigt, was durch die Tatsache bewiesen werden kann, dass das Tier auf der Erde bleibt.
Sie können einen gleitenden Durchschnittsfilter verwenden, um den Mittelwert (Schwerkraftverzerrung) von jeder Probe zu subtrahieren. Sie tun dies in Matlab, indem Sie filtfilt() verwenden, das den Anfangs- und Endzustand basierend auf den Datenwerten richtig abgleicht. Als Filter können Sie einen einfachen mittelnden FIR-Filter mit gleichen Abgriffen oder einen geeigneteren FIR-Filter entwerfen. Ein guter Grund, filtfilt() zu verwenden, ist, dass es hin und her filtert, wodurch die Filterverzögerung aufgehoben wird und alle Signale in exakter Phase bleiben. Sie machen dasselbe mit Gyro und fusionieren dann beide Daten miteinander.
Daniel
Andi aka
mkeith
mkeith