Soy un ingeniero de software experimentado y estoy trabajando en sensores de teléfonos inteligentes. He tomado clases fundamentales de EE en DSP y estoy tratando de aplicar mis conocimientos. Creo que entiendo la convolución, las funciones de transferencia, la transformación z, etc. Sé un poco sobre los filtros FIR y IIR.
Ahora, al leer las API y la documentación del software, veo que las personas están aplicando un LPF a los datos del sensor en el dominio del tiempo. Sé que lo hace a través del uso de ecuaciones de diferencia (por ejemplo, y [i] = y [i-1] + 2 * x [i]), pero aprendí en mi clase de EE que los LPF generalmente se aplican a través de la operación de convolución donde convoluciona la señal de tiempo con los coeficientes de una onda sinc (por ejemplo) y con una frecuencia de corte específica. Entonces, el uso coloquial del "filtro de paso bajo" no es lo suficientemente exacto para mí.
Por ejemplo, la API de Google Android tiene esta documentación: http://developer.android.com/reference/android/hardware/SensorEvent.html#values
public void onSensorChanged(SensorEvent event)
{
// alpha is calculated as t / (t + dT)
// with t, the low-pass filter's time-constant
// and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
¿Cómo interpreto ese filtro de paso bajo? ¿Cuál es la frecuencia de corte? ¿Cuál es el ancho de banda de transición? ¿Están usando este LPF únicamente para hacer promedios?