So nehmen Sie Eingaben von mehreren Mikrofonen auf, damit keine Latenz zwischen den Mikrofonen aufgrund des Schreibens in den Speicher entsteht

Ich werde etwas Beamforming machen. Ich verstehe das Konzept und plane, alle Daten aufzuzeichnen und dann die Signale von mehreren Mikrofonen zu analysieren, um die Orte einiger Geräusche herauszufinden (es wird mehrere Orte pro Versuch geben). Ich weiß nicht, wie ich die Daten von mehreren Mikrofonen gleichzeitig aufzeichnen kann. Ich kann dazu einen Computer oder einen bestimmten Mikrocontroller verwenden. Ich plane die Verwendung von 3 bis 10 Mikrofonen.

Vielen Dank im Voraus.

Warum nicht eine Mehrkanal-Audiodatei generieren?

Antworten (3)

Das Problem, das Sie sich vorstellen, existiert nicht, es sei denn, Sie schaffen es. Wenn Sie einen PC mit einer Soundkarte mit Mehrkanaleingang verwenden, erhalten Sie Datenframes, in denen die Samples von jedem Kanal ausgerichtet sind. Wenn Sie einen Mikrocontroller verwenden, können Sie dasselbe selbst tun, vorausgesetzt, der Chip verfügt über genügend ADC-Kanäle und Sie können die Konvertierung auf allen gleichzeitig starten (oder nahe genug, da dies keine Rolle spielt). Abgesehen von der Reaktionsfähigkeit spielt es keine Rolle, in welcher Reihenfolge Sie die Daten kopieren oder wie lange die Verarbeitung dauert. es kommt nur darauf an, dass alle Proben mit demselben Index gleichzeitig abgetastet wurden.

K.Doe wünscht eine gleichzeitige Abtastung zum Zweck der Nachbearbeitung für die Richtungs-/Ortsbestimmung des Tonursprungs (wie die von vielen Militärs verwendeten "Boomerang"/"Scharfschützensuchgeräte") in der Nachbearbeitung. Viele MCUs und Soundkarten multiplexen tatsächlich Kanäle durch denselben ADC und verzerren das Eingangs-"Frame"-Timing, indem sie jede Zeile zu einem anderen Zeitpunkt abtasten. Um die besten Ergebnisse zu erzielen, sollte ein Gerät, das tatsächlich einen separaten ADC für jede abgetastete Leitung enthält, genauere Ergebnisse liefern.

Dazu habe ich meine Masterarbeit geschrieben. Wir haben ein FPGA verwendet, sodass die gesamte Abtastung parallel erfolgen konnte. Die Verarbeitung erfolgte in Echtzeit, wobei nur die Richtungsdaten tatsächlich irgendwo gemeldet wurden. Dadurch wurden viele Bedenken hinsichtlich der Speicherung und Zeitstempel beseitigt.

Hier ist ein Gerät, das bei einer Google-Suche aufgetaucht ist ... zeichnet 16 Live-Kanäle für Sie auf; kostet etwa 400 $.

Andernfalls, wenn Sie eher der „DIY-Typ“ sind, wird eine Suche nach Digikey mehrere MCUs mit über 20 ADC-Eingängen aufdecken, die mit bis zu 1 MHz oder so aufzeichnen. Ich habe einige von ihnen in Betracht gezogen, die weniger als 10 USD/Stück für eine Mehrkanal-Audio-Lautsprecher-Synchronisierung kosten. Delay + Recorder-Projekt, an dem ich arbeite.

Warum nicht die Verzögerung zwischen Abtastungen berücksichtigen, die von Mehrkanal-Multiplex-ADC genommen werden. Wenn die Verzögerung N*Ts beträgt, können Sie sie z. B. in einer Matrix neu anordnen. Sie speichern das 1. Sample auf dem 10. Index, dann das 2. auf dem 9. Index ... also das 10. Sample auf dem 1. Index. Wenn Sie dann eine Kreuzkorrelation mit FFT / DFT durchführen, sind sie alle ausgerichtet.
@MarkoBuršič Ich persönlich würde es vorziehen, ein Aufnahmegerät / einen Chip mit mehreren ADC-Schaltkreisen zu verwenden, um mit so wenig Muxing-Verzögerung wie möglich aufzunehmen. Macht die Phasenberechnungen viel einfacher; insb. wenn Sie die volle ADC-Abtastgeschwindigkeit von ~ 1 MHz verwenden können, um die Timing-Genauigkeit zu maximieren und somit zu profitieren. Richtungspräzision & fügt die Möglichkeit der Entfernungsbestimmung aus der Wellenfrontstruktur hinzu, wenn die Mikrofonkonstellation des OP ausreichend ist.
Zweifellos ist es deterministischer, aber bevor Sie alle Daten mit 1M-Sampling verarbeiten können, benötigen Sie eine schnelle RAM-Übertragung (wahrscheinlich DMA), einen großen RAM und eine enorme CPU-Leistung, um die gesamte Berechnung durchzuführen. Nun, wer weiß, ob OP am Anfang wirklich Top of the Top braucht, er muss zuerst die ganze Mathematik hinter diesem Phased Array implementieren.
Sehr richtig. Am Ende könnte jede Methode funktionieren; abhängig von den tatsächlichen Gebrauchsanforderungen, die wir noch nicht erhalten haben. Meine Absicht war es, eine Lösung mit Potenzial/Flexibilität anzubieten, um auf jeder erforderlichen Ebene aufzunehmen; Lassen Sie dann die Mathematik später als Nachbearbeitung "im Labor" ausführen, da OP bereits in ihrer ersten Frage nach einer laborbasierten Nachbearbeitung fragte: Wann sollten Strahlformungsalgorithmen verarbeitet werden? electronic.stackexchange.com/questions/217176/…