2009-07-31 14 views
0

fand ich das folgende Stück Code in Apfel-Richtlinien:UIAcceleration Filterung

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{ 
    //Use a basic low-pass filter to only keep the gravity in the accelerometer values 
    accel[0] = acceleration.x * kFilteringFactor + accel[0] * (1.0 - kFilteringFactor); 
    accel[1] = acceleration.y * kFilteringFactor + accel[1] * (1.0 - kFilteringFactor); 
    accel[2] = acceleration.z * kFilteringFactor + accel[2] * (1.0 - kFilteringFactor); 
} 

Was bedeutet es genau tun? Was ist das für ein Tiefpassfilter? Warum muss ich es anwenden?

Vielen Dank im Voraus.

+0

es sieht eher PID wie, aber um Ihre Frage wirklich zu beantworten benötigt viel mehr Code als das. (z. B. was ist accel? was ist kFilteringFactor?) – KevinDTimm

Antwort

4

Was Sie tun müssen, hängt davon ab, wofür Sie den Wert benötigen, aber die Grundidee besteht darin, die Auswirkungen von Vibrationen durch Handbewegungen und dergleichen zu reduzieren. Wenn Sie die rohen Beschleunigungswerte nehmen und sie als Schwerkraftvektor behandeln, erhalten Sie viel Jitter.