ฉันเป็นวิศวกรซอฟต์แวร์ที่มีประสบการณ์และกำลังทำงานกับเซ็นเซอร์ของสมาร์ทโฟน ฉันใช้คลาส EE พื้นฐานใน DSP และพยายามใช้ความรู้ของฉัน ฉันเชื่อว่าฉันเข้าใจการแปลงฟังก์ชั่นถ่ายโอนการแปลง z เป็นต้นฉันรู้เล็กน้อยเกี่ยวกับตัวกรอง FIR และ IIR
ตอนนี้เมื่ออ่าน API ของซอฟต์แวร์และเอกสารฉันเห็นผู้คนกำลังใช้ LPF กับข้อมูลเซ็นเซอร์ในโดเมนเวลา ฉันรู้ว่าคุณทำอย่างนั้นผ่านการใช้สมการความแตกต่าง (เช่น y [i] = y [i-1] + 2 * x [i]) แต่ฉันเรียนรู้ในชั้นเรียน EE ของฉันที่ LPF มักจะนำมาใช้ผ่านการดำเนินการสังวัตนา โดยที่คุณสามารถสังเกตุสัญญาณเวลาด้วยค่าสัมประสิทธิ์ของคลื่น sinc (ตัวอย่าง) และมีความถี่ตัดเฉพาะ ดังนั้นการใช้งานภาษาพูดของ "ตัวกรองความถี่ต่ำ" จึงไม่แน่นอนสำหรับฉัน
ตัวอย่างเช่น 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 นี้เพื่อทำการหาค่าเฉลี่ยหรือไม่