Deneyimli bir yazılım mühendisiyim ve akıllı telefon sensörleri üzerinde çalışıyorum. DSP'de temel Enerji Verimliliği dersleri aldım ve bilgimi uygulamaya çalışıyorum. Evrişimi, transfer fonksiyonlarını, z-dönüşümünü vb. Anladığımı düşünüyorum. FIR ve IIR filtreleri hakkında biraz bilgim var.
Şimdi, yazılım API'lerini ve belgelerini okurken, insanların zaman alanındaki sensör verilerine bir LPF uyguladıklarını görüyorum. Bunu fark denklemleri kullanarak yaptığınızı biliyorum (örn. Y [i] = y [i-1] + 2 * x [i]), ama EE sınıfımda LPF'nin genellikle evrişim işlemiyle uygulandığını öğrendim burada zaman sinyalini bir iç dalga (örneğin) katsayıları ve belirli bir kesme frekansı ile birleştirirsiniz. Yani "alçak geçiren filtre" nin konuşma dili kullanımı benim için yeterli değil.
Örneğin, Google Android API'sında şu belgeler bulunur: 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];
}
Bu alçak geçiren filtreyi nasıl yorumlayabilirim? Kesme frekansı nedir? Geçiş bant genişliği nedir? Bu LPF'yi sadece ortalama yapmak için mi kullanıyorlar?