Nachdem ich mich intensiv mit adaptivem Beamforming beschäftigt hatte, scheute ich mich wirklich davor, selbst etwas dafür zu hacken, bis ich etwas Erfahrung hatte. (Hinweis: Professionelle Lösungen mit ca. 60 Kanälen kosten ca. 100.000 €. Bei vielen Kanälen wird die räumliche Auflösung wesentlich besser, aber Sie erhalten nur eine begrenzte Menge an Informationen über einen USB-Anschluss ...)
Für eine zuverlässige Strahlformung ist es wichtig, dass alle Mikrofone dieselbe Zeitbasis verwenden. Dies erreichen Sie am einfachsten mit einer externen USB-Soundkarte mit mehreren Eingangskanälen. Die sind aber nicht wirklich billig. Haben Sie sich angesehen, was bei ebay zu finden ist?
Eine Alternative besteht darin, die gemeinsame Zeitbasis zu opfern, indem mehrere USB-Soundkarten mit z. B. jeweils zwei Kanälen verwendet werden. Sie müssen jedoch Ihr Erfassungssystem kalibrieren. Das ist wirklich nicht so schwierig, wie es sich anhört:
Zum Kalibrieren richten Sie Ihr Array ein und erzeugen einen kurzen Ton (z. B. ein Knacken / Klatschen usw.) in einer Entfernung von Ihrem Array, die in der Größenordnung der Ausdehnung Ihres Arrays liegt. Sie nehmen dann diesen Ton auf und verwenden Matlab oder Ähnliches, um die Kreuzkorrelation zwischen dem Klatschen / Riss / etc. Zu berechnen. auf den verschiedenen Kanälen. Auf diese Weise erhalten Sie eine Liste der Zeitversätze, die Sie auf Ihre Kanäle anwenden müssen, um sie auszurichten, bevor Sie die Daten an Ihren Beamforming-Algorithmus weiterleiten.
Um das adaptive Beamforming zu erkunden, ist dies wahrscheinlich der richtige Weg, es sei denn, Sie können mit einer Mehrkanal-Soundkarte ein Schnäppchen machen.
Bearbeiten 1
Diese Änderung dient zur Beantwortung der in den Kommentaren gestellten Fragen.
Die Grundidee der Verzögerung und Summenstrahlformung besteht darin, Verzögerungen auf verschiedene Erfassungskanäle anzuwenden, so dass die Töne, die von einem Punkt im Raum stammen, ausgerichtet und "verstärkt" werden, wenn Signale von den verschiedenen Kanälen hinzugefügt werden. Geräusche, die aus anderen Regionen des Weltraums stammen, werden nicht ausgerichtet und daher nicht "verstärkt".
Der Punkt im Raum, an dem sich die Töne mit einer bestimmten Anzahl von Verzögerungen ausrichten, wird als Fokus des Mikrofonarrays (oder Brennpunkts) bezeichnet. In der Realität ist der Fokus jedoch kein idealer Punkt, sondern ein kleiner (ish) (abhängig vom Array) Raumbereich, für den die Klänge gut ausgerichtet sind. Die Größe dieser Region wird als Größe des Brennflecks bezeichnet.
Die Geometrie (Größe, Form usw.) hängt von den genauen Details des Arrays ab: Anzahl der Mikrofone, Mikrofonabstand, Frequenzgehalt der interessierenden Signale. Siehe zB diesen Artikel .
Weitere Informationen finden Sie in Texten zur Fokussierung von "Phased Arrays" oder "Linear Arrays" in Ultraschall. Beamforming kann beim Empfang verwendet werden (um Signale von einem bestimmten Punkt im Raum zu verstärken) oder beim Aussenden (um einen "lauten" Punkt in einem Raum zu erzeugen). Die Prinzipien sind identisch: Ersetzen Sie einfach "Mikrofon" durch "Lautsprecher" in Ihrem Denken.
Zum Kalibriervorgang: Sie haben Recht. Das beschriebene Verfahren ist zu einfach. Dies funktioniert nur dann gut, wenn Sie die Kalibrierungsklappe aus einer viel größeren Entfernung als der Region des Raums erstellen können, an der Sie interessiert sind.
Ist dies nicht möglich, müssen Sie die Position des Klatschens berücksichtigen. In diesem Fall besteht die einfachste Prozedur darin, die Verzögerungen durch Kreuzkorrelation wie beschrieben zu korrigieren, dann aber die Krümmung der Wellenfront wieder zum Signal hinzuzufügen, indem ein Satz von Verzögerungen mit "inverser Strahlformung" angewendet wird, der mit der Position des Ursprungs von berechnet wird klatschen. (Dh wenn Sie eine Tiefenvariable + t0 (oder + z0) in Ihrem "normalen" Beamforming-Algorithmus verwenden, müssen Sie -t0 (oder -z0) für den inversen Beamforming-Algorithmus verwenden.)
Worum geht es bei dieser Kalibrierung? Sie beseitigt alle Fehler, die dadurch entstehen, dass die verschiedenen Soundkarten ihre Aufzeichnung zu geringfügig unterschiedlichen Zeiten starten. Dies würde normalerweise die korrekte Ausrichtung der Signale auch bei korrekten Verzögerungen und damit den gewünschten Verstärkungseffekt verhindern.