Я опытный инженер-программист и работаю над датчиками для смартфонов. Я прошел базовые занятия по ЭЭ в DSP и пытаюсь применить свои знания. Я считаю, что понимаю свертку, передаточные функции, z-преобразование и т. Д. Я немного знаю о фильтрах FIR и IIR.
Теперь, читая программные API-интерфейсы и документацию, я вижу, что люди применяют ФНЧ для данных датчика во временной области. Я знаю, что вы делаете это с помощью разностных уравнений (например, y [i] = y [i-1] + 2 * x [i]), но я узнал в своем классе EE, что LPF обычно применяются посредством операции свертки где вы сворачиваете сигнал времени с коэффициентами синусоидальной волны (например) и с определенной частотой среза. Так что разговорное использование «фильтра нижних частот» для меня недостаточно точно.
Например, Google Android API имеет следующую документацию: 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];
}
Как мне интерпретировать этот фильтр нижних частот? Какова частота среза? Какова пропускная способность перехода? Они используют этот LPF исключительно для усреднения?