-
Die vorliegende Erfindung bezieht sich auf eine Unterdrückung akustischer Echos und insbesondere auf Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen.
-
Auf Grund eines zunehmenden Interesses an Kommunikationsmedien wie z.B. dem Internet, elektronischen Präsentationen, Voice Mail und Audiokonferenz-Kommunikationssystemen erhöht sich die Nachfrage nach Audio- und Kommunikationstechnologien mit hoher Wiedergabetreue. Derzeit verwenden Einzelpersonen und Unternehmen diese Kommunikationsmedien, um Effizienz und Produktivität zu erhöhen und dabei Kosten und Komplexität zu verringern. Beispielsweise ermöglichen es Audiokonferenz-Kommunikationssysteme einer oder mehreren Einzelpersonen an einer ersten Örtlichkeit, durch Vollduplex-Kommunikationsleitungen nahezu in Echtzeit mit einer oder mehreren Einzelpersonen an anderen Örtlichkeiten zu sprechen, ohne Kopfhörer zu tragen oder tragbare Kommunikationsvorrichtungen zu verwenden. Üblicherweise umfassen Audiokonferenz-Kommunikationssysteme eine Anzahl von Mikrophonen und Lautsprechern an jeder Örtlichkeit, die seitens mehrerer Einzelpersonen dazu verwendet werden können, Audiosignale an andere Örtlichkeiten zu senden und von denselben zu empfangen.
-
Bei vielen Audiokonferenz-Kommunikationssystemen führen Audiosignale eine große Datenmenge und nutzen einen großen Frequenzbereich. Moderne Audiokonferenz-Kommunikationssysteme versuchen, eine Klartext-Übertragung von Audiosignalen zu liefern, die frei von wahrnehmbarer Verzerrung, Hintergrundrauschen und sonstigen unerwünschten Audioartefakten ist. Eine übliche Art eines unerwünschten Audioartefakts ist ein akustisches Echo. Akustische Echos können auftreten, wenn ein gesendetes Audiosignal auf Grund der Kopplung von Mikrophonen und Lautsprechern an einer Örtlichkeit ein Audiokonferenz-Kommunikationssystem schleifenartig durchläuft. 1 zeigt ein schematisches Diagramm eines beispielhaften, zwei Örtlichkeiten umfassenden Audiokonferenz-Kommunikationssystems. Bei 1 umfasst das Audiokonferenz-Kommunikationssystem 100 einen nahen Raum 102 und einen fernen Raum 104. Klänge wie z.B. Stimmen, die in dem nahen Raum 102 erzeugt werden, werden durch ein Mikrophon 106 erfasst, und Klänge, die in dem fernen Raum 104 erzeugt werden, werden durch ein Mikrophon 108 erfasst. Die Mikrophone 106 und 108 sind Wandler, die die Klänge in kontinuierliche Analogsignale umwandeln, die durch x(t) bzw. y(t) dargestellt sind, wobei t Zeit ist.
-
Das Mikrophon
106 kann viele verschiedene Klänge, die in dem nahen Raum
102 erzeugt werden, erfassen, einschließlich Klängen, die durch den Lautsprecher
114 ausgegeben werden. Ein durch das Mikrophon
106 erzeugtes Analogsignal wird durch
dargestellt, wobei
- s(t)
- ein Analogsignal ist, das in dem nahen Raum 102 erzeugte Klänge darstellt,
- v(t)
- ein Analogsignal ist, das Rauschen darstellt, oder Störsignale, die durch Störungen in dem Mikrophon oder Kommunikationskanal 110 erzeugt werden, das beispielsweise einen aus dem Lautsprecher 116 ausgegebenen lästigen Summton bewirken kann, und
- f(x(t))
- ein Analogsignal ist, das ein akustisches Echo darstellt.
-
Das akustische Echo f(x(t)) ist sowohl auf eine akustische Ausbreitungsverzögerung in dem nahen Raum 102 als auch eine Umlaufübertragungsverzögerung des Analogsignals x(t) über die Kommunikationskanäle 110 und 112 zurückzuführen. Klänge, die durch das Analogsignal y(t) erzeugt werden, werden aus dem Lautsprecher 116 in dem fernen Raum 104 ausgegeben. Je nach der Verstärkung bzw. dem Gewinn der Amplitude des Signals y(t) und dem Betrag des akustischen Echos f(x(t)) kann eine Person, die in dem fernen Raum 104 in das Mikrophon 108 spricht, auch einen lästigen hohen Heulton hören, der infolge des durch das akustische Echo f(x(t)) erzeugten Klanges aus dem Lautsprecher 116 austritt.
-
Entwerfer und Hersteller von Audiokonferenz-Kommunikationssystemen versuchten bereits, akustische Echos auf verschiedene Weise zu kompensieren. Eine Kompensationstechnik verwendet ein Filtersystem, das das akustische Echo verringert. In der Regel verwenden Filtersysteme adaptive Filter, die sich an sich verändernde Bedingungen an einer Audiosignale empfangenden Örtlichkeit anpassen. Jedoch sind eigenständige adaptive Filter entweder nicht in der Lage, den stark variierenden akustischen Pfad zwischen Lautsprecher und Mikrophon Genüge zu leisten, oder sie passen sich oft nur langsam an denselben an. Folglich können gesendete Signale, die Gespräche codieren, durch zahlreiche, kurze Stillephasen unterbrochen werden. Entwerfer, Hersteller und Benutzer von Audiokonferenz-Kommunikationssystemen haben ein Erfordernis an Akustisches-Echo-Verfahren und -Systemen erkannt, die ein akustisches Echo zuverlässig aus Audiosignalen entfernen können und die sich rasch an die sich verändernden Bedingungen an beiden Signale empfangenden Örtlichkeiten anpassen können.
-
Hinsichtlich der Unterdrückung akustischer Echos wird z.B. auf die
GB 2 389 286 A , die
CA 2 291 428 A1 , die
EP 1 424 846 A2 , die
WO 2004 / 049584 A1 , die
US 2003 / 0 219 113 A1 und die Veröffentlichung von
Andreas Mader, Henning Puder, Gerhard Uwe Schmidt: „Step-size control for acoustic echo cancellation filter - an overview"; In: Signal Processing, Volume 80, Issue 9, Sept. 2000, Seiten 1697 bis 1719 verwiesen.
-
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren zu schaffen, das akustische Echos bei Audiosignalen im Einklang mit sich verändernden Bedingungen an einer ersten und einer zweiten Örtlichkeit, die in einem Kommunikationssystem miteinander verbunden sind, reduziert.
-
Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 gelöst.
-
Weiterbildungen sind in den Unteransprüchen angegeben.
-
Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf ein Verfahren zum Bestimmen eines Ungefähr-Impulsantwort-Vektors zum Unterdrücken eines akustischen Echos, das aus einem Audiosignal resultiert, das von der ersten Örtlichkeit an die zweite Örtlichkeit gesendet wird. Dieses Verfahren umfasst ein Bilden einer Vertrauensregion innerhalb eines Suchraums auf der Basis eines Berechnens eines die Vertrauensregion definierenden Rekursivspezifikationsvektors. Das Verfahren umfasst ferner ein Berechnen eines Rekursivschattenimpulsantwortvektors, der im Wesentlichen in der Vertrauensregion liegt, und ein Berechnen des Ungefähr-Impulsantwort-Vektors auf der Basis des Rekursivschattenimpulsantwortvektors und des Rekursivspezifikationsvektors.
- 1 zeigt ein schematisches Diagramm eines exemplarischen, zwei Örtlichkeiten umfassenden Audiokonferenz-Kommunikationssystems.
- 2A-2C veranschaulichen eine Umwandlung eines Analogsignals in ein Digitalsignal.
- 3 ist eine Auftragung einer Impulsanregung eines Lautsprechers und eine Auftragung einer Gesamtraum-Impulsantwort, die sich ansprechend auf die Impulserregung an dem Ausgang des Mikrophons ergibt.
- 4A-4D veranschaulichen ein Beispiel eines Bestimmens eines Digitalsignals, das aus einem Mikrophon ausgegeben wird, indem ein eingangsseitiges Digitalsignal mit der Mikrophonimpulsantwort gefaltet wird.
- 5 veranschaulicht ein Falten eines Digitalsignals mit einer aus fünf Komponenten bestehenden Impulsantwort, um ein gefaltetes Digitalsignal zu erhalten.
- 6 zeigt ein schematisches Diagramm eines exemplarischen, zwei Örtlichkeiten umfassenden Audiokonferenz-Kommunikationssystems, das ein adaptives Filter umfasst, um den Pegel des in dem fernen Raum vorliegenden akustischen Echos in dem nahen Raum zu verringern.
- 7 veranschaulicht ein Falten eines Digitalsignals mit einer Impulsantwort in einem Frequenzbereich, um ein gefaltetes Zeitbereichs-Digitalsignal zu erhalten.
- 8 ist eine exemplarische Auftragung von Entscheidungsperioden und Entscheidungsepochen, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 9 veranschaulicht ein zwei Örtlichkeiten umfassendes Audiokonferenz-Kommunikationssystem, das ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 10A-10B zeigen ein Steuerungsablaufdiagramm, das ein Ausführungsbeispiel der vorliegenden Erfindung zum Verringern akustischer Echos bei Audiosignalen, die von einer ersten Örtlichkeit an eine zweite Örtlichkeit gesendet werden, darstellt.
- 10C-10D zeigen zwei Auftragungen der Verstärkungsenergie gegenüber der Zeit für die vier Arten von Steuerzuständen, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellen.
- 11A-11C ist ein Steuerungsablaufdiagramm für eine Routine „Steuerzustand bestimmen“, die bei Schritt 1008 des in 10A gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 12 ist ein Steuerungsablaufdiagramm für eine Routine „Restechounterdrückung“, die bei Schritt 1009 des in 10A gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 13A ist ein Steuerungsablaufdiagramm für eine Routine „
bestimmen“, die bei Schritt 1018 des in 10B gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 13B liefert eine zweidimensionale Darstellung einer hyperelliptischen Region, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 14 ist ein Steuerungsablaufdiagramm für eine Routine „
bestimmen“, die bei Schritt 1304 des in 13 gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 15 ist ein Steuerungsablaufdiagramm für eine Routine „µm bestimmen“, die bei Schritt 1306 des in 13 gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
- 16 ist ein Steuerungsablaufdiagramm für eine Routine „γm bestimmen“, die bei Schritt 1307 des in 13 gezeigten Steuerungsablaufdiagramms aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Verschiedene Ausführungsbeispiele der vorliegenden Erfindung sind auf Verfahren und Systeme gerichtet, die akustische Echos bei Audiosignalen im Einklang mit sich verändernden Bedingungen an einer ersten und einer zweiten Örtlichkeit, die in einem Kommunikationssystem miteinander verbunden sind, reduzieren. Die Begriffe „erste Örtlichkeit“ und „zweite Örtlichkeit“ sind breit gefasste, allgemeine Begriffe, die den verschiedenen Örtlichkeiten des nahen Raums bzw. des fernen Raums zugeordnet sind, die dazu verwendet werden, nachstehend verschiedene Verfahrensausführungsbeispiele der vorliegenden Erfindung zu beschreiben. Das Kommunikationssystem kann das Internet, elektronische Präsentationen, Voice Mail, Audiokonferenz-Kommunikationssysteme oder eine sonstige Art von Kommunikationssystem sein, das Signale zwischen einer ersten Örtlichkeit und einer zweiten Örtlichkeit sendet. Bei verschiedenen Ausführungsbeispielen der vorliegenden Erfindung werden ein erstes Digitalsignal und ein zweites Digitalsignal als Eingang an der ersten Örtlichkeit empfangen. Das erste Digitalsignal codiert Klänge, die an einer ersten Örtlichkeit erzeugt werden. Das zweite Digitalsignal codiert ein akustisches Echo und Klänge, die an der zweiten Örtlichkeit erzeugt werden. Die Verfahren berechnen einen Steuerzustand, der von dem Zustand der aktuellen Signalübertragung abhängt. Der Steuerzustand stellt eines der folgenden dar: (1) von lediglich der ersten Örtlichkeit übertragener Klang; (2) von lediglich der zweiten Örtlichkeit übertragener Klang; (3) gleichzeitig zwischen der ersten und der zweiten Örtlichkeit übertragene Klänge; und (4) kein zwischen der ersten und der zweiten Örtlichkeit übertragener Klang. Auf der Basis des Steuerzustands berechnen die Verfahren anschließend ein ungefähres akustisches Echo. Die Verfahren erzeugen an der ersten Örtlichkeit ein ausgangsseitiges Digitalsignal, indem sie zunächst das berechnete ungefähre akustische Echo von dem zweiten Digitalsignal subtrahieren, anschließend das zweite Digitalsignal bezüglich eines Gewinns auf der Basis des Steuerzustands einstellen. Schließlich wird das ausgangsseitige Digitalsignal an die erste Örtlichkeit gesendet.
-
Um das Verständnis von Beschreibungen verschiedener Ausführungsbeispiele der vorliegenden Erfindung zu fördern, wird in einem ersten Teilabschnitt eine Übersicht über Digitalsignale, Impulsantworten und Faltung geliefert. Eine Übersicht über eine Unterdrückung akustischer Echos wird in einem zweiten Teilabschnitt geliefert. Eine Übersicht über diskrete Fourier-Transformation wird in einem dritten Teilabschnitt geliefert. In einem vierten Teilabschnitt werden Ausführungsbeispiele der vorliegenden Erfindung geliefert.
-
Eine Übersicht über Digitalsignale, Impulsantworten und Faltung
-
Durch ein Mikrophon empfangene Klänge werden in ein Analogsignal transformiert, das eine zeitabhängige, kontinuierlich variierende Spannung aufweist. Um ein Analogsignal unter Verwendung eines digitalen Computers zu verarbeiten, wird das Analogsignal zuerst unter minimaler Änderung der in dem Analogsignal enthaltenen wesentlichen Informationen in ein Digitalsignal umgewandelt. Digitale Signale können elektronisch, magnetisch oder optisch gespeichert werden und können unter Verwendung logischer Operationen, die in Computerprogrammen codiert sind, verarbeitet werden.
-
2A-2C veranschaulichen eine Umwandlung eines Analogsignals in ein Digitalsignal. In den 2A-2B stellen horizontale Achsen, z.B. die horizontale Achse 202, die Zeit dar, und vertikale Achsen, z.B. die vertikale Achse 204, stellen Analogsignalamplituden in Volt dar. 2A ist eine Auftragung eines zeitabhängigen, kontinuierlich variierenden Analogsignals x(t) 206. Das Analogsignal x(t) 206 wird zuerst abgetastet, indem die Amplitude des Analogsignals x(t) zu diskreten Abtastzeiten gemessen wird. Um einen Verlust von in dem Analogsignal enthaltenen wesentlichen Informationen zu verhindern, wird die Dauer zwischen Abtastzeiten allgemein ausreichend kurz gewählt, so dass das Analogsignal zwischen aufeinander folgenden Abtastzeiten wenig variiert. 2B ist eine Auftragung eines abgetasteten Signals 208, das durch Abtasten des Analogsignals 206 in 2A erhalten wird. Die Abtastzeiten lauten auf Zehntelsekunden, und das abgetastete Signal 208 wird als Schrittfunktion angenähert, indem eine Konstantsignalamplitude zwischen Abtastzeiten angenommen wird. Beispielsweise stellt eine Konstantamplitudenregion 210 einen konstanten Wert von -1,9 Volt zwischen Abtastzeiten 0,2 und 0,3 Sekunden dar.
-
Zum Zweck einer effizienten und zweckmäßigen Digitalsignalverarbeitung ist es wünschenswert, dass sowohl der Zeitals auch der Betragswert Ganzzahlen sind. Deshalb wird ein ganzzahlencodiertes Digitalsignal erzeugt, indem der Wert jeder Konstantamplitudenregion mit einer ausgewählten Konstante multipliziert wird und indem die Abtastzeiten mit einer ausgewählten Konstante multipliziert werden, um Ganzzahlwerte zu erzeugen, die die Amplitude und Abtastzeiten jedes Schrittes in der Schrittfunktion darstellen. Eine ganzzahlwertige Abtastzeit wird als „Zeitabtastwert“ bezeichnet, und eine ganzzahlwertige Amplitude wird als „digitale Amplitude“ bezeichnet. Das resultierende Digitalsignal kann funktionell durch x[n] dargestellt werden, wobei n, eine unabhängige Variable, einen Zeitabtastwertbereich darstellt. 2C ist eine Auftragung eines Digitalsignals, das aus dem abgetasteten Signal 208 in 2B erhalten wurde. Bei 2C ist die horizontale Achse 212 ein Zeitabtastbereich, die vertikale Achse 214 ist eine Digitalsignalachse. Jeder Punkt in dem Graphen stellt einen quantisierten Wert dar, der die skalierte Amplitude des Digitalsignals zu einer skalierten Abtastzeit darstellt. Beispielsweise stellt Punkt x[2] 216 mit den Koordinaten (2,-19) Schritt 210 in 2B dar.
-
Ein Digitalsignal x[n] kann man sich allgemein als eine Serie von Impulsen vorstellen, wobei jeder Impuls einer eindeutigen Komponente entspricht. Die Bezeichnung x[n], wobei n einen bestimmten Zeitabtastwert darstellt, kann auch dazu verwendet werden, einen Einzelimpuls eines Digitalsignals, der als „Komponente“ eines Signals bezeichnet wird, darzustellen. Jede Komponente ist ein Signal, das alle Nullabtastwerte mit Ausnahme eines einzigen Werts, der die Amplitude bei einem einzigen Zeitabtastwert darstellt, umfasst, und wird mathematisch durch
dargestellt, wobei
d ein Ganzzahlskalenfaktor ist, der die Amplitude bzw. Stärke des Impulses darstellt,
p ein Zeitabtastwert ist und
δ die wie folgt definierte Deltafunktion ist:
-
Beispielsweise ist in 2C die Komponente x[0] 218 gleich 10δ[p], und die Komponente x[2] 216 ist gleich -19δ[2-p]. Mit anderen Worten stellt p in der Deltafunktion δ[n- p] eine Zeitabtastwertverschiebung dar, und n - p stellt einen Zeitabtastwert relativ bei dem Zeitabtastwert n dar.
-
Eine Digitalimpulsantwort, h[n], ist ein Digitalsignal, das aus einem Mikrophon ausgegeben wird, wenn die Eingabe in das Mikrophon ein Einheitsimpuls δ[n] ist, wobei p „0“ ist und d „1“ ist. Die Impulsantwort eines Mikrophons kann ermittelt werden, indem ein Klangimpuls einer sehr kurzen Dauer an das Mikrophon angelegt wird und das durch das Mikrophon ausgegebene Signal gemessen wird. Die Impulsantwort kann auch wie folgt durch einen Vektor dargestellt werden:
wobei h
n[·] eine Impulsantwortkomponente ist und
L die Anzahl von Komponenten ist, die zusammen die Impulsantwort bilden.
-
3 zeigt eine Auftragung eines Impulses x[n] und eine Auftragung einer ansprechend auf den Impuls x[n] erzeugten Gesamtraum-Impulsantwort h[n]. Die Impulsantwort h[n] umfasst den Lautsprecher, den Raum und das Mikrophon. Bei
3 stellt die Impulsauftragung
302 einen in ein hypothetisches Mikrophon
304 eingegebenen Impuls x[n] dar. Der Impuls x[n]
302 umfasst alle Nullen mit Ausnahme eines einzigen nicht Null betragenden Punktes
306 bei n gleich 0 und wird durch dδ[n-p] dargestellt, wie oben beschrieben wurde. In diesem Fall ist d gleich „1“, und p ist gleich „0“, so dass der Impuls als δ[n] dargestellt werden kann. Ansprechend auf den Impuls
302 gibt das Mikrophon
304 eine Impulsantwort h[n] aus, die durch eine Impulsantwortauftragung
308 dargestellt wird. Die Impulsantwort
308 umfasst alle Nullen, mit Ausnahme der drei nicht Null betragenden Digitalsignale, die durch Punkte
310-
312 dargestellt sind. Eine tatsächliche Digitalimpulsantwort auf einen Impuls umfasst üblicherweise eine größere Anzahl von nicht Null betragenden Komponenten, als in dem Impuls enthalten sind, wie in
3 gezeigt ist. Beispielsweise umfasst die Impulsantwort
308 3 nicht Null betragende Komponenten, während der Impuls
302 eine einzige nicht Null betragende Komponente umfasst. Die Impulsantwort
308 kann durch den 3-Komponenten-Vektor dargestellt werden:
-
Üblicherweise wird der zum Bestimmen einer Impulsantwort verwendete Impuls aus einem Lautsprecher in einen Raum hinein ausgegeben und durch ein Mikrophon erfasst. Der Lautsprecher, der Raum und das Mikrophon werden als „System“ bezeichnet, und eine zugeordnete Impulsantwort kann man sich als Systemimpulsantwort vorstellen. Ein von dem System übertragenes Digitalsignal wird ermittelt, indem ein durch das System erzeugtes Digitalsignal x[n] mit der Impulsantwort h[n] des Systems gefaltet wird. Das gefaltete Digitalsignal wird durch xc[n] dargestellt. 4A-4D liefern ein graphisches Beispiel eines Faltens eines Dreikomponenten-Digitalsignals x[n], das durch ein hypothetisches System mit einer Impulsantwort h[n] erzeugt wird, um ein aus dem System ausgangsseitiges Digitalsignal xc[n] zu erzeugen. 4A ist eine Auftragung einer beispielhaften Zweikomponenten-Impulsantwort h[n] 402, die durch das hypothetische System erzeugt wird. Man nimmt an, dass die Impulsantwort h[n] mit der Zeit invariant ist.
-
4B ist eine Auftragung einer ersten Komponente des Digitalsignals x[n], das bei einem Zeitabtastwert „0“ in das System eingegeben wird. Die erste Komponente wird durch einen skalierten Impuls 2δ[0] 404 dargestellt. Ansprechend auf den Impuls 2δ[n] 404 gibt das System bei dem Zeitabtastwert „0“ eine Impulsantwort h[n] aus, die eine erste Komponente 406 aufweist, und gibt bei einem späteren Zeitabtastwert „1“ eine zweite Komponente 408 aus. Die Impulsantwort auf den Impuls 2δ[n] 404 ist im Wesentlichen die Impulsantwort in 4A, wobei die Komponenten mit dem Impulsskalenfaktor „2“ multipliziert werden.
-
4C ist eine Auftragung einer zweiten Komponente des Digitalsignals x[n], das bei dem späteren Zeitabtastwert „1“ in das System eingegeben wird. Die zweite Komponente wird durch einen Impuls δ[n-1] 410 dargestellt. Ansprechend auf den Impuls δ[n-1] 410 gibt das System bei dem Zeitabtastwert „1“ eine Impulsantwort aus, die eine dritte Komponente 412 aufweist, und gibt bei einem späteren Zeitabtastwert „2“ eine vierte Komponente 414 aus. Die Impulsantwort auf den Impuls δ[n-1] 410 ist im Wesentlichen die Impulsantwort in 4A, wobei die Komponentenzeitabtastwerte um einen Faktor „1“ verschoben sind. Weil die zweite und die dritte Komponente 408 und 412 bei dem gleichen Zeitabtastwert „1“ auftreten, werden die Amplituden der Komponenten 408 und 412 summiert, um eine fünfte Komponente 416 zu erhalten, die die Ausgabe bei dem Zeitabtastwert „1“ ist.
-
4D ist eine Auftragung einer dritten Komponente des Digitalsignals x[n], das bei dem Zeitabtastwert in „2“ in das System eingegeben wird. Die zweite Komponente wird durch einen Impuls -2δ[n-2] 418 dargestellt. Ansprechend auf den Impuls -2δ[n-2] gibt das System bei dem Zeitabtastwert „2“ eine Impulsantwort aus, die eine sechste Komponente 420 aufweist, und gibt bei einem späteren Zeitabtastwert „3“ eine siebte Komponente 422 aus. Die Impulsantwort auf den Impuls -2δ[n-2] 418 ist im Wesentlichen die Impulsantwort in 4A, wobei die Komponenten mit dem Skalenfaktor „-2“ multipliziert werden und die Komponentenzeitabtastwerte um einen Faktor „2“ verschoben werden. Da die fünfte und die sechste Komponente 414 und 420 bei demselben Zeitabtastwert „2“ auftreten, werden die Amplituden der Komponente 414 und 420 summiert, um eine achte Komponente 424 zu liefern, die die Ausgabe bei dem Zeitabtastwert „2“ ist.
-
Man beachte, dass ein Falten des eingangsseitigen Dreikomponenten-Digitalsignals x[n] mit der Zweikomponenten-Impulsantwort h[n] das Vierkomponenten-Digitalsignal xc[n] ausgibt. Allgemein liefert ein Falten eines eingangsseitigen N-Komponente-Digitalsignals x[n] mit einer L-Komponenten-Impulsantwort h[n] ein N+L-1-Komponente-Ausgangssignal xc[n].
-
Komponenten des gefalteten Digitalsignals x
c[n]
426, in
4D, können auch dadurch erhalten werden, dass das Skalarprodukt einer Zweikomponenten-Vektor-Darstellung der Impulsantwort und der Zweikomponenten-Vektoren, die jeder Komponente des Digitalsignals x[n] entsprechen, die durch Folgendes gegeben sind:
und
berechnet wird. Die Reihenfolge der Komponenten in den Spaltenvektoren
sind in Bezug aufeinander in der zeitlichen Reihenfolge entgegengesetzt. Beispielsweise erscheint bei dem Spaltenvektor
die erste Komponente h[0] zeitlich früher als die zweite Komponente h[1], während bei dem Spaltenvektor
die erste Komponente x[n] zeitlich später auftritt als die zweite Komponente x[n-1]. Man beachte, dass Komponenten des Vektors
die mit Negativwerten versehenen Zeitabtastwerten entsprechen, der Wert „0“ zugewiesen ist. Beispielsweise wird die erste Komponente
406 in
4D durch
berechnet, wobei der Komponente x[-1] der Wert „0“ zugewiesen ist. Die zweite, die dritte und die vierte Komponente
416,
424 und
422 werden durch
bzw.
berechnet.
-
Allgemein wird eine Komponente eines gefalteten Digitalsignals x
c[n] mathematisch durch
wobei „*“ ein Symbol ist, das eine Faltung darstellt, und durch
ermittelt. Um eine gefaltete Signalkomponente x
c[n] zu berechnen, werden die zuvor erhalten L Digitalsignalkomponenten des Digitalsignals x[n] verwendet, und den Komponenten des Vektors
die mit einem Negativwert versehenen Zeitabtastwerten entsprechen, wird der Wert „0“ zugewiesen.
-
5 veranschaulicht ein Falten eines in der Auftragung
502 gezeigten Digitalsignals mit einer Fünfkomponenten-Impulsantwort, um ein in der Auftragung
504 gezeigtes gefaltetes Digitalsignal zu erhalten. In den Auftragungen
502 und
504 sind horizontale Achsen wie z.B. die horizontale Achse
506 Zeitabtastwertachsen, und vertikale Achsen wie z.B. die vertikale Achse
508 sind die Digitalzahlachsen. Der Abtastwert
510 des gefalteten Digitalsignals in der Auftragung
504 wird wie in
5 gezeigt erhalten und wird mathematisch durch
dargestellt, wobei die Hochstellung T die Matrixtranspositionsoperation identifiziert.
-
Bei den oben beschriebenen Faltungsbeispielen nimmt man an, dass die Impulsantwort bei jedem Zeitabtastwert in dem Zeitbereich konstant bleibt. In der Praxis hängt die Impulsantwort eines Systems jedoch oft von den Bedingungen des Raumes ab. Mit anderen Worten kann sich die Impulsantwort des Systems über die Zeit hinweg mit den Bedingungen in dem Raum ändern. Beispielsweise unterscheidet sich eine Impulsantwort eines Systems, bei dem kein Klang in dem Raum erzeugt wird, von einer Impulsantwort desselben Systems zu einem späteren Zeitpunkt, wenn in dem Raum Klänge erzeugt werden.
-
Eine Übersicht über eine Unterdrückung akustischer Echos
-
6 zeigt ein schematisches Diagramm des in
1 gezeigten exemplarischen, zwei Örtlichkeiten umfassenden Audiokonferenz-Kommunikationssystems, das ein adaptives Filter
602 umfasst, um den Pegel eines in dem fernen Raum
104 vorliegenden akustischen Echos in dem nahen Raum
102 zu reduzieren. In
6 wird das Digitalsignal x[n] in dem Kommunikationskanal
112 von dem fernen Raum
104 an den Lautsprecher
114 in dem nahen Raum
102 übertragen. Wenn das Digitalsignal x[n] den Lautsprecher
114 erreicht, kann das Digitalsignal x[n] wieder zurück in ein Analogsignal x(t) umgewandelt werden, und aus dem Lautsprecher
114 wird Klang ausgegeben. Das Mikrophon
106 erfasst den aus dem Lautsprecher
114 ausgegebenen Klang und jegliche in dem nahen Raum
102 erzeugte Klänge. Das Mikrophon gibt ein Digitalsignal in dem Kommunikationskanal
110 an den fernen Raum
104 aus, das mathematisch durch
dargestellt ist, wobei
x
c[n]=x[n]*h[n] ein gefaltetes Digitalsignal ist, das ein akustisches Echo darstellt und erzeugt wird, indem das Digitalsignal x[n] mit der Impulsantwort h[n] des Mikrophons
106 gefaltet wird,
s[n] ein Digitalsignal ist, das in dem nahen Raum
102 erzeugte Klänge darstellt, und
v[n] ein Digitalsignal ist, das jegliches Rauschen, das durch elektrische Störungen sowohl in dem Mikrophon
106 als auch in dem Kommunikationskanal
110 erzeugt wird, darstellt.
-
In der Praxis ist die Impulsantwort
h[n] des Mikrophons
106 nicht mit Gewissheit bekannt. Um das Ausmaß des in dem Digitalsignal
y[n] vorhandenen akustischen Echos
xc[n] zu verringern, wird ein ungefähres akustisches Echo von dem Digitalsignal
y[n] subtrahiert. Das ungefähre akustische Echo wird erzeugt, indem auch das Digitalsignal
x[n] an ein adaptives Filter
602 gesendet wird, das eine ungefähre Impulsantwort ĥ[n] erzeugt. Das adaptive Filter
602 faltet die ungefähre Impulsantwort ĥ[n] mit dem Digitalsignal
x[n], um das ungefähre akustische Echo x[n]*ĥ[n] zu erzeugen, das an dem Summierungsübergang
604 von dem Digitalsignal
y[n] subtrahiert wird. Das Subtrahieren des ungefähren akustischen Echos x[n]*ĥ[n] an dem Summierungsübergang
604 liefert ein ausgangsseitiges Digitalsignal, das mathematisch durch
dargestellt ist, wobei
x[n]*h[n]-x[n]*ĥ[n] als das „Restecho“ bezeichnet wird.
-
Das Restecho ist ein Anteil des Digitalsignals y[n], das an den fernen Raum 104 gesendet wird. Verfahren und Systeme zur Unterdrückung akustischer Echos sind darauf gerichtet, ungefähre akustische Echos zu erzeugen, die die Restechos für Personen, die gleichzeitig Klänge erzeugen, die in das Mikrophon 108 eingegeben werden, und die dem Lautsprecher 116 in dem fernen Raum 104 zuhören, unhörbar machen. Das adaptive Filter 602 wird dazu verwendet, das von dem nahen Raum 102 an den fernen Raum 104 übertragene akustische Echo zu verringern. Jedoch wird in der Praxis ein zweites adaptives Filter benötigt, um ein von dem fernen Raum 104 an den nahen Raum 102 übertragenes akustisches Echo zu reduzieren.
-
Eine Übersicht über diskrete Fourier-Transformationen
-
Ein Falten eines Digitalsignals
x[n] mit einer Impulsantwort
h[n] ist oft ein rechentechnisch zeitaufwändiger Schritt bei der Bestimmung eines ausgangsseitigen Digitalsignals r̂[n]. Jedoch kann die für eine Faltung aufgewendete Rechenzeit oft verringert werden, indem unter Verwendung einer diskreten Fourier-Transformation („DFT“) zunächst die Digitalsignale
x[n] und
h[n] separat auf Diskret-Frequenzbereichs-Digitalsignale
X[k] bzw.
H[k] abgebildet werden. Die DFT ist durch Folgendes gegeben:
wobei k ein Inverszeitabtastwertindex mit den Einheiten der Inverszeit oder -frequenz ist, und
-
Als Nächstes werden die Digitalsignale
X[k] und
H[k] in dem Frequenzbereich multipliziert, und eine inverse diskrete Fourier-Transformation („IDFT“) wird auf das Produkt X[k]H[k] angewendet, um das gefaltete Digitalsignal x[n]*h[n] zu erhalten. Die auf das Produkt X[k]H[k] angewendete IDFT lautet:
wobei N die Anzahl von Digitalsignalen in dem Inverszeitabtastwertbereich ist.
-
7 veranschaulicht eine Faltung der Digitalsignale x[n] und h[n] durch ein anfängliches Abbilden der Digitalsignale x[n] und h[n] auf den Frequenzbereich und ein Rückabbilden des Produkts X[k]H[k] auf den Zeitabtastwertbereich, um ein gefaltetes Digitalsignal x[n]*h[n] zu erhalten. In 7 stellt ein Richtungspfeil 702 das Anwenden einer diskreten Fourier-Transformation („DFT“) auf das Digitalsignal x[n], um ein Digitalsignal X[k] zu erhalten, dar, und ein Richtungspfeil 704 stellt ein Anwenden der DFT auf die Impulsantwort h[n], um ein Digitalsignal H[k] zu erhalten, dar.
-
Die Digitalsignale x[k] und H[k] werden in dem Frequenzbereich multipliziert, um das Produkt X[k]H[k] zu erhalten. Als Nächstes wird auf das Produkt X[k]H[k] eine IDFT 706 angewendet, um das gefaltete Digitalsignal x[n]*h[n] zu erhalten.
-
Eine schnelle Fourier-Transformation („FFT“) und eine entsprechende inverse schnelle Fourier-Transformation („IFFT“) sind Arten von Fourier-Transformationen, die oft verwendet werden, um ein Durchführen einer Faltung in dem Zeitabtastwertbereich zu vermeiden. Eine Verwendung der FFT und der IFFT kann hunderte oder sogar tausende Male schneller sein als ein Falten von Digitalsignalen in dem Zeitbereich. In dem Buch „Discrete-Time Signal Processing (2. Ausgabe)“, von A. Oppenhiemer, R. Schafer und J. Buck, Prentice Hall, Inc., (1999-2000), das lediglich eine von vielen Referenzen für das Gebiet der Digitalsignalverarbeitung ist, wird eine Anzahl verschiedener FFT- und IFFT-Verfahren beschrieben. Zusätzliche Einzelheiten können dem oben erwähnten Buch oder aus vielen anderen Fachbüchern, Schriften und Zeitungsartikeln auf diesem Gebiet entnommen werden.
-
Ausführungsbeispiele der vorliegenden Erfindung
-
Verschiedene Ausführungsbeispiele der vorliegenden Erfindung sind auf Verfahren und Systeme gerichtet, die akustische Echos in Audiosignalen und im Einklang mit sich verändernden Bedingungen an separaten Örtlichkeiten, die durch Audiokonferenz-Kommunikationssysteme verbunden sind, reduzieren. Insbesondere umfassen Ausführungsbeispiele der vorliegenden Erfindung Verfahren zum Bestimmen eines Ungefähr-Impulsantwort-Vektors, der Audiosignalen entspricht, die lediglich von dem fernen Raum an den nahen Raum gesendet werden, Verfahren zum Unterdrücken eines akustischen Echos, das während einer im Wesentlichen gleichzeitigen Übertragung von Audiosignalen von dem nahen Raum an den fernen Raum erzeugt werden, und Verfahren zum Aktualisieren einer Datenstruktur, die dazu verwendet wird, eine Anzahl von Ungefähr-Impulsantwort-Vektoren zu speichern.
-
Verschiedene Ausführungsbeispiele der vorliegenden Erfindung sind mathematischer Natur. Aus diesem Grund werden Verfahrensausführungsbeispiele der vorliegenden Erfindung nachstehend unter Bezugnahme auf zahlreiche Gleichungen und unter Bezugnahme auf graphische Veranschaulichungen und Steuerungsablaufdiagramme beschrieben.
-
Eine Übersicht über mathematische Grundlagen, die sich auf Ausführungsbeispiele der vorliegenden Erfindung beziehen
-
Die verschiedenen Ausführungsbeispiele der vorliegenden Erfindung beruhen auf einem Entscheidungsfindungsrahmen, der Markov-Entscheidungsprozesse, sequentielle Optimierung und Optimale-Steuerung-Theorie umfasst. Zwei Referenzen für diese Gebiete sind die Bücher „Markov Decision Processes: Discrete Stochastic Dynamic Programming" von M. L. Puterman, John Wiley und Söhne, New York, 1994; und „Dynamic Programming and Optimal Control" von D. P. Bertsekas, Athena Scientific Bd. 1 und II, Belmont, MA, 1995. Die nachstehende Beschreibung stellt diejenigen Elemente von Markov-Entscheidungsprozessen und die Elemente der Optimale-Steuerung-Theorie dar, die sich auf Ausführungsbeispiele der vorliegenden Erfindung beziehen. Zusätzliche Einzelheiten können den oben erwähnten Büchern oder vielen anderen Büchern, Schriften und Zeitungsartikeln auf diesen Gebieten entnommen werden.
-
Wie oben unter Bezugnahme auf
3 beschrieben wurde, kann eine Impulsantwort h[n] eines Mikrophons mathematisch als L-Komponente-Vektor
dargestellt werden. Eine Eigenschaft der Impulsantwort besteht darin, dass:
wobei
ℝ
L ein L-dimensionaler Vektorraum ist,
ein an dem Ursprung in ℝ
L zentrierter Satz mit einem Radius von
ist und
E die maximale Verstärkungsenergie bzw. den maximalen Verstärkungsgewinn, die bzw. der durch ein Mikrophon ansprechend auf einen Impuls erzeugt wird, darstellt.
-
Mit anderen Worten erfüllt die euklidische Norm jeder aus einem Mikrophon ausgegebenen Impulsantwort die Bedingung:
-
Obwohl in der Praxis eine Impulsantwort
während einer Unterdrückung akustischer Echos nicht mit Gewissheit bekannt ist, beruhen Verfahren der vorliegenden Erfindung darauf, eine ungefähre Impulsantwort
zu erhalten, die den mittleren Fehler minimiert:
wobei
der Fehler zwischen dem Digitalsignal y[n] und dem akustischen Echo
ist, und
P
h
n eine dem Fehler
zugeordnete Verteilungsdichte der Verbundwahrscheinlichkeit ist.
-
Den mittleren Fehler J
h
n (ĥ) kann man sich auch als Erwartungswert einer Zufallsvariable
mit einer zugeordneten Wahrscheinlichkeit P
h
n vorstellen.
-
Das Verfahren der vorliegenden Erfindung erzeugt ungefähre Impulsantworten
die den mittleren Fehler
minimieren und die folgende Bedingung erfüllen:
wobei
und
-
Bei dem Satz
ist U ein an dem Ursprung in ℝ
L zentrierter Satz mit einem Radius von
und wird als „Suchraum“ bezeichnet, ε
n ist eine subjektiv kleine positive reelle Zahl,
ist die Varianz des Digitalsignalvektors
Das Symbol „inf“ bedeutet das „Infimum“, das die maximale Untergrenze eines Satzes ist. Beispielsweise ist das Infimum des offenen Intervalls (0,1) die Zahl „0“ und wird durch inf(0,1)=0 dargestellt, obwohl die Zahl „0“ kein Element des offenen Intervalls (0,1) ist.
-
II. Eine stochastische Annäherung der ungefähren Impulsantwort
-
Das Verfahren der vorliegenden Erfindung beruht auch auf der Annahme, dass eine Impulsantwort
über N
c Zeitabtastwerte hinweg eine geringe Variation aufweist und die maximale Abweichung zwischen N
c Zeitabtastwerten durch
begrenzt ist.
-
Der Paramter N
c wird als „Kohärenzzeit“ bezeichnet. Folglich wird, statt eine ungefähre Impulsantwort
für jeden Zeitabtastwert n zu bestimmen, eine ungefähre Impulsantwort
zu Beginn jeder N
d Zeitabtastwerte bestimmt, wobei N
d << N
c und m eine positive Ganzzahl ist. Ein Intervall mit N
d Zeitabtastwerten wird als „Entscheidungsperiode“ bezeichnet, und der Beginn einer Entscheidungsperiode wird als „Entscheidungsepoche“ bezeichnet.
-
8 ist eine beispielhafte Auftragung von Entscheidungsperioden und Entscheidungsepochen, die Impulsantwortvektoren zugeordnet sind, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. In
8 ist eine horizontale Achse
802 eine Zeitabtastwertachse, eine vertikale Achse
804 ist eine Digitalzahlachse, und Punkte wie z.B. ein Punkt
806 stellen ein Digitalsignal x[n] dar. Entscheidungsperioden
808,
810 und
812 sind jeweils aus sechs Zeitabtastwerten (N
d = 6) gebildet. Entscheidungsepochen treten zu Beginn der Entscheidungsperioden
808,
810 und
812 auf. Ausführungsbeispiele der vorliegenden Erfindung, die nachstehend beschrieben werden, erzeugen eine neue ungefähre Impulsantwort
bei jeder Entscheidungsepoche. Beispielsweise wird zu Beginn der Entscheidungsperiode
808 eine anfängliche ungefähre Impulsantwort
bereitgestellt. Zu Beginn der Entscheidungsperiode
810 wird eine neue ungefähre Impulsantwort
berechnet. Allgemein wird zu Beginn einer Entscheidungsperiode (m-1)N
d 812 eine ungefähre Impulsantwort
berechnet und wird für jeden Zeitabtastwert n in dem Intervall [(m-1)N
d,mN
d-1] verwendet.
-
In der Praxis kann der mittlere Fehler
nicht direkt berechnet werden, da die Verteilungsdichte der Verbundwahrscheinlichkeit P
h
n , die jeder Impulsantwort
zugeordnet ist, unbekannt ist. Jedoch kann der mittlere Fehler
durch einen empirischen mittleren Fehler angenähert werden:
wobei
m
0 eine beliebige Entscheidungsepoche ist,
m > m
0 and
die in dieser und in nachfolgenden Gleichungen verwendete Hochstellung (m) die Entscheidungsepoche identifiziert.
-
Eine ungefähre Impulsantwort
kann bestimmt werden, indem der empirische mittlere Fehler
über den Suchraum U minimiert wird, um eine minimale empirische Gleichung zu liefern:
wobei der Überbalken eine Matrix identifiziert,
-
I eine m-mal-m-Identitätsmatrix ist,
und
-
Die Konstante λ
m in der minimalen empirischen Gleichung ist ein kleinster positiver Wert, der gewährleistet, dass
ein Element des Suchraums U ist. Jedoch ist eine Verwendung der minimalen empirischen Gleichung, um die ungefähre Impulsantwort
zu bestimmen, rechentechnisch aufwändig. Der Rechenaufwand kann verringert werden, indem eine stochastische Annäherung in Form einer rekursiven Gleichung angewendet wird:
wobei
eine Matrix mit Elementen ist, die gemäß der nachstehenden Beschreibung unter Bezugnahme auf ein in
14 gezeigtes Steuerungsablaufdiagramm bestimmt wird, und
γ
m eine skalare Quantität ist und wird gemäß der nachstehenden Beschreibung unter Bezugnahme auf ein in
16 gezeigtes Steuerungsablaufdiagramm bestimmt.
-
Die Verfahren und Systeme der vorliegenden Erfindung verwenden die rekursive Gleichung, um den Ungefähr-Impulsantwort-Vektor
zu bestimmen, der auch die folgende Bedingung erfüllt:
wobei
und
δ
m eine subjektiv kleine positive reelle Zahl ist.
-
III. Implementierung
-
9 veranschaulicht ein zwei Örtlichkeiten umfassendes Audiokonferenz-Kommunikationssystem, wie es in
1 gezeigt ist, das eine Echosteuereinheit umfasst, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Das System
900 umfasst Gleichstromversatz-Beseitigungseinheiten
902 und
904 und eine Echosteuereinheit
906. Gleichstromversatz ist eine niederfrequente Verzerrung, die oft durch elektrische Interferenz bewirkt wird. Die elektrische Interferenz erzeugt eine Konstantspannung, die bei dem aus einem Lautsprecher ausgegebenen Klang Knack- und Klickgeräusche bewirken kann. Die Gleichstromversatz-Beseitigungseinheit
902 korrigiert den Gleichstromversatz bei dem Digitalsignal x
rec[n], das in dem Raum
104 erzeugt wurde, wie folgt:
wobei a eine Konstante zwischen etwa 0,9 und etwa 0,9999 ist. Das Digitalsignal x[n] wird aus der Gleichstromversatz-Beseitigungseinheit
902 ausgegeben und an die Echosteuereinheit
906 gesendet. Die Gleichstromversatz-Beseitigungseinheit
904 korrigiert den Gleichstromversatz bei dem Digitalsignal y
mic[n], das in dem nahen Raum
102 erzeugt wird, wie folgt:
-
Das Digitalsignal y[n] wird aus der Gleichstromversatz-Beseitigungseinheit 904 ausgegeben und an die Echosteuereinheit 906 gesendet. Die Echosteuereinheit 906 umfasst eine Steuerung 908, eine Impulsantwortkorrektur 910, einen Summierungsübergang 912 und einen Echosteuerungsunterdrücker 914. Das Digitalsignal x[n] wird sowohl an die Steuerung 908 als auch an die Impulsantwortkorrektur 910 gesendet, und das Digitalsignal y[n] wird sowohl an die Steuerung 908 als auch an den Summierungsübergang 912 gesendet. Die Steuerung 908 erzeugt einen Ungefähr-Impulsantwort-Vektor, der in die Impulsantwortkorrektur 910 eingegeben wird, die wiederum dazu verwendet wird, ein ungefähres akustisches Echo zu erzeugen. Das ungefähre akustische Echo wird an den Summierungsübergang 912 gesendet und von dem Digitalsignal y[n] subtrahiert, um ein ausgangsseitiges Digitalsignal r̂[n] zu erzeugen. Die Funktionsweise der Steuerung 908, der Impulsantwortkorrektur 910 und des Summierungsübergangs 912 wird nachfolgend unter Bezugnahme auf die 10-16 beschrieben. Das ausgangsseitige Digitalsignal r̂[n] wird in den Echosteuerungsunterdrücker 914 eingegeben, der bezüglich einer Verstärkung bzw. eines Gewinns in dem ausgangsseitigen Digitalsignal r̂[n] korrigiert und ein resultierendes Digitalsignal r[n] ausgibt, das an den Lautsprecher 116 in dem fernen Raum 104 gesendet wird. Die Funktionsweise der Echosteuereinheit 906 wird nachfolgend unter Bezugnahme auf die 10A-10B und 12 beschrieben.
-
Man beachte, dass in der obigen Beschreibung die Echosteuereinheit 906 dazu verwendet wird, das von dem nahen Raum 102 an den fernen Raum 104 gesendete akustische Echo zu reduzieren, in 9. Die Echosteuereinheit 906 kann sich entweder in dem oder außerhalb des nahen Raums 102 befinden. Jedoch wird in der Praxis eine zweite Echosteuereinheit (nicht gezeigt) benötigt, um ein von dem fernen Raum 104 an den nahen Raum 102 gesendetes akustisches Echo zu reduzieren.
-
10A-10B zeigen ein Steuerungsablaufdiagramm, das ein Ausführungsbeispiel der vorliegenden Erfindung zum Verringern akustischer Echos bei Audiosignalen, die von dem nahen Raum
102 an den fernen Raum
104 gesendet werden, darstellt. Bei Schritt
1001 der
10A werden Werte für Parameter initialisiert, wie nachstehend in den Tabellen 1-3 gezeigt ist. Die Tabelle 1 zeigt Parameter und beispielhafte zugeordnete Werte, die bei den Gleichungen, die nachstehend unter Bezugnahme auf die
10-16 beschrieben werden, verwendet werden können:
Tabelle 1
Parameter | Wert |
L | 6000 |
Nd | 288 |
P | 5 (Nd) |
N | 8192 |
β | 0,001 |
η | 0,001 |
λ | 0,001 |
K1 | 0,995 |
K2 | 0,3 |
Gmax | 1,0 |
Gmin | 0,1 |
-
Man beachte, dass die in der Tabelle 1 angezeigten Parameterwerte beispielhafte Werte sind, die bestimmten Bedingungen und Konfigurationen des nahen Raums und des fernen Raums entsprechen und die keine Einschränkung darstellen sollen. Bei anderen Anwendungen der vorliegenden Erfindung können diese Parameter eingestellt werden, um unterschiedliche Naher-Raum- und Ferner-Raum-Bedingungen und verschiedene Konfigurationen des nahen Raums und des fernen Raums zu berücksichtigen. Der Parameter P ist die Anzahl von Digitalsignalen y
(m) [n] in dem Digitalsignalvektor
nachstehend unter Bezugnahme auf Schritt
1004 in
10A beschrieben. Der Parameter N ist die Anzahl von Digitalsignalen, die zum Bilden der Frequenzbereichsvektoren
verwendet werden. Die Parameter β, η, λ, K
1 und K
2 sind Werte, die dazu verwendet werden, Begriffen in Gleichungen, die nachstehend unter Bezugnahme auf
10-14 beschrieben werden, relative Bedeutung oder relatives Gewicht zu verleihen. Die Parameter G
max und G
min sind der maximale und der minimale Gewinn, der dem Mikrophon
106 zugeordnet ist. Die Tabelle 2 zeigt Ahfangswerte für variable Parameter, die sich während Iterationen der nachstehend unter Bezugnahme auf
11-12 beschriebenen Verfahren ändern:
Tabelle 2
Parameter | Anfangswert |
| 0,01 |
| 0,01 |
| 0,01 |
| 0,01 |
| 0,01 |
| 0,01 |
| 0 |
| 0 |
G(0) | 0 |
-
Die Parameter
sind kurzfristige Energievarianzen, die den Digitalsignalen x
(m)[n] und y
(m)[n] zugeordnet sind. Der Parameter
ist die kurzfristige Energievarianz, die der Energie in dem Ausgangssignal r̂[n] zugeordnet ist. Die Parameter
sind langfristige Energievarianzen, die den Digitalsignalen x
(m)[n] und y
(m)[n] zugeordnet sind. Der Parameter
ist eine langfristige Energievarianz, die dem Rauschen v[n] zugeordnet ist. Die Parameter
sind maximale quadratische Energien, die den Digitalsignalen x
(m)[n] und y
(m)[n] zugeordnet sind. Der Parameter G
(0) ist ein Anfangsgewinnanpassungswert, der nachstehend unter Bezugnahme auf
12 beschrieben wird. Die Tabelle 3 zeigt Anfangswerte für Komponenten der Vektoren
die sich während Iterationen des nachstehend unter Bezugnahme auf
13-14 beschriebenen Verfahrens ändern:
Tabelle 3
Vektorkomponente | Anfangswert | Komponentenindex |
| 1,0 | k = 0, ..., N-1 |
| 1,0 | k = 0, ..., N-1 |
Λ(0)[n'] | 1,0 | n' = 0, ..., L-1 |
| 0,0 | n' = 0, ..., L-1 |
ĥ(0)[n'] | 0,0 | n' = 0, ..., L-1 |
-
Der Vektor
ist ein anfängliches mittleres Spektrum, das dem Vektor
X (m) zugeordnet ist, und der Vektor
ist ein anfängliches mittleres Spektrum, das einem Vektor
zugeordnet ist, die nachstehend unter Bezugnahme auf Schritt
1302 in
13A beschrieben werden. Der Vektor
definiert eine entstehende hyperelliptische Region, die nachstehend unter Bezugnahme auf Schritt
1305 in
13A beschrieben wird. Der Vektor
ist ein Anfangsschattenimpulsantwortvektor, der nachstehend unter Bezugnahme auf Schritt
1308 in
13A beschrieben wird. Der Vektor
ist ein Anfangsimpulsantwortvektor, der nachstehend unter Bezugnahme auf Schritt
1309 in
13A beschrieben wird. Bei der Für-Schleife, die bei Schritt
1002 beginnt, werden die Schritte
1003-
1022 für jede Entscheidungsepoche m wiederholt. Bei der bei Schritt
1003 beginnenden Für-Schleife werden die Schritte
1004-
1012 für jeden Zeitabtastwert n wiederholt. Bei Schritt
1004 wird ein Digitalsignal x
(m)[n] aus dem Gleichstromversatz
902 ausgegeben, und ein Digitalsignal y
(m)[n] wird aus dem Gleichstromversatz
904 ausgegeben, in
9. Bei Schritt
1005 werden die Digitalsignale x
(m)[n] dazu verwendet, einen (L + P)-Komponente-Digitalsignalvektor zu bilden:
und die Digitalsignale y
(m)[n] werden dazu verwendet, einen P-Komponente-Digitalsignalvektor zu bilden:
-
Bei Schritt
1006 wird eine FFT auf die Vektoren
angewendet, um Frequenzbereichsvektoren zu erhalten:
und
-
Bei Schritt
1007 wird ein Ausgangssignalvektor wie folgt berechnet:
wobei
Tr
N
d ein Abschneideoperator einer Länge N
d ist,
„◦“ eine komponentenweise Multiplikation zweier Vektoren darstellt,
und
r̂
(m)[n] das ausgangsseitige Digitalsignal ist, das aus dem Summierungsübergang
912 ausgegeben wird, in
9.
-
Eine komponentenweise Multiplikation der 3-Tupel (1,2,3) und (3,1,2) wird durch Folgendes dargestellt:
-
Bei Schritt 1008 wird die Routine „Steuerzustand bestimmen“ aufgerufen, die vier Arten von Audioübertragungen identifiziert, die zwischen dem nahen Raum 102 und dem fernen Raum 104 existieren können, in 9. Die vier Arten von Audioübertragung werden als „Steuerzustande“ („CS - control states“) bezeichnet und wie folgt identifiziert: (1) ein Audiosignal wird lediglich aus dem Nahes-Ende-Raum 102 ausgegeben und ist durch SNEO dargestellt; (2) ein Audiosignal wird lediglich aus dem Fernes-Ende-Raum 104 ausgegeben und ist durch SFEO dargestellt; (3) Audiosignale werden gleichzeitig sowohl aus dem Nahes-Ende-Raum 102 als auch aus dem Fernes-Ende-Raum 104 ausgegeben, was als „Doppelsprechen“ bezeichnet wird und durch SDT dargestellt ist; und (4) keine Audiosignale, die aus dem Nahes-Ende-Raum 102 und dem Fernes-Ende-Raum 104 ausgegeben werden, durch SNS dargestellt. Bei Schritt 1009 wird die Routine „Restechounterdrückung“ aufgerufen, um ein Gewinn-korrigiertes ausgangsseitiges Digitalsignal r(m)[n] zu berechnen, wie oben unter Bezugnahme auf die Echounterdrückung 914 beschrieben wurde, in 9. Bei Schritt 1010 wird das Gewinn-korrigierte ausgangsseitige Digitalsignal r(m)[n] an den Lautsprecher 116 gesendet, in 19.
-
Bei Schritt
1011 der
10B geht die Steuerung dann, wenn n kleiner ist als mN
d-1, zu Schritt
1012 über, andernfalls geht die Steuerung zu Schritt
1013 über. Bei Schritt
1012 wird der Zeitabtastwert n um „1“ inkrementiert, und die Schritte
1004-
1011 werden wiederholt. Bei Schritt
1013 geht die Steuerung dann, wenn eine andere Entscheidungsepoche m verfügbar ist, zu Schritt
1014 über, andernfalls wird die Routine „
r[n] bestimmen“ beendet. Bei Schritt
1014 wird die Entscheidungsepoche m um „1“ inkrementiert. Bei Schritt
1015 geht die Steuerung dann, wenn der CS S
NEO oder S
NS ist, zu Schritt
1016 über, andernfalls geht die Steuerung zu Schritt
1017 über. Bei Schritt
1016 wird der Impulsantwortvektor aktualisiert, indem Elemente in dem Vektor
entsprechenden Werten in der Impulsantwort
aus der vorherigen Entscheidungsperiode zugewiesen werden, und der Schattenimpulsantwortvektor wird aktualisiert, indem Elemente in dem Schattenimpulsantwortvektor
entsprechenden Elementen in dem Schattenimpulsantwortvektor
aus der vorherigen Entscheidungsperiode zugewiesen werden. Bei Schritt
1017 geht die Steuerung dann, wenn der CS S
FEO ist, zu Schritt
1018 über, andernfalls ist der CS S
DT und die Steuerung geht zu Schritt
1019 über. Bei Schritt
1018 wird die Routine „
bestimmen“ aufgerufen, und ein Ungefähr-Impulsantwort-Vektor
wird berechnet. Bei Schritt
1019 geht die Steuerung dann, wenn „Zählwert“ nicht gleich „0“ ist, zu Schritt
1020 über, andernfalls geht die Steuerung zu Schritt
1021 über. Bei Schritt
1020 wird der „Zählwert“ um „1“ dekrementiert, und die Steuerung geht zu Schritt
1016 über. Bei Schritt
1021 wird der Ungefähr-Impulsantwort-Vektor
aus einer durch den Satz
dargestellten Impulsantwortdatenstruktur ausgewählt. Diese Datenstruktur umfasst die K jüngsten ungefähren Impulsantworten mit dem höchsten Signal/RauschVerhältnis. Man beachte, dass der Ungefähr-Impulsantwort-Vektor während eines Doppelsprechens nicht aktualisiert wird, da während eines Doppelsprechens das Signal/RauschVerhältnis rasch abnimmt. Das erhöhte Rauschen verzerrt den Ungefähr-Impulsantwort-Vektor. Um diese Verzerrung zu vermeiden, wird der Ungefähr-Impulsantwort-Vektor aus der Impulsantwortdatenstruktur ausgewählt. Die Tiefstellungen an den Entscheidungsepochen m entsprechen der Reihenfolge, in der die Impulsantwortvektoren zu der Datenstruktur hinzugefügt wurden. Beispielsweise ist der Impulsantwortvektor
bereits am längsten in der Datenstruktur, und der Impulsantwortvektor
ist die jüngste Hinzufügung zu der Datenstruktur.
-
Bei verschiedenen Ausführungsbeispielen der vorliegenden Erfindung kann der Ungefähr-Impulsantwort-Vektor auf der Basis einer beliebigen Anzahl verschiedener Kriterien ausgewählt werden. Beispielsweise kann ein Ungefähr-Impulsantwort-Vektor bei einem Ausführungsbeispiel der vorliegenden Erfindung im Schritt
1021 danach ausgewählt werden, welcher Impulsantwortvektor das größte entsprechende ERLE
(m
l) hat. Bei einem anderen Ausführungsbeispiel der vorliegenden Erfindung wird der Ungefähr-Impulsantwort-Vektor, der sich bereits am längsten in der Datenstruktur befindet, ausgewählt, der
ist. Die Impulsantwortdatenstruktur wird in der Routine „
bestimmen“, aktualisiert, was nachstehend unter Bezugnahme auf Schritte
1310 und
1312 in
13A beschrieben wird. Der zugeordnete Wert von ERLE
(m) wird in der Routine „Steuerzustand bestimmen“ berechnet. Bei Schritt
1022 wird „Zählwert“ ein Wert „M“ zugewiesen. Der Wert M kann 10, 12, 15, 18 oder ein beliebiger anderer geeigneter Wert sein.
-
Die
10C-10D zeigen zwei Auftragungen von Verstärkungsenergie gegenüber der Zeit für die vier Arten von Steuerzuständen, die ein Ausführungsbeispiel der vorliegenden Erfindung darstellen. In
10C-10D stellen vertikale Achsen wie z.B. eine vertikale Achse
1030 eine Verstärkungsenergie dar, die Signalen zugeordnet ist, die zwischen dem nahen Raum
102 und dem fernen Raum
104 gesendet werden, horizontale Achsen wie z.B. eine horizontale Achse
1032 stellen die Zeit dar, und horizontale gestrichelte Linien wie z.B. eine gestrichelte Linie
1034 entsprechen einer Doppelsprechen-Schwellenenergie. Kurven
1036 und
1038 stellen die Verstärkungsenergien dar, die Signalen, die zwischen dem nahen Raum
102 und dem fernen Raum
104 übertragen werden, zugeordnet sind. Verstärkungsenergien unterhalb der Doppelsprechen-Schwelle
1034 sind einem S
FEO-, S
NEO- oder S
NS-Steuerzustand zugeordnet. Eine Spitze
1040 entspricht einer Verstärkungsenergie, die aus einem Doppelsprechen resultiert, das die Doppelsprechen-Schwelle
1034 übersteigt. Jedoch entspricht eine Spitze
1042 einem in dem nahen Raum
102 oder dem fernen Raum
104 erzeugten Rauschen. Dieses Rauschen bewirkt anfänglich den Anschein eines Doppelsprechens, da die Verstärkungsenergie die Doppelsprechen-Schwellenenergie
1034 übersteigt, obwohl eigentlich kein Doppelsprechen stattfindet. Um zu vermeiden, dass kurz andauerndes Rauschen als Doppelsprechen fehlinterpretiert wird, beginnt zu einer Zeit
1044 ein Countdown statt, bei dem der variable „Zählwert“, bei Schritt
1019 beschrieben, gleich M gesetzt wird. Dieser Countdown findet in den Schritten
1019 und
1020 statt, wodurch ein Auswählen eines Ungefähr-Impulsantwort-Vektors aus der Datenstruktur
bei Schritt
1021 vermieden wird, bis ein Doppelsprechen für M Iterationen bestätigt werden kann. Mit anderen Worten fährt das Verfahren der vorliegenden Erfindung fort, zu arbeiten, als ob für M Entscheidungsperioden kein Doppelsprechen aufgetreten ist. Falls nach M Iterationen die Verstärkungsenergie abgenommen hat, wie zur Zeit
1046 in
10C angegeben ist, wurde eine ungeeignete Auswahl eines Ungefähr-Impulsantwort-Vektors für Doppelsprechen vermieden. Falls dagegen die Verstärkungsenergie nach M Iterationen zugenommen hat, wie durch die Zeit
1048 in
10D angegeben ist, wird bei Schritt
1021 eine ungefähre Impulsantwort für Doppelsprechen ausgewählt.
-
11A-11C zeigen ein Steuerungsablaufdiagramm für die Routine „Steuerzustand bestimmen“, die bei Schritt
1008 in
10A aufgerufen wird und ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. In
11A, Schritt
1101, lauten mittlere quadratische Energien, die den Vektoren
und einem Schattenfehlervektor
zugeordnet sind, wie folgt:
und
-
Bei Schritt
1102 werden langfristige Energievarianzen für die mittleren quadratischen Energien durch Folgendes rekursiv bestimmt:
and
-
Die Koeffizienten 0,99 und 0,01 sind Gewichte, die den Varianzen
eine höhere relative Bedeutung zuweisen als den mittleren quadratischen Energien
In den Schritten
1103-
1107 wird eine maximale quadratische Energie
die dem Digitalsignalvektor
zugeordnet ist, bestimmt. Bei Schritt
1103 geht die Steuerung dann, wenn die maximale quadratische Energie
geringer ist als die mittlere quadratische Energie
zu Schritt
1104 über, andernfalls geht die Steuerung zu Schritt
1105 über. Bei Schritt
1104 wird die maximale quadratische Energie durch Folgendes berechnet:
und die Steuerung geht zu Schritt
1108 über. Bei Schritt
1105 geht die Steuerung dann, wenn die mittlere quadratische Energie
größer ist als die maximale quadratische Energie
zu Schritt
1106 über, andernfalls geht die Steuerung zu Schritt
1107 über. Bei Schritt
1106 wird die maximale quadratische Energie berechnet durch:
und die Steuerung geht zu Schritt
1108 über. Die Koeffizienten 0,999 und 0,001 weisen der maximalen quadratischen Energie
eine höhere relative Bedeutung zu als der mittleren quadratischen Energie
Bei Schritt
1107 wird der maximalen quadratischen Energie
der Wert
zugewiesen. In den Schritten
1108-
1112 wird eine maximale quadratische Energie
die dem Digitalsignalvektor
zugeordnet ist, bestimmt. Bei Schritt
1108 geht die Steuerung dann, wenn die maximale quadratische Energie
geringer ist als die mittlere quadratische Energie
zu Schritt
1109 über, andernfalls geht die Steuerung zu Schritt
1110 über. Bei Schritt
1109 wird die maximale quadratische Energie durch:
berechnet, und die Steuerung geht zu Schritt
1113 über, in
11B. Bei Schritt
1110 geht die Steuerung dann, wenn die mittlere quadratische Energie
größer ist als die maximale quadratische Energie
zu Schritt
1111 über, andernfalls geht die Steuerung zu Schritt
1112 über. Bei Schritt
1111 wird die maximale quadratische Energie durch:
berechnet, und die Steuerung geht zu Schritt
1113 über. Bei Schritt
1112 wird der maximalen Energie
der Wert
zugewiesen.
-
In den Schritten
1113-
1124 der
11B werden die mittleren quadratischen Energien
langfristige Energievarianzen
und maximale Energien
dazu verwendet, logische „WAHR“- oder „FALSCH“-Werte von Booleschen Variablen
T1,
T2,
T3 und
T4 zu bestimmen, die anschließend in dem Steuerungsablaufdiagramm in
11C dazu verwendet werden, den CS zu bestimmen. Bei Schritt
1113 geht die Steuerung dann, wenn die mittlere quadratische Energie
größer als oder gleich
ist, zu Schritt
1114 über und
T1 wird auf „WAHR“ gesetzt, andernfalls geht die Steuerung zu Schritt
1115 über und T1 wird auf „FALSCH“ gesetzt. Bei Schritt
1116 geht die Steuerung dann, wenn die mittlere quadratische Energie
größer als oder gleich
ist, zu Schritt
1117 über und
T2 wird auf „WAHR“ gesetzt, andernfalls geht die Steuerung zu Schritt
1118 über und
T2 wird auf „FALSCH“ gesetzt. Bei Schritt
1119 geht die Steuerung dann, wenn die langfristige Varianz
geringer ist als
zu Schritt
1120 über und
T3 wird auf „WAHR“ gesetzt, andernfalls geht die Steuerung zu Schritt
1121 über und
T3 wird auf „FALSCH“ gesetzt. Bei Schritt
1122 geht die Steuerung dann, wenn die langfristige Varianz
geringer ist als
zu Schritt
1123 über und
T4 wird auf „WAHR“ gesetzt, andernfalls geht die Steuerung zu Schritt
1124 über und
T4 wird auf „FALSCH“ gesetzt.
-
In den Schritten
1125-
1131 der
11C werden die in den Schritten
1113-
1124 bestimmten Booleschen Logikwerte dazu verwendet, den CS zu bestimmen. Bei Schritt
1125 geht die Steuerung dann, wenn
T1 und
T3 „WAHR“ sind und
T2 und
T4 „FALSCH“ sind, zu Schritt
1126 über, und CS ist S
NEO, andernfalls geht die Steuerung zu Schritt
1127 über. Bei Schritt
1127 geht die Steuerung dann, wenn
T3 und
T4 „WAHR“ sind und
T2 „FALSCH“ ist, zu Schritt
1128 über, und CS ist S
NS, andernfalls geht die Steuerung zu Schritt
1129 über. Bei Schritt
1129 geht die Steuerung dann, wenn
T2 „WAHR“ ist und
T1,
T3 und
T4 „FALSCH“ sind, zu Schritt
1130 über, und CS ist S
FEO, andernfalls geht die Steuerung zu Schritt
1131 über. Bei Schritt
1131 geht die Steuerung dann, wenn
T1 und
T2 „WAHR“ sind und
T3 und
T4 „FALSCH“ sind, zu Schritt
1132 über, und CS ist S
DT, andernfalls geht die Steuerung zu Schritt
1133 über. Bei Schritt
1133 sind kurzfristige Varianzen, die den mittleren quadratischen Energien
zugeordnet sind, durch Folgendes gegeben:
und
-
Die die Koeffizienten der kurzfristigen Varianz 0,8 und 0,2 sind Gewichte, die den Varianzen
eine höhere relative Bedeutung zuweisen als den mittleren quadratischen Energien
Bei Schritt
1134 werden die bei Schritt
1132 bestimmten kurzfristigen Varianzen dazu verwendet, einen Echodämpfungsverstärkungswert („ERLE“ - echo return loss enhancement value) zu berechnen, der durch:
gegeben ist. Der ERLE kann dazu verwendet werden, die Leistungsfähigkeit einer Unterdrückung akustischer Echos zu bemessen, wenn sich das System in dem Zustand S
FEO befindet. Der Wert von ERLE
(m) ist während S
FEO größer als während S
DT.
-
12 ist ein Steuerungsablaufdiagramm für die Routine „Restechounterdrückung“, die bei Schritt
1009 in
10A aufgerufen wird und ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Der CS der Audioübertragung kann dazu verwendet werden, bezüglich eines Gewinns bei dem ausgangsseitigen Digitalsignal r̂[n] zu korrigieren. Beispielsweise während eines Doppelsprechens oder wenn ein Audiosignal lediglich in dem Nahes-Ende-Raum erzeugt wird, ist der durch das ausgangsseitige Digitalsignal r̂[n] erfasste Gewinn größer als wenn ein Audiosignal lediglich in dem Fernes-Ende-Raum erzeugt wird oder wenn kein Audiosignal vorliegt. Die maximale und die minimale Menge an Gewinn, die das ausgangsseitige Digitalsignal erfassen kann, werden durch die Konstanten G
max bzw. G
min dargestellt. Die Schritte
1201-
1204 stellen den Gewinn bei dem ausgangsseitigen Digitalsignal r̂[n] gemäß dem aktuellen CS ein. Bei Schritt
1201 geht die Steuerung dann, wenn der CS S
DT oder S
NEO ist, zu Schritt
1202 über, andernfalls ist der CS entweder S
NS oder S
NEO, und die Steuerung geht zu Schritt
1203 über. Bei Schritt
1202 wird der Gewinn wie folgt berechnet:
wobei K
2 ein Gewicht ist, das G
(m-1) eine geringere relative Bedeutung zuweist als dem maximalen Gewinn G
max. Bei Schritt
1203 wird der Gewinn wie folgt berechnet:
wobei K
1 ein Gewicht ist, das G
(m-1) eine höhere relative Bedeutung zuweist als dem minimalen Gewinn G
min. Bei Schritt
1204 wird das Restsignal durch:
bestimmt.
-
13A ist ein Steuerungsablaufdiagramm für die Routine „
bestimmen“, die bei Schritt
1018 in
10B aufgerufen wird und ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Bei Schritt
1301 wird die FFT auf den Vektor
angewendet, um einen frequenzbereichsabhängigen Faktor zu erhalten:
-
Bei Schritt
1302 wird ein Frequenzbereichs-Schattenfehlervektor wie folgt berechnet:
wobei Tr
P ein Abschneideoperator der Länge P ist, und
-
Bei Schritt
1303 wird eine IFFT auf den Frequenzbereichs-Schattenfehlervektor angewendet, um einen Schattenfehlervektor zu erhalten:
-
Bei Schritt
1304 wird die Routine „
bestimmen“ aufgerufen. Bei Schritt
1305 wird ein entstehender Hyperellipsoidspezifikationsvektor gemäß der folgenden rekursiven Formel bestimmt:
-
Der Parameter η ist ein Gewicht, das
mehr Bedeutung beimisst als
Der Hyperellipsoidspezifikationsvektor
wird dazu verwendet, in der Routine „µ
m bestimmen“, die bei Schritt
1306 aufgerufen wird, die Schattenaktualisierungsschrittgröße µ
m zu berechnen. Der Hyperellipsoidspezifikationsvektor
wird auch dazu verwendet, in der Routine „γ
m bestimmen“, die bei Schritt
1307 aufgerufen wird, die Anpassungsschrittgröße γ
m zu berechnen. Bei Schritt
1308 werden der bei Schritt
1304 bestimmte Schattenfehlanpassungsvektor
und die bei Schritt
1306 bestimmte Schattenaktualisierungsschrittgröße µ
m dazu verwendet, einen Schattenimpulsantwortvektor rekursiv zu berechnen:
-
Bei Schritt
1309 wird die bei Schritt
1307 bestimmte Anpassungsschrittgröße γ
m dazu verwendet, den Ungefähr-Impulsantwort-Vektor wie folgt rekursiv zu berechnen:
-
Der Parameter γ
m wird dazu verwendet, die Höhe der Bedeutung für den Schattenimpulsantwortvektor
zu gewichten. Bei Schritt
1310 geht die Steuerung zu Schritt
1311 über, wenn der ERLE ERLE
(m) größer ist als ein Schwellwert C. Der Schwellwert C kann 10, 12, 15 oder ein beliebiger anderer geeigneter Wert zum Gewichten des Ungefähr-Impulsantwort-Vektors
sein. Bei Schritt
1311 wird die oben unter Bezugnahme auf Schritt
1021 beschriebene Impulsantwortdatenstruktur:
aktualisiert.
-
Die Impulsantwortvektoren sind in der Impulsantwortdatenstruktur in der Reihenfolge steigender Entscheidungsepochenwerte wie folgt angeordnet: m
K < m
K-1 <...<m
2 < m
1, wobei die Entscheidungsepoche m
K einem Ungefähr-Impulsantwort-Vektor entspricht, der sich bereits am längsten in der Datenstruktur befindet, und die Entscheidungsepoche m
I dem Ungefähr-Impulsantwort-Vektor entspricht, der zuletzt zu der Datenstruktur hinzugefügt wurde. Bei einem Ausführungsbeispiel der vorliegenden Erfindung kann die Datenstruktur bei Schritt
1311 aktualisiert werden, indem der Impulsantwortvektor
aus der Datenstruktur beseitigt wird und der zuletzt berechnete Impulsantwortvektor
zu der bei Schritt
1309 berechneten Datenstruktur hinzugefügt wird, was die folgende Impulsantwortdatenstruktur liefert:
-
Bei anderen Ausführungsbeispielen der vorliegenden Erfindung kann die Datenstruktur bei Schritt 1311 gemäß dem Betrag der ERLE-Werte, die jedem Ungefähr-Impulsantwort-Vektor zugeordnet sind, aktualisiert werden. Beispielsweise wird der Ungefähr-Impulsantwort-Vektor mit dem kleinsten zugeordneten ERLE-Wert aus der Datenstruktur beseitigt, um eine Hinzufügung des zuletzt berechneten Ungefähr-Impulsantwort-Vektors, der bei Schritt 1309 berechnet wurde und die Schwellenbedingung im Schritt 1310 erfüllt, zu berücksichtigen.
-
Die Schattenaktualisierungsschrittgröße µ
m, die durch die bei Schritt
1306 aufgerufene Routine bestimmt wird, gewährleistet im Wesentlichen, dass der bei dem Schritt
1308 bestimmte Schattenimpulsantwortvektor
in einer entstehenden „Vertrauensregion“ liegt, die in dem Suchraum U liegt. Diese Vertrauensregion kann eine hypersphärische Region, eine hyperelliptische Region, eine hyperkubische Region oder eine in dem Suchraum liegende Region einer sonstigen Hyperabmessung sein.
-
Bei einem Ausführungsbeispiel der vorliegenden Erfindung, das unter Bezugnahme auf
13B beschrieben ist, wird angenommen, dass die Vertrauensregion eine hyperelliptische Region ist, die in dem Suchraum liegt.
13B liefert eine zweidimensionale Veranschaulichung einer hyperelliptischen Region, die in dem Suchraum U 1322 liegt und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Obwohl die Regionen
1320 und
1322 in
13B in zwei Dimensionen dargestellt sind, sind diese Regionen in der Praxis eigentlich L-dimensionale Vektorteilräume von ℝ
L und sind an dem Ursprung von ℝ
L zentriert. Die Form der hyperelliptischen Region
1320 wird durch den bei Schritt
1305 berechneten Hyperellipsoidspezifikationsvektor
bestimmt. Mit anderen Worten, wie in
13B gezeigt ist, liegen sechs zuvor bestimmte Schattenimpulsantwortvektoren, die durch Punkte dargestellt sind, in der hyperelliptischen Region
1320, die dem Hyperellipsoidspezifikationsvektor
zugeordnet ist. Die hyperelliptische Region
1320 wird als „entstehende“ hyperelliptische Region bezeichnet, da die zugeordnete Region dann, wenn ein nachfolgender Hyperellipsoidspezifikationsvektor
bestimmt wird, ihre Orientierung in dem Suchraum U
1322 ändert, diese neu orientierte elliptische Region jedoch eine im Wesentlichen elliptische Form beibehält. Ein neu berechneter Schattenimpulsantwortvektor
der gemäß der rekursiven Formel
berechnet wird, fällt in eine neu orientierte hyperelliptische Region, da die Schattenaktualisierungsschrittgröße µ
m eine Funktion des Hyperellipsoidspezifikationsvektors
ist, wie nachfolgend unter Bezugnahme auf
15 beschrieben wird. Wie in
13B gezeigt ist, reduziert die Schattenaktualisierungsschrittgröße µ
m dann, wenn der Betrag und die Richtung des Schattenfehlanpassungsvektors
groß ist, wie durch Vektor
1324 angegeben ist, den Betrag und ändert die Richtung des Schattenfehlanpassungsvektors
wie durch Vektor
1326 angegeben ist, so dass der Schattenimpulsantwortvektor
in einer neu orientierten hyperelliptischen Region
1328 liegt.
-
Man beachte, dass bei anderen Ausführungsbeispielen der vorliegenden Erfindung statt eines Berechnens einer einzigen Schattenaktualisierungsschrittgröße µm, um den Schattenimpulsantwortvektor zu aktualisieren, der Betrag des Schattenimpulsantwortvektors verändert werden kann, so dass er in der Vertrauensregion liegt, indem ein Vektor berechnet wird, der zu dem Schattenimpulsantwortvektor hinzugefügt wird, um die einzelnen Komponenten des Schattenimpulsantwortvektors einzustellen.
-
14 ist ein Steuerungsablaufdiagramm für die Routine „
bestimmen“, die bei Schritt
1304 in
13 aufgerufen wird und ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Bei Schritt
1401 wird ein mittleres Spektrum des Frequenzbereichsvektors
wie folgt berechnet:
und ein mittleres Spektrum des Vektors
wird wie folgt berechnet:
wobei
und
-
Der Parameter β ist ein Gewicht, das den Vektoren
eine größere Bedeutung zuweist als den Produkten
Bei Schritt
1402 werden die in
11 berechneten Energien dazu verwendet,
zu bestimmen.
-
In den Schritten
1403-
1406 werden Elemente eines N-Komponente-Frequenzbereichs-Vorkonditionierungsvektors
bestimmt. In der bei Schritt
1403 beginnenden Für-Schleife werden die Schritte
1404-
1406 für jeden Frequenzbereichsindex k wiederholt. Bei Schritt
1404 werden die Elemente des Vorkonditionierungsvektors
wie folgt berechnet:
wobei k zwischen 0 und N - 1 liegt. Bei Schritt
1405 geht die Steuerung dann, wenn k geringer als N-1 ist, zu Schritt
1406 über, andernfalls geht die Steuerung zu Schritt
1407 über. Bei Schritt
1406 wird der Index k durch den Wert „1“ inkrementiert. Bei Schritt
1407 wird der Vektor
wie folgt berechnet:
wobei
Tr
L ein Abschneideoperator der Größe L ist und
-
15 ist ein Steuerungsablaufdiagramm für die Routine „µ
m bestimmen“, die bei Schritt
1306 in
13 aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Bei Schritt
1501 wird ein Parameter µ_Skala
(m) wie folgt berechnet:
-
Bei Schritt
1502 geht die Steuerung dann, wenn µ_Skala
(m) größer ist als der Wert „1“, zu Schritt
1503 über, andernfalls geht die Steuerung zu Schritt
1504 über. Bei Schritt
1503 wird µ
m der Wert
zugewiesen. Bei Schritt
1504 wird µ
m der Wert „0,2“ zugewiesen.
-
16 ist ein Steuerungsablaufdiagramm für die Routine „γ
m bestimmen“, die bei Schritt
1307 in
13 aufgerufen wird und die ein Ausführungsbeispiel der vorliegenden Erfindung darstellt. Bei Schritt
1601 wird ein Parameter γ_Skala
(m) wie folgt berechnet:
-
Bei Schritt
1602 geht die Steuerung dann, wenn
für M Entscheidungsperioden, zu Schritt
1603 über, andernfalls geht die Steuerung zu Schritt
1604 über. Bei Schritt
1603 wird ein Parameter c
m wie folgt rekursiv berechnet:
-
Bei Schritt
1604 wird der Parameter c
m wie folgt rekursiv berechnet:
-
Bei Schritt
1605 wird γ
m ein Wert gemäß
zugewiesen, wobei α
m bei Schritt
1402 der
14 berechnet wird. Bei Schritt
1606 geht die Steuerung dann, wenn γ_Skala
(m) größer ist als „1“, zu Schritt
1607 über. Bei Schritt
1607 wird γ
m der Wert
zugewiesen.
-
Die vorstehende Beschreibung verwendete zu Erläuterungszwecken eine spezifische Nomenklatur, um ein gründliches Verständnis der Erfindung zu vermitteln. Jedoch wird Fachleuten einleuchten, dass die spezifischen Einzelheiten zum Praktizieren der Erfindung nicht notwendig sind. Die vorstehenden Beschreibungen spezifischer Ausführungsbeispiele der vorliegenden Erfindung werden zu Veranschaulichungs- und Beschreibungszwecken präsentiert. Sie sollen nicht erschöpfend sein oder die Erfindung auf die genauen offenbarten Formen beschränken. Offensichtlich sind angesichts der obigen Lehren viele Modifikationen und Variationen möglich. Die Ausführungsbeispiele werden gezeigt und beschrieben, um die Prinzipien der Erfindung und deren praktische Anwendungen am besten zu erläutern, um dadurch andere Fachleute zu befähigen, die Erfindung und verschiedene Ausführungsbeispiele mit verschiedenen Modifikationen, wie sie für die jeweilige in Betracht gezogene Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die folgenden Patentansprüche und deren Äquivalente definiert sei: