-
ไมโครโฟนแบบ Phased Array
- ไมโครโฟนแบบ phased array 192 แชนเนล ให้ความสามารถด้านการเก็บข้อมูลด้วย FPGA และการทำ beamforming/visualization บน GPU โดย phased array ทำให้เกิดการประยุกต์ใช้งานที่ไมโครโฟนทิศทางแบบดั้งเดิมทำไม่ได้ เช่น เปลี่ยนทิศทางรับเสียงได้ทันทีหลังอัดเสียง หรือโฟกัสพร้อมกันได้ที่จุดนับแสนจุด
- แบบออกแบบทั้งหมดเปิดเป็นโอเพนซอร์ส:
- ซอฟต์แวร์โฮสต์
- FPGA gateware
- เลย์เอาต์ PCB และสเกแมติก รวมถึงชิ้นส่วนเชิงกล
-
ฮาร์ดแวร์
- ในการสร้างไมโครโฟนแบบ phased array จำเป็นต้องจัดเรียงไมโครโฟนจำนวนมากโดยเว้นระยะห่างค่อนข้างกว้าง สำหรับ linear array การเว้นระยะแบบเอ็กซ์โปเนนเชียลระหว่างไมโครโฟนเหมาะที่สุดสำหรับสัญญาณบรอดแบนด์
- ต้นทุนรวมประมาณ $700
แขน
- ความยาวของแต่ละแขนถูกกำหนดโดยข้อจำกัดของการผลิตและประกอบ PCB ผลิตโดย JLCPCB และความยาวสูงสุดของ PCB 4 ชั้นคือ 570mm
- ไมโครโฟนที่เลือกใช้คือไมโครโฟน MEMS แบบเอาต์พุตดิจิทัลที่ถูกที่สุด และไม่มีความแตกต่างด้านสมรรถนะมากนัก
- ใช้ PDM ในการส่งออกข้อมูล และรองรับ DDR ทำให้สามารถมัลติเพล็กซ์ไมโครโฟนสองตัวบนสายเส้นเดียวได้
- แต่ละแขนมีไมโครโฟน 8 ตัวใช้เอาต์พุตร่วมกัน 4 เส้น และมีเอาต์พุตบัฟเฟอร์อยู่บนเส้นสัญญาณนาฬิกาขาเข้า
- อัตราการผ่านของ PCB ไม่ดีนัก และปัญหาที่พบบ่อยที่สุดคือเส้นสัญญาณนาฬิกาลัดวงจรกับ 3V3 หรือกราวด์
ฮับ
- FPGA ถูกใช้สำหรับเก็บข้อมูล เพราะสามารถรับ IO จำนวนมากที่มี latency ต่ำและสื่อสารผ่านอินเทอร์เฟซความเร็วสูงได้
- ใช้การ์ด Colorlight i5 เพราะมี IO เพียงพอ ราคาถูก และรวม Ethernet PHY สองตัวไว้ในตัว
- ฮับประกอบด้วยวงจรจัดการพลังงานอย่างง่าย รวมถึงคอนเน็กเตอร์สำหรับบอร์ดแขนและอีเทอร์เน็ต
การออกแบบเชิงกล
- แขนยึดกับฮับด้วยสกรู M3 และประกอบโดยใช้ standoff/nut สำหรับติดตั้ง PCB
- แบบแรกเริ่มมีสล็อตบน PCB ของแขนเพื่อให้เข้าล็อกกับ structural PCB แต่แบบสุดท้ายใช้ MDF ล้อมรอบด้านนอกและยึดด้วยเคเบิลไท
- ไมโครโฟนอาเรย์ที่ติดผนังไวต่อการสะท้อน จึงใช้ acoustic foam เพื่อลดการสะท้อน
-
เกตแวร์
- เป้าหมายหลักของ gateware คือส่งข้อมูลดิบไปยังคอมพิวเตอร์โดยไม่สูญหาย
- แม้การทำ decimation และ filtering บน FPGA จะช่วยลดอัตราการส่งข้อมูลได้ แต่ก็ยังสามารถส่งข้อมูล PDM ดิบได้
อินเทอร์เฟซ PDM
- โมดูลอินพุต PDM แบ่ง system clock 50MHz ด้วย 16 เพื่อสร้างสัญญาณนาฬิกา PDM 3.125MHz และ latch ขาอินพุต 96 ขาหลังแต่ละขอบสัญญาณนาฬิกา
- อัตราข้อมูลคือ 600Mbps และเมื่อรวมเฮดเดอร์แล้วเป็น 700Mbps
การแพ็กเก็ต
- การแพ็กเก็ตทำงานเป็น FIFO buffer โดยจะเริ่มแพ็กเก็ตก็ต่อเมื่อมีข้อมูลในคิวมากพอ เพื่อรับประกันว่าแพ็กเก็ตมีขนาดคงที่
- แต่ละแพ็กเก็ตรวม PDM output block 48 บล็อก และมีอัตราการส่ง 715 Mbps
UDP สตรีมเมอร์
- ด้วยโครงการ LiteEth ความซับซ้อนของการห่อหุ้ม UDP และ IP ถูก abstract ออกไป ทำให้การเชื่อม FIFO เข้ากับ UDP stream เป็นเรื่องง่าย
-
ซอฟต์แวร์
ฟิลเตอร์ CIC
- ไมโครโฟนแต่ละตัวสร้างสัญญาณ 1 บิตที่ 3.125MHz ซึ่งต้องถูกลดลงให้เหลืออัตราสุ่มตัวอย่างและความลึกบิตที่สมเหตุสมผลกว่าเดิม
- ใช้ฟิลเตอร์ CIC แบบ 4 สเตจและ decimation 16 เท่า เพื่อลดอัตราสุ่มตัวอย่างลงเหลือ 195kHz
การคาลิเบรต
- สำหรับการคาลิเบรตอาเรย์ ใช้ลำโพงเล่น white noise และเคลื่อนที่ไปด้านหน้าอาเรย์
- ใช้ cross-correlation แบบอิง FFT เพื่อคำนวณ relative delay ระหว่างไมโครโฟน
- ทำ optimization กับตำแหน่งแหล่งกำเนิดเสียงและตำแหน่งไมโครโฟนเพื่อให้ได้โมเดลที่ดีที่สุดของระบบ
บีมฟอร์มมิง
- Beamforming คือวิธีประมวลผลอินพุตดิบจากไมโครโฟนเพื่อสร้างการตอบสนองเชิงทิศทาง
- ประมวลผลสัญญาณโดยทำ delay ในโดเมนความถี่
- มีการทำ beamformer แบบ 3D near-field และ 2D far-field
บีมฟอร์มมิง 3D ระยะใกล้
- ทำงานบนกริด voxel ขนาด 5cm และทำอัตรารีเฟรชได้ 12Hz บน RTX 4090
- ใช้ VisPy สำหรับการแสดงผล
บีมฟอร์มมิง 2D ระยะไกล
- ใช้กริด 512x512 พิกเซล และทำอัตรารีเฟรชได้ 12Hz
เสียงแบบมีทิศทาง
- มีการทำ beamformer แบบ delay-and-sum ในโดเมนเวลา เพื่อให้สามารถบันทึกเสียงแบบมีทิศทางได้
การบันทึก
- ข้อมูลจากไมโครโฟนอาเรย์อยู่ในรูปแพ็กเก็ต UDP จึงสามารถบันทึกได้ด้วยเครื่องมืออย่าง
tcpdump
- ข้อเสียของการบันทึกแบบนี้คืออัตราข้อมูลขาออกสูงมาก
-
ขั้นตอนถัดไป
- โดยสาระสำคัญแล้วโครงการนี้เสร็จสมบูรณ์แล้ว และไม่มีแผนทำงานต่อเพิ่มเติม แต่ยังมีความเป็นไปได้ในการขยายหลายอย่าง
- ใช้อัลกอริทึม beamforming ที่ก้าวหน้ากว่าเดิม
- GUI ที่ดีกว่าเดิมซึ่งรวมทุกความสามารถไว้ด้วยกัน
- ผสาน beamforming แบบ differential ได้กับโมเดลโครงข่ายประสาทเทียม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีการกล่าวว่ากระบวนการปรับความเร็วเสียงให้เหมาะสมเพื่อให้ได้โมเดลที่เหมาะสมที่สุดของระบบทำงานคล้ายเทอร์โมมิเตอร์ที่ซับซ้อนมาก
เคยทำโปรเจ็กต์ใช้ไมโครโฟน 4 ตัวเพื่อระบุตำแหน่งค้างคาวและแยกชนิดพันธุ์
มีคำถามว่าทำไมถึงใช้ PDM แทน TDM I2S microphone
มีความเห็นว่าอยากนำไปใช้ทางการแพทย์โดยผสานกับอาร์เรย์ลำโพงอัลตราซาวนด์
มีการบอกว่าสามารถดูเดโม acoustic camera ที่น่าประทับใจได้บน YouTube
อยากให้มีฟีเจอร์เสียงเชิงทิศทางคุณภาพสูงในอุปกรณ์พกพา
กล่าวถึงระบบอะคูสติกทรงกลมที่ Boeing ใช้กับต้นแบบ 787
คิดว่าโปรเจ็กต์แยกเสียงตามตำแหน่งน่าจะเจ๋งมาก
แสดงความประหลาดใจกับ PCB รูปทรง "แขน" ที่ยาว
กล่าวถึงว่าเทคโนโลยีแบบนี้ถูกใช้กับโดรนมากขึ้นเรื่อย ๆ