-
Faz dizili mikrofon
- 192 kanallı faz dizili mikrofon; FPGA veri toplama ile GPU üzerinde beamforming/görselleştirme özellikleri sunuyor. Faz dizileri, geleneksel yönlü mikrofonlarla mümkün olmayan uygulamaları mümkün kılıyor; kayıt sonrasında yönlülüğü anında değiştirebilir veya aynı anda yüz binlerce noktaya odaklanabilirsiniz.
- Tüm tasarımlar açık kaynak olarak sunuluyor:
- Ana makine yazılımı
- FPGA gateware'i
- PCB yerleşimi ve şemalar, mekanik bileşenler
-
Donanım
- Bir faz dizili mikrofon yapmak için çok sayıda mikrofonun geniş aralıklarla dizilmesi gerekiyor. Doğrusal dizi durumunda, mikrofonlar arasındaki üstel aralık geniş bant sinyaller için optimaldir.
- Toplam maliyet yaklaşık $700.
Kollar
- Her kolun uzunluğu, PCB üretimi ve montajının sınırları tarafından belirleniyor. JLCPCB'de üretilmiş ve 4 katmanlı PCB için azami uzunluk 570 mm.
- Seçilen mikrofon, en ucuz dijital çıkışlı MEMS mikrofon; performans özelliklerinde büyük farklar yok.
- Veriyi çıkarmak için PDM kullanıyor ve DDR desteklediği için iki mikrofon tek bir hat üzerinde çoklanabiliyor.
- Her kolda 8 mikrofon bulunuyor, bunlar 4 çıkış hattını paylaşıyor; saat giriş hattında da çıkış tamponu yer alıyor.
- PCB verimi iyi değil; en yaygın sorun saat hattının 3V3'e veya toprağa kısa devre olması.
Hub
- FPGA, çok sayıda düşük gecikmeli IO'yu toplayabildiği ve yüksek hızlı arayüzlerle iletişim kurabildiği için veri toplamada kullanılıyor.
- Yeterli IO, düşük fiyat ve entegre iki Ethernet PHY sunduğu için Colorlight i5 kartı kullanılmış.
- Hub'da basit bir güç yönetim devresi ile kol kartları ve Ethernet konnektörleri bulunuyor.
Mekanik tasarım
- Kollar, M3 vidalarla hub'a bağlanıyor ve PCB montaj standoff/somunları kullanılarak monte ediliyor.
- İlk tasarımda kol PCB'lerinde yapısal PCB ile kenetlenecek yuvalar vardı; nihai tasarımda ise dış çerçeve MDF ile sarılmış ve kablo bağlarıyla sabitlenmiş.
- Duvara monte mikrofon dizisi yansımalara duyarlı olduğundan, yansımaları azaltmak için akustik köpük kullanılıyor.
-
Gateware
- Gateware'in temel hedefi, ham veriyi kayıpsız biçimde bilgisayara aktarmak.
- FPGA üzerinde desimasyon ve filtreleme yapmak veri aktarım hızını düşürür, ancak ham PDM verisini aktarmak da mümkündür.
PDM arayüzü
- PDM giriş modülü, 50MHz sistem saatini 16'ya bölerek 3.125MHz PDM saati üretiyor ve her saat kenarından sonra 96 giriş pinini latch ediyor.
- Veri hızı 600Mbps, başlıklar dahil edildiğinde ise 700Mbps.
Paketleme
- Paketleme, bir FIFO tamponu olarak çalışıyor; yalnızca kuyrukta yeterli veri olduğunda paket başlatılarak sabit boyutlu paketler garanti ediliyor.
- Her pakete 48 PDM çıkış bloğu dahil ediliyor ve aktarım hızı 715 Mbps.
UDP akışlayıcı
- LiteEth projesi sayesinde UDP ve IP kapsüllemenin karmaşıklığı soyutlanıyor; bu da bir FIFO'yu UDP akışına bağlamayı kolaylaştırıyor.
-
Yazılım
CIC filtresi
- Her mikrofon 3.125MHz'te 1 bitlik sinyal üretiyor; bunun daha makul bir örnekleme hızına ve bit derinliğine düşürülmesi gerekiyor.
- Örnekleme hızını 195kHz'e düşürmek için 4 aşamalı, 16x desimasyonlu CIC filtresi kullanılıyor.
Kalibrasyon
- Dizi kalibrasyonu için bir hoparlör white noise çalıyor ve dizinin önünde hareket ettiriliyor.
- Mikrofonlar arasındaki göreli gecikme, FFT tabanlı çapraz korelasyon kullanılarak hesaplanıyor.
- Sistemin en iyi modelini elde etmek için kaynak konumu ve mikrofon konumları optimize ediliyor.
Beamforming
- Beamforming, ham mikrofon girişlerini işleyerek yönlü tepki üretme yöntemi.
- Sinyal, frekans alanında gecikmeler uygulanarak işleniyor.
- 3D yakın alan beamformer ve 2D uzak alan beamformer uygulanmış.
Yakın alan 3D beamforming
- 5 cm'lik voksel ızgarası üzerinde çalışıyor ve RTX 4090'da 12Hz güncelleme hızına ulaşıyor.
- Görselleştirme için VisPy kullanılıyor.
Uzak alan 2D beamforming
- 512x512 piksellik ızgara kullanıyor ve 12Hz güncelleme hızına ulaşıyor.
Yönlü ses
- Zaman alanında geciktir-ve-topla beamformer uygulanarak yönlü ses kaydı mümkün hale getiriliyor.
Kayıt
- Mikrofon dizisinin verisi UDP paketleri olarak
tcpdump gibi araçlarla kaydedilebiliyor.
- Bu kayıt yaklaşımının dezavantajı, çıktı veri hızının çok yüksek olması.
-
Sonraki adımlar
- Bu proje özünde tamamlanmış durumda; ileride ek çalışma planlanmasa da çeşitli genişletme olanakları var.
- Daha gelişmiş beamforming algoritmaları kullanmak
- Tüm özellikleri birleştiren daha iyi bir GUI
- Türevlendirilebilir beamforming ile sinir ağı modellerini birleştirmek
1 yorum
Hacker News görüşleri
Ses hızını optimize ederek sistem için en iyi modeli elde etme sürecinin, son derece karmaşık bir termometre gibi çalıştığı belirtiliyor
4 mikrofon kullanarak yarasaların konumunu bulma ve türlerini tanımlama üzerine bir proje yapıldığı belirtiliyor
TDM I2S mikrofonlar yerine neden PDM kullanıldığı soruluyor
Ultrasonik hoparlör dizileriyle birleştirilerek tıbbi uygulamalarda kullanma isteği dile getiriliyor
YouTube'da akustik kameraların etkileyici demolarının görülebileceği belirtiliyor
Mobil cihazlara yüksek kaliteli yönlü ses özelliklerinin gelmesi isteniyor
Boeing'in 787 prototipinde kullandığı küresel akustik sistemden bahsediliyor
Konuma dayalı olarak sesleri ayıran bir projenin harika olacağı düşünülüyor
Uzun “kol” biçimindeki PCB'ye şaşırıldığı ifade ediliyor
Bu teknolojinin drone'larda giderek daha fazla kullanıldığı belirtiliyor