2013-07-18 5 views
12

Wir möchten eine App erstellen, die die aktive Geräuschunterdrückung mit dem Standard-iPhone-Kopfhörer implementiert. Das heißt, den externen Ton mit dem iPhone Kopfhörer Mic zu empfangen und eine Phasenverschiebung von 180 Grad vorzunehmen. Schließlich, um den invertierten Ton über den Standard-Kopfhörerlautsprecher abzuspielen, um den externen Ton zu löschen (aktive Geräuschunterdrückung).Aktive Geräuschunterdrückung durch Standard-iPhone-Kopfhörer

Ref: http://electronics.howstuffworks.com/gadgets/audio-music/noise-canceling-headphone.htm

Kann dies mit dem iPhone App möglich sein?

+0

Ich habe kürzlich auch darüber nachgedacht. Für abwesendes Hintergrundgeräusch (was die meisten Kopfhörer sowieso tun, wie der ATH-ANC23), denke ich, dass das völlig machbar sein sollte! –

Antwort

8

Wenn der Schall bei 343 m/s läuft und die Entfernung zwischen Mikrofon und Lautsprecher einen halben Meter beträgt, haben Sie etwa 1,5 Millisekunden Bearbeitungszeit. Nicht unmöglich, aber auch nicht einfach, vor allem, wenn Sie die Zeit berücksichtigen, die die verschiedenen Komponenten benötigen, um die Wiedergabe zu starten und die Aufnahme in Ihre App zu bringen. Ich denke, das ist auch der Grund, warum die meisten aktiven Noise Cancelling Kopfhörer spezielle Hardware benötigen.

Das sagte, ich denke, Sie sollten definitiv dafür gehen. Ich bin auch sehr daran interessiert; Ich nehme an, du müsstest eine Fourier-Transformation an der Eingabe machen und sie dann wie beschrieben 180 ° phasenverschoben, dann in die Zeitdomäne zurück transformieren und sie schließlich dem Benutzer wiedergeben?

+0

Warum spielt der Abstand zwischen Mikrofon und Lautsprecher eine Rolle? Wir reden über Umgebungsgeräusche, richtig? –

0

Das Problem, das ich sehe, ist, dass eine Komponente fehlt, um eine korrekte Rauschunterdrückung durchzuführen: Es sollte ein Mikrofon am Kopfhörerausgang vorhanden sein, um den kompletten Ausgang zu erfassen und die Schleife des Rauschunterdrückungssystems zu schließen.

Grüße

0

Sie können den Standard iPhone Kopfhörer verwenden, um ein Rauschunterdrückungs Projekt, aber nicht wahrscheinlich möglich mit iPhone App. Es ist eher mit dem Kerneltreiber möglich, aber nicht mit der Benutzeranwendung, da diese Art von Anwendungen als Echtzeitanwendung betrachtet wird, was bedeutet, dass Sie sie auf niedriger Ebene implementieren müssen. Wie @lericson sagte, haben Sie nur ein paar ms, um das Signal zu verarbeiten. Je kürzer der Abstand von Mikrofon und Ohrhörer ist, desto kürzer ist die Verarbeitungszeit, die Sie haben (und ein besseres Ergebnis für die Rauschunterdrückung erhalten Sie).

Ich habe ein ähnliches Projekt, das iPhone Kopfhörer als Eingang/Ausgang verwendet, weil es relativ billig ist. Ich implementierte die Rauschunterdrückung auf einer FPGA-Karte mit VHDL-Code (die FPGA-Schaltung ist schneller und die Verarbeitungszeit ist vorhersehbarer/messbarer). Sie müssen nicht nur eine Phasenverschiebung von 180 Grad vornehmen, sondern Sie müssen sich auch Gedanken über die Entfernung Ihres Mikrofons und Ihres Kopfhörers machen, die Zeit, die das Signal von Mikrofon zu Kopfhörer zurücklegt. Diese Variablen erzeugen auch eine Phasenverschiebung und Sie müssen sie definitiv in Ihre Berechnung einbeziehen.