DE112007000974B4 - Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen - Google Patents

Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen Download PDF

Info

Publication number
DE112007000974B4
DE112007000974B4 DE112007000974.8T DE112007000974T DE112007000974B4 DE 112007000974 B4 DE112007000974 B4 DE 112007000974B4 DE 112007000974 T DE112007000974 T DE 112007000974T DE 112007000974 B4 DE112007000974 B4 DE 112007000974B4
Authority
DE
Germany
Prior art keywords
vector
impulse response
shadow
recursive
approximate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112007000974.8T
Other languages
English (en)
Other versions
DE112007000974T5 (de
Inventor
Majid Fozunbal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/407,413 external-priority patent/US8045730B1/en
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112007000974T5 publication Critical patent/DE112007000974T5/de
Application granted granted Critical
Publication of DE112007000974B4 publication Critical patent/DE112007000974B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Telephone Function (AREA)

Abstract

Verfahren zum Bestimmen eines Ungefähr-Impulsantwort-Vektors zum Unterdrücken eines akustischen Echos bei einem Audiosignal, das von einer ersten Örtlichkeit (102) an eine zweite Örtlichkeit (104) gesendet wird, wobei das Verfahren für eine Entscheidungsperiode folgende Schritte umfasst:
Berechnen eines Rekursivspezifikationsvektors auf der Basis des Rekursivspezifikationsvektors und eines Ungefähr-Impulsantwort-Vektors der vorherigen Entscheidungsperiode, wobei der Rekursivspezifikationsvektor eine Form einer Vertrauensregion (1320, 1328) innerhalb eines Suchraums (1322) definiert;
Berechnen einer Schattenaktualisierungsschrittgröße (γm) und einer Anpassungsschrittgröße (γm) auf der Basis des berechneten Rekursivspezifikationsvektors;
Berechnen eines Rekursivschattenimpulsantwortvektors auf der Basis des Rekursivschattenimpulsantwortvektors der vorherigen Entscheidungsperiode und der berechneten Schattenaktualisierungsschrittgröße (µm), wobei der Rekursivschattenimpulsantwortvektor im Wesentlichen in der Vertrauensregion liegt; und
Berechnen des Ungefähr-Impulsantwort-Vektors auf der Basis des berechneten Rekursivschattenimpulsantwortvektors, der berechneten Anpassungsschrittgröße (γm) und des Ungefähr-Impulsantwort-Vektors der vorherigen Entscheidungsperiode.

Description

  • 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 y ( t ) = s ( t ) + f ( x ( t ) ) + v ( t )
    Figure DE112007000974B4_0001
    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 „ h ¯ ^ ( m )
      Figure DE112007000974B4_0002
      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 „ ε ¯ ^ ( m )
      Figure DE112007000974B4_0003
      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 x [ n ] = d δ [ n p ]
    Figure DE112007000974B4_0004
    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: δ [ n p ] = { 1 wenn  n = p 0 ansonsten
    Figure DE112007000974B4_0005
  • 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: h [ n ] = h ¯ n = [ h n [ 0 ] h n [ 1 ] h n [ L 1 ] ]
    Figure DE112007000974B4_0006
    wobei hn[·] 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: h [ 0 ] = h ¯ 0 = [ h 0 [ 0 ] h 0 [ 1 ] h 0 [ 2 ] ] = [ 1 1 0,25 ]
    Figure DE112007000974B4_0007
  • Ü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 xc[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: h ¯ = [ h [ 0 ] h [ 1 ] ] = [ 1 1 ]
    Figure DE112007000974B4_0008
    und x ¯ [ n ] = [ x [ n ] x [ n 1 ] ]
    Figure DE112007000974B4_0009
    berechnet wird. Die Reihenfolge der Komponenten in den Spaltenvektoren h ¯  and  x ¯ [ n ]
    Figure DE112007000974B4_0010
    sind in Bezug aufeinander in der zeitlichen Reihenfolge entgegengesetzt. Beispielsweise erscheint bei dem Spaltenvektor h ¯
    Figure DE112007000974B4_0011
    die erste Komponente h[0] zeitlich früher als die zweite Komponente h[1], während bei dem Spaltenvektor x ¯ [ n ]
    Figure DE112007000974B4_0012
    die erste Komponente x[n] zeitlich später auftritt als die zweite Komponente x[n-1]. Man beachte, dass Komponenten des Vektors x ¯ [ n ] ,
    Figure DE112007000974B4_0013
    die mit Negativwerten versehenen Zeitabtastwerten entsprechen, der Wert „0“ zugewiesen ist. Beispielsweise wird die erste Komponente 406 in 4D durch x c [ 0 ] = [ h [ 0 ] , h [ 1 ] ] T [ x [ 0 ] x [ 1 ] ] = [ 1, 1 ] T [ 2 0 ] = 2
    Figure DE112007000974B4_0014
    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 x c [ 1 ] = [ h [ 0 ] , h [ 1 ] T ] [ x [ 1 ] x [ 0 ] ] = [ 1, 1 ] T [ 1 2 ] = 1,
    Figure DE112007000974B4_0015
    x c [ 2 ] = [ h [ 0 ] , h [ 1 ] T ] [ x [ 2 ] x [ 1 ] ] = [ 1, 1 ] T [ 2 1 ] = 3
    Figure DE112007000974B4_0016
    bzw. x c [ 3 ] = [ h [ 0 ] , h [ 1 ] T ] [ x [ 3 ] x [ 2 ] ] = [ 1, 1 ] T [ 0 2 ] = 2,
    Figure DE112007000974B4_0017
    berechnet.
  • Allgemein wird eine Komponente eines gefalteten Digitalsignals xc[n] mathematisch durch x c [ n ] = x [ n ] * h [ n ] = h ¯ n x ¯ [ n ] = i = 0 L 1 h n [ i ] x [ n i ]
    Figure DE112007000974B4_0018
    wobei „*“ ein Symbol ist, das eine Faltung darstellt, und durch x ¯ [ n ] = [ x [ n ] x [ n 1 ] x [ n ( L 1 ) ] ]
    Figure DE112007000974B4_0019
    ermittelt. Um eine gefaltete Signalkomponente xc[n] zu berechnen, werden die zuvor erhalten L Digitalsignalkomponenten des Digitalsignals x[n] verwendet, und den Komponenten des Vektors x ¯ [ n ] ,
    Figure DE112007000974B4_0020
    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 x c [ n ] = x [ n ] * h [ n ] = [ h n [ 0 ] h n [ 1 ] h n [ 2 ] h n [ 3 ] h n [ 4 ] ] T [ x [ n ] x [ n 1 ] x [ n 2 ] x [ n 3 ] x [ n 4 ] ] = i = 0 4 h n [ i ] x [ n i ]
    Figure DE112007000974B4_0021
    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 y [ n ] = s [ n ] + x c [ n ] + v [ n ]
    Figure DE112007000974B4_0022
    dargestellt ist, wobei
    xc[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 r ^ [ n ] = y [ n ] x [ n ] * h ^ [ n ] = s [ n ] + ( x [ n ] * h [ n ] x [ n ] * h ^ [ n ] ) + v [ n ] s [ n ] + v [ n ]
    Figure DE112007000974B4_0023
    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: X [ k ] = 1 L n = 0 L 1 x [ n ] exp ( j 2 π k n L )
    Figure DE112007000974B4_0024
    wobei k ein Inverszeitabtastwertindex mit den Einheiten der Inverszeit oder -frequenz ist, und j = 1 .
    Figure DE112007000974B4_0025

  • 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: x [ n ] * h [ n ] = k = 0 N 1 X [ k ] H [ k ] exp ( j 2 π k n N )
    Figure DE112007000974B4_0026
    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 h ¯ n
    Figure DE112007000974B4_0027
    dargestellt werden. Eine Eigenschaft der Impulsantwort besteht darin, dass: h ¯ n T L
    Figure DE112007000974B4_0028
    wobei
    L ein L-dimensionaler Vektorraum ist,
    T
    Figure DE112007000974B4_0029
    ein an dem Ursprung in ℝL zentrierter Satz mit einem Radius von E
    Figure DE112007000974B4_0030
    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: h ¯ n = i = 0 L 1 ( h n [ i ] ) 2 < 2 E
    Figure DE112007000974B4_0031
  • Obwohl in der Praxis eine Impulsantwort h ¯ n
    Figure DE112007000974B4_0032
    während einer Unterdrückung akustischer Echos nicht mit Gewissheit bekannt ist, beruhen Verfahren der vorliegenden Erfindung darauf, eine ungefähre Impulsantwort h ¯ ^ n
    Figure DE112007000974B4_0033
    zu erhalten, die den mittleren Fehler minimiert: J h n ( h ^ ) = ( y [ n ] h ¯ ^ n x ¯ [ n ] ) 2 d P h n
    Figure DE112007000974B4_0034
    wobei ( y [ n ] h ¯ ^ n x ¯ [ n ] ) 2
    Figure DE112007000974B4_0035
    der Fehler zwischen dem Digitalsignal y[n] und dem akustischen Echo h ¯ ^ n T x ¯ [ n ]
    Figure DE112007000974B4_0036
    ist, und
    Ph n eine dem Fehler ( y [ n ] h ¯ ^ n x ¯ [ n ] ) 2
    Figure DE112007000974B4_0037
    zugeordnete Verteilungsdichte der Verbundwahrscheinlichkeit ist.
  • Den mittleren Fehler Jh n (ĥ) kann man sich auch als Erwartungswert einer Zufallsvariable ( y [ n ] h ¯ ^ n x ¯ [ n ] ) 2
    Figure DE112007000974B4_0038
    mit einer zugeordneten Wahrscheinlichkeit Ph n vorstellen.
  • Das Verfahren der vorliegenden Erfindung erzeugt ungefähre Impulsantworten h ¯ ^ n ,
    Figure DE112007000974B4_0039
    die den mittleren Fehler J h n ( h ¯ ^ n )
    Figure DE112007000974B4_0040
    minimieren und die folgende Bedingung erfüllen: h ¯ n h ¯ ^ n = inf { h ¯ n h ¯ ^ n : h ¯ ^ n ε n ( h ¯ ^ n ) }
    Figure DE112007000974B4_0041
    wobei h ¯ n h ¯ ^ n = i = 1 L ( h n [ i ] h ^ n [ i ] ) 2 ,
    Figure DE112007000974B4_0042
    und ε n ( h ¯ ^ n ) = { h ¯ ^ n U : J h n ( h ¯ ^ ) < σ z 2 ( n ) + ε n σ x 2 ( n ) E }
    Figure DE112007000974B4_0043
  • Bei dem Satz ε n ( h ¯ ^ n )
    Figure DE112007000974B4_0044
    ist U ein an dem Ursprung in ℝL zentrierter Satz mit einem Radius von E
    Figure DE112007000974B4_0045
    und wird als „Suchraum“ bezeichnet, εn ist eine subjektiv kleine positive reelle Zahl, σ z 2 ( n ) = inf h ^ n U J h n ( h ¯ ^ n )  und  σ x ¯ 2 ( n ) = x ¯ [ n ] 2 d P h n
    Figure DE112007000974B4_0046
    ist die Varianz des Digitalsignalvektors x ¯ [ n ] .
    Figure DE112007000974B4_0047
    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 h ¯ ^ n
    Figure DE112007000974B4_0048
  • Das Verfahren der vorliegenden Erfindung beruht auch auf der Annahme, dass eine Impulsantwort h ¯ ^ n
    Figure DE112007000974B4_0049
    über Nc Zeitabtastwerte hinweg eine geringe Variation aufweist und die maximale Abweichung zwischen Nc Zeitabtastwerten durch h ¯ n h ¯ n + N c 2 E
    Figure DE112007000974B4_0050
    begrenzt ist.
  • Der Paramter Nc wird als „Kohärenzzeit“ bezeichnet. Folglich wird, statt eine ungefähre Impulsantwort h ¯ ^ n
    Figure DE112007000974B4_0051
    für jeden Zeitabtastwert n zu bestimmen, eine ungefähre Impulsantwort h ¯ ^ n
    Figure DE112007000974B4_0052
    zu Beginn jeder Nd Zeitabtastwerte bestimmt, wobei Nd << Nc und m eine positive Ganzzahl ist. Ein Intervall mit Nd 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 (Nd = 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 h ¯ ^ m
    Figure DE112007000974B4_0053
    bei jeder Entscheidungsepoche. Beispielsweise wird zu Beginn der Entscheidungsperiode 808 eine anfängliche ungefähre Impulsantwort h ¯ ^ 1
    Figure DE112007000974B4_0054
    bereitgestellt. Zu Beginn der Entscheidungsperiode 810 wird eine neue ungefähre Impulsantwort h ¯ ^ 2
    Figure DE112007000974B4_0055
    berechnet. Allgemein wird zu Beginn einer Entscheidungsperiode (m-1)Nd 812 eine ungefähre Impulsantwort h ¯ ^ m
    Figure DE112007000974B4_0056
    berechnet und wird für jeden Zeitabtastwert n in dem Intervall [(m-1)Nd,mNd-1] verwendet.
  • In der Praxis kann der mittlere Fehler J h o ( h ¯ ^ )
    Figure DE112007000974B4_0057
    nicht direkt berechnet werden, da die Verteilungsdichte der Verbundwahrscheinlichkeit Ph n , die jeder Impulsantwort h ¯ n
    Figure DE112007000974B4_0058
    zugeordnet ist, unbekannt ist. Jedoch kann der mittlere Fehler J h o ( h ¯ ^ )
    Figure DE112007000974B4_0059
    durch einen empirischen mittleren Fehler angenähert werden: J h o ( h ¯ ^ ) J m h ¯ ^ n = 1 N d ( m m 0 ) i = m n + 1 m Y ¯ i X ¯ i h ¯ ^ n 2
    Figure DE112007000974B4_0060
    wobei
    m0 eine beliebige Entscheidungsepoche ist,
    m > m0 and
    die in dieser und in nachfolgenden Gleichungen verwendete Hochstellung (m) die Entscheidungsepoche identifiziert.
  • Eine ungefähre Impulsantwort h ¯ ^ m
    Figure DE112007000974B4_0061
    kann bestimmt werden, indem der empirische mittlere Fehler J ( m ) ( h ¯ ^ )
    Figure DE112007000974B4_0062
    über den Suchraum U minimiert wird, um eine minimale empirische Gleichung zu liefern: h ¯ ^ m = ( R ¯ ^ X X m + λ m I ¯ ) i R ¯ ^ X Y m
    Figure DE112007000974B4_0063
    wobei der Überbalken eine Matrix identifiziert, R ¯ ^ X X m = 1 N d ( m m 0 ) i = m 0 + 1 m X ¯ i T X ¯ i ,
    Figure DE112007000974B4_0064
    R ¯ ^ X Y m = 1 N d ( m m 0 ) i = m 0 + 1 m X ¯ i T Y ¯ i ,
    Figure DE112007000974B4_0065
  • I eine m-mal-m-Identitätsmatrix ist, X ¯ i = [ x [ i N d 1 ] x [ i N d L ] x [ i N d 2 ] x [ i N d L 1 ] x [ ( i N d 1 ) N d ] x [ ( i 1 ) N d L + 1 ] ] ,
    Figure DE112007000974B4_0066
    und Y ¯ T = [ x [ ( i N d 1 ) N d ] x [ ( i N d 2 ) ] x [ ( i N d 1 ) N d ] ] T
    Figure DE112007000974B4_0067
  • Die Konstante λm in der minimalen empirischen Gleichung ist ein kleinster positiver Wert, der gewährleistet, dass h ¯ ^ m
    Figure DE112007000974B4_0068
    ein Element des Suchraums U ist. Jedoch ist eine Verwendung der minimalen empirischen Gleichung, um die ungefähre Impulsantwort h ¯ ^ m
    Figure DE112007000974B4_0069
    zu bestimmen, rechentechnisch aufwändig. Der Rechenaufwand kann verringert werden, indem eine stochastische Annäherung in Form einer rekursiven Gleichung angewendet wird: h ¯ ^ m = h ¯ ^ m 1 + γ m Q ¯ m [ X ¯ m ' ( Y ¯ m X ¯ m h ¯ ^ m 1 ) ]
    Figure DE112007000974B4_0070
    wobei
    Q ¯ m
    Figure DE112007000974B4_0071
    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 h ¯ ^ m
    Figure DE112007000974B4_0072
    zu bestimmen, der auch die folgende Bedingung erfüllt: h ^ m H δ m ( m )
    Figure DE112007000974B4_0073
    wobei H δ m ( m ) = { h ¯ ^ m U : J ( m ) ( h ¯ ^ ) < v ( m ) + δ m σ x 2 ( m ) E }
    Figure DE112007000974B4_0074
    v ( m ) = inf h ¯ ^ m U   J ( m ) ( h ¯ ^ m ) ,
    Figure DE112007000974B4_0075
    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 xrec[n], das in dem Raum 104 erzeugt wurde, wie folgt: x [ n ] = a x [ n 1 ] + 0,5 ( 1 + a ) ( x r e c [ n ] x r e c [ n 1 ] )
    Figure DE112007000974B4_0076
    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 ymic[n], das in dem nahen Raum 102 erzeugt wird, wie folgt: y [ n ] = a y [ n 1 ] + 0,5 ( 1 + a ) ( y m i c [ n ] y m i c [ n 1 ] )
    Figure DE112007000974B4_0077
  • 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 y ¯ ( m ) [ n ] ,
    Figure DE112007000974B4_0078
    nachstehend unter Bezugnahme auf Schritt 1004 in 10A beschrieben. Der Parameter N ist die Anzahl von Digitalsignalen, die zum Bilden der Frequenzbereichsvektoren X ¯ ( m ) ,   Y ¯ ( m )  und  H ¯ ^ ( m )
    Figure DE112007000974B4_0079
    verwendet werden. Die Parameter β, η, λ, K1 und K2 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 Gmax und Gmin 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
    σ ˙ x 2 ( 0 )
    Figure DE112007000974B4_0080
    0,01
    σ ˙ y 2 ( 0 )
    Figure DE112007000974B4_0081
    0,01
    σ ˙ r ^ 2 ( 0 )
    Figure DE112007000974B4_0082
    0,01
    σ n 2 ( 0 )
    Figure DE112007000974B4_0083
    0,01
    σ x 2 ( 0 )
    Figure DE112007000974B4_0084
    0,01
    σ y 2 ( 0 )
    Figure DE112007000974B4_0085
    0,01
    M x 2 ( 0 )
    Figure DE112007000974B4_0086
    0
    M y 2 ( 0 )
    Figure DE112007000974B4_0087
    0
    G(0) 0
  • Die Parameter σ ˙ x 2 ( 0 )  und  σ ˙ y 2 ( 0 )
    Figure DE112007000974B4_0088
    sind kurzfristige Energievarianzen, die den Digitalsignalen x(m)[n] und y(m)[n] zugeordnet sind. Der Parameter σ ˙ r ^ 2 ( 0 )
    Figure DE112007000974B4_0089
    ist die kurzfristige Energievarianz, die der Energie in dem Ausgangssignal r̂[n] zugeordnet ist. Die Parameter σ x 2 ( 0 )  und  σ y 2 ( 0 )
    Figure DE112007000974B4_0090
    sind langfristige Energievarianzen, die den Digitalsignalen x(m)[n] und y(m)[n] zugeordnet sind. Der Parameter σ x 2 ( 0 )
    Figure DE112007000974B4_0091
    ist eine langfristige Energievarianz, die dem Rauschen v[n] zugeordnet ist. Die Parameter M x 2 ( 0 )  und  M y 2 ( 0 )
    Figure DE112007000974B4_0092
    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 S ¯ x x ( 0 ) ,   S ¯ r ¯ r ¯ ( 0 ) ,   Λ ¯ ( 0 ) ,   h ¯ ^ ( 0 )  und  h ¯ ^ ( 0 ) ,
    Figure DE112007000974B4_0093
    die sich während Iterationen des nachstehend unter Bezugnahme auf 13-14 beschriebenen Verfahrens ändern: Tabelle 3
    Vektorkomponente Anfangswert Komponentenindex
    S x x ( 0 ) [ k ]
    Figure DE112007000974B4_0094
    1,0 k = 0, ..., N-1
    S r ¯ r ¯ ( 0 ) [ k ]
    Figure DE112007000974B4_0095
    1,0 k = 0, ..., N-1
    Λ(0)[n'] 1,0 n' = 0, ..., L-1
    h ¯ ( 0 ) [ n ' ]
    Figure DE112007000974B4_0096
    0,0 n' = 0, ..., L-1
    (0)[n'] 0,0 n' = 0, ..., L-1
  • Der Vektor S ¯ x x ( 0 )
    Figure DE112007000974B4_0097
    ist ein anfängliches mittleres Spektrum, das dem Vektor X (m) zugeordnet ist, und der Vektor S ¯ r ¯ r ¯ ( 0 )
    Figure DE112007000974B4_0098
    ist ein anfängliches mittleres Spektrum, das einem Vektor R ¯ ¯ ( m )
    Figure DE112007000974B4_0099
    zugeordnet ist, die nachstehend unter Bezugnahme auf Schritt 1302 in 13A beschrieben werden. Der Vektor Λ ¯ ( 0 )
    Figure DE112007000974B4_0100
    definiert eine entstehende hyperelliptische Region, die nachstehend unter Bezugnahme auf Schritt 1305 in 13A beschrieben wird. Der Vektor h ¯ ¯ ( 0 )
    Figure DE112007000974B4_0101
    ist ein Anfangsschattenimpulsantwortvektor, der nachstehend unter Bezugnahme auf Schritt 1308 in 13A beschrieben wird. Der Vektor h ¯ ^ ( 0 )
    Figure DE112007000974B4_0102
    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: x ¯ ( m ) [ n ] = [ x ( m ) [ n ] x ( m ) [ n 1 ] x ( m ) [ n ( L + P 1 ) ] ] ,
    Figure DE112007000974B4_0103
    und die Digitalsignale y(m)[n] werden dazu verwendet, einen P-Komponente-Digitalsignalvektor zu bilden: y ¯ ( m ) [ n ] = [ y ( m ) [ n ] y ( m ) [ n 1 ] y ( m ) [ n ( P 1 ) ] ]
    Figure DE112007000974B4_0104
  • Bei Schritt 1006 wird eine FFT auf die Vektoren x ¯ ( m ) [ n ] , y ¯ ( m ) [ n ]  und  h ¯ ^ ( m 1 )
    Figure DE112007000974B4_0105
    angewendet, um Frequenzbereichsvektoren zu erhalten: X ¯ ( m ) = [ X ( m ) [ 0 ] X ( m ) [ 1 ] X ( m ) [ N 1 ] ] = F F T { [ x ( m ) [ n ] x ( m ) [ n 1 ] x ( m ) [ n ( L + P 1 ) ] ] } ,
    Figure DE112007000974B4_0106
    Y ¯ ( m ) = [ Y ( m ) [ 0 ] Y ( m ) [ 1 ] Y ( m ) [ N 1 ] ] = F F T { [ y ( m ) [ n ] y ( m ) [ n 1 ] y ( m ) [ n ( P 1 ) ] ] }
    Figure DE112007000974B4_0107
    und H ¯ ( m 1 ) = [ H ( m 1 ) [ 0 ] H ( m 1 ) [ 1 ] H ( m 1 ) [ N 1 ] ] = F F T { [ h ( m 1 ) [ n ] h ( m 1 ) [ n 1 ] h ( m 1 ) [ n ( L 1 ) ] ] }
    Figure DE112007000974B4_0108
  • Bei Schritt 1007 wird ein Ausgangssignalvektor wie folgt berechnet: r ¯ ^ ( m ) [ n ] = T r N d I F F T { Y ¯ ( m ) X ¯ ( m ) o ( H ¯ ^ ( m 1 ) ) }
    Figure DE112007000974B4_0109
    wobei
    TrN d ein Abschneideoperator einer Länge Nd ist,
    „◦“ eine komponentenweise Multiplikation zweier Vektoren darstellt, r ¯ ^ ( m ) [ n ] = [ r ^ ( m ) [ n ] r ^ ( m ) [ n 1 ] r ^ ( m ) [ n ( N d 1 ) ] ]
    Figure DE112007000974B4_0110
    und
    (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: ( 1,2,3 ) ( 3,1,2 ) = ( 1 3,2 1,3 2 ) = ( 3,2,6 )
    Figure DE112007000974B4_0111
  • 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 mNd-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 SNEO oder SNS 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 h ¯ ^ ( m )
    Figure DE112007000974B4_0112
    entsprechenden Werten in der Impulsantwort h ¯ ^ ( m 1 )
    Figure DE112007000974B4_0113
    aus der vorherigen Entscheidungsperiode zugewiesen werden, und der Schattenimpulsantwortvektor wird aktualisiert, indem Elemente in dem Schattenimpulsantwortvektor h ¯ ^ ( m )
    Figure DE112007000974B4_0114
    entsprechenden Elementen in dem Schattenimpulsantwortvektor h ¯ ^ ( m 1 )
    Figure DE112007000974B4_0115
    aus der vorherigen Entscheidungsperiode zugewiesen werden. Bei Schritt 1017 geht die Steuerung dann, wenn der CS SFEO ist, zu Schritt 1018 über, andernfalls ist der CS SDT und die Steuerung geht zu Schritt 1019 über. Bei Schritt 1018 wird die Routine „ h ¯ ^ ( m )
    Figure DE112007000974B4_0116
    bestimmen“ aufgerufen, und ein Ungefähr-Impulsantwort-Vektor h ¯ ^ ( m )
    Figure DE112007000974B4_0117
    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 h ¯ ^ ( m )
    Figure DE112007000974B4_0118
    aus einer durch den Satz { h ¯ ^ ( m k ) , , h ¯ ^ ( m l ) }
    Figure DE112007000974B4_0119
    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 h ¯ ^ ( m k )
    Figure DE112007000974B4_0120
    bereits am längsten in der Datenstruktur, und der Impulsantwortvektor h ¯ ^ ( m l )
    Figure DE112007000974B4_0121
    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 h ¯ ^ ( m k )
    Figure DE112007000974B4_0122
    ist. Die Impulsantwortdatenstruktur wird in der Routine „ h ¯ ^ ( m )
    Figure DE112007000974B4_0123
    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 SFEO-, SNEO- oder SNS-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 { h ¯ ^ ( m k ) , , h ¯ ^ ( m l ) }
    Figure DE112007000974B4_0124
    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 x ¯ ( m ) [ n ] , y ¯ ( m ) [ n ] , r ¯ ^ ( m ) [ n ]
    Figure DE112007000974B4_0125
    und einem Schattenfehlervektor r ¯ ˜ ( m ) [ n ]
    Figure DE112007000974B4_0126
    zugeordnet sind, wie folgt: E x 2 ( m ) = x ¯ ( m ) [ n ] 2 ,
    Figure DE112007000974B4_0127
    E y 2 ( m ) = y ¯ ( m ) [ n ] 2 ,
    Figure DE112007000974B4_0128
    E r ^ 2 ( m ) = r ¯ ^ ( m ) [ n ] 2
    Figure DE112007000974B4_0129
    und E r ¯ 2 ( m ) = r ¯ ¯ ( m ) [ n ] 2
    Figure DE112007000974B4_0130
  • Bei Schritt 1102 werden langfristige Energievarianzen für die mittleren quadratischen Energien durch Folgendes rekursiv bestimmt: σ x 2 ( m ) [ n ] = 0.99 σ x 2 ( m 1 ) [ n ] + 0.01 E x 2 ( m ) ,
    Figure DE112007000974B4_0131
    σ y 2 ( m ) [ n ] = 0.99 σ y 2 ( m 1 ) [ n ] + 0.01 E y 2 ( m ) ,
    Figure DE112007000974B4_0132
    and σ n 2 ( m ) [ n ] = 0.99 σ n 2 ( m 1 ) [ n ] + 0.01 E r ¯ 2 ( m )
    Figure DE112007000974B4_0133
  • Die Koeffizienten 0,99 und 0,01 sind Gewichte, die den Varianzen σ x 2 ( m 1 ) [ n ] , σ y 2 ( m 1 ) [ n ] , und σ n 2 ( m 1 ) [ n ] ,
    Figure DE112007000974B4_0134
    eine höhere relative Bedeutung zuweisen als den mittleren quadratischen Energien E x 2 ( m ) , E y 2 ( m ) und E r ¯ 2 ( m ) .
    Figure DE112007000974B4_0135
    In den Schritten 1103-1107 wird eine maximale quadratische Energie M x 2 ( m ) ,
    Figure DE112007000974B4_0136
    die dem Digitalsignalvektor x ¯ ( m ) [ n ]
    Figure DE112007000974B4_0137
    zugeordnet ist, bestimmt. Bei Schritt 1103 geht die Steuerung dann, wenn die maximale quadratische Energie M x 2 ( m 1 )
    Figure DE112007000974B4_0138
    geringer ist als die mittlere quadratische Energie E x 2 ( m ) ,
    Figure DE112007000974B4_0139
    zu Schritt 1104 über, andernfalls geht die Steuerung zu Schritt 1105 über. Bei Schritt 1104 wird die maximale quadratische Energie durch Folgendes berechnet: M x 2 ( m ) = min { E x 2 ( m ) ,10 M x 2 ( m 1 ) } ,
    Figure DE112007000974B4_0140
    und die Steuerung geht zu Schritt 1108 über. Bei Schritt 1105 geht die Steuerung dann, wenn die mittlere quadratische Energie E x 2 ( m )
    Figure DE112007000974B4_0141
    größer ist als die maximale quadratische Energie M x 2 ( m 1 ) ,
    Figure DE112007000974B4_0142
    zu Schritt 1106 über, andernfalls geht die Steuerung zu Schritt 1107 über. Bei Schritt 1106 wird die maximale quadratische Energie berechnet durch: M x 2 ( m ) = 0.999   M x 2 ( m 1 ) + 0.001   E x 2 ( m ) ,
    Figure DE112007000974B4_0143
    und die Steuerung geht zu Schritt 1108 über. Die Koeffizienten 0,999 und 0,001 weisen der maximalen quadratischen Energie M x 2 ( m 1 )
    Figure DE112007000974B4_0144
    eine höhere relative Bedeutung zu als der mittleren quadratischen Energie E x 2 ( m ) .
    Figure DE112007000974B4_0145
    Bei Schritt 1107 wird der maximalen quadratischen Energie M x 2 ( m )
    Figure DE112007000974B4_0146
    der Wert M x 2 ( m 1 )
    Figure DE112007000974B4_0147
    zugewiesen. In den Schritten 1108-1112 wird eine maximale quadratische Energie M y 2 ( m ) ,
    Figure DE112007000974B4_0148
    die dem Digitalsignalvektor y ¯ ( m ) [ n ]
    Figure DE112007000974B4_0149
    zugeordnet ist, bestimmt. Bei Schritt 1108 geht die Steuerung dann, wenn die maximale quadratische Energie M y 2 ( m 1 )
    Figure DE112007000974B4_0150
    geringer ist als die mittlere quadratische Energie E y 2 ( m ) ,
    Figure DE112007000974B4_0151
    zu Schritt 1109 über, andernfalls geht die Steuerung zu Schritt 1110 über. Bei Schritt 1109 wird die maximale quadratische Energie durch: M y 2 ( m ) = min { E y 2 ( m ) ,10 M y 2 ( m 1 ) }
    Figure DE112007000974B4_0152
    berechnet, und die Steuerung geht zu Schritt 1113 über, in 11B. Bei Schritt 1110 geht die Steuerung dann, wenn die mittlere quadratische Energie E y 2 ( m )
    Figure DE112007000974B4_0153
    größer ist als die maximale quadratische Energie M y 2 ( m 1 ) ,
    Figure DE112007000974B4_0154
    zu Schritt 1111 über, andernfalls geht die Steuerung zu Schritt 1112 über. Bei Schritt 1111 wird die maximale quadratische Energie durch: M y 2 ( m ) = 0.999   M y 2 ( m 1 ) + 0.001   E y 2 ( m )
    Figure DE112007000974B4_0155
    berechnet, und die Steuerung geht zu Schritt 1113 über. Bei Schritt 1112 wird der maximalen Energie M y 2 ( m )
    Figure DE112007000974B4_0156
    der Wert M y 2 ( m 1 )
    Figure DE112007000974B4_0157
    zugewiesen.
  • In den Schritten 1113-1124 der 11B werden die mittleren quadratischen Energien E x 2 ( m )  und  E r ¯ 2 ( m ) ,
    Figure DE112007000974B4_0158
    langfristige Energievarianzen σ x 2 ( m ) [ n ] ,   σ y 2 ( m ) [ n ]  und  σ n 2 ( m ) [ n ]
    Figure DE112007000974B4_0159
    und maximale Energien M x 2 ( m )  und  M y 2 ( m )
    Figure DE112007000974B4_0160
    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 E r ¯ 2 ( m )
    Figure DE112007000974B4_0161
    größer als oder gleich 0.05 σ y 2 ( m 1 ) [ n ] / σ n 2 ( m 1 ) [ n ]
    Figure DE112007000974B4_0162
    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 E x 2 ( m )
    Figure DE112007000974B4_0163
    größer als oder gleich 0,01 M x 2 ( m )
    Figure DE112007000974B4_0164
    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 σ x 2 ( m ) [ n ]
    Figure DE112007000974B4_0165
    geringer ist als 0.01   M x 2 ( m ) ,
    Figure DE112007000974B4_0166
    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 σ y 2 ( m ) [ n ]
    Figure DE112007000974B4_0167
    geringer ist als 0.01   M y 2 ( m ) ,
    Figure DE112007000974B4_0168
    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 SNEO, 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 SNS, 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 SFEO, 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 SDT, andernfalls geht die Steuerung zu Schritt 1133 über. Bei Schritt 1133 sind kurzfristige Varianzen, die den mittleren quadratischen Energien E x 2 ( m )  und  E r ¯ 2 ( m )
    Figure DE112007000974B4_0169
    zugeordnet sind, durch Folgendes gegeben: σ ˙ y 2 ( m ) [ n ] = 0.8 σ ˙ y 2 ( m 1 ) [ n ] + 0.2 E y 2 ( m )
    Figure DE112007000974B4_0170
    und σ ˙ r ¯ 2 ( m ) [ n ] = 0.8 σ ˙ r ^ 2 ( m 1 ) [ n ] + 0.2 E r ^ 2 ( m )
    Figure DE112007000974B4_0171
  • Die die Koeffizienten der kurzfristigen Varianz 0,8 und 0,2 sind Gewichte, die den Varianzen σ ˙ y 2 ( m 1 ) [ n ]  und  σ ˙ r ^ 2 ( m 1 ) [ n ]
    Figure DE112007000974B4_0172
    eine höhere relative Bedeutung zuweisen als den mittleren quadratischen Energien E y 2 ( m )  und  E r ^ 2 ( m ) .
    Figure DE112007000974B4_0173
    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: E R L E ( m ) = 10  log 10 ( σ ˙ y 2 ( m ) [ n ] σ ˙ r ^ 2 ( m ) [ n ] )
    Figure DE112007000974B4_0174
    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 SFEO befindet. Der Wert von ERLE(m) ist während SFEO größer als während SDT.
  • 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 Gmax bzw. Gmin 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 SDT oder SNEO ist, zu Schritt 1202 über, andernfalls ist der CS entweder SNS oder SNEO, und die Steuerung geht zu Schritt 1203 über. Bei Schritt 1202 wird der Gewinn wie folgt berechnet: G ( m ) = K 2 G ( m 1 ) + ( 1 K 2 ) G m a x
    Figure DE112007000974B4_0175
    wobei K2 ein Gewicht ist, das G(m-1) eine geringere relative Bedeutung zuweist als dem maximalen Gewinn Gmax. Bei Schritt 1203 wird der Gewinn wie folgt berechnet: G ( m ) = K 1 G ( m 1 ) + ( 1 K 1 ) G m m
    Figure DE112007000974B4_0176
    wobei K1 ein Gewicht ist, das G(m-1) eine höhere relative Bedeutung zuweist als dem minimalen Gewinn Gmin. Bei Schritt 1204 wird das Restsignal durch: r ( m ) [ n ] = G ( m ) r ^ ( m ) [ n ]
    Figure DE112007000974B4_0177
    bestimmt.
  • 13A ist ein Steuerungsablaufdiagramm für die Routine „ h ¯ ^ ( m )
    Figure DE112007000974B4_0178
    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 h ¯ ˜ ( m 1 )
    Figure DE112007000974B4_0179
    angewendet, um einen frequenzbereichsabhängigen Faktor zu erhalten: H ¯ ˜ ( m 1 ) = [ H ˜ ( m 1 ) [ 0 ] H ˜ ( m 1 ) [ 0 ] H ˜ ( m 1 ) [ N 1 ] ] = F F T { [ h ¯ ˜ ( m 1 ) [ n ] h ¯ ˜ ( m 1 ) [ n 1 ] h ¯ ˜ ( m 1 ) [ n ( L 1 ) ] ] }
    Figure DE112007000974B4_0180
  • Bei Schritt 1302 wird ein Frequenzbereichs-Schattenfehlervektor wie folgt berechnet: R ¯ ˜ ( m ) = F F T T r P I F F T { Y ¯ ( m ) X ¯ ( m ) ( H ¯ ˜ ( m 1 ) ) * }
    Figure DE112007000974B4_0181
    wobei TrP ein Abschneideoperator der Länge P ist, und R ¯ ˜ ( m ) = [ R ˜ ( m ) [ 0 ] R ˜ ( m ) [ 1 ] R ˜ ( m ) [ N 1 ] ]
    Figure DE112007000974B4_0182
  • Bei Schritt 1303 wird eine IFFT auf den Frequenzbereichs-Schattenfehlervektor angewendet, um einen Schattenfehlervektor zu erhalten: r ¯ ˜ ( m ) = F F T { R ¯ ˜ ( m ) }
    Figure DE112007000974B4_0183
  • Bei Schritt 1304 wird die Routine „ ε ¯ ¯ ( m )
    Figure DE112007000974B4_0184
    bestimmen“ aufgerufen. Bei Schritt 1305 wird ein entstehender Hyperellipsoidspezifikationsvektor gemäß der folgenden rekursiven Formel bestimmt: Λ ¯ ( m ) = ( 1 η ) Λ ¯ ( m 1 ) + η h ¯ ^ ( m 1 ) h ¯ ^ ( m 1 )
    Figure DE112007000974B4_0185
  • Der Parameter η ist ein Gewicht, das Λ ¯ ( m 1 )
    Figure DE112007000974B4_0186
    mehr Bedeutung beimisst als h ¯ ^ ( m 1 ) h ¯ ^ ( m 1 ) .
    Figure DE112007000974B4_0187
    Der Hyperellipsoidspezifikationsvektor Λ ¯ ( m )
    Figure DE112007000974B4_0188
    wird dazu verwendet, in der Routine „µm bestimmen“, die bei Schritt 1306 aufgerufen wird, die Schattenaktualisierungsschrittgröße µm zu berechnen. Der Hyperellipsoidspezifikationsvektor Λ ¯ ( m )
    Figure DE112007000974B4_0189
    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 ε ¯ ¯ ( m )
    Figure DE112007000974B4_0190
    und die bei Schritt 1306 bestimmte Schattenaktualisierungsschrittgröße µm dazu verwendet, einen Schattenimpulsantwortvektor rekursiv zu berechnen: h ¯ ¯ ( m ) = h ¯ ¯ ( m 1 ) + μ m ε ¯ ¯ ( m )
    Figure DE112007000974B4_0191
  • Bei Schritt 1309 wird die bei Schritt 1307 bestimmte Anpassungsschrittgröße γm dazu verwendet, den Ungefähr-Impulsantwort-Vektor wie folgt rekursiv zu berechnen: h ¯ ^ ( m ) = ( 1 γ m ) h ¯ ^ ( m 1 ) + γ m h ˜ ( m )
    Figure DE112007000974B4_0192
  • Der Parameter γm wird dazu verwendet, die Höhe der Bedeutung für den Schattenimpulsantwortvektor h ¯ ˜ ( m )
    Figure DE112007000974B4_0193
    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 h ¯ ^ ( m )
    Figure DE112007000974B4_0194
    sein. Bei Schritt 1311 wird die oben unter Bezugnahme auf Schritt 1021 beschriebene Impulsantwortdatenstruktur: { h ¯ ^ ( m k ) , h ¯ ^ ( m k 1 ) , , h ¯ ^ ( m 2 ) , h ¯ ^ ( m 1 ) }
    Figure DE112007000974B4_0195
    aktualisiert.
  • Die Impulsantwortvektoren sind in der Impulsantwortdatenstruktur in der Reihenfolge steigender Entscheidungsepochenwerte wie folgt angeordnet: mK < mK-1 <...<m2 < m1, wobei die Entscheidungsepoche mK einem Ungefähr-Impulsantwort-Vektor entspricht, der sich bereits am längsten in der Datenstruktur befindet, und die Entscheidungsepoche mI 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 h ¯ ˜ ( m k )
    Figure DE112007000974B4_0196
    aus der Datenstruktur beseitigt wird und der zuletzt berechnete Impulsantwortvektor h ¯ ˜ ( m )
    Figure DE112007000974B4_0197
    zu der bei Schritt 1309 berechneten Datenstruktur hinzugefügt wird, was die folgende Impulsantwortdatenstruktur liefert: { h ¯ ^ ( m k 1 ) , , h ¯ ^ ( m 2 ) , h ¯ ^ ( m 1 ) , h ¯ ^ ( m ) }
    Figure DE112007000974B4_0198
  • 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 h ¯ ˜ ( m )
    Figure DE112007000974B4_0199
    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 Λ ¯ ( m 1 )
    Figure DE112007000974B4_0200
    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 Λ ¯ ( m 1 )
    Figure DE112007000974B4_0201
    zugeordnet ist. Die hyperelliptische Region 1320 wird als „entstehende“ hyperelliptische Region bezeichnet, da die zugeordnete Region dann, wenn ein nachfolgender Hyperellipsoidspezifikationsvektor Λ ¯ ( m )
    Figure DE112007000974B4_0202
    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 h ¯ ˜ ( m ) ,
    Figure DE112007000974B4_0203
    der gemäß der rekursiven Formel h ¯ ˜ ( m ) = h ¯ ¯ ( m 1 ) + μ m ε ¯ ˜ ( m )
    Figure DE112007000974B4_0204
    berechnet wird, fällt in eine neu orientierte hyperelliptische Region, da die Schattenaktualisierungsschrittgröße µm eine Funktion des Hyperellipsoidspezifikationsvektors Λ ¯ ( m )
    Figure DE112007000974B4_0205
    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 ε ¯ ˜ ( m )
    Figure DE112007000974B4_0206
    groß ist, wie durch Vektor 1324 angegeben ist, den Betrag und ändert die Richtung des Schattenfehlanpassungsvektors ε ¯ ˜ ( m ) ,
    Figure DE112007000974B4_0207
    wie durch Vektor 1326 angegeben ist, so dass der Schattenimpulsantwortvektor h ¯ ˜ ( m )
    Figure DE112007000974B4_0208
    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 „ ε ¯ ˜ ( m )
    Figure DE112007000974B4_0209
    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 X ¯ ( m )
    Figure DE112007000974B4_0210
    wie folgt berechnet: S ¯ x x ( m ) = ( 1 β ) S ¯ x x ( m 1 ) + β X ¯ ( m ) o X ¯ ( m ) ,
    Figure DE112007000974B4_0211
    und ein mittleres Spektrum des Vektors R ¯ ¯ ( m )
    Figure DE112007000974B4_0212
    wird wie folgt berechnet: S ¯ r ¯ r ¯ ( m ) = ( 1 β ) S r ¯ r ¯ ( m 1 ) + β R ¯ ¯ ( m ) o R ¯ ¯ ( m )
    Figure DE112007000974B4_0213
    wobei S ¯ x x ( m ) = [ S x x ( m ) [ 0 ] S x x ( m ) [ 1 ] S x x ( m ) [ N 1 ] ] ,
    Figure DE112007000974B4_0214
    und S ¯ r r ( m ) = [ S r r ( m ) [ 0 ] S r r ( m ) [ 1 ] S r r ( m ) [ N 1 ] ]
    Figure DE112007000974B4_0215
  • Der Parameter β ist ein Gewicht, das den Vektoren S ¯ x x ( m 1 ) und  S ¯ r ¯ r ¯ ( m 1 )
    Figure DE112007000974B4_0216
    eine größere Bedeutung zuweist als den Produkten X ¯ ( m ) o X ¯ ( m ) und  R ¯ ¯ ( m ) o R ¯ ¯ ( m ) .
    Figure DE112007000974B4_0217
    Bei Schritt 1402 werden die in 11 berechneten Energien dazu verwendet, α m = 5 ( E r ¯ 2 ( m ) E r ^ 2 ( m ) ) 4 σ ˙ x 2 ( m ) M x 2 ( m )
    Figure DE112007000974B4_0218
    zu bestimmen.
  • In den Schritten 1403-1406 werden Elemente eines N-Komponente-Frequenzbereichs-Vorkonditionierungsvektors Q ¯ ( m )
    Figure DE112007000974B4_0219
    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 Q ¯ ( m )
    Figure DE112007000974B4_0220
    wie folgt berechnet: Q ( m ) [ k ] = 1 max { S x x ( m ) [ k ] + α m S r ¯ r ¯ ( m ) [ k ] , λ }
    Figure DE112007000974B4_0221
    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 ε ¯ ˜ ( m )
    Figure DE112007000974B4_0222
    wie folgt berechnet: ε ¯ ˜ ( m ) = T r L I F F T { Q ( m ) o X ¯ ( m ) o ( R ¯ ˜ ( m ) ) }
    Figure DE112007000974B4_0223
    wobei
    TrL ein Abschneideoperator der Größe L ist und ε ¯ ˜ ( m ) = [ ε ˜ [ 0 ] ε ˜ [ 1 ] ε ˜ [ L 1 ] ]
    Figure DE112007000974B4_0224
  • 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: μ _ S k a l a ( m ) = n = 0 L 1 ( ε ˜ ( m ) [ n ] ) 2 Λ ( m ) [ n ]
    Figure DE112007000974B4_0225
  • 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 0,2 / μ _ S k a l a ( m )
    Figure DE112007000974B4_0226
    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: γ _ S k a l a ( m ) = 1 L n = 0 L 1 ( h ˜ ( m ) [ n ] ) 2 Λ ( m ) [ n ]
    Figure DE112007000974B4_0227
  • Bei Schritt 1602 geht die Steuerung dann, wenn E r ¯ 2 0.9 E r ^ 2
    Figure DE112007000974B4_0228
    für M Entscheidungsperioden, zu Schritt 1603 über, andernfalls geht die Steuerung zu Schritt 1604 über. Bei Schritt 1603 wird ein Parameter cm wie folgt rekursiv berechnet: c m = max { c m 1 4000,400 }
    Figure DE112007000974B4_0229
  • Bei Schritt 1604 wird der Parameter cm wie folgt rekursiv berechnet: c m = max { c m 1 + 1,40000 }
    Figure DE112007000974B4_0230
  • Bei Schritt 1605 wird γm ein Wert gemäß γ m = 5 ( α m α m + c m ) 85
    Figure DE112007000974B4_0231
    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 γ m = γ m γ _ S k a l a ( m )
    Figure DE112007000974B4_0232
    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:

Claims (10)

  1. Verfahren zum Bestimmen eines Ungefähr-Impulsantwort-Vektors zum Unterdrücken eines akustischen Echos bei einem Audiosignal, das von einer ersten Örtlichkeit (102) an eine zweite Örtlichkeit (104) gesendet wird, wobei das Verfahren für eine Entscheidungsperiode folgende Schritte umfasst: Berechnen eines Rekursivspezifikationsvektors auf der Basis des Rekursivspezifikationsvektors und eines Ungefähr-Impulsantwort-Vektors der vorherigen Entscheidungsperiode, wobei der Rekursivspezifikationsvektor eine Form einer Vertrauensregion (1320, 1328) innerhalb eines Suchraums (1322) definiert; Berechnen einer Schattenaktualisierungsschrittgröße (γm) und einer Anpassungsschrittgröße (γm) auf der Basis des berechneten Rekursivspezifikationsvektors; Berechnen eines Rekursivschattenimpulsantwortvektors auf der Basis des Rekursivschattenimpulsantwortvektors der vorherigen Entscheidungsperiode und der berechneten Schattenaktualisierungsschrittgröße (µm), wobei der Rekursivschattenimpulsantwortvektor im Wesentlichen in der Vertrauensregion liegt; und Berechnen des Ungefähr-Impulsantwort-Vektors auf der Basis des berechneten Rekursivschattenimpulsantwortvektors, der berechneten Anpassungsschrittgröße (γm) und des Ungefähr-Impulsantwort-Vektors der vorherigen Entscheidungsperiode.
  2. Verfahren gemäß Anspruch 1, bei dem der Suchraum (1322) ferner einen Satz aller möglichen Ungefähr-Impulsantwort-Vektoren umfasst, die an dem Ursprung in ℝL zentriert sind und einen Radius von E
    Figure DE112007000974B4_0233
    aufweisen, wobei E die maximale Verstärkungsenergie oder den maximalen Verstärkungsgewinn darstellt, die beziehungsweise der durch ein an der ersten Örtlichkeit (102) befindliches Mikrophon (106) ansprechend auf einen Impuls erzeugt wird, und die Vertrauensregion eine hyperelliptische Region, eine hypersphärische Region, eine hyperkubische Region oder eine sonstige Art hyperdimensionaler geometrischer Region in dem Suchraum (1322) umfasst.
  3. Verfahren gemäß Anspruch 1, bei dem der Rekursivspezifikationsvektor wie folgt berechnet wird: Λ ( m ) = ( 1 η ) Λ ( m 1 ) + η h ^ ( m 1 ) o h ^ ( m 1 )
    Figure DE112007000974B4_0234
    wobei m eine der Entscheidungsperiode zugeordnete Ganzzahl ist, Λ ( m 1 )
    Figure DE112007000974B4_0235
    der Rekursivspezifikationsvektor der vorherigen Entscheidungsperiode ist, h ^ ( m 1 )
    Figure DE112007000974B4_0236
    der Ungefähr-Impulsantwort-Vektor der vorherigen Entscheidungsperiode ist, ∘ eine komponentenweise Multiplikation darstellt, und η ein Gewichtungsfaktor ist.
  4. Verfahren gemäß Anspruch 1, bei dem der Rekursivschattenimpulsantwortvektor wie folgt berechnet wird: h ¯ ¯ ( m ) = h ˜ ^ ( m 1 ) + μ m ε ˜ ( m )
    Figure DE112007000974B4_0237
    wobei ε ˜ ( m )
    Figure DE112007000974B4_0238
    ein Schattenfehlanpassungsvektor ist, h ˜ ( m 1 )
    Figure DE112007000974B4_0239
    der Rekursivschattenimpulsantwortvektor der vorherigen Entscheidungsperiode ist, µm die Schattenaktualisierungsschrittgröße ist, ε ˜ ( m ) = T r L I F F T { Q ( m ) X ( m ) ( R ˜ ( m ) ) * }
    Figure DE112007000974B4_0240
    m eine der Entscheidungsperiode zugeordnete Ganzzahl ist, L eine Anzahl von Vektorkomponenten ist, IFFT der Inverse-Fourier-Transformation-Operator ist, TrL ein Abschneideoperator der Größe L ist, Q ( m )
    Figure DE112007000974B4_0241
    ein Frequenzbereichs-Vorkonditionierungsoperator ist, X ( m )
    Figure DE112007000974B4_0242
    ein Frequenzbereichsvektor ist, der dem Audiosignal entspricht, und R ˜ ( m )
    Figure DE112007000974B4_0243
    ein Frequenzbereichs-Schattenfehlervektor ist.
  5. Verfahren gemäß Anspruch 4, bei dem Komponenten des Frequenzbereichs-Vorkonditionierungsoperators ferner umfassen: Q ( m ) [ k ] = 1 m a x { S x x ( m ) [ k ] + α m S r ˜ r ˜ ( m ) [ k ] , λ }
    Figure DE112007000974B4_0244
    wobei S x x ( m ) [ k ]
    Figure DE112007000974B4_0245
    eine Komponente eines mittleren Spektrums des Frequenzbereichsvektors X ( m )
    Figure DE112007000974B4_0246
    ist, der durch S x x ( m ) = ( 1 β ) S x x ( m 1 ) + β X ( m ) X ( m )
    Figure DE112007000974B4_0247
    gegeben ist, S r ˜ r ˜ ( m )
    Figure DE112007000974B4_0248
    eine Komponente eines mittleren Spektrums des Frequenzbereichsschattenfehlervektors R ˜ ( m )
    Figure DE112007000974B4_0249
    ist, der durch S r ˜ r ˜ ( m ) = ( 1 β ) S r ˜ r ˜ ( m 1 ) + β R ˜ ( m ) R ˜ ( m )
    Figure DE112007000974B4_0250
    gegeben ist, A eine Stabilisierungskonstante ist, und α m = 5 ( E r ˜ 2 ( m ) E r ˜ 2 ( m ) ) 4 σ ˙ x 2 ( m ) M x 2 ( m )
    Figure DE112007000974B4_0251
    wobei E r ˜ 2 ( m )
    Figure DE112007000974B4_0252
    die mittlere quadratische Energie des Schattenfehlervektors ist, E r ˜ 2 ( m )
    Figure DE112007000974B4_0253
    die mittlere quadratische Energie eines Ausgangssignalvektors ist, σ ˙ x 2 ( m )
    Figure DE112007000974B4_0254
    die kurzfristige Energievarianz ist, die dem Audiosignal zugeordnet ist und, M x 2 ( m )
    Figure DE112007000974B4_0255
    die maximale quadratische Energie ist, die dem Audiosignalvektor zugeordnet ist.
  6. Verfahren gemäß Anspruch 4, bei dem die Schattenaktualisierungsschrittgröße µm ferner ein Festlegen von μ m = 0,2
    Figure DE112007000974B4_0256
    umfasst, wenn µ_Skala(m) > 1 , andernfalls μ m = 2 μ _ S k a l a ( m )
    Figure DE112007000974B4_0257
    wobei μ _ S k a l a ( m ) = n = 0 L 1 ( ε ¯ ( m ) [ n ] ) 2 Λ ( m ) [ n ]
    Figure DE112007000974B4_0258
    ε̃(m)[n] das n.te Element des Schattenfehlanpassungsvektors ε ˜ ( m )
    Figure DE112007000974B4_0259
    ist und Λ(m)[n] das n.te Element eines Rekursivspezifikationsvektors Λ ( m )
    Figure DE112007000974B4_0260
    ist.
  7. Verfahren gemäß Anspruch 1, bei dem der Ungefähr-Impulsantwort-Vektor wie folgt berechnet wird: h ^ ( m ) = ( 1 γ m ) h ^ ( m 1 ) + γ m h ˜ ( m )
    Figure DE112007000974B4_0261
    wobei h ˜ ( m )
    Figure DE112007000974B4_0262
    der berechnete Rekursivschattenimpulsantwortvektor der Entscheidungsperiode ist, h ^ ( m 1 )
    Figure DE112007000974B4_0263
    der Ungefähr-Impulsantwort-Vektor der vorherigen Entscheidungsperiode ist, und γ m = ( α m α m + c m ) .85
    Figure DE112007000974B4_0264
    wobei α m = 5 ( E r ˜ 2 ( m ) E r ˜ 2 ( m ) ) 4 σ ˙ x 2 ( m ) M x 2 ( m ) ,
    Figure DE112007000974B4_0265
    wobei E r ˜ 2 ( m )
    Figure DE112007000974B4_0266
    die mittlere quadratische Energie des Schattenfehlervektors ist, E r ˜ 2 ( m )
    Figure DE112007000974B4_0267
    die mittlere quadratische Energie eines Ausgangssignalvektors ist, σ ˙ x 2 ( m )
    Figure DE112007000974B4_0268
    die kurzfristige Energievarianz ist, die dem Audiosignal zugeordnet ist, M x 2 ( m )
    Figure DE112007000974B4_0269
    die maximale quadratische Energie ist, die dem Audiosignalvektor zugeordnet ist, und für M Entscheidungsperioden und E r ˜ 2 ( m ) 0.9 E r ˜ 2 ( m ) ,
    Figure DE112007000974B4_0270
    c m = m a x { c m 1 4000.400 } ,
    Figure DE112007000974B4_0271
    andernfalls c m = m a x { c m 1 + 1.40000 } .
    Figure DE112007000974B4_0272
  8. Verfahren gemäß Anspruch 7, bei dem die Impulsantwortschrittgröße γm ferner ein Festlegen von γ m = γ m γ _ S k a l a ( m )
    Figure DE112007000974B4_0273
    wenn γSkala(m) > 1, mit γ _ S k a l a ( m ) = 1 L n = 0 L ( h ˜ ( m ) [ n ] ) 2 Λ ( m ) [ n ] ,
    Figure DE112007000974B4_0274
    wobei h̃(m) das n.te Element des Schattenimpulsvektors h ˜ ( m )
    Figure DE112007000974B4_0275
    ist und Λ(m)[n] das n.te Element eines Rekursivspezifikationsvektors Λ ( m )
    Figure DE112007000974B4_0276
    ist.
  9. Verfahren gemäß Anspruch 1, das ferner folgende Schritte umfasst: Bereitstellen einer Mehrzahl von Ungefähr-Impulsantwort-Vektoren, von denen jeder einen entsprechenden Echodämpfungsverstärkungswert umfasst; Speichern eines ersten Ungefähr-Impulsantwort-Vektors in einer Datenstruktur, wenn der entsprechende Echodämpfungsverstärkungswert größer ist als ein Schwellwert; und Löschen eines zweiten Ungefähr-Impulsantwort-Vektors in der Datenstruktur.
  10. Verfahren gemäß Anspruch 9, bei dem das Löschen eines zweiten Ungefähr-Impulsantwort-Vektors aus der Datenstruktur ferner einen der folgenden Schritte umfasst: Löschen eines Ungefähr-Impulsantwort-Vektors aus der Datenstruktur mit dem kleinsten zugeordneten Echodämpfungsverstärkungswert; und Löschen eines Ungefähr-Impulsantwort-Vektors aus der Datenstruktur, der bereits am längsten in der Datenstruktur gespeichert ist.
DE112007000974.8T 2006-04-20 2007-04-20 Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen Expired - Fee Related DE112007000974B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/407,413 2006-04-20
US11/407,413 US8045730B1 (en) 2006-04-20 2006-04-20 Methods and systems for reducing acoustic echoes in communication systems
US11/786,481 2007-04-12
US11/786,481 US8320574B2 (en) 2006-04-20 2007-04-12 Methods and systems for reducing acoustic echoes in communication systems
PCT/US2007/009765 WO2007124117A1 (en) 2006-04-20 2007-04-20 Methods and systems for reducing acoustic echoes in communication systems

Publications (2)

Publication Number Publication Date
DE112007000974T5 DE112007000974T5 (de) 2009-02-19
DE112007000974B4 true DE112007000974B4 (de) 2019-06-27

Family

ID=38512233

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007000974.8T Expired - Fee Related DE112007000974B4 (de) 2006-04-20 2007-04-20 Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen

Country Status (3)

Country Link
US (1) US8320574B2 (de)
DE (1) DE112007000974B4 (de)
WO (1) WO2007124117A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208649B2 (en) * 2009-04-28 2012-06-26 Hewlett-Packard Development Company, L.P. Methods and systems for robust approximations of impulse responses in multichannel audio-communication systems
US8483398B2 (en) * 2009-04-30 2013-07-09 Hewlett-Packard Development Company, L.P. Methods and systems for reducing acoustic echoes in multichannel communication systems by reducing the dimensionality of the space of impulse responses
US9538299B2 (en) * 2009-08-31 2017-01-03 Hewlett-Packard Development Company, L.P. Acoustic echo cancellation (AEC) with conferencing environment templates (CETs)
US20110096699A1 (en) * 2009-10-27 2011-04-28 Sakhamuri Srinivasa Media pipeline for a conferencing session
US20110099227A1 (en) * 2009-10-27 2011-04-28 Walls Jeffrey J Communication application with steady-state conferencing
PL2621496T5 (pl) * 2010-09-30 2019-05-31 Astrazeneca Ab Krystaliczny koniugat naloksol-peg
JP5649488B2 (ja) * 2011-03-11 2015-01-07 株式会社東芝 音声判別装置、音声判別方法および音声判別プログラム
US20160094914A1 (en) * 2014-09-30 2016-03-31 Alcatel-Lucent Usa Inc. Systems and methods for localizing audio streams via acoustic large scale speaker arrays
US10122863B2 (en) * 2016-09-13 2018-11-06 Microsemi Semiconductor (U.S.) Inc. Full duplex voice communication system and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2291428A1 (en) 1998-12-02 2000-06-02 Mitel Corporation Improved method of operating a full duplex speakerphone echo canceller
US20030219113A1 (en) 2002-05-21 2003-11-27 Bershad Neil J. Echo canceller with double-talk and channel impulse response adaptation
GB2389286A (en) 2002-05-28 2003-12-03 Mitel Knowledge Corp Echo cancellation
EP1424846A2 (de) 2002-11-29 2004-06-02 Mitel Knowledge Corporation Akustischer Echokompensator
WO2004049584A1 (en) 2002-11-25 2004-06-10 Intel Corporation Echo cancellers for sparse channels

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553122B1 (en) * 1998-03-05 2003-04-22 Nippon Telegraph And Telephone Corporation Method and apparatus for multi-channel acoustic echo cancellation and recording medium with the method recorded thereon
JP4734714B2 (ja) * 2000-12-22 2011-07-27 ヤマハ株式会社 収音再生方法およびその装置
US20060018460A1 (en) 2004-06-25 2006-01-26 Mccree Alan V Acoustic echo devices and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2291428A1 (en) 1998-12-02 2000-06-02 Mitel Corporation Improved method of operating a full duplex speakerphone echo canceller
US20030219113A1 (en) 2002-05-21 2003-11-27 Bershad Neil J. Echo canceller with double-talk and channel impulse response adaptation
GB2389286A (en) 2002-05-28 2003-12-03 Mitel Knowledge Corp Echo cancellation
WO2004049584A1 (en) 2002-11-25 2004-06-10 Intel Corporation Echo cancellers for sparse channels
EP1424846A2 (de) 2002-11-29 2004-06-02 Mitel Knowledge Corporation Akustischer Echokompensator

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
„Dynamic Programming and Optimal Control" von D. P. Bertsekas, Athena Scientific Bd. 1 und II, Belmont, MA, 1995
„Markov Decision Processes: Discrete Stochastic Dynamic Programming" von M. L. Puterman, John Wiley und Söhne, New York, 1994
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 *
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

Also Published As

Publication number Publication date
DE112007000974T5 (de) 2009-02-19
US8320574B2 (en) 2012-11-27
WO2007124117A1 (en) 2007-11-01
US20070253565A1 (en) 2007-11-01

Similar Documents

Publication Publication Date Title
DE112007000974B4 (de) Verfahren zum Verringern akustischer Echos bei Kommunikationssystemen
DE69531136T2 (de) Verfahren und Einrichtung zur mehrkanaligen Kompensation eines akustischen Echos
DE112009001003B4 (de) Geräuschunterdrückungssystem mit zwei Mikrophonen
DE69632851T2 (de) Akustischer Teilband-Echokompensator
DE69827911T2 (de) Verfahren und einrichtung zur mehrkanaligen kompensation eines akustischen echos
DE10351793B4 (de) Adaptive Filtervorrichtung und Verfahren zum Verarbeiten eines akustischen Eingangssignals
DE69628618T2 (de) Verfahren und Einrichtung zur mehrkanaligen Kompensation eines akustischen Echos
DE69908463T2 (de) Verfahren und Einrichtung zur mehrkanaligen Kompensation eines akustischen Echos
DE60218874T2 (de) Schnelle rechnung der koeffizienten eines entshceidungsrückgekoppelten entzerrers
DE60029436T2 (de) Akustischer Echokompensator
EP1771034A2 (de) Mikrofonkalibrierung bei einem RGSC-Beamformer
DE19831320A1 (de) Digitales adaptives Filter und akustischer Echokompensator
DE69926451T2 (de) Verfahren und Vorrichtung zur Unterdrückung von Mehrkanalechos
DE19956088A1 (de) Einseiten-Unterband-Filter
DE10043064B4 (de) Verfahren und Vorrichtung zur Elimination von Lautsprecherinterferenzen aus Mikrofonsignalen
DE4322033B4 (de) Vorrichtung für die Nachfilterung von Rauschen bei der Entscheidungs-Rückkopplungs-Entzerrung
DE102018117557B4 (de) Adaptives nachfiltern
DE69817461T2 (de) Verfahren und Vorrichtung zur optimierten Verarbeitung eines Störsignals während einer Tonaufnahme
DE60311862T2 (de) Entzerrer zur abtastwertweisen Entscheidungsrückmeldung im Transformationsbereich
EP2466864B1 (de) Transparente Dekorrelation der Lautsprechersignale bei mehrkanaligen Echokompensatoren
DE102018117558A1 (de) Adaptives nachfiltern
DE69932598T2 (de) Echokompensator
DE60216590T2 (de) Verfahren und vorrichtung zur adaptiven steuerung eines digitalen mehrkanalechokompensators
EP2315200B1 (de) Adaptive MIMO-Filterung in dynamisch angepassten Transformationsbereichen
DE102018117556B4 (de) Einzelkanal-rauschreduzierung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee