Hallo! Folgendes Problem: Ich habe an zwei Endgeräten je ein Mikrofon und Lautsprecher. Die Endgeräte kommunizieren z.B. per VoIP miteinander. Ich möchte eine Voll Duplex Kommunikation erreichen. Nun habe ich das Problem, dass das Mikrofon die Töne aus dem Lautsprecher aufnimmt und dadurch ein Echo entsteht. Kennt jemand einen IC oder eine Schaltung, mit der ich das Echo rausfiltern kann? Meine Idee wäre die vom Mikrofon eingefangenen Signale mit denen zu vergleichen, die vom Lautsprecher ausgegeben wurden und dann zu subtrahieren. Allerdings müßte ich dafür eine Verzögerung vor dem Signal des Lautsprechers einfügen, damit aufgenommenes Signal und ausgegebenes "zeitgleich" sind. Ich habe noch keine Idee, wie ich eine solche Verzögerung ohne eine Signalverzerrung erreichen kann. Sie müßte z.B. durch einen Poti variabel sein. Hat jemand eine Idee? Danke!
Stichworte: - digitale Filter - adaptive Filter - AEC (Acoustic Echo Cancellation) - dazugehörig DTD (Double Talk Detection) Wenn du die Sprechgeräte mit VoIP nutzt, sind da ja schon Prozessoren drin. Die kannst du, bei genügend Reserven, zur Signalverarbeitung nutzen. Ansonsten seperater DSP. Es gibt fertige Platinen, die man zwischenklemmen kann, und eine Echo Cancellation realisieren, hab aber keine Ahnung, wie teuer die sind. Einen einzelnen Chip, den man einfach nur anschließen muss und dies realisiert, gibt es meines Wissens nach nicht.
Achso, dein Vorschlag zur analogen Lösung ist zum Scheitern verurteilt.
Weil ein Echopfad zu komplex ist, um den analog nachbilden zu können. Außerdem ändert sich von Raum zu Raum (bzw. extremerweise sogar von der Position einzelner Gegenstände, Personen in dem Raum) die Übertragungsfunktion. Das heißt, du müsstest die analgoe Nachbildung der Übertragungsfunktion automatisch einstellen können, und das wird nichts. Dein Ansatz an sich ist ja prinzipiell richtig, du kommst nur an der digitalen Lösung nicht vorbei, entweder mit gekauften fertigen Modulen, oder mit einer Selbstentwicklung (wobei die Komplexität wirklich nicht zu unterschätzen ist, ohne Vorkenntnisse in der DSV wird das nur schwer zu realisieren sein).
Was du suchst nennt sich "Echo Cancelling" und wird i.d.R als selektives Filter realisiert. Ein paar Infos findest du auf http://www.dafx-hsse.info , nur sind wir leider nicht mit dem Implementieren fertig geworden. In der Matlab Simulation hats allerdings schon geklappt. Das große Problem ist aber die hohe Anzahl der Koeffizenten des Filters, die benötigt werden
> ...und wird i.d.R als selektives Filter realisiert. Was ist dabei denn bitte selektiv? Es "selektiert" das Echo, oder wie ist das gemeint? Es ist schon eher das Stichwort "Adaptives Filter", das bei der Suche zum Erfolg führt. > Das große Problem ist aber die hohe Anzahl der Koeffizenten > des Filters, die benötigt werden Naja, bei 44,1 kHz kein Wunder. Für Voip wird da eher 8 kHz reichen, schlechtes Beispiel. Auch das Beispiel für die Impulsantwort eines Echos ist natürlich nur zur Übung geeignet. Eine realer Echopfad ist unendlich komplexer. Ich würde mich insgesamt nur GAAAAANZ grob an die gepostete Homepage halten. Eine vorherige definierte Trainigsphase ist natürlich unpraktikabel, ebenso die die sich später nicht ändernden Koeffizienten. Einmal kurz am Lautstärkeregler gedreht, schon klappt es nicht mehr. Die Homepage zeigt eine ganz nette Einstiegsübung auf, allerdings zumindest beim Punkt AEC ist dies für einen regulären Betrieb nicht ausreichend.
>Was ist dabei denn bitte selektiv? Ähm meinte adaptiv, mein Fehler >Für Voip wird da eher 8 kHz reichen, schlechtes Beispiel. Klar, aber auch hierbei gilt es eine große Anzahl an Koeffizienten zu handeln. >Eine realer Echopfad ist unendlich komplexer. Genau wie der Filterungsaufwand dieses Pfades ;)
>>Was ist dabei denn bitte selektiv? >Ähm meinte adaptiv, mein Fehler ;-) >>Für Voip wird da eher 8 kHz reichen, schlechtes Beispiel. >Klar, aber auch hierbei gilt es eine große Anzahl an Koeffizienten >zu handeln. Naja, wir reden hier über einen Faktor größer 5. Beim RLS Algorithmus macht das schon eine ganze Menge aus. >>Eine realer Echopfad ist unendlich komplexer. >Genau wie der Filterungsaufwand dieses Pfades ;) Eben, wollte dem Fragensteller die Illusion nehmen, wenn er das einfache "Echo" in der Simulation auslöschen kann, dies auch in der Realität funktioniert. Dies ist aber letztendlich auch nur eine Frage der Anzahl der Koeffizienten und einer eventuell notwendigen Verzögerung.
Hallo! Meint ihr ein CS6422 wäre für die Aufgabe geeignet? Datenblatt im Anhang.
Ich würde sagen, das Ding ist ideal. Da das Teil über das Controllerinterface in der Lautstärke geregelt wird, ist das weiter oben angemerkte 'Lautstärkereglerproblem' ebenfalls keines mehr, da der DSP immer weiß, wie laut der Empfangsweg eingestellt ist. Gruss Jadeclaw.
Theoretisch ist das richtig, aber der Empfangsweg hat (noch) eine automatische Lautstärkeregelung. Er normalisiert das aufgenommene. Aber das wäre das nächste Problem.
>Da das Teil über das Controllerinterface in der Lautstärke geregelt >wird, ist das weiter oben angemerkte 'Lautstärkereglerproblem' ebenfalls >keines mehr, da der DSP immer weiß, wie laut der Empfangsweg eingestellt >ist. Ist bedingt durch den Adaptionsalgorithmus doch sowieso kein Problem, oder sehe ich das falsch? Da braucht man doch kein extra Interface mit dem die Lautstärke geregelt wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.