การเขียนโปรแกรม low pass filter

25 May 2019,
Share: 

ในงานด้าน hardware ที่มีการอ่านข้อมูลจาก sensor แน่นอนว่าข้อมูลที่ได้มาในแต่ละครั้งอาจจะมีข้อมูลที่ error หรือข้อมูลที่เพี้ยนไปจากความเป็นจริงบางช่วงเวลา ซึ่งเราไม่ต้องการข้อมูลพวกนั้นเช่น ถ้าเราต้องการวนลูปอ่านข้อมูลจาก Accelerometer เป็น sensor วัดความเร่ง ปกติแล้วเมื่อเราวนลูปอ่านข้อมูลจาก sensor พวกนี้จะได้ค่า error หรือสัญญานรบกวน ค่อนข่างสูง

Accelerometer

Image

เราสามารถเขียนโปรแกรมลดสัญญานรบกวนได้จากสมการนี้

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 ที่อ่านได้จากครั้งที่แล้ว)

Suggestion blogs

Arduino ตอน1 Arduino คืออะไร

ก่อนที่จะรู้จัก Arduino เรามาทําความรู้จักกับ Microcontroller และ Open source กันก่อน ซึ่งผมจะอธิบายไปทีละตัวดังนี้

ls Command แสดงรายชื่อ และข้อมูลของ File and Directory

เมื่อต้องการแสดงรายชื่อ File และ Directory ให้ใช้ Command นี้

วิธีใช้ nano Command Text Editer

nano เป็นคําสั่งที่ใช้แก้ไข Text File คล้ายๆกับ notepad ใน Windows รูปแบบการใช้งานก็มีดังนี้nano [FILE]...[FILE]... คือ ชื่อของ Text file ที่ต้องการจะ แก้ไข(ถ้าไฟล์นั้นมีอยู่แล้ว จะเปิดไฟล์นั้นขึ้นมาแก้ไข แต่ถ้าไม่พบไฟล์ จะสร้างไฟล์ขึ้นมาใหม่)Imageคําสั่ง nano พื้นฐานบันทึกไฟล์ Cltr + Oการ Copy ข้อความทั้งบรรทัด Alt + ^การ Cut ข้อความทั้งบรรทัด Cltr + Kการ Paste บรรทัดที่ Copy มา Cltr + Uการค้นหาคำ Cltr + Wการค้นหาคำ Alt + Wการเลือกข้อความ Cltr + Shift + 6 แล้ว เลื่อน Cursor ไปซ้ายขวาจนได้เนื้อหาที่ต้อการการ Copy ข้อความที่เลือก Alt + Shift + 6การ Cut ข้อความที่เลือก Cltr + Kออกจากโปรแกรม Cltr + x


Copyright © 2019 - 2025 thiti.dev |  v1.53.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ