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