Du hast Recht. Es gibt viele Methoden zur Echokompensation, aber keine ist genau trivial. Die allgemeinste und beliebteste Methode ist die Echokompensation über einen adaptiven Filter. In einem Satz besteht die Aufgabe des adaptiven Filters darin, das wiedergegebene Signal zu ändern, indem die vom Eingang kommende Informationsmenge minimiert wird.
Adaptive Filter
Ein adaptives (digitales) Filter ist ein Filter, das seine Koeffizienten ändert und schließlich zu einer optimalen Konfiguration konvergiert. Der Mechanismus für diese Anpassung arbeitet durch Vergleichen der Ausgabe des Filters mit einer gewünschten Ausgabe. Unten sehen Sie ein Diagramm eines generischen adaptiven Filters:
Wie man aus dem Diagramm sehen kann, wird das Signal wird gefiltert durch (konvolviert mit) → W n zur Ausgangssignal erzeugen , d [ n ] . Wir haben dann subtrahieren d [ n ] aus dem gewünschten Signal d [ n ] , die zur Erzeugung Fehlersignal e [ n ] . Beachten Sie, dass → w n ein Koeffizientenvektor ist, keine Zahl (daher schreiben wir nicht w [ n ]).x [ n ]w⃗ nd^[ n ]d^[ n ]d[ n ]e [ n ]w⃗ nw [ n ]). Da sich jede Iteration (jede Stichprobe) ändert, wird die aktuelle Sammlung dieser Koeffizienten mit . Sobald e [ n ] erhalten ist, verwenden wir es, um → w n durch einen Aktualisierungsalgorithmus nach Wahl zu aktualisieren (dazu später mehr). Wenn der Eingang und Ausgang eine lineare Beziehung erfüllen , die einen gut gestalteten Update - Algorithmus nicht im Laufe der Zeit ändern und gegeben, → w n schließlich zum optimalen Filter konvergieren und d [ n ] wird in enger Anlehnung an d [ n ] .ne [ n ]w⃗ nw⃗ nd^[ n ]d[ n ]
Echounterdrückung
Das Problem der Echokompensation kann in Form eines adaptiven Filterproblems dargestellt werden, bei dem versucht wird, eine bekannte ideale Ausgabe bei gegebener Eingabe zu erzeugen, indem das optimale Filter gefunden wird, das die Eingabe-Ausgabe-Beziehung erfüllt. Insbesondere wenn Sie sich Ihr Headset schnappen und "Hallo" sagen, wird es am anderen Ende des Netzwerks empfangen, durch die akustische Reaktion eines Raums (wenn es laut wiedergegeben wird) geändert und zum Zurückkehren in das Netzwerk eingespeist für dich als echo. Da das System jedoch weiß, wie das ursprüngliche "Hallo" geklungen hat und jetzt weiß, wie das nachhallende und verzögerte "Hallo" geklungen hat, können wir versuchen, zu erraten, wie diese Raumantwort einen adaptiven Filter verwendet. Dann können wir diese Schätzung verwenden, Falte alle eingehenden Signale mit dieser Impulsantwort (die uns die Schätzung des Echosignals geben würde) und subtrahiere sie von dem, was in das Mikrofon der von dir angerufenen Person eingeht. Das folgende Diagramm zeigt einen adaptiven Echokompensator.
x [ n ]d[ n ]w⃗ nx [ n ]y[ n ]d[ n ]e [ n ] = d[ n ] - y[ n ]
w⃗ n
x⃗ n= ( x [ n ] , x [ n - 1 ] , … , x [ n - N+ 1 ] )T
Nw⃗ nx
w⃗ n= ( w [ 0 ] , w [ 1 ] , … , x [ N- 1 ] )T
y[ n ]= x⃗ n= w⃗ n
y[ n ] = x⃗ Tnw⃗ n= x⃗ n⋅ w⃗ n
w⃗
w⃗ n + 1= w⃗ n+ μ x⃗ ne [ n ]x⃗ Tnx⃗ n= w⃗ n+ μ x⃗ nx⃗ Tnw⃗ n- d[ n ]x⃗ Tnx⃗ n
μ0 ≤ μ ≤ 2
Reale Anwendungen und Herausforderungen
Bei dieser Methode der Echokompensation können verschiedene Probleme auftreten. Zunächst ist es, wie bereits erwähnt, nicht immer richtig, dass die andere Person still ist, während sie Ihr „Hallo“ -Signal empfängt. Es kann gezeigt werden (liegt jedoch außerhalb des Rahmens dieser Antwort), dass es in einigen Fällen immer noch nützlich sein kann, die Impulsantwort zu schätzen, während am anderen Ende der Leitung eine erhebliche Menge an Eingang vorhanden ist, da Eingangssignal und Echo vorhanden sind als statistisch unabhängig angenommen; Daher ist das Minimieren des Fehlers immer noch eine gültige Prozedur. Im Allgemeinen wird ein ausgefeilteres System benötigt, um gute Zeitintervalle für die Echoschätzung zu erfassen.
Überlegen Sie sich andererseits, was passiert, wenn Sie versuchen, das Echo zu schätzen, wenn das empfangene Signal ungefähr lautlos ist (tatsächlich Rauschen). In Abwesenheit eines aussagekräftigen Eingangssignals divergiert der adaptive Algorithmus und erzeugt schnell bedeutungslose Ergebnisse, die schließlich in einem zufälligen Echo-Muster gipfeln. Dies bedeutet, dass wir auch die Spracherkennung berücksichtigen müssen . Moderne Echokompensatoren ähneln eher der Abbildung unten, aber die obige Beschreibung ist das Wesentliche.
Es gibt reichlich Literatur zu adaptiven Filtern und zur Echounterdrückung sowie einige Open-Source-Bibliotheken, auf die Sie zugreifen können.