ในงานด้าน hardware ที่มีการอ่านข้อมูลจาก sensor แน่นอนว่าข้อมูลที่ได้มาในแต่ละครั้งอาจจะมีข้อมูลที่ error หรือข้อมูลที่เพี้ยนไปจากความเป็นจริงบางช่วงเวลา ซึ่งเราไม่ต้องการข้อมูลพวกนั้นเช่น ถ้าเราต้องการวนลูปอ่านข้อมูลจาก Accelerometer เป็น sensor วัดความเร่ง ปกติแล้วเมื่อเราวนลูปอ่านข้อมูลจาก sensor พวกนี้จะได้ค่า error หรือสัญญานรบกวน ค่อนข่างสูง
Accelerometer
เราสามารถเขียนโปรแกรมลดสัญญานรบกวนได้จากสมการนี้
y[now] = ( k*y[t] ) + ( ( 1-k )*y[t-1] )
อธิบายสูตร
- y[now] คือ ค่าที่ถูก filter แล้ว ณ. เวลานั้น(รอบปัจจุบัน)
- k คือ ระดับการกรองตั้งแต่ 0-1(1=ไม่ได้กรองเลย, 0=กรองออกหมดเลย) ค่ายิ่งใกล้เคียง 0 มากจะยิ่งกรองมาก
- y[t] คือ ค่าที่อ่านได้จาก sensor ในรอบปัจจุบัน
- y[t-1] คือ ค่าที่ได้จาก sensor ในรอบก่อนหน้านี้(ค่าจาก sensor ที่อ่านได้จากครั้งที่แล้ว)