Saya seorang insinyur perangkat lunak yang berpengalaman dan sedang mengerjakan sensor ponsel cerdas. Saya telah mengambil kelas EE mendasar dalam DSP dan saya mencoba menerapkan pengetahuan saya. Saya percaya bahwa saya memahami konvolusi, fungsi transfer, z-transform, dll. Saya tahu sedikit tentang filter FIR dan IIR.
Sekarang, ketika membaca melalui API perangkat lunak dan dokumentasi, saya melihat orang-orang menerapkan LPF untuk sensor data dalam domain waktu. Saya tahu Anda melakukannya melalui penggunaan persamaan perbedaan (mis. Y [i] = y [i-1] + 2 * x [i]), tetapi saya belajar di kelas EE bahwa LPF biasanya diterapkan melalui operasi konvolusi di mana Anda memadukan sinyal waktu dengan koefisien gelombang sinc (misalnya) dan dengan frekuensi cut-off tertentu. Jadi penggunaan sehari-hari "low-pass filter" tidak cukup tepat untuk saya.
Misalnya, Google Android API memiliki dokumentasi ini: 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];
}
Bagaimana cara menafsirkan filter low-pass itu? Berapa frekuensi cut-off? Apa itu bandwidth transisi? Apakah mereka menggunakan LPF ini hanya untuk melakukan rata-rata?