Wie setzen Sie einen Hochpassfilter für das Beschleunigungsmesser IPhone?
-
02-07-2019 - |
Frage
Ich erinnere mich an den Code für einen Hochpassfilter ein paar Tage zurück irgendwo in den Proben zu sehen, aber ich kann es nicht überall jetzt finden! Könnte mir jemand daran erinnern, wo die Hochpaßfilterung Implementierungscode war?
Oder noch besser, den Algorithmus posten?
Danke!
Lösung
#define kFilteringFactor 0.1
static UIAccelerationValue rollingX=0, rollingY=0, rollingZ=0;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
// Calculate low pass values
rollingX = (acceleration.x * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));
rollingY = (acceleration.y * kFilteringFactor) + (rollingY * (1.0 - kFilteringFactor));
rollingZ = (acceleration.z * kFilteringFactor) + (rollingZ * (1.0 - kFilteringFactor));
// Subtract the low-pass value from the current value to get a simplified high-pass filter
float accelX = acceleration.x - rollingX;
float accelY = acceleration.y - rollingY;
float accelZ = acceleration.z - rollingZ;
// Use the acceleration data.
}
Andere Tipps
Für den Fall, jemand wissen will, kann das Hochpassfilter in der Accelerometer Graph Probe .
Hier ist der Link, ich war auch für diese suchen. Dies ist ein Beispiel für eine adaptive / nicht adaptive Hoch- und Tieffilter: von Apple iOS Reference Library - AccelerometerGraph Beispiel
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow