¿Cómo implementa un filtro de paso alto para el acelerómetro de iPhone?

StackOverflow https://stackoverflow.com/questions/142944

  •  02-07-2019
  •  | 
  •  

Pregunta

Recuerdo haber visto el código para un filtro de paso alto hace unos días en algún lugar de las muestras, sin embargo, ¡no lo puedo encontrar en ningún lugar ahora! ¿Podría alguien recordarme dónde estaba el código de implementación del filtro Highpass?

¿O mejor aún, publicar el algoritmo?

¡Gracias!

¿Fue útil?

Solución

Desde los foros de idevkit.com:

#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.

}

Otros consejos

En caso de que alguien quiera saberlo, el filtro de paso alto se puede encontrar en Ejemplo de gráfico de acelerómetro .

Aquí está el enlace, también estaba buscando este. Este es un ejemplo de filtro de paso alto y paso bajo adaptativos / no adaptativos: Apple Biblioteca de referencia de iOS - Ejemplo de AccelerometerGraph

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top