DE69613907T2 - Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen - Google Patents

Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen

Info

Publication number
DE69613907T2
DE69613907T2 DE69613907T DE69613907T DE69613907T2 DE 69613907 T2 DE69613907 T2 DE 69613907T2 DE 69613907 T DE69613907 T DE 69613907T DE 69613907 T DE69613907 T DE 69613907T DE 69613907 T2 DE69613907 T2 DE 69613907T2
Authority
DE
Germany
Prior art keywords
signal
speech
frame
codebook
gain
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 - Lifetime
Application number
DE69613907T
Other languages
English (en)
Other versions
DE69613907D1 (de
Inventor
Yair Shoham
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.)
BlackBerry Ltd
Original Assignee
AT&T Corp
AT&T IPM Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23917124&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69613907(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by AT&T Corp, AT&T IPM Corp filed Critical AT&T Corp
Publication of DE69613907D1 publication Critical patent/DE69613907D1/de
Application granted granted Critical
Publication of DE69613907T2 publication Critical patent/DE69613907T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • G10L21/013Adapting to target pitch

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein Sprachcodieranordnungen zur Verwendung in Kommunikationssystemen und insbesondere, wie derartige Sprachcodierer bei burstartigen Fehlern bei der Übertragung funktionieren.
  • Viele Kommunikationssysteme, wie etwa zellulare Telefon- und persönliche Kommunikationssysteme, basieren zum Weiterleiten von Informationen auf Funkkanälen. Im Verlauf der Weiterleitung derartiger Informationen kann es bei Funkkommunikationskanälen zu verschiedenen Fehlerquellen kommen, wie etwa zum Mehrwegeschwund. Durch diese Fehler kann es unter anderem zu dem Problem der Rahmenlöschung kommen. Löschung bezieht sich auf den Gesamtverlust oder die komplette oder teilweise Verfälschung eines an einen Empfänger weitergeleiteten Satzes von Bit. Ein Rahmen ist eine vorbestimmte festgelegte Anzahl von Bit, die als Block durch einen Kommunikationskanal weitergeleitet werden können. Somit kann ein Rahmen ein Zeitsegment eines Sprachsignals darstellen.
  • Falls ein Rahmen von Bit völlig verlorengeht, dann kann der Empfänger keine Bit auslegen. Unter derartigen Umständen kann der Empfänger möglicherweise ein sinnloses Ergebnis erzeugen. Falls ein Rahmen empfangener Bit verfälscht und deshalb unzuverlässig ist, erzeugt der Empfänger möglicherweise ein stark verzerrtes Ergebnis. In beiden Fällen kann man sich den Rahmen von Bit dahingehend als "gelöscht" vorstellen, da der Rahmen für den Empfänger nicht zur Verfügung steht oder von ihm nicht verwendet werden kann.
  • Mit dem Anstieg der Nachfrage nach Funksystemkapazität ist auch der Bedarf gestiegen, die zur Verfügung stehende Funksystembandbreite so gut wie möglich auszunutzen. Die effiziente Verwendung von Systembandbreite kann beispielsweise durch den Einsatz einer Signalkompressionstechnik verbessert werden. Zu diesem Zweck können für Funksysteme, die Sprachsignale führen, Sprachkompressionstechniken (oder Sprachcodiertechniken) zum Einsatz kommen. Zu derartigen Sprachcodiertechniken zählen Anaylse-durch-Synthese-Sprachcodierer, wie etwa der wohlbekannte CELP-Sprachcodierer (CELP = Code-Excited Linear Prediction).
  • Das Problem des Paketverlustes bei paketvermittelten Netzen mit Sprachcodieranordnungen hat große Ähnlichkeit mit der Rahmenlöschung im Kontext mit Funkbetrieb. Das bedeutet, daß aufgrund eines Paketverlustes ein Sprachcodierer einen Rahmen möglicherweise nicht empfängt oder einen Rahmen empfängt, bei dem eine wesentliche Anzahl von Bit fehlen. In beiden Fällen steht der Sprachcodierer vor demselben wesentlichen Problem, nämlich der Notwendigkeit, trotz des Verlustes komprimierter Sprachinformationen Sprache zu synthetisieren. Sowohl die "Rahmenlöschung" als auch der "Paketverlust" betreffen ein Kommunikationskanalproblem (oder Netzproblem), das zu dem Verlust übertragener Bit führt. Für die vorliegende Beschreibung kann unter dem Begriff "Rahmenlöschung" auch der Begriff "Paketverlust" verstanden werden.
  • Bei CELP-Sprachcodierern kommt unter anderem ein Codelexikon von Anregungssignalen zum Codieren eines ursprünglichen Sprachsignals zum Einsatz. Diese Anregungssignale werden nach Skalierung durch einen Anregungsverstärkungsfaktor zum "Anregen" von Filtern verwendet, die als Reaktion auf die Anregung ein Sprachsignal (oder einen gewissen Vorläufer zu einem Sprachsignal) synthetisieren. Das synthetisierte Sprachsignal wird mit dem ursprünglichen Sprachsignal verglichen. Es wird das Codelexikonanregungssignal identifiziert, das ein synthetisiertes Sprachsignal liefert, das dem ursprünglichen Signal am ehesten entspricht. Dann werden die Codelexikonindex- und Verstärkungsfaktor-Darstellungen (die oftmals selbst ein Verstärkungsfaktorcodelexikonindex sind) des identifizierten Anregungssignals an einen CELP- Decodierer weitergeleitet (je nach der Art des CELP- Systems können auch andere Arten von Informationen, wie etwa LPC-Filterkoeffizienten (LPC = linear prediction) weitergeleitet werden). Der Decodierer enthält Codelexika, die mit denen des CELP-Codierers identisch sind. Der Decodierer wählt mit den übertragenen Indizes einen Anregungssignal- und Verstärkungsfaktorwert aus. Mit diesem ausgewählten skalierten Anregungssignal wird dann das LPC-Filter des Decodierers angeregt. Das LPC- Filter des Decodierers erzeugt nach derartiger Anregung ein decodiertes (oder quantisiertes) Sprachsignal, nämlich das gleiche Sprachsignal, von dem zuvor festgestellt wurde, daß es dem ursprünglichen Sprachsignal am ehesten entsprach.
  • Bei einigen CELP-Systemen kommen auch andere Komponenten zum Einsatz, wie etwa ein Periodizitätsmodell (z.B. ein tonhöhenprädiktives Filter oder ein adaptives Codelexikon). Ein derartiges Modell simuliert die Periodizität stimmhafter Sprache. Bei derartigen CELP-Systemen müssen außerdem diese Komponenten betreffende Parameter an den Decodierer geschickt werden. Bei einem adaptiven Codelexikon müssen Signale, die eine Tonhöhenperiode (Verzögerung) und einen adaptiven Codelexikonverstärkungsfaktor darstellen, ebenfalls zu dem Decodierer geschickt werden, so daß der Decodierer die Operation des adaptiven Codelexikons bei dem Sprachsyntheseprozeß nachvollziehen kann.
  • Funk- und andere Systeme, bei denen Sprachcodierer zum Einsatz kommen, sind möglicherweise gegenüber dem Problem der Rahmenlöschung empfindlicher als solche Systeme, die Sprache nicht komprimieren. Diese Empfindlichkeit ist auf die reduzierte Redundanz codierter Sprache (im Vergleich zu nichtcodierter Sprache) zurückzuführen, was den möglichen Verlust jedes übertragenen Bit noch wesentlicher macht. In dem Kontext eines CELP-Sprachcodierers, der eine Rahmenlöschung erfährt, können Anregungssignalcodelexikonindizes und andere Signale, die Sprache in dem Rahmen darstellen, entweder verloren gehen oder wesentlich verfälscht werden, was die ordnungsgemäße Synthese von Sprache beim Decodierer verhindert. So ist beispielsweise wegen des einen oder der mehreren gelöschten Rahmen der CELP-Decodierer nicht in der Lage, zuverlässig zu identifizieren, mit welcher Eintragung in seinem Codelexikon Sprache synthetisiert werden sollte. Dadurch kann die Leistung des Sprachcodiersystems eine erhebliche Verschlechterung erfahren.
  • Da die Rahmenlöschung zu dem Verlust von Anregungssignalcodelexikonindizes, LPC-Koeffizienten, adaptiven Codelexikonverzögerungsinformationen und adaptiven und festen Codelexikonverstärkungsfaktorinformationen führt, sind normale Techniken zum Synthetisieren eines Anregungssignals in einem Sprachdecodierer unwirksam. Diese üblichen Techniken müssen deshalb durch alternative Maßnahmen ersetzt werden.
  • Ein Verfahren zur Lösung von Rahmenlöschungen wird von M.M. Lara-Barron et al. in "Selective Discarding Procedure For Improved Tolerance to Missing Voice Packets", Electronic Letters, Band 25, Nr. 19, 14. September 1989, Seiten 1269-1271, XP000073722 gelehrt, aus dem eine selektive, Pakete verwerfende Vorgehensweise für die Sprachkommunikation hervorgeht, bei dem Pakete beim Sender gekennzeichnet werden und gegebenenfalls von Netzknoten gemäß ihrer Bedeutung für die Qualität rekonstruierter Sprache verworfen werden. Simulation und subjektive Tests zeigen eine verbesserte Toleranz gegenüber fehlenden Paketen im Vergleich mit nichtselektiven Verfahren, wo Pakete zufällig verworfen werden.
  • Eine weitere Technik zur Lösung von Rahmenlöschungen wird von A.W. Choi et al. in "Effects of Packet Loss an 3 Toll Quality Speech Coders", IEE National Conference an Telecommunications, York, 2. - 5. April 1989, Institution of Electrical Engineers, Seiten 380-385, XP000041214 gelehrt, aus der hervorgeht, daß die Integrierung der Sprach- und Datenvermittlung unter Verwendung eines Ansatzes auf Paketbasis in vielen Formen vorgeschlagen worden ist. Falls die Sprachcodierung in einem derartigen Netz verwendet wird, beeinflussen Güteabfälle, wie etwa verlorene Pakete, die Leistung des Codierers. In dieser Literaturstelle wird die Wirkung des Paketverlustes auf 3 Sprachcodierer mit Fernübertragungsgüte erörtert: ADPCM (Adaptive Differential Pulse Code Modulation), SBC (Sub-band Coding) und APC (Adaptive Predictive Coding); und ihre bei den Simulationen angenommenen Konfigurationen werden beschrieben. Aus der Literaturstelle geht weiterhin hervor, daß der sich aus dem Verlust eines Sprachpakets ergebende Schaden zweierlei Art ist: Zunächst wird ein fehlendes Sprachsegment für die verlorengegangene Zeitdauer eingesetzt; und zweitens wird die Adaptationslogik nach dem verlorenen Segment unterbrochen. Eine etwaige Kompensationstechnik sollte deshalb darauf hinarbeiten, das fehlende Segment auszufüllen und auch die Adaptation nach dem Verlust wiederherzustellen.
  • Die vorliegende Erfindung setzt sich mit dem Problem des Mangels an Codelexikonverstärkungsfaktorinformationen während einer Rahmenlöschung auseinander. Gemäß der vorliegenden Erfindung verwendet ein Sprachdecodierer auf Codelexikonbasis, der mindestens einen Teil eines aktuellen Rahmens komprimierter Sprachinformationen nicht zuverlässig empfängt, einen Codelexikonverstärkungsfaktor, der eine gedämpfte Version eines Verstärkungsfaktors aus einem vorausgegangenen Sprachrahmen ist.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung ist ein Sprachdecodierer, der einen Codelexikonspeicher und einen Signalverstärker enthält. Der Speicher und der Verstärker werden zum Erzeugen eines decodierten Sprachsignals auf der Grundlage von Informationen über die komprimierte Sprache verwendet. Die Informationen über die komprimierte Sprache beinhalten einen Skalierfaktor zur Verwendung durch den Verstärker beim Skalieren eines Codelexikonvektors. Wenn es zu einer Rahmenlöschung kommt, wird ein einem vorausgegangenen Sprachrahmen entsprechender Skalierfaktor gedämpft, und mit dem gedämpften Skalierfaktor wird der Codelexikonvektor entsprechend dem aktuellen gelöschten Sprachrahmen verstärkt. Spezifische Einzelheiten einer Ausführungsform der vorliegenden Erfindung werden in Abschnitt II.D. der Ausführlichen Beschreibung weiter unten vorgestellt.
  • Die vorliegende Erfindung läßt sich auf die Verarbeitung sowohl mit einem festen als auch mit einem adaptiven Codelexikon und auch auf Systeme anwenden, die Decodierersysteme oder andere Elemente (wie etwa ein tonhöhenprädiktives Filter) zwischen einem Codelexikon und seinem Verstärker einfügen.
  • Fig. 1 stellt ein Blockschaltbild eines gemäß der vorliegenden Erfindung modifizierten Decodierers nach dem Entwurf G.729 dar.
  • Fig. 2 stellt ein beispielhaftes Funkkommunikationssystem dar, das die in Fig. 1 dargestellte Ausführungsform der vorliegenden Erfindung verwendet.
  • I. Einführung
  • Die vorliegende Erfindung betrifft den Betrieb eines Sprachcodiersystems, das eine Rahmenlöschung erfährt, das heißt den Verlust einer Gruppe aufeinanderfolgender Bit in dem komprimierten Bitstrom, wobei mit dieser Gruppe üblicherweise Sprache synthetisiert wird. Die folgende Beschreibung betrifft Merkmale der vorliegenden Erfindung, die beispielhaft auf ein 8 kBit/s CELP-Sprachcodiersystem angewendet werden, das der ITU zur Annahme als internationaler Standard G.729 vorgeschlagen wurde. Für den Leser ist dem vorliegenden Dokument eine vorläufige Entwurfsempfehlung für den Standard G.729 als Anlage beigefügt (der Entwurf wird hier als der "Entwurf G.729" bezeichnet). Der Entwurf G.729 enthält ausführliche Beschreibungen des Sprachcodierers und -decodierers (siehe Entwurf G.729, Abschnitt 3 beziehungsweise 4). Das Ausführungsbeispiel der vorliegenden Erfindung befaßt sich mit Modifikationen an dem normalen G.729-Decodiererbetrieb, wie er in dem Entwurf G.729 Abschnitt 4.3 ausführlich dargelegt ist. Zur Implementierung der vorliegenden Erfindung sind keine Modifikationen an dem Codierer erforderlich.
  • Ungeachtet der Anwendbarkeit der vorliegenden Erfindung auf den vorgeschlagenen Standard G.729 wird der Durchschnittsfachmann erkennen, daß sich Merkmale der vorliegenden Erfindung auf andere Sprachcodiersysteme anwenden lassen.
  • Das Wissen um die Löschung von einem oder mehreren Rahmen ist ein Eingangssignal e für das Ausführungsbeispiel der vorliegenden Erfindung. Ein derartiges Wissen kann auf eine beliebige der in der Technik wohlbekannten Weisen erhalten werden. So können zum Beispiel ganz oder teilweise verfälschte Rahmen mit einem herkömmlichen Fehlererfassungscode erfaßt werden. Wenn von einem Rahmen festgestellt worden ist, daß er gelöscht ist, dann ist e = 1 und spezielle Vorgehensweisen werden wie unten beschrieben eingeleitet. Im anderen Fall werden bei keiner Löschung (e = 0) normale Vorgehensweisen verwendet. Herkömmliche Fehlerschutzcodes könnten als Teil eines herkömmlichen Funkübertragungs-/Empfangsteilsystems eines Funkkommunikationssystems implementiert werden.
  • Zusätzlich zu der Anwendung des vollen Satzes von Gegenmaßnahmen, die als das Ergebnis einer Löschung (e = 1) angewendet werden, setzt der Decodierer einen Teilsatz dieser Maßnahmen ein, wenn ein Paritätsfehler erfaßt wird. Ein Paritätsbit wird auf der Grundlage des Tonhöhenverzögerungsindexes des ersten von zwei Teilrahmen eines Rahmens codierter Sprache berechnet, siehe Entwurf G.729 Abschnitt 3.7.1. Dieses Paritätsbit wird durch den Decodierer berechnet und mit dem von dem Codierer empfangenen Paritätsbit verglichen. Falls die beiden Paritätsbit nicht gleich sind, wird davon gesprochen, daß der Verzögerungsindex verfälscht ist (PE = 1 bei der Ausführungsform), und es wird eine spezielle Verarbeitung der Tonhöhenverzögerung aufgerufen.
  • Zur einfacheren Erklärung wird das Ausführungsbeispiel der vorliegenden Erfindung in Form einzelner Funktionsblöcke dargestellt. Die Funktionen dieser Blöcke können durch die Verwendung entweder gemeinsamer oder spezieller Hardware bereitgestellt werden, einschließlich beispielsweise Hardware, die Software ausführen kann. So können beispielsweise die in Fig. 1 dargestellten Blöcke durch einen einzelnen gemeinsamen Prozessor bereitgestellt werden. (Die Verwendung des Ausdrucks "Prozessor" sollte nicht so ausgelegt werden, daß sie sich ausschließlich auf Hardware bezieht, die Software ausführen kann.)
  • Ausführungsbeispiele können Hardware in Form eines digitalen Signalprozessors (DSP), wie etwa den AT&T DSP16 oder DSP32C, einen Festwertspeicher (ROM) zum Speichern von Software, die die unten erörterten Operationen durchführt, und einen Direktzugriffsspeicher (RAM) zum Speichern von DSP-Ergebnissen umfassen. Ausführungsformen mit VLSI-Hardware (VLSI = very large scale integration) sowie kundenspezifische VLSI- Schaltungen in Kombinationen mit einer Allzweck-DSP- Schaltung können ebenfalls bereitgestellt werden.
  • II. Ein Ausführungsbeispiel
  • Fig. 1 stellt ein Blockschaltbild eines gemäß der vorliegenden Erfindung modifizierten Decodierers nach Entwurf G.729 dar (Fig. 1 ist eine Version von Fig. 3 des Entwurfs von Standard G.728, die vergrößert worden ist, um Merkmale der beanspruchten Erfindung deutlicher darzustellen). Bei normalem Betrieb (d.h. ohne Rahmenlöschung) funktioniert der Decodierer gemäß dem Entwurf G.729 wie in den Abschnitten 4.1-4.2 beschrieben. Während einer Rahmenlöschung wird der Betrieb der Ausführungsform von Fig. 1 durch spezielle Verarbeitung vermehrt, um die Löschung von Informationen von dem Codierer zu kompensieren.
  • A. Normaler Decodiererbetrieb
  • Der in dem Entwurf G.729 beschriebene Codierer liefert alle 10 ms einen Rahmen von Daten, die komprimierte Sprache darstellen. Der Rahmen besteht aus 80 Bit und ist in den Tabellen 1 und 9 des Entwurfs G.729 ausführlich dargestellt. Jeder 80 Bit-Rahmen komprimierter Sprache wird über ein Kommunikationssignal zu einem Decodierer geschickt, der eine Sprache (die zwei Teilrahmen darstellt) Signale auf der Grundlage des von dem Codierer erzeugten Rahmen synthetisiert. Der Kanal, über den die Rahmen weitergeleitet werden (nicht gezeigt), kann beliebiger Art sein (wie etwa herkömmliche Telefonienetze, Netze auf Paketbasis, zellulare oder Funknetze, ATM-Netze usw.) und/oder kann ein Speichermedium umfassen (wie etwa magnetische Speicherung, Halbleiter-RAM oder -ROM, optische Speicherung wie etwa CD-ROM, usw.).
  • Der beispielhafte Decodierer von Fig. 1 enthält sowohl einen Teil mit einem adaptiven Codelexikon (ACB) als auch einen Teil mit einem festen Codelexikon (FCB). Der ACB-Teil enthält das ACB 50 und einen Verstärker 55 mit Verstärkungsregelung. Der FCB-Teil enthält ein FCB 10, ein tonhöhenprädiktives Filter (PPF) 20 und einen Verstärker 30 mit Verstärkungsregelung. Der Decodierer decodiert übertragene Parameter (siehe Entwurf G.729 Abschnitt 4.1) und führt eine Synthese durch, um wiederhergestellte Sprache zu erhalten.
  • Das FCB 10 arbeitet als Reaktion auf einen von dem Codierer gesendeten Index I. Der Index I wird durch einen Schalter 40 empfangen. Das FCB 10 erzeugt einen Vektor c(n), der genauso lang ist wie ein Teilrahmen. Siehe Entwurf G.729 Abschnitt 4.1.2. Dieser Vektor wird an das PPF 20 angelegt. Das PPF 20 erzeugt einen Vektor zur Anlegung an den FCB-Verstärker 30 mit Verstärkungsregelung. Siehe Entwurf G.729 Abschnitte 3.8 und 4.1.3. Der einen Verstärkungsfaktor c von dem Kanal anlegende Verstärker erzeugt eine skalierte Version des von dem PPF 20 erzeugten Vektors. Siehe Entwurf G.729 Abschnitt 4.1.3. Das Ausgangssignal des Verstärkers 30 wird (durch einen Schalter 42) einem Summierer 85 zugeführt.
  • Der durch das PPF 20 an den Vektor angelegte Verstärkungsfaktor wird aufgrund von von dem Codierer gelieferten Informationen bestimmt. Diese Informationen werden als Codelexikonindizes weitergeleitet. Der Decodierer empfängt diese Indizes und synthetisiert einen Verstärkungskorrekturfaktor . Siehe Entwurf G.729 Abschnitt 4.1.4. Dieser Verstärkungskorrekturfaktor wird an einen Codevektorprädiktionsenergieprozessor (E-Prozessor) geliefert. Der E-Prozessor 120 bestimmt einen Wert der codevektorprädiktierten Fehlerenergie gemäß dem folgenden Ausdruck:
  • Der Wert von wird in einem Prozessorpuffer gespeichert, der die fünf jüngsten (aufeinanderfolgenden) Werte von speichert. (n) stellt die vorhergesagte Fehlerenergie des Festcodevektors bei Teilrahmen n dar. Die vorhergesagte mittlere entfernte Energie des Codevektors wird als eine gewichtete Summe vergangener Werte von gebildet:
  • wobei b = [0,68 0,58 0,34 0,19] und wobei die vergangenen Werte von R aus dem Puffer erhalten werden. Diese vorhergesagte Energie wird dann von dem Prozessor 120 an einen Prozessor 125 mit vorhergesagter Verstärkung ausgegeben.
  • Der Prozessor 125 bestimmt die tatsächliche Energie des von dem Codelexikon 10 gelieferten Codevektors. Dies geschieht gemäß dem folgenden Ausdruck:
  • E = 10 log (1/40 ci²)
  • wobei i die Proben des Vektors indiziert. Die vorhergesagte Verstärkung wird dann wie folgt berechnet:
  • wobei E die mittlere Energie des FCB ist (z. B. 30 dB).
  • Schließlich wird der tatsächliche Skalierfaktor (beziehungsweise tatsächliche Verstärkungsfaktor) berechnet, indem der empfangene Verstärkungskorrekturfaktor γ bei dem Multiplizierer 130 mit der vorhergesagten Verstärkung g'c multipliziert wird. Dieser Wert wird dann dem Verstärker 30 zum Skalieren des von dem PPF 20 gelieferten festen Codelexikonbeitrags zugeführt.
  • Dem Summierer 85 wird außerdem das durch den ACB-Teil des Decodierers erzeugte Ausgangssignal zugeführt. Der ACB-Teil umfaßt das ACB 50, das ein Anregungssignal (n) erzeugt, das genauso lang ist wie ein Teilrahmen, und zwar auf der Grundlage vergangener Anregungssignale und der ACB-Tonhöhenperiode M, die von dem Codierer über den Kanal (durch den Schalter 43) erhalten wurde. Siehe Entwurf G.729 Abschnitt 4.1.1. Dieser Vektor wird von dem Verstärker 250 auf der Grundlage des Verstärkungsfaktors p, der über den Kanal empfangen wurde, skaliert. Dieser skalierte Vektor ist die Ausgabe des ACB-Teils.
  • Der Summierer 85 erzeugt als Reaktion auf Signale von dem FCB-Teil und dem ACB-Teil des Decodierers ein Anregungssignal u(n). Das Anregungssignal u(n) wird an das LPC-Synthesefilter 90 angelegt, das auf der Grundlage von über den Kanal empfangenen LPC- Koeffizienten ai ein Sprachsignal synthetisiert. Siehe Entwurf G.729 Abschnitt 4.1.6.
  • Die Ausgabe des LPC-Synthesefilters 90 wird schließlich an einen Postprozessor 100 angelegt, der eine adaptive Nachfilterung (siehe Entwurf G.729 Abschnitte 4.2.1 - 4.2.4), eine Hochpaßfilterung (siehe Entwurf G.729 Abschnitt 4.2.5) und eine Hochskalierung (siehe Entwurf G.729 Abschnitt 4.2.5) durchführt.
  • B. Anregungssignalsynthese während der Rahmenlöschung
  • Beim Vorliegen von Rahmenlöschungen empfängt der Decodierer von Fig. 1 keine zuverlässigen Informationen (falls er überhaupt irgendetwas empfängt) aus denen ein Anregungssignal u(n) synthetisiert werden kann. Der Decodierer wird als solcher nicht wissen, welcher Vektor von Signalabtastwerten aus dem Codelexikon 10 gewonnen werden sollte oder welcher der richtige Verzögerungswert zur Verwendung für das adaptive Codelexikon 50 ist. In diesem Fall muß der Decodierer ein Ersatz-Anregungssignal zur Verwendung bei der Synthetisierung eines Sprachsignals erhalten. Die Erzeugung eines Ersatzanregungssignals während Perioden der Rahmenlöschung hängt davon ab, ob der gelöschte Rahmen als stimmhaft (periodisch) oder stimmlos (aperiodisch) klassifiziert ist. Von dem Postprozessor 100 wird eine Angabe über die Periodizität für den gelöschten Rahmen erhalten, wobei der Postprozessor jeden ordnungsgemäß erhaltenen Rahmen als periodisch oder aperiodisch klassifiziert. Siehe Entwurf G.729 Abschnitt 4.2.1. Es wird davon ausgegangen, daß der gelöschte Rahmen die gleiche Periodizitätsklassifikation wie der vorausgegangene, von dem Postfilter verarbeitete Rahmen aufweist. Das eine Periodizität darstellende binäre Signal v wird gemäß der Postfiltervariablen gpit bestimmt. Das Signal = 1, falls gpit > 0; ansonsten = 0. Als solches beispielsweise, falls der letzte gute Rahmen als periodisch klassifiziert wurde, ist = 1; ansonsten = 0.
  • 1. Löschung von Rahmen, die periodische Sprache darstellen
  • Für einen gelöschten Rahmen (e = 1), von dem angenommen wird, daß er periodische Sprache ( = 1) dargestellt hat, wird der Beitrag des festen Codelexikons auf Null gesetzt. Dies geschieht durch den Schalter 42, der Zustände (in Richtung des Pfeils) aus ihrer normalen (voreingestellten) Betriebsposition, in der der Verstärker 30 an den Summierer 85 angekoppelt ist, in eine Position umschaltet, die den festen Codelexikonbeitrag von dem Anregungssignal u(n) entkoppelt. Diese Zustandsumschaltung erfolgt gemäß dem Steuersignal, das von einem AND-Gatter 110 erzeugt wird (das prüft, ob der Rahmen gelöscht ist, e = 1, und daß er ein periodischer Rahmen war, = 1). Andererseits wird der Beitrag des adaptiven Codelexikons durch den Schalter 45 in seiner normalen Betriebsposition gehalten (da e = 1, aber not_ = 0).
  • Die von dem adaptiven Codelexikon während eines gelöschten Rahmens verwendete Tonhöhenverzögerung M wird durch einen Verzögerungsprozessor 60 bestimmt. Der Verzögerungsprozessor 60 speichert die in jüngster Zeit empfangene Tonhöhenverzögerung von dem Codierer. Dieser Wert wird mit jeder nachfolgenden empfangenen Tonhöhenverzögerung überschrieben. Für den ersten gelöschten Rahmen nach einem "guten" (korrekt empfangenen) Rahmen erzeugt der Verzögerungsprozessor 60 einen Wert für M, der gleich der Tonhöhenverzögerung des letzten guten Rahmens (d.h. des vorausgegangenen Rahmens) ist. Zur Vermeidung einer übermäßigen Periodizität inkrementiert der Prozessor 60 den Wert von M für jeden nachfolgenden gelöschten Rahmen um Eins (1). Der Prozessor 60 schränkt den Wert von M so ein, daß er gleich oder kleiner als 143 Abtastwerte ist. Der Schalter 43 bewirkt die Anlegung der Tonhöhenverzögerung von dem Prozessor 60 an das adaptive Codelexikon 50 durch Zustandsänderung aus seiner normalen Betriebsposition in seine "stimmhafte Rahmenlöschungs"-Position als Reaktion auf eine Angabe einer Löschung eines stimmhaften Rahmens (da e = 1 und = 1).
  • Die Verstärkung des adaptiven Codelexikons wird außerdem in dem Fall einer Löschung eines stimmhaften Rahmens gemäß der unten in Abschnitt C erörterten Vorgehensweise synthetisiert. Man beachte, daß Schalter 44 identisch mit Schalter 43 arbeitet, da er die Anlegung einer synthetisierten Verstärkung des adaptiven Codelexikons durch Zustandsänderung von seiner normalen Betriebsposition in seine "stimmhafte Rahmenlöschungs"-Position bewirkt.
  • 2. Löschung von Rahmen, die aperiodische Sprache darstellen.
  • Für einen gelöschten Rahmen (e = 1), von dem angenommen wird, daß er aperiodische Sprache ( = 0) dargestellt hat, wird der Beitrag des adaptiven Codelexikons auf Null gesetzt. Dies geschieht durch den Schalter 45, der Zustände (in Richtung des Pfeils) aus ihrer normalen (voreingestellten) Betriebsposition, in der der Verstärker 55 an den Summierer 85 angekoppelt ist, in eine Position umschaltet, die den adaptiven Codelexikonbeitrag von dem Anregungssignal u(n) entkoppelt. Diese Zustandsumschaltung erfolgt gemäß dem Steuersignal, das von einem AND-Gatter 75 erzeugt wird (das prüft, ob der Rahmen gelöscht ist, e = 1, und daß er ein aperiodischer Rahmen war, not_ = 1). Andererseits wird der Beitrag des festen Codelexikons durch den Schalter 42 in seiner normalen Betriebsposition gehalten (da e = 1, aber = 0).
  • Der Index I des festen Codelexikons und das Codelexikonvektorvorzeichen stehen wegen der Löschung nicht zur Verfügung. Um einen Index des festen Codelexikons und einen Vorzeichenindex zu synthetisieren, aus dem ein Codelexikonvektor c(n) bestimmt werden könnte, wird ein Zufallszahlengenerator 45 verwendet. Der Ausgang des Zufallszahlengenerators 45 ist durch den Schalter 40 an das feste Codelexikon 10 gekoppelt. Der Schalter 40 befindet sich normalerweise in einem Zustand, der Index I- und Vorzeicheninformationen an das feste Codelexikon ankoppelt. Das Gatter 47 legt jedoch ein Steuersignal an den Schalter an, das eine Zustandsänderung des Schalters bewirkt, wenn ein aperiodischer Rahmen (e = 1 und not_ = 1) gelöscht wird.
  • Der Zufallszahlengenerator 45 verwendet die Funktion:
  • Startparameter = Startparameter * 31821 + 13849
  • zum Erzeugen des Indexes und Vorzeichens des festen Codelexikons. Der anfängliche Startparameterwert für den Generator 45 ist gleich 21845. Bei einem gegebenen Codiererteilrahmen handelt es sich bei dem Codelexikonindex um die 13 niederwertigsten Bit der Zufallszahl. Das Zufallsvorzeichen sind die 4 niederwertigsten Bit der nächsten Zufallszahl. Somit läuft der Zufallszahlengenerator für jeden benötigten Vektor des festen Codelexikons zweimal. Man beachte, daß ein Rauschvektor auf einer Basis Probe für Probe hätte erzeugt werden können, anstatt unter Verwendung des Zufallszahlengenerators in Kombination mit dem FCB.
  • Außerdem wird die Verstärkung des festen Codelexikons im Fall einer Löschung eines aperiodischen Rahmens gemäß der unten in Abschnitt D erörterten Vorgehensweise synthetisiert. Man beachte, daß der Schalter 41 identisch mit Schalter 40 arbeitet, da er die Anlegung einer synthetisierten Verstärkung des festen Codelexikons durch Zustandsänderung aus seiner normalen Betriebsposition in seine "stimmhafte Rahmenlöschungs"-Position bewirkt.
  • Da das PPF 20 bei einer Verzögerung um weniger als einen Teilrahmen Periodizität hinzufügt, sollte das PPF 20 im Fall einer Löschung eines aperiodischen Rahmens nicht verwendet werden. Der Schalter 21 wählt deshalb entweder die Ausgabe von FCB 10 aus, wenn e = 0, oder die Ausgabe von PPF 20, wenn e = 1.
  • C. LPC-Filterkoeffizienten für gelöschte Rahmen
  • Das während eines gelöschten Rahmens synthetisierte Anregungssignal u(n) wird an das LPC-Synthesefilter 90 angelegt. Wie bei anderen Komponenten des Decodierers, die von Daten von dem Codierer abhängen, muß das LPC- Synthesefilter 90 während gelöschten Rahmen Ersatz-LPC- Koeffizienten ai haben. Dies geschieht durch Wiederholen der LPC-Koeffizienten des letzten guten Rahmens. Von dem Codierer in einem nichtgelöschten Rahmen empfangene LPC-Koeffizienten werden vom Speicher 95 gespeichert. Neu empfangene LPC-Koeffizienten überschreiben zuvor empfangen e Koeffizienten im Speicher 95. Wenn es zu einer Rahmenlöschung kommt, werden die im Speicher 95 gespeicherten Koeffizienten über den Schalter 46 dem LPC-Synthesefilter zugeführt. Der Schalter 46 ist normalerweise so voreingestellt, daß er in einem guten Rahmen empfangene LPC-Koeffizienten an das Filter 90 ankoppelt. Im Fall eines gelöschten Rahmens (e = 1) verändert der Schalter jedoch seinen Zustand (in Richtung des Pfeils), wodurch der Speicher 95 an das Filter 90 angekoppelt wird.
  • D. Dämpfung der Verstärkungen des adaptiven und festen Codelexikons
  • Wie oben erörtert, weisen sowohl das adaptive als auch das feste Codelexikon 50, 10 einen entsprechenden Verstärker 55, 30 mit Verstärkungsregelung auf, der an das Codelexikonausgangssignal einen Skalierfaktor anlegt. Die Werte der Skalierfaktoren für diese Verstärker wird üblicherweise durch den Codierer geliefert. Bei einer Rahmenlöschung stehen die Skalierfaktorinformationen jedoch nicht von dem Codierer zur Verfügung. Deshalb müssen die Skalierfaktorinformationen synthetisiert werden.
  • Sowohl für das feste als auch für das adaptive Codelexikon erfolgt die Synthese des Skalierfaktors durch Dämpfungsprozessoren 65 und 115, die den Wert des in dem vorausgegangenen Teilrahmen verwendeten Skalierfaktors skalieren (oder dämpfen). Bei einer Rahmenlöschung nach einem guten Rahmen ist somit der Wert des Skalierfaktors des ersten Teilrahmens des gelöschten Rahmens zur Verwendung durch den Verstärker der zweite Skalierfaktor von dem guten Rahmen multipliziert mit einem Dämpfungsfaktor. Im Fall aufeinanderfolgender gelöschter Teilrahmen verwendet der später gelöschte Teilrahmen (Teilrahmen n) den Wert des Skalierfaktors von dem früher gelöschten Teilrahmen (Teilrahmen n-1) multipliziert mit dem Dämpfungsfaktor. Diese Technik wird ungeachtet der Anzahl aufeinanderfolgender gelöschter Rahmen (und Teilrahmen) verwendet. Die Dämpfungsprozessoren 65, 115 speichern jeden neuen Skalierfaktor unabhängig davon, ob er in einem guten Rahmen empfangen wurde oder für einen gelöschten Rahmen synthetisiert wurde, für den Fall, daß es sich bei dem nächsten Teilrahmen um einen gelöschten Teilrahmen handelt.
  • Insbesondere synthetisiert der Dämpfungsprozessor 115 die Verstärkung gc des festen Codelexikons für einen gelöschten Teilrahmen n gemäß:
  • gc(n) = 0,98gc(n-1).
  • Der Dämpfungsprozessor 65 synthetisiert die Verstärkung gp des adaptiven Codelexikons für einen gelöschten Teilrahmen n gemäß:
  • gp(n) = 0,9 gp(n-1).
  • Außerdem begrenzt (oder beschneidet) der Prozessor 65 den Wert der synthetisierten Verstärkung derart, daß er unter 0,9 liegt. Der Prozeß des Dämpfens von Verstärkungen wird durchgeführt, um unerwünschte Wahrnehmungseffekte zu vermeiden.
  • E. Dämpfung des Verstärkungsprädiktorspeichers
  • Wie oben erörtert liegt ein Puffer vor, der einen Teil des E-Prozessors 120 bildet, der die fünf jüngsten Werte der Prädiktionsfehlerenergie speichert. Mit diesem Puffer wird ein Wert für die vorhergesagte Energie des Codevektors aus dem festen Codelexikon vorhergesagt.
  • Wegen einer Rahmenlöschung werden jedoch keine Informationen zu dem Decodierer von dem Codierer übermittelt, von dem neue Werte der Prädiktionsfehlerenergie. Derartige Werte müssen deshalb synthetisiert werden. Diese Synthese geschieht durch den E-Prozessor 120 gemäß dem folgenden Ausdruck:
  • Ein neuer Wert für wird deshalb als der Mittelwert der vier vorausgegangenen Werte von minus 4 dB berechnet. Der Wert wird deshalb gedämpft, um sicherzustellen, daß nach dem Empfang eines guten Rahmens keine unerwünschte Sprachverzerrung erzeugt wird. Der Wert des synthetisierten R ist so begrenzt, daß er nicht unter -14 dE abfällt.
  • F. Ein beispielhaftes Funksystem
  • Wie oben erwähnt, läßt sich die vorliegende Erfindung auf drahtlose Sprachkommunikationssysteme anwenden. Fig. 2 stellt ein beispielhaftes Funkkommunikationssystem dar, bei dem eine Ausführungsform der vorliegenden Erfindung zum Einsatz kommt. Fig. 2 enthält einen Sender 600 und einen Empfänger 700. Ein Ausführungsbeispiel des Senders 600 ist eine Funkbasisstation. Ein Ausführungsbeispiel des Empfängers 700 ist ein mobiles Benutzerterminal, wie etwa ein Zellentelefon oder Funktelefon oder eine andere Einrichtung aus einem persönlichen Kommunikationssystem. (Eine Funkbasisstation und ein Benutzerterminal können natürlich auch Empfänger- und Senderschaltungen enthalten.) Der Sender 600 enthält einen Sprachcodierer 610, bei dem es sich beispielsweise um einen Codierer gemäß dem Entwurf G.729 handeln kann. Der Sender enthält zudem einen herkömmlichen Kanalcodierer 620 zur Bereitstellung von Fehlererfassungskapazität (oder Erfassungs- und Korrekturkapazität); einen herkömmlichen Modulator 630; und herkömmliche Funkübertragungsschaltungen; wie in der Technik wohlbekannt. Von dem Sender 600 übertragene Funksignale werden über einen Übertragungskanal durch den Empfänger 700 empfangen. Der Empfänger 700 befindet sich möglicherweise wegen beispielsweise möglicher destruktiver Interferenz von verschiedenen Mehrwegekomponenten des übertragenen Signals in einem tiefen Schwund, was den klaren Empfang übertragener Bit verhindert. Unter derartigen Umständen kann eine Rahmenlöschung eintreten.
  • Der Empfänger 700 enthält herkömmliche Funkempfängerschaltungen 710, einen herkömmlichen Demodulator 720, einen Kanaldecodierer 730 und einen Sprachdecodierer 740 gemäß der vorliegenden Erfindung. Man beachte, daß der Kanaldecodierer immer dann ein Rahmenlöschsignal erzeugt, wenn der Kanaldecodierer feststellt, daß eine wesentliche Anzahl von Bitfehlern (oder nicht empfangenen Bit) vorliegt. Alternativ (oder zusätzlich zu einem Rahmenlöschsignal von dem Kanaldecodierer) kann der Demodulator 720 ein Rahmenlöschsignal an den Decodierer 740 liefern.
  • G. Erörterung
  • Obwohl hier spezifische Ausführungsformen der vorliegenden Erfindung gezeigt und beschrieben worden sind, ist zu verstehen, daß diese Ausführungsformen für die vielen möglichen spezifischen Anordnungen, die bei der Anwendung der Grundlagen der Erfindung erdacht werden können, lediglich beispielhaft sind. Gemäß diesen Grundlagen können vom Durchschnittsfachmann zahlreiche und verschiedenartige andere Anordnungen konzipiert werden, ohne von dem Schutzbereich der Erfindung, wie durch die beigefügten Ansprüche definiert, abzuweichen.
  • Obwohl sich das Ausführungsbeispiel der vorliegenden Erfindung auf Codelexikon-"Verstärker" bezieht, so versteht der Durchschnittsfachmann außerdem, daß dieser Ausdruck das Skalieren digitaler Signale beinhaltet. Zudem kann eine derartige Skalierung mit Skalierfaktoren (oder Verstärkungen) erreicht werden, die kleiner oder gleich Eins (einschließlich negativer Werte) und auch größer als Eins sind.
  • INTERNATIONAL TELECOMMUNICATIONS UNION TELECOMMUNICATIONS STANDARDIZATION SECTOR
  • Datum: Juni 1995
  • Original: E
  • STUDIENGRUPPE 15 - BEITRAG - Q. 12/15 Entwurfsempfehlung G.729
  • Codierung von Sprache mit 8 kBit/s unter Verwendung von CS-ACELP-Codierung (Conjugate-Structure-Algebraic-Code-Excited Linear-Predictive)
  • 7. Juni 1995,
  • Version 4.0
  • Anmerkung: Bis zur Genehmigung dieser Empfehlung durch die ITU werden von der. ITU weder der C-Code noch die Testvektoren verfügbar sein. Um den C-Quellcode zu erhalten, wende man sich an:
  • Herrn Gerhard Schröder, Berichterstatter SG15/Q.12 Deutsche Telekom AG, Postfach 100003, 64276 Darmstadt, Deutschland
  • Telefon: +49 6151 83 3973, Fax: +49 6151 837828,
  • Email: gerhard.schroeder@fz13.fz.dbp.de
  • Inhalt
  • 1 Einleitung 26
  • 2 Allgemeine Beschreibung des Codierers 27
  • 2.1 Codierer 29
  • 2.2 Decodierer 31
  • 2.3 Verzögerung 32
  • 2.4 Beschreibung des Sprachcodierers 33
  • 2.5 Notationskonventionen 33
  • 3 Beschreibung der Funktion des Codierers 39
  • 3,1 Vorverarbeitung 39
  • 3.2 Linearprädiktionsanalyse und -quantisierung 40
  • 3.2.1 Fensterbildung und Autokorrelationsberechnung 40
  • 3.2.2 Levinson-Durbin-Algorithmus 42
  • 3.2.3 LP-LSP-Konversion 43
  • 3.2.4 Quantisierung der LSP-Koefftzienten 45
  • 3.2.5 Interpolation der LSP-Koefftzienten. 49
  • 3.2.6 LSP-LP-Konversion 50
  • 3.3 Perzeptuale Gewichtung 51
  • 3.4 Regelkreis-Tonhöhenanalyse 53
  • 3.5 Berechnung der Pulsantwort 55
  • 3.6 Berechnung des Zielsignals 55
  • 3.7 Suche im adaptiven Codelexikon 56
  • 3.7.1 Erzeugung des adaptiven Codelexikon-Vektors 59
  • 3.7.2 Codewortberechnung für adaptive Codelexikon-Verzögerungen 59
  • 3.7.3 Berechnung der adaptiven
  • Codelexikon-Verstärkung 61
  • 3.8 Festes Codelexikon: Struktur und Suche 61
  • 3.8.1 Festes Codelexikon: Suchprozedur 63
  • 3.8.2 Codewortberechnung des festen Codelexikons 67
  • 3.9 Quantisierung der Verstärkungsfaktoren 67
  • 3.9.1 Verstärkungsvorhersage 68
  • 3.9.2 Codelexikonsuche nach Verstärkungsquantisierung 70
  • 3.9.3 Codewortberechnung für Verstärkungsquantisierer 71
  • 3.10 Speicheraktualisierung 71
  • 3.11 Codierer- und Decodierer-Initialisierung 72
  • 4 Beschreibung der Funktion des Decodierers 74
  • 4.1 Parameterdecodierprozedur 74
  • 4.1.1 Decodieren der LP-Filterparameter 76
  • 4.1.2 Decodieren des adaptiven Codelexikon-Vektors 76
  • 4.1.3 Decodieren des festen Codelexikon-Vektors 77
  • 4.1.4 Decodieren der adaptiven und festen Codelexikon-Verstär kung 78
  • 4.1.5 Berechnung des Paritätsbit 78
  • 4.1.6 Berechnen der rekonstruierten Sprache 78
  • 4.2 Nachverarbeitung 79
  • 4.2.1 Tonhöhen-Postfilter 80
  • 4.2.2 Kurzzeit-Postfilter 81
  • 4.2.3 Neigungskompensation 82
  • 4.2.4 Adaptive Verstärkungssteuerung 83
  • 4.2.5 Hochpaßfilterung und Hochskalierung 83
  • 4.3 Verdecken von Rahmenlöschungen und Paritätsfehlern 84
  • 4.3.1 Wiederholung der LP-Filterparameter 85
  • 4.3.2 Dämpfung der adaptiven und festen Codelexikon-Verstärkungen 86
  • 4.3.3 Dämpfung des Speichers des Verstärkungsprädiktors 86
  • 4.3.4 Erzeugung der Ersatzanregung 87
  • 5 Bitgenaue Beschreibung des CS-ACELP-Codierers 88
  • 5.1 Einsatz der Simulationssoftware 88
  • 5.2 Organisation der Simulationssoftware 88
  • 1 Einleitung
  • Die vorliegende Empfehlung enthält die Beschreibung eines Algorithmus für die Codierung von Sprachsignalen mit 8 kBit/s unter Verwendung von CS-ACELP-Codierung (Conjugate-Structure-Algebraic-Code-Excited Linear- Predictive)
  • Dieser Codierer ist ausgelegt, mit einem digitalen Signal zu arbeiten, das erhalten wurde, indem zuerst eine Telefonbandbreitenfilterung (ITU-Empfehlung G. 710) des analogen Eingangssignals durchgeführt wurde, es dann mit 8000 Hz abgetastet wurde, worauf eine Konversion in 16 Bit Linear-PCM für die Eingabe in den Codierer folgt. Die Ausgabe des Decodierers sollte durch ähnliche Mittel zurück in ein analoges Signal konvertiert werden. Andere Eingabe/Ausgabe-Charakteristiken, wie etwa diejenigen, die durch die ITU- Empfehlung G.711 für 64 kBit/s PCM-Daten spezifiziert werden, sollten vor der Codierung in 16 Bit Linear-PCM konvertiert werden oder nach der Decodierung von 16 Bit Linear-PCM in das entsprechende Format konvertiert werden. Der Bitstrom von dem Codierer zu dem Decodierer ist in diesem Standard definiert.
  • Diese Empfehlung ist wie folgt organisiert: Abschnitt 2 gibt einen allgemeinen Überblick über den CS-ACELP- Algorithmus. In den Abschnitten 3 und 4 werden die Grundlagen des CS-ACELP-Codierers beziehungsweise -Decodierers erörtert. In Abschnitt 5 wird die Software beschrieben, die diesen Codierer in 16 Bit Festkomma- Arithmetik definiert.
  • 2 Allgemeine Beschreibung des Codierers
  • Der CS-ACELP-Codierer basiert auf dem CELP-Codiermodell (code-excited linear-predictive). Der Codierer arbeitet an Sprachrahmen von 10 ms entsprechend 80 Abtastwerten bei einer Abtastrate von 8000 Abtastwerten/s. Bei jedem 10 ms-Rahmen wird das Sprachsignal analysiert, um die Parameter des CELP-Modells (LP-Filterkoeffizienten, adaptive und feste Codelexikon-Indizes und -Verstärkungen) zu extrahieren. Diese Parameter werden codiert und übertragen. Die Bitzuweisung der Codiererparameter ist in Tabelle 1 gezeigt. Bei dem Decodierer werden mit diesen Parametern die Anregungs- und Synthesefilterparameter gewonnen. Tabelle 1: Bitzuweisung des 8 kBit/s-CS-ACELP-Algorithmus (10 ms-Rahmen).
  • Die Sprache wird durch Filterung dieser Anregung durch das LP-Synthesefilter wie in Fig. 1 gezeigt wiederhergestellt. Das Kurzzeit-Synthesefilter basiert auf einem Linearprädiktionsfilter (LP-Filter) 10ter Ordnung. Das Langzeit- bzw. Tonhöhensynthesefilter wird mit dem sogenannten Ansatz des adaptiven Codelexikons für Verzögerungen implementiert, die kürzer sind als der Teilrahmen. Die rekonstruierte Sprache wird nach der Berechnung durch einen Postfilter weiter verbessert. Fig. 1: Blockschaltbild eines konzeptuellen CELP- Synthesemodells.
  • 2.1. Codierer
  • Der Signalfluß bei dem Codierer ist in Fig. 2 gezeigt. Das Eingangssignal wird in dem Vorverarbeitungsblock hochpaßgefiltert und skaliert. Fig. 2: Signalfluß bei dem CS-ACELP-Codierer.
  • Das vorverarbeitete Signal dient als das Eingangssignal für die gesamte nachfolgende Analyse. Die LP-Analyse geschieht einmal pro 10 ms-Rahmen, um die LP-Filterkoeffizienten zu berechnen. Diese Koeffizienten werden in Linienspektrums-Paare (LSP) konvertiert und mit prädiktiver zweistufiger Vektorquantisierung (VQ) mit 18 Bit quantisiert. Die Anregungssequenz wird mit einer Analyse-durch-Synthese-Suchprozedur gewählt, in der der Fehler zwischen der Ausgangssprache und der synthetisierten Sprache gemäß einem perzeptual gewichteten Verzerrungsmaß minimiert wird. Dies geschieht, indem das Fehlersignal mit einem perzeptual gewichteten Filter gefiltert wird, dessen Koeffizienten von dem nichtquantisierten LP-Filter abgeleitet sind. Das Ausmaß der perzeptualen Gewichtung wird adaptiv gemacht, um die Leistung für Eingangssignale mit einem flachen Frequenzgang zu verbessern.
  • Die Anregungsparameter (feste und adaptive Codelexikon- Parameter) werden jeweils pro Teilrahmen von 5 ms (40 Abtastwerte) bestimmt. Die quantisierten und nichtquantisierten LP-Filterkoeffizienten werden für den zweiten Teilrahmen verwendet, während in dem ersten Teilrahmen interpolierte LP-Filterkoeffizienten verwendet werden (sowohl quantisierte als auch nichtquantisierte). Eine Regelkreis-Tonhöhenverzögerung wird einmal pro 10 ms-Rahmen auf der Grundlage des perzeptual gewichteten Sprachsignals geschätzt. Die folgenden Operationen werden dann für jeden Teilrahmen wiederholt. Das Zielsignal x(n) wird durch Filtern des LP-Restes durch das gewichtete Synthesefilter W (z) /A (z) berechnet. Die Anfangszustände dieser Filter werden durch Filtern des Fehlers zwischen LP-Rest und Anregung aktualisiert. Dies entspricht dem üblichen Ansatz, die Nulleingabeantwort des gewichteten Synthesefilters von dem gewichteten Sprachsignal zu subtrahieren. Die Pulsantwort h(n) des gewichteten Synthesefilters wird berechnet. Dann erfolgt eine Regelkreis-Tonhöhenanalyse (um die Verzögerung und die Verstärkung des adaptiven Codelexikons zu finden), wobei das Ziel x(n) und die Pulsantwort h(n) verwendet werden, indem um den Wert der Regelkreis-Tonhöhenverzögerung herum gesucht wird. Es wird eine gebrochene Tonhöhenverzögerung mit Auflösung 1/3 verwendet. Die Tonhöhenverzögerung wird in dem ersten Teilrahmen mit 8 Bit codiert und in dem zweiten Teilrahmen differentiell mit 5 Bit codiert. Das Zielsignal x(n) wird durch Entfernen des Beitrags des adaptiven Codelexikons (des gefilterten adaptiven Codevektors) aktualisiert, und dieses neue Ziel x2(n) wird in der festen algebraischen Codelexikonsuche verwendet (um die optimale Anregung zu finden). Ein algebraisches Codelexikon mit 17 Bit wird für die feste Codelexikon-Anregung verwendet. Die Verstärkungsfaktoren des adaptiven und festen Codelexikons werden mit 7 Bit vektorquantisiert (bei an die feste Codelexikon-Verstärkung angelegter MA-Prädiktion). Schließlich werden die Filterspeicher mit dem bestimmten Anregungssignal aktualisiert.
  • 2.2. Decodierer
  • Der Signalfluß bei dem Decodierer ist in Fig. 3 gezeigt. Zunächst werden die Parameterindizes aus dem empfangenen Bitstrom extrahiert. Diese Indizes werden decodiert, um die einem 10 ms-Sprachrahmen entsprechenden Codiererparameter zu erhalten. Diese Parameter sind die LSP-Koeffizienten, die 2 gebrochenen Tonhöhenverzögerungen, die 2 festen Codelexikon-Vektoren und die 2 Sätze von adaptiven und festen Codelexikon- Verstärkungen. Die LSP-Koeffizienten werden interpoliert und für jeden Teilrahmen in LP- Filterkoeffizienten konvertiert. Dann werden für jeden 40-Abtastwert-Teilrahmen die folgenden Schritte durchgeführt:
  • - Die Anregung wird dadurch aufgebaut, daß die mit ihren jeweiligen Verstärkungen skalierten adaptiven und φesten Codelexikon-Vektoren addiert werden, Fig. 3: Signalfluß bei dem CS-ACELP-Decodierer.
  • - die Sprache durch Filtern der Anregung durch das LP-Synthesefilter gefiltert wird,
  • - das rekonstruierte Sprachsignal durch eine Nachverarbeitungsstufe geschickt wird, die aus einem adaptiven Postfilter auf der Grundlage des Langzeit- und Kurzzeit-Synthesefilters besteht, gefolgt von einer Hochpaßfilterung und Skalierung.
  • 2.3. Verzögerung
  • Dieser Codierer codiert Sprache und andere Audiosignale mit 10 ms-Rahmen. Außerdem wird 5 ms vorausgeschaut, was zu einer algorithmischen Gesamtverzögerung von 15 ms führt. Alle zusätzlichen Verzögerungen bei einer praktischen Implementierung dieses Codierers sind auf folgendes zurückzuführen:
  • - die für die Codierung und Decodierung benötigte Verarbeitungszeit,
  • - die Übertragungszeit auf der Kommunikationsstrecke, - die Multiplexierverzögerung, wenn Audiodaten mit anderen Daten verknüpft werden.
  • 2.4. Beschreibung des Sprachcodierers
  • Die Beschreibung des Sprachcodieralgorithmus dieser Empfehlung erfolgt durch bitgenaue mathematische Festkommaoperationen. Der in Abschnitt 5 angegebene ANSI-C-Code, der Bestandteil dieser Empfehlung ist, gibt diesen bitgenauen beschreibenden Festkommaansatz wieder. Die mathematischen Beschreibungen des Codierers (Abschnitt 3) und Decodierers (Abschnitt 4) können auf verschiedene andere Art und Weise implementiert werden, die möglicherweise zu einer Codec-Implementierung führt, die dieser Empfehlung nicht entspricht. Die Algorithmusbeschreibung des C-Codes von Abschnitt 5 hat deshalb immer dann Vorrang vor den mathematischen Beschreibungen der Abschnitte 3 und 4, wenn Diskrepanzen gefunden werden. Ein nicht erschöpfender Satz von Testsequenzen, die in Verbindung mit dem C- Code verwendet werden können, ist von der ITU erhältlich.
  • 2.5. Notationskonventionen
  • Es wird versucht, in dem vorliegenden Dokument durchwegs die folgenden Notationskonventionen zu verwenden.
  • - Codelexika werden durch Schönschreibzeichen (z. B. C) bezeichnet.
  • - Zeitsignale werden durch das Symbol und den Abtastzeitindex zwischen Klammern bezeichnet (z. B. s(n)). Das Symbol n wird als ein Abtastzeitpunktindex verwendet.
  • - Hochgestellte Zeitindizes (z.B. g(m)) beziehen sich auf die einem Teilrahmen m entsprechende Variable.
  • - Tiefgestellte Zeichen identifizieren ein bestimmtes Element in einer Koeffizientenmatrix.
  • - Ein ^ identifiziert eine quantisierte Version eines Parameters.
  • - Bereichsnotationen erfolgen mit eckigen Klammern, wobei die Grenzen enthalten sind (z. B. [0,6, 0,9]).
  • - log bezeichnet einen Logarithmus zur Basis 10.
  • In Tabelle 2 sind die in diesem Dokument verwendeten relevantesten Symbole aufgeführt. Tabelle 2: Erläuterung der Symbole.
  • Eine Erläuterung der relevantesten Signale findet man in Tabelle 3. In Tabelle 4 sind relevante Variablen und ihre Dimension zusammengefaßt.
  • Tabelle 3: Erläuterung der Signale Name Beschreibung
  • h(n) Pulsantwort auf Gewichtungs- und Synthesefilter
  • r(k) Autokorrelationssequenz
  • r'(k) Modifizierte Autokorrelationssequenz
  • R(k) Korrelationssequenz
  • sw(n) Gewichtetes Sprachsignal
  • s(n) Sprachsignal
  • s'(n) Sprachsignal nach Fensterbildung
  • sf(n) Nachgefilterte Ausgabe
  • sf'(n) Verstärkungsskalierte nachgefilterte Ausgabe
  • (n) Rekonstruiertes Sprachsignal
  • r(n) Restsignal
  • x(n) Zielsignal
  • x&sub2;(n) Zweites Zielsignal
  • (n) Adaptiver Codelexikon-Beitrag
  • c(n) Fester Codelexikon-Beitrag
  • y(n) (n) * h(n)
  • z(n) c(n) * h(n)
  • u(n) Anregung zu LP-Synthesefilter
  • d(n) Korrelation zwischen Zielsignal und h(n)
  • ew(n) Fehlersignal Tabelle 4: Erläuterung der Variablen
  • Konstante Parameter sind in Tabelle 5 angeführt. Tabelle 5: Erläuterung der Konstanten
  • Die in dieser Empfehlung verwendeten Abkürzungen sind in Tabelle 6 zusammengefaßt.
  • Tabelle 6: Erläuterung der Abkürzungen. Abkürzung Beschreibung
  • CELP Code-angeregte Linearprädiktion
  • MA Bewegliches Mittel
  • MSB Höchstwertiges Bit
  • LP Linearprädiktion
  • LSP Linienspektrums-Paar
  • LSF Linienspektrums-Frequenz
  • VQ Vektorquantisierung
  • 3 Beschreibung der Funktion des Codierers
  • In diesem Abschnitt werden die verschiedenen, in den Blöcken von Fig. 1 dargestellten Funktionen des Codierers beschrieben.
  • 3.1 Vorverarbeitung
  • Wie in Abschnitt 2 erwähnt, soll es sich bei der Eingabe in den Sprachcodierer um ein 16 Bit PCM-Signal handeln. Vor der Codierung werden zwei Vorverarbeitungsfunktionen angewendet: 1) Signalskalierung und 2) Hochpaßfilterung.
  • Die Skalierung besteht aus dem Dividieren der Eingabe durch einen Faktor 2 zum Reduzieren der Möglichkeit von Überläufen bei der Festkommaimplementierung. Das Hochpaßfilter dient als Vorkehrung gegen unerwünschte niederfrequente Komponenten. Es wird ein Pol-/Null- Filter zweiter Ordnung mit einer Grenzfrequenz von 140 Hz verwendet. Sowohl die Skalierung als auch die Hochpaßfilterung werden mit dem Dividieren der Koeffizienten im Zähler dieses Filters durch 2 verknüpft. Das resultierende Filter ergibt sich durch
  • Das durch Hh1(z) gefilterte Eingangssignal wird als s(n) bezeichnet und wird in allen nachfolgenden Codiereroperationen verwendet.
  • 3.2 Linearprädiktionsanalyse und -quantisierung
  • Die Kurzzeit-Analyse- und Synthesefilter basieren auf Linearprädiktionsfiltern (LP-Filtern) 10ter Ordnung. Das LP-Synthesefilter ist definiert als
  • wobei âi, 1 = 1, ..., 10 die (quantisierten) Linearprädiktionskoeffizienten (LP-Koeffizienten) sind. Die Kurzzeit-Prädiktion oder Linearprädiktionsanalyse wird unter Verwendung des Autokorrelationsansatzes mit einem 30 ms asymmetrischen Fenster einmal pro Sprachrahmen durchgeführt. Alle 80 Abtastwerte (10 ms) werden die Autokorrelationskoeffizienten der Sprache nach Fensterbildung berechnet und mit dem Levinson- Algorithmus in die LP-Koeffizienten konvertiert. Dann werden die LP-Koeffizienten zur Quantisierung und Interpolation in den LSP-Bereich transformiert. Die interpolierten quantisierten und nichtquantisierten Filter werden zurück zu den LP-Filterkoeffizienten konvertiert (um die Synthese- und Gewichtungsfilter bei jedem Teilrahmen zu konstruieren).
  • 3.2.1 Fensterbildung und Autokorrelationsberechnung
  • Das LP-Analysefenster besteht aus zwei Teilen: der erste Teil ist die Hälfte eines Hamming-Fensters und der zweite Teil ist ein Viertel einer Kosinusfunktionsperiode. Das Fenster ist gegeben durch:
  • In der LP-Analyse gibt es eine 5 ms-Vorausschau, was bedeutet, daß 40 Abtastwerte aus dem zukünftigen Sprachrahmen benötigt werden. Dies entspricht bei der Codiererstufe einer zusätzlichen Verzögerung von 5 ms. Das LP-Analysefenster gilt für 120 Abtastwerte von vergangenen Sprachrahmen, 80 Abtastwerte von dem vorliegenden Sprachrahmen und 40 Abtastwerte von dem zukünftigen Sprachrahmen. Die Fensterbildung bei der LP-Analyse ist in Fig. 4 dargestellt.
  • Fig. 4: Fensterbildung in der LP-Analyse. Von den Mustern mit verschiedenen Schattierungen werden entsprechende Anregungs- und LP-Analyse-Rahmen identifiziert.
  • Die Autokorrelationskoeffizienten der Sprache nach Fensterbildung
  • s'(n) = ωlp(n) s(n), n = 0, ..., 239, (4)
  • werden berechnet durch
  • r(k) = s'(n)s'(n - k), k = 0, ..., 10, (5)
  • Um arithmetische Probleme für Eingangssignale mit einem niedrigen Pegel zu vermeiden, weist der Wert r(0) eine Untergrenze von r(0) = 1,0 auf. Es wird eine 60 Hz- Bandbreitenaufweitung angewendet, indem die Autokorrelationskoeffizienten mit
  • multipliziert werden, wobei &sub0; = 60 Hz die Bandbreitenaufweitung und s = 8000 Hz die Abtastfrequenz ist. Außerdem wird r(0) mit dem Korrekturfaktor 1,0001 für weißes Rauschen multipliziert, was dem Addieren einer Rauschuntergrenze bei -40 dE entspricht.
  • 3.2.2 Levinson-Durbin-Algoritbxnus
  • Mit den modifizierten Autokorrelationskoeffizienten
  • r'(0) = 1,0001 r(0)
  • r'(k) = ωlog(k)r(k), k = 1,..., (7)
  • werden die LP-Filterkoeffizienten ai, i = 1, ..., 10 erhalten, indem der Gleichungssatz
  • air'( - k ) = -r'(k), k = 1,..., 10
  • gelöst wird. Der Gleichungssatz in (8) wird mit dem Levinson-Durbin-Algorithmus gelöst. Bei diesem Algorithmus wird die folgende Rekursion verwendet:
  • Die Endlösung ist gegeben als aj - aj(10), j = 1,..., 10
  • 3.2.3 LP-LSP-Konversion
  • Die LP-Filterkoeffizienten ai, i = 1, ..., 10, werden in die Linienspektrums-Paar-Darstellung (LSP-Darstellung) zur Quantisierung und Interpolation konvertiert. Für ein LP-Filter lOter Ordnung werden die LSP-Koeffizienten als die Wurzeln der Summen- und Differenzpolynome
  • = A(z) + z&supmin;¹¹A(z&supmin;¹), (9)
  • beziehungsweise
  • (z) = A(z) - z&supmin;¹¹A(z&supmin;¹), (10)
  • definiert. Das Polynom (z) ist symmetrisch, und (z) ist antisymmetrisch. Es kann bewiesen werden, daß alle Wurzeln dieser Polynome auf dem Einheitskreis liegen und einander abwechseln. Die Wurzel von (z) ist z = -1 (ω = π), und die Wurzel von (z) ist z = 1(ω = 0). Zur Eliminierung dieser beiden Wurzeln werden die neuen Polynome
  • F1(z) = (z)/(1 + z&supmin;¹)(11)
  • und
  • F&sub2;(z) = (z)/(1 - z&supmin;¹) (12)
  • definiert.
  • Jedes Polynom weist 5 konjugierte Wurzeln auf dem Einheitskreis (e≠jωi) auf, weshalb die Polynome als
  • F&sub1;(z) = (1 - 2qiz&supmin;¹ + z&supmin;²) (13)
  • und
  • F&sub2;(z) = (1 - 2qiz&supmin;¹ + z&supmin;²) (13)
  • geschrieben werden können, wobei qi = cos(&omega;i) ist, wobei &omega;i die Linienspektrums-Frequenzen (LSF) darstellen und sie der ordnenden Eigenschaft 0 < w&sub1; < &omega;&sub2; < ... < &omega;&sub1;&sub0; < &pi; genügen. qi wird als die LSP-Koeffizienten in dem Kosinusbereich bezeichnet.
  • Da die beiden Polynome F&sub1;(z) und F&sub2;(z) symmetrisch sind, brauchen nur die ersten 5 Koeffizienten jedes Polynoms berechnet zu werden. Die Koeffizienten dieser Polynome werden durch die rekursiven Beziehungen
  • f&sub1;(i + 1) = ai + 1 + a10-i - f&sub1;(i) = 0,...,4
  • f&sub2;(i + 1) = ai + 1 + a10-i - f&sub2;(i) = 0,...,4 (15)
  • gefunden, wobei &sub1; (0) = &sub2;(0) (0) = 1,0. Die LSP- Koeffizienten werden gefunden, indem die Polynome F&sub1;(z) und F&sub2;(z) an zwischen 0 und &pi; gleichmäßig beabstandeten 60 Punkten ausgewertet werden und auf Vorzeichenänderungen geprüft werden. Eine Vorzeichenänderung weist auf das Vorliegen einer Wurzel hin, und das Vorzeichenänderungsintervall wird dann 4 Mal dividiert, um die Wurzel besser zu verfolgen. Mit den Tschebyscheff- Polynomen werden F&sub1;(z) und E&sub2;(z) ausgewertet. Bei diesem Verfahren werden die Wurzeln direkt in dem Kosinusbereich {qi} gefunden. Die bei z = ej&omega; ausgewerteten Polynome F&sub1;(z) oder F&sub2;(z) können geschrieben werden als
  • F(&omega;) = 2e-j5wC(x), (16)
  • wobei
  • C(x) = T&sub5;(x) + (1)T&sub4;(x) + (2)T&sub3;(x) + (3)T&sub2;(x) + (4)T&sub1;)(x) + (5)/2(17)
  • wobei Tm(x) = cos(m&omega;) das Tschebyscheff-Polynom m-ter Ordnung ist und (i), i = 1, ..., 5 die Koeffizienten entweder von F&sub1;(z) oder F&sub2;(z) sind, die mit den Gleichungen in (15) berechnet wurden. Das Polynom C(x) wird bei einem bestimmten Wert von x = cos(&omega;) ausgewertet, wobei die folgende rekursive Relation verwendet wird:
  • mit den Anfangswerten b&sub5; = 1 und b&sub6; = 0.
  • 3.2.4 Quantisierung der LSP-Koeffizienten
  • Die LP-Filterkoeffizienten werden mit der LSP- Darstellung in den Frequenzbereich quantisiert, das heißt:
  • wobei &omega;i die Linienspektrums-Frequenzen (LSF) in dem normierten Frequenzbereich [0, &pi;] sind. Eine geschaltete MA-Prädiktion 4ter Ordnung wird verwendet, um den aktuellen Satz von LSF-Koeffizienten vorherzusagen. Die Differenz zwischen dem berechneten und vorhergesagten Satz von Koeffizienten wird mit einem zweistufigen Vektorquantisierer quantisiert. Die erste Stufe ist ein 10-dimensionaler VQ mit einem Codelexikon L1 mit 128 Einträgen (7 Bit). Die zweite Stufe ist ein 10-Bit-VQ, der als ein geteilter VQ mit zwei 5-dimensionalen Codelexika L2 und L3 mit jeweils 32 Einträgen (5 Bit) implementiert worden ist.
  • Zur Erläuterung des Quantisierungsprozesses wird zweckmäßigerweise zunächst der Decodierprozeß beschrieben. Jeder Koeffizient wird aus der Summe von 2 Codelexika erhalten:
  • wobei L1, L2 und L3 die Codelexikaindizes sind. Um in den quantisierten LP-Synthesefiltern scharfe Resonanzen zu vermeiden, sind die Koeffizienten 11 derart angeordnet, daß benachbarte Koeffizienten einen Mindestabstand von J aufweisen. Die Umordnungsroutine ist unten gezeigt:
  • Der Umordnungsprozeß wird zweimal ausgeführt, zunächst mit einem Wert von J = 0, 0001, dann mit einem Wert von J = 0,000095.
  • Nach diesem Umordnungsprozeß werden die quantisierten LSF-Koeffizienten für den aktuellen Rahmen n aus der gewichteten Summe vorheriger Quantisiererausgaben 1(m-k) und der aktuellen Quantisiererausgabe 1(m) erhalten
  • wobei die Koeffizienten des geschalteten MA- Prädiktors sind. Welcher MA-Prädiktor verwendet werden soll, wird durch ein eigenes Bit L0 definiert. Zu Beginn sind die Anfangswerte von gegeben durch 1i = 1&pi;/11 für alle k < 0.
  • Nach der Berechnung von i wird das entsprechende Filter auf Stabilität hin geprüft. Dies geschieht wie folgt:
  • 1. Ordnen des Koeffizienten ( ) mit aufsteigendem Wert,
  • 2. falls < 0,005, dann = 0,005,
  • 3. falls - < 0,0001, dann = + 0,0001 i = 1, ..., 9,
  • 4. falls > 3,135, dann = 3,135.
  • Die Prozedur zum Codieren der LSF-Parameter kann wie folgt umrissen werden. Für jeden der zwei MA- Prädiktoren muß die beste Annäherung an den aktuellen LSF-Vektor gefunden werden. Die beste Annäherung ist als die Annäherung definiert, die ein gewichtetes mittleres Fehlerquadrat
  • ELPC = &omega;i(&omega;i - )² (21)
  • minimiert.
  • Die Gewichte wi werden als Funktion der nichtquantisierten LSF-Koeffizienten
  • adaptiv gemacht. Außerdem werden die Gewichte w&sub5; und w&sub6; jeweils mit 1, 2 multipliziert.
  • Der für den aktuellen Rahmen zu quantisierende Vektor wird erhalten aus
  • Das erste Codelexikon L1 wird durchsucht und derjenige Eintrag L1 wird ausgewählt, der das (ungewichtete) mittlere Fehlerquadrat minimiert. Darauf folgt eine Suche in dem zweiten Codelexikon L2, das den unteren Teil der zweiten Stufe definiert. Für jeden möglichen Kandidaten wird der Teilvektor , i = 1, ..., 5, mit Gleichung (20) rekonstruiert und umgeordnet, um eine Mindestentfernung von 0,0001 zu garantieren. Der Vektor mit Index L2, der nach Addition zu dem Kandidaten der ersten Stufe und Umordnung dem unteren Teil des entsprechenden Ziels in dem Sinne eines gewichteten MSE am besten nahekommt wird ausgewählt. Mit dem ausgewählten Vektor L1 der ersten Stufe und dem unteren Teil der zweiten Stufe (L2) wird der höhere Teil der zweiten Stufe in dem Codelexikon L3 durchsucht. Wieder wird, um eine Mindestentfernung von 0,0001 zu garantieren, die Umordnungsprozedur verwendet. Der Vektor L3, der den insgesamt gewichteten MSE minimiert, wird ausgewählt.
  • Dieser Prozeß wird für jeden der beiden durch L0 definierten MA-Prädiktoren durchgeführt, und der MA- Prädiktor L0, der den niedrigsten gewichteten MSE erzeugt, wird ausgewählt.
  • 3.2.5 Interpolation der LSP-Koeffizienten
  • Die quantisierten (und nichtquantisierten) LP- Koeffizienten werden für den zweiten Teilrahmen verwendet. Für den ersten Teilrahmen werden die quantisierten (und nichtquantisierten) LP-Koeffizienten aus der linearen Interpolation der entsprechenden Parameter in dem benachbarten Teilrahmen erhalten. Die Interpolation erfolgt an den LSP-Koeffizienten in dem q-Bereich. Es seien die LSP-Koeffizienten bei dem zweiten Teilrahmen des Rahmens m und die LSP- Koeffizienten bei dem zweiten Teilrahmen des vergangenen Rahmens (m-1). Die (nichtquantisierten) interpolierten LSP-Koeffizienten in jedem der zwei Teilrahmen sind gegeben durch
  • Die gleiche Interpolationsprozedur wird für die Interpolation der quantisierten LSP-Koeffizienten verwendet, indem in Gleichung (24) qi durch ersetzt wird.
  • 3.2.6 LSP-LP-Konversion
  • Nach der Quantisierung und Interpolation der LSP- Koeffizienten werden sie in LP-Koeffizienten {ai} zurückkonvertiert. Die Konversion in dem LP-Bereich geschieht wie folgt. Die Koeffizienten von F&sub1;(z) und F&sub2;(z) werden durch Entwicklung der Gleichungen (13) und (14) gefunden, wobei die quantisierten und interpolierten LSP-Koeffizienten bekannt sind. Mit der folgenden rekursiven Beziehung wird &sub1;(i), i = 1, ...,5, aus qi berechnet
  • und zwar mit den Anfangswerten (0) = 1 und &sub1;(-1) = 0. Die Koeffizienten &sub2;(i) werden analog berechnet, indem q2i-1 durch q2i ersetzt wird.
  • Nachdem die Koeffizienten &sub1;(i) und &sub2;(i) gefunden worden sind, werden F&sub1;(z) und F&sub2;(z) mit 1 + z-1 beziehungsweise 1-z&supmin;¹ multipliziert, um (z) und (z) zu erhalten, das heißt
  • Schließlich werden die LP-Koeffizienten gefunden durch
  • Dies ist direkt von der Beziehung A(z) = ( (z) + (z)) /2 abgeleitet und weil (z) und (z) symmetrische beziehungsweise antisymmetrische Polynome sind.
  • 3.3. Perzeptuale Gewichtung
  • Das perzeptuale Gewichtungsfilter basiert auf den nichtquantisierten LP-Filterkoeffizienten und ist gegeben durch
  • Die Werte &gamma;&sub1; und &gamma;&sub2; bestimmen das Frequenzverhalten des Filters W(z). Durch richtige Einstellung dieser Variablen kann die Gewichtung effektiver gestaltet werden. Dies geschieht, indem &gamma;&sub1; und &gamma;&sub2; zu einer Funktion der spektralen Form des Eingangssignals gemacht werden. Diese Adaptation geschieht einmal pro 10 ms-Rahmen, doch wird mit einer Interpolation für jeden ersten Teilrahmen dieser Adaptationsprozeß geglättet. Die spektrale Form wird von einem Linearprädiktionsfilter 2ter Ordnung erhalten, das als ein Nebenprodukt aus der Levinson-Durbin-Rekursion (Abschnitt 3.2.2) erhalten wurde. Die Reflexionskoeffizienten ki werden in Log- Area-Ratio-Koeffizienten (LAR-Koeffizienten) o1 konvertiert durch
  • Diese LAR-Koeffizienten werden für den zweiten Teilrahmen verwendet. Die LAR-Koeffizienten für den ersten Teilrahmen werden durch lineare Interpolation mit den LAR-Parametern von den vorausgegangenen Rahmen erhalten und sind gegeben durch
  • Die spektrale Hüllkurve ist dadurch gekennzeichnet, daß sie entweder flach ist (flat = 1) oder geneigt ist (flat = 0). Diese Charakterisierung wird für jeden Teilrahmen dadurch erhalten, daß auf die LAR- Koeffizienten eine Schwellwertfunktion angewendet wird. Zur Vermeidung schneller Veränderungen wird eine Hysterese verwendet, indem der Wert von flat in dem vorausgegangenen Teilrahmen (m-1) berücksichtigt wird
  • Falls das interpolierte Spektrum für einen Teilrahmen als flach (flat(m) = 1) klassifiziert wird, werden die Gewichtungsfaktoren auf &gamma;&sub1; - 0, 94 und &gamma;&sub2; = 0, 6 gesetzt. Falls das Spektrum als geneigt (flat(m) - 0) klassifiziert wird, wird der Wert von &gamma;&sub1; auf 0,98 gesetzt und der Wert von &gamma;&sub2; wird auf die Stärke der Resonanzen in dem LP-Synthesefilter adaptiert, ist aber zwischen 0,4 und 0,7 begrenzt. Falls eine starke Resonanz vorliegt, wird der Wert von &gamma;&sub2; näher an die Obergrenze eingestellt. Diese Adaptation wird durch ein Kriterium auf der Basis der Mindestentfernung zwischen 2 aufeinanderfolgenden LSP-Koeffizienten für den aktuellen Teilrahmen erreicht. Die Mindestentfernung ist gegeben durch
  • Mit der folgenden linearen Relation wird &gamma;&sub2; berechnet:
  • &gamma;&sub2; = -6,0 * dmin + 1,0, und 0,4 &le; &gamma;&sub2; &le; 0,7 (32)
  • Das gewichtete Sprachsignal in einem Teilrahmen ist gegeben durch
  • Mit dem gewichteten Sprachsignal sw(n) wird eine Abschätzung der Tonhöhenverzögerung in dem Sprachrahmen gefunden.
  • 3.4 Regelkreis-Tonhöhenanalyse
  • Um die Komplexität der Suche nach der besten adaptiven Codelexikon-Verzögerung zu reduzieren, wird der Suchbereich um eine aus einer Regelkreis-Tonhöhenanalyse erhaltene mögliche Verzögerung Top eingegrenzt. Diese Regelkreis-Tonhöhenanalyse erfolgt einmal pro Rahmen (10 ms). Bei der Regelkreis-Tonhöhenabschätzung wird das gewichtete Sprachsignal sw(n) von Gleichung (33) verwendet, und sie wird wie folgt durchgeführt: in dem ersten Schritt werden 3 Maxima der Korrelation
  • R(k) = s&omega;(n)s&omega;(n - k) (34)
  • in den folgenden drei Bereichen gefunden
  • i = 1: 80, ..., 143,
  • i = 2: 40, ..., 79,
  • i = 3: 20, ..., 39.
  • Die beibehaltenen Maxima R (ti), 1 = 1,..., 3, werden normiert durch
  • Der Gewinner unter den drei normierten Korrelationen wird gewählt, indem die Verzögerungen mit den Werten in dem unteren Bereich bevorzugt werden. Dies geschieht durch Gewichten der normierten Korrelationen entsprechend den längeren Verzögerungen. Die beste Regelkreisverzögerung Top wird wie folgt bestimmt:
  • Durch diese Prozedur des Dividierens des Verzögerungsbereichs in 3 Abschnitte und Bevorzugen der unteren Abschnitte wird die Wahl von Tonhöhenvielfachen verhindert.
  • 3.5 Berechnung der Pulsantwort
  • Die Pulsantwort h(n) des gewichteten Synthesefilters W (z) / (z) wird für jeden Teilrahmen berechnet. Diese Pulsantwort wird für die Suche in adaptiven und festen Codelexika benötigt. Die Pulsantwort h(n) wird durch Filtern des Vektors von Koeffizienten des Filters A (z/&gamma;&sub1;), erweitert durch Nullen durch die beiden Filter 1/ (z) und 1/A (z/&gamma;&sub2;) berechnet.
  • 3.6. Berechnung des Zielsignals
  • Das Zielsignal x(n) für die Suche im adaptiven Codelexikon wird üblicherweise durch Subtrahieren der Nulleingabe-Antwort des gewichteten Synthesefilters W(z)/ (z) = /A(z/&gamma;&sub1;)/[ (z)A(z/&gamma;&sub2;)] aus dem gewichteten Sprachsignal sw(n) von Gleichung (33) berechnet. Dies geschieht auf einer Teilrahmenbasis.
  • Eine gleichwertige Vorgehensweise für das Berechnen des Zielsignals, die in dieser Empfehlung verwendet wird, ist die Filterung des LP-Restsignals r(n) durch die Kombination aus Synthesefilter 1/ (z) und dem Gewichtungsfilter A(z/&gamma;&sub1;)/A(z/&gamma;&sub2;). Nach der Bestimmung der Anregung für den Teilrahmen werden die Anfangszustände dieser Filter durch Filtern der Differenz zwischen LP- Rest und Anregung aktualisiert. Die Speicheraktualisierung dieser Filter ist in Abschnitt 3.10 erläutert.
  • Das Restsignal r(n), das zum Finden des Zielvektors benötigt wird, wird auch bei der Suche im adaptiven Codelexikon zur Erweiterung des Vergangenheitsanregungspuffers verwendet. Dies vereinfacht den Vorgang der Suche im adaptiven Codelexikon für Verzögerungen, die kleiner sind als die Teilrahmengröße von 40, wie im nächsten Abschnitt erläutert wird. Der LP-Rest ist gegeben durch
  • r(n) - s(n) + âis(n - i), n = 0,..., 39 (36)
  • 3.7 Suche im adaptiven Codelexikon
  • Die adaptiven Codelexikon-Parameter (oder Tonhöhenparameter) sind die Verzögerung und die Verstärkung. Bei dem Ansatz mit dem adaptiven Codelexikon zum Implementieren des Tonhöhenfilters wird die Anregung für unter der Länge des Teilrahmens liegende Verzögerungen wiederholt. Bei der Suchstufe wird die Anregung durch den LP-Rest zum Vereinfachen der Regelkreissuche erweitert. Die Suche im adaptiven Codelexikon geschieht bei jedem (5 ms) Teilrahmen. Bei dem ersten Teilrahmen wird eine gebrochene Tonhöhenverzögerung T&sub1; mit einer Auflösung von 1/3 im Bereich [19¹/&sub3;, 84²/&sub3;] und ganzen Zahlen nur in dem Bereich [85, 143] verwendet. Für den zweiten Teilrahmen wird eine Verzögerung T&sub2; mit einer Auflösung von 1/3 immer in dem Bereich [(int) T&sub1; - 5²/&sub3;, (int) T&sub1; + 4²/&sub3; verwendet, wobei (int) T&sub1; die nächste ganze Zahl zu der gebrochenen Tonhöhenverzögerung T&sub1; des ersten Teilrahmens ist. Dieser Bereich wird in denjenigen Fällen angepaßt, wenn T&sub1; sich über die Grenzen des Verzögerungsbereichs hinweg erstreckt.
  • Für jeden Teilrahmen wird die optimale Verzögerung unter Verwendung einer Regelkreisanalyse bestimmt, die das gewichtete mittlere Fehlerquadrat minimiert. In dem ersten Teilrahmen wird die Verzögerung T&sub1; gefunden, indem in einem kleinen Bereich (6 Abtastwerte) von Verzögerungswerten um die Regelkreisverzögerung Top herum gesucht wird (siehe Abschnitt 3.4). Die Suchgrenzen tmin und tmax sind definiert durch
  • Für den zweiten Teilrahmen erfolgt die Regelkreis-Tonhöhenanalyse um die in dem ersten Teilrahmen herum ausgewählte Tonhöhe, um die optimale Verzögerung T&sub2; zu finden. Die Suchgrenzen liegen zwischen tmin - ²/&sub3; und tmax + ²/&sub3;, wobei tmin und tmax aus T&sub1; wie folgt abgeleitet sind:
  • Durch die Regelkreis-Tonhöhensuche wird das gewichtete mittlere Fehlerquadrat zwischen der ursprünglichen Sprache und der synthetisierten Sprache minimiert. Dies geschieht durch Maximieren des Ausdrucks
  • wobei x(n) das Zielsignal und yk(n) die zurückliegende gefilterte Anregung bei der Verzögerung k ist (mit h(n) gefaltete zurückliegende Anregung). Man beachte, daß der Suchbereich um einen vorgewählten Wert herum begrenzt ist, der die Regelkreistonhöhe Top für den ersten Teilrahmen und T&sub1; für den zweiten Teilrahmen ist.
  • Die Faltung yk (n) wird für die Verzögerung tmin berechnet und für die anderen ganzzahligen Verzögerungen in dem Suchbereich k = tmin + 1, ..., tmax mit der rekursiven Beziehung
  • yk(n) = yk-1(n - 1) + u(-k)h(n), n = 39,..., 0, (38)
  • aktualisiert, wobei u(n), n = -143, ..., 39, der Anregungspuffer ist und yk 1(-1) = 0. Man beachte, daß bei der Suchstufe die Abtastwerte u(n), n = 0, ..., 39, unbekannt sind und sie für unter 40 liegende Tonhöhenverzögerungen benötigt werden. Zur Vereinfachung der Suche wird der LP-Rest zu u(n) kopiert, damit die Beziehung in Gleichung (38) für alle Verzögerungen gültig ist.
  • Für die Bestimmung von T&sub2; und T&sub1;, falls die optimale ganzzahlige Regelkreisverzögerung unter 84 liegt, müssen die Brüche um die optimale ganzzahlige Verzögerung herum getestet werden. Die Suche nach gebrochenen Tonhöhen erfolgt durch Interpolieren der normierten Korrelation in Gleichung (37) und die Suche nach ihrem Maximum. Die Interpolation erfolgt mit einem FIR-Filter b&sub1;&sub2; basierend auf einer Sinc-Funktion mit Hamming-Fenstern, wobei der Sinc bei ±11 abgeschnitten ist und mit Nullen bei ±12 (b&sub1;&sub2;(12) = 0) aufgefüllt ist. Die Grenzfrequenz (-3 dE) des Filters liegt in dem überabgetasteten Bereich bei 3600 Hz. Die interpolierten Werte von R (k) für die Brüche - ²/&sub3;, - ¹/&sub3;, 0, ¹/&sub3; und werden mit der Interpolationsformel
  • R(k) = R(k - i)b&sub1;&sub2;(t + i.3) + R(k - 1 + i)b&sub1;&sub2;(3 - t + i.3), t = 0, 1, 2, (39)
  • erhalten, wobei t = 0, 1, 2 den Brüchen 0, ¹/&sub3; beziehungsweise ²/&sub3; entspricht. Man beachte, daß Korrelationsterme in Gleichung (37) zur richtigen Interpolation mit einem Bereich tmin - 4, tmax + 4 berechnet werden müssen.
  • 3.7.1 Erzeugung des adaptiven Codelexikon-Vektors
  • Nach der Bestimmung der unganzzahligen Tonhöhenverzögerung wird der adaptive Codelexikon-Vektor v(n) durch Interpolieren des Vergangenheitsanregungssignals u(n) mit der gegebenen ganzzahligen Verzögerung k und Bruchteil t
  • v(n) = u(n - k + i)b&sub3;&sub0;(t + i.3) + u(n - k + 1 + i)b&sub3;&sub0;(3 - t + i.3), n = 0,...,39, t = 0, 1, 2. (40)
  • Das Interpolationsfilter b&sub3;&sub0; basiert auf Sinc-Funktionen mit Hamming-Fenstern, wobei Sinc bei ±29 abgeschnitten und mit Nullen bei ±30 gestopft ist (b&sub3;&sub0;(30) - 0). Die Filter weisen in dem überabgetasteten Bereich eine Grenzfrequenz (-3 dB) bei 3600 Hz auf.
  • 3.7.2 Codewortberechnung für adaptive Codelexikon- Verzögerungen
  • Die Tonhöhenverzögerung T&sub1; wird mit 8 Bit in dem ersten Teilrahmen codiert, und die relative Verzögerung in dem zweiten Teilrahmen wird mit 5 Bit codiert. Eine gebrochene Verzögerung T wird durch ihren ganzzahligen Teil (int)T und einen Bruchteil frac/3, frac = -1, 0, 1, dargestellt. Der Tonhöhenindex P1 ist nun codiert als
  • Der Wert der Tonhöhenverzögerung T&sub2; ist relativ zu dem Wert von T&sub1; codiert. Mit der gleichen Interpretation wie oben, wird die gebrochene Verzögerung T&sub2;, die durch ihren ganzzahligen Teil (int)T&sub2; und einen Bruchteil frac/3, frac = -1, 0, 1, dargestellt wird, codiert als
  • P2 = ((int)T&sub2; - tmin) = 3 + rac + 2 (42)
  • wobei tmin wie oben von T&sub1; abgeleitet ist.
  • Um den Codierer gegenüber Zufallsbitfehlern robuster zu machen, wird an dem Verzögerungsindex des ersten Teilrahmens ein Paritätsbit P0 berechnet. Das Paritätsbit wird durch eine XOR-Operation an den 6 höchstwertigen Bit von P1 erzeugt. Bei dem Decodierer wird dieses Paritätsbit wieder berechnet, und falls der wiederberechnete Wert nicht mit dem übertragenen Wert übereinstimmt, wird eine Fehlerverdeckungsprozedur angewendet.
  • 3.7.3 Berechnung der adaptiven Codelexikon- Verstärkung
  • Nach der Bestimmung der adaptiven Codelexikon-Verzögerung wird die adaptive Codelexikon-Verstärkung gp berechnet als
  • wobei y(n) der gefilterte adaptive Codelexikon-Vektor ist (Nullzustandsantwort von W (z) / (z) auf v(n)). Dieser Vektor wird durch Falten von v(n) mit h(n) erhalten
  • y(n) = (i)h(n - i) n = 0, .... 39. (44)
  • Man beachte, daß in den meisten Fällen durch Maximieren des Ausdrucks in Gleichung (37) gp > 0. Falls das Signal nur negative Korrelationen enthält, wird der Wert von gp auf 0 gesetzt.
  • 3.8. Festes Codelexikon: Struktur und Suche
  • Das feste Codelexikon basiert auf einer algebraischen Codelexikonstruktur, die ein ISPP-Design (interleaved single-pulse permutation) verwendet. In diesem Codelexikon enthält jeder Codelexikon-Vektor 4 von Null verschiedene Pulse. Jeder Puls kann entweder die Amplituden +1 oder -1 aufweisen und kann die in Tabelle 7 angegebenen Positionen einnehmen.
  • Der Codelexikon-Vektor c(n) wird konstruiert, indem ein Nullvektor genommen wird und die 4 Einheitspulse mit ihrem entsprechenden Vorzeichen multipliziert an die gefundenen Stellen gesetzt werden.
  • c(n) = s0&delta;(n - i0) + s1&delta;(n - i1)+ s2&delta;(n - i2) + s3&delta;(n - i3), n = 0,..., 39 (45)
  • wobei 5(0) ein Einheitspuls ist. Ein in das Codelexikon integriertes spezielles Merkmal besteht darin, daß der ausgewählte Codelexikon-Vektor durch ein adaptives Vorfilter P(z) gefiltert wird, was die harmonischen Anteile zur Verbesserung der Qualität der synthetisierten Sprache verstärkt. Hier wird das Filter
  • P(z) = 1/(1 - &delta;z-T)
  • der ganzzahlige Anteil der Tonhöhenverzögerung des aktuellen Teilrahmens und &beta; eine Tonhöhenverstärkung ist. Tabelle 7: Struktur des festen Codelexikons C.
  • Der Wert von &beta; wird adaptiv gemacht, indem die quantisierte adaptive Codelexikon-Verstärkung von dem durch 0,2 und 0,8 begrenzten vorausgeganenen Teilrahmen verwendet wird.
  • &beta; = , 0,2 &le; 3 &le; 0,8 (47)
  • Durch dieses Filter wird die harmonische Struktur für unter der Teilrahmengröße von 40 liegende Verzögerungen verstärkt. Diese Modifikation wird in die Suche im festen Codelexikon integriert, indem die Pulsantwort h (n) gemäß
  • h(n) = h(n) + &beta;h(n -T), n = T,.., 39. (48)
  • modifiziert wird.
  • 3.8.1 Festes Codelexikon: Suchprozedur
  • In dem festen Codelexikon wird gesucht, indem das mittlere Fehlerquadrat zwischen der gewichteten eingegebenen Sprache sw(n) von Gleichung (33) und der gewichteten rekonstruierten Sprache minimiert wird. Das bei der Regelkreis-Tonhöhensuche verwendete Zielsignal wird durch Subtrahieren des adaptiven Codelexikon-Beitrags aktualisiert, das heißt
  • x&sub2;(n) = x(n) - gpy(n), n = 0, ..., 39 (49)
  • wobei y(n) der gefilterte adaptive Codelexikon-Vektor von Gleichung (44) ist.
  • Die Matrix H ist als die untere dreieckige Toeplitz- Faltungsmatrix mit einer Diagonalen h(0) und unteren Diagonalen h(1), ..., h(39) definiert. Falls ck der algebraische Codevektor beim Index k ist, dann wird in dem Codelexikon gesucht durch Maximieren des Ausdrucks
  • wobei d(n) die Korrelation zwischen dem Zielsignal x&sub2;(n) und der Pulsantwort h (n) ist und &phi; = HtH die Matrix der Korrelationen von h(n) ist. Das Signal d(n) und die Matrix &phi; werden vor der Codelexikonsuche berechnet. Die Elemente von d(n) werden berechnet aus
  • d(n) = x(i)h(i - n), n = 0,...39 (51)
  • und die Elemente der symmetrischen Matrix &phi; werden berechnet durch
  • &phi;(i,j) = h(n - i)h(n - j), (j &ge; i) (52)
  • Man beachte, daß nur die tatsächlich benötigten Elemente berechnet werden, und eine effiziente Speicherprozedur ist zur Beschleunigung der Suchprozedur entworfen worden.
  • Die algebraische Struktur des Codelexikons C gestattet eine schnelle Suchprozedur, da der Codelexikon-Vektor ck nur vier von Null verschiedene Pulse enthält. Die Korrelation in dem Zähler von Gleichung (50) ist für einen gegebenen Vektor ck gegeben durch
  • C = aid(mi),
  • wobei mi die Position des i-ten Pulses und ai seine Amplitude ist. Die Energie in dem Nenner von Gleichung (50) ist gegeben durch
  • Zur Vereinfachung der Suchprozedur werden die Pulsamplituden durch Quantisieren des Signals d(n) im voraus bestimmt, und zwar durch Setzen der Amplitude eines Pulses an einer bestimmten Position gleich dem Vorzeichen von d(n) an dieser Position. Vor der Codelexikonsuche werden die folgenden Schritte durchgeführt. Zunächst wird das Signal d(n) in zwei Signale zerlegt: das absolute Signal d'(n)I = d(n) und das Vorzeichensignal sign[d(n)]. Als zweites wird die Matrix &phi; durch Aufnahme der Vorzeicheninformationen modifiziert, das heißt
  • &phi;'(i,j) = sign[d(i)] sign[d(j)] &phi;(i,j), i = 0,...,39, j = i,...,39 (55)
  • Zum Entfernen des Faktors 2 in Gleichung (54)
  • &phi;'(i, i) = 0,5&phi;(i,i), i = 0,...,39 (56)
  • Die Korrelation in Gleichung (53) ist nun gegeben durch
  • C = d'(m&sub0;) + d'(m&sub1;) + d'(m&sub2;) + d'(m&sub3;), (57)
  • und die Energie in Gleichung (54) ist gegeben durch
  • Mit einem fokussierten Suchansatz wird die Suchprozedur weiter vereinfacht. Bei diesem Ansatz wird ein im voraus berechneter Schwellwert getestet, bevor in die letzte Schleife eingestiegen wird, und in die Schleife wird nur dann eingestiegen, falls dieser Schwellwert überschritten wird. Die größte Anzahl, wie oft in die Schleife eingestiegen werden kann, ist festgelegt, so daß in einem geringen Prozentsatz des Codelexikons gesucht wird. Der Schwellwert wird auf der Basis der Korrelation C berechnet. Die größte absolute Korrelation und die durchschnittliche Korrelation aufgrund des Beitrags der ersten drei Pulse, max&sub3; und av&sub3;, werden vor der Codelexikonsuche gefunden. Der Schwellwert ist gegeben durch
  • thr&sub3; = a &sub3; + K&sub3;(max3 - a &sub3;). (59)
  • In die vierte Schleife wird nur dann eingestiegen, falls die absolute Korrelation (aufgrund von drei Pulsen) thr&sub3; übersteigt, wobei 0 &le; T&sub3; < 1. Der Wert von K&sub3; steuert den Prozentsatz der Codelexikasuche und ist hier auf 0,4 gesetzt. Man beachte, daß dies zu einer variablen Suchzeit führt, und zur weiteren Steuerung der Suche kann die Häufigkeit, mit der (für die 2 Teilrahmen) in die letzte Schleife eingestiegen werden kann, ein bestimmtes Maximum nicht übersteigen, das hier auf 180 gesetzt ist (der durchschnittliche schlechteste Fall pro Teilrahmen ist 90 Mal).
  • 3.8.2 Codewortberechnung des festen Codelexikons
  • Die Pulspositionen der Pulse 10, 11 und 12 werden mit jeweils 3 Bit codiert, während die Position von 13 mit 4 Bit codiert wird. Jede Pulsamplitude wird mit einem Bit codiert. Dies ergibt für die 4 Pulse insgesamt 17 Bit. Indem bei positivem Vorzeichen s = 1 und bei negativem Vorzeichen s = 0 definiert wird, wird das Vorzeichencodewort erhalten aus
  • S = s0 + 2 * s1 + 4 * s2 + 8 * s3 (60)
  • und das feste Codelexikon-Codewort wird erhalten aus
  • C = (i0/5) + 8 * (il/5 + 64 * (i2/5 + 512 * (2 * (i3/5) + jx) (61)
  • wobei jx = 0, falls 13 = 3, 8, ..., und jx = 1, falls 13 = 4, 9, ...
  • 3.9 Quantisierung der Verstärkungsfaktoren
  • Die adaptive Codelexikon-Verstärkung (Tonhöhenverstärkung) und die feste (algebraische) Codelexikon-Verstärkung werden mit 7 Bit vektorquantisiert. Die Verstärkungs-Codelexikonsuche geschieht durch Minimieren des gewichteten mittleren Fehlerquadrats zwischen der ursprünglichen und rekonstruierten Sprache, das gegeben ist durch
  • E = xtx = y'y + ztz - 2gpxty - 2gcx'z + 2gpgcy'z, (62)
  • wobei x der Zielvektor (siehe Abschnitt 3.6), y der gefilterte adaptive Codelexikon-Vektor von Gleichung (94) und z der mit h(n) gefaltete feste Codelexikon- Vektor ist,
  • z(n) = c(i)h(n - i) n = 0,..., 39 (63)
  • 3.9.1 Verstärkungsvorhersage
  • Die feste Codelexikon-Verstärkung gc kann ausgedrückt werden als
  • 9c = &gamma;g'c(64)
  • wobei g'c eine vorhergesagte Verstärkung basierend auf vorausgegangenen festen Codelexikon-Energien und &gamma; ein Korrekturfaktor ist.
  • Die mittlere Energie des festen Codelexikon-Beitrags ist gegeben durch
  • E = 10log(¹/&sub4;&sub0; ). (65)
  • Nach dem Skalieren des Vektors ci mit der festen Codelexikon-Verstärkung gc ist die Energie des skalierten festen Codelexikons gegeben durch 20 log gc + E. Es sei E(m) (in dE) die mittlere entfernte Energie des (skalierten) festen Codelexikon-Beitrags beim Teilrahmen m, die gegeben ist durch
  • E(m) = 20 loggc + E - (66)
  • wobei = 30 dB die mittlere Energie der festen Codelexikon-Anregung ist. Die Verstärkung ge kann als Funktion von E(m), E und durch
  • gc = 10(E(m) + - E)/20 (67)
  • ausgedrückt werden.
  • Die vorhergesagte Verstärkung g'c wird gefunden, indem die logarithmische Energie des aktuellen festen Codelexikon-Beitrags aus der logarithmischen Energie von vorausgegangenen festen Codelexikon-Beiträgen vorhergesagt wird. Die MA-Prädiktion 4ter Ordnung geschieht wie folgt. Die vorhergesagte Energie ist gegeben durch
  • wobei [b&sub1; b&sub2; b&sub3; b&sub4;] = [0, 68 0, 58, 0, 34 0, 19] die NA- Prädiktionskoeffizienten sind und die quantisierte Version des Prädiktionsfehlers R(m) beim Teilrahmen m ist, die definiert ist durch
  • R(m), Em - (m), (69)
  • Die vorhergesagte Verstärkung g'c wird gefunden, indem E(m) in Gleichung (67) durch seinen vorhergesagten Wert ersetzt wird.
  • g'c = 10t (m) + - E)/20 (70)
  • Der Korrekturfaktor &gamma; steht durch
  • R(m) = E(m) - (m) = 20 log(&gamma;)
  • zu dem Verstärkungs-Prädiktions-Fehler in Beziehung.
  • 3.9.2 Codelexikonsuche nach Verstärkungsquantisierung
  • Die adaptive Codelexikon-Verstärkung gp und der Faktor &gamma; werden mit einem zweistufigen konjugiert-strukturierten Codelexikon vektorquantisiert. Die erste Stufe besteht aus einem zweidimensionalen 3 Bit-Codelexikon GA, und die zweite Stufe besteht aus einem zweidimensionalen 4 Bit-Codelexikon GB. Das erste Element in jedem Codelexikon stellt die quantisierte adaptive Codelexikon-Verstärkung dar, und das zweite Element stellt den quantisierten festen Codelexikon-Verstärkungskorrekturfaktor dar. Wenn für GA und GB die Codelexikaindizes m bzw. n gegeben sind, dann ist die quantisierte adaptive Codelexikon-Verstärkung gegeben durch
  • = GA&sub1;(m) + GB&sub1;(n) (72)
  • und die quantisierte feste Codelexikon-Verstärkung ist gegeben durch
  • = g'c(GA&sub2;(m) + GB&sub2;(n)). (73)
  • Diese konjugierte Struktur vereinfacht die Codelexikonsuche durch Anwendung eines Vorauswahlprozesses. Die optimale Tonhöhenverstärkung gp und feste Codelexikon- Verstärkung gc werden aus Gleichung (62) abgeleitet und für die Vorauswahl verwendet. Das Codelexikon GA enthält 8 Einträge, bei denen das (gc entsprechende) zweite Element im allgemeinen größere Werte als das (gp entsprechende) erste Element aufweist. Diese Voreinstellung gestattet eine Vorauswahl mit dem Wert gc. Bei diesem Vorauswahlprozeß ist eine Gruppe aus 4 Vektoren, deren zweites Element nahe bei gxc liegen, wobei gxc von gc und gp abgeleitet ist. Analog enthält das Codelexikon GB 16 Einträge, in denen eine Voreinstellung zu dem (gp entsprechenden) ersten Element haben. Eine Gruppe aus 8 Vektoren, deren erste Elemente nahe bei gp liegen, wird ausgewählt. Somit werden für jedes Codelexikon die besten 50% infragekommenden Vektoren ausgewählt. Darauf folgt eine intensive Suche über die verbleibenden 4 * 8 = 32 Möglichkeiten hinweg derart, daß durch die Kombination aus den zwei Indizes das gewichtete mittlere Fehlerquadrat von Gleichung (62) minimiert wird.
  • 3.9.3 Codewortberechnung für Verstärkungsquantisierer
  • Die Codewörter GA und GB für den Verstärkungsquantisierer werden aus den der besten Wahl entsprechenden Indizes erhalten. Zur Reduzierung der Auswirkung von Einbitfehlern werden die Codelexikaindizes abgebildet.
  • 3.10 Speicheraktualisierung
  • Zur Berechnung des Zielsignals in dem nächsten Teilrahmen wird eine Aktualisierung der Zustände des Synthese- und Gewichtungsfilters benötigt. Nachdem die beiden Verstärkungsfaktoren quantisiert worden sind, wird das Anregungssignal u(n) in dem aktuellen Teilrahmen gefunden durch
  • u(n) = (n) + c(n), n = 0,...,39 (74)
  • wobei und die quantisierten adaptiven beziehungsweise festen Codelexikon-Verstärkungen sind, v(n) der adaptive Codelexikon-Vektor (interpolierte vergangene Anregung) ist und c(n) der feste Codelexikon-Vektor ist (algebraischer Codevektor mit Höhenverschärfung). Die Zustände der Filter können aktualisiert werden, indem das Signal r(n) - u(n) (Differenz zwischen Rest und Anregung) durch die Filter 1/ (z) und A(z/&gamma;&sub1;) /A (z/&gamma;&sub2;) für den 40 Abtastwert- Teilrahmen gefiltert und die Zustände der Filter gespeichert werden. Dies würde 3 Filteroperationen erfordern. Folgendes ist ein einfacherer Ansatz, der nur eine Filterung erfordert. Die lokale Synthesesprache (n) wird durch Filtern des Anregungssignals durch 1/ (z) berechnet. Die auf die Eingabe r(n) - u(n) zurückzuführende Ausgabe des Filters entspricht e(n) = s(n) - (n) - (n). Somit sind die Zustände des Synthesefilters 1/ (z) gegeben durch e (n), n = 30, ..., 39. Die Zustände des Filters A (z/&gamma;&sub1;/A/(z/&gamma;&sub2;) können durch Filtern des Fehlersignals e(n) durch dieses Filter aktualisiert werden, um den perzeptual gewichteten Fehler ew(n) zu finden. Das Signal ew(n) kann aber auch gefunden werden durch
  • e&omega;(n) = x(n) - y(n) + z(n). (75)
  • Da die Signale x (n), y (n) und z (n) zur Verfügung stehen, werden die Zustände des Gewichtungsfilters durch Berechnen von ew(n) wie in Gleichung (75) für n = 30, ..., 39 aktualisiert. Dadurch werden zwei Filteroperationen eingespart.
  • 3.11 Codierer- und Decodierer-Initialisierung
  • Alle statischen Codierervariablen sollten mit Ausnahme der in Tabelle 8 aufgeführten Variablen auf 0 initialisiert werden. Diese Variablen müssen auch für den Decodierer initialisiert werden. Tabelle 8: Beschreibung von Parametern mit einer von Null verschiedenen Initialisierung.
  • 4. Beschreibung der Funktion des Decodierers
  • Der Signalfluß bei dem Decodierer wurde in Abschnitt 2 (Fig. 3) gezeigt. Zunächst werden die Parameter decodiert (LP-Koeffizienten, adaptiver Codelexikon- Vektor, fester Codelexikon-Vektor und Verstärkungsfaktoren). Mit diesen decodierten Parametern wird das rekonstruierte Sprachsignal berechnet. Dieser Prozeß ist in Abschnitt 4.1 beschrieben. Dieses rekonstruierte Signal wird durch eine aus einem Postfilter und einem Hochpaßfilter bestehende Nachverarbeitungsoperation verbessert (Abschnitt 4.2). In Abschnitt 4.3 wird die Fehlerverdeckungsprozedur beschrieben, die verwendet wird, wenn entweder ein Paritätsfehler aufgetreten ist oder wenn das Rahmenlöschungsflag gesetzt worden ist.
  • 4.1 Parameterdecodierprozedur
  • Die übertragenen Parameter sind in Tabelle 9 aufgeführt. Zu Beginn sollten alle statischen Codierervariablen mit Ausnahme der in Tabelle 8 aufgeführten Variablen auf 0 initialisiert werden. Tabelle 9: Beschreibung übertragener Parameterindizes. Die Bitstromordnung wird durch die Reihenfolge in der Tabelle dargestellt. Bei jedem Parameter wird das höchstwertige Bit (MSB - most significant bit) zuerst übertragen.
  • Der Decodierprozeß erfolgt in der folgenden Reihenfolge:
  • 4.1.1 Decodieren der LP-Filterparameter
  • Mit den empfangenen Indizes L0, L1, L2 und L3 des LSP- Quantisierers werden die quantisierten LSP- Koeffizienten unter Verwendung der in Abschnitt 3.2.4 beschriebenen Prozedur rekonstruiert. Mit der in Abschnitt 3.2.5 beschriebenen Interpolationsprozedur werden 2 interpolierte LSP-Vektoren (entsprechend 2 Teilrahmen) erhalten. Für jeden Teilrahmen wird der interpolierte LSP-Vektor in LP-Filterkoeffizienten ai konvertiert, mit denen die rekonstruierte Sprache in dem Teilrahmen synthetisiert wird.
  • Die folgenden Schritte werden für jeden Teilrahmen wiederholt:
  • 1. Decodieren des adaptiven Codelexikon-Vektors,
  • 2. Decodieren des festen Codelexikon-Vektors,
  • 3. Decodieren der adaptiven und festen Codelexikon- Verstärkungen,
  • 4. Berechnung der rekonstruierten Sprache.
  • 4.1.2 Decodieren des adaptiven Codelexikon-Vektors
  • Der empfangene adaptive Codelexikon-Index wird verwendet, um die ganzzahligen und gebrochenen Teile der Tonhöhenverzögerung zu finden. Der ganzzahlige Teil (int)T&sub1; und der gebrochene Teil frac von T&sub1; werden wie folgt aus P1 erhalten:
  • Der ganzzahlige und gebrochene Teil von T&sub2; werden aus P2 und tmin erhalten, wobei tmin aus P1 wie folgt abgeleitet ist
  • Nun wird T&sub2; erhalten aus
  • Der adaptive Codelexikon-Vektor v(n) wird durch Interpolieren der zurückliegenden Anregung u(n) (bei der Tonhöhenverzögerung) unter Verwendung von Gleichung (40) gefunden.
  • 4.1.3 Decodieren des festen Codelexikon-Vektors
  • Mit dem empfangenen festen Codelexikon-Index C werden die Positionen der Anregungspulse extrahiert. Die Pulsvorzeichen werden aus S erhalten. Nach der Decodierung der Pulspositionen und -vorzeichen kann der feste Codelexikon-Vektor c(n) konstruiert werden. Falls der ganzzahlige Teil der Tonhöhenverzögerung T unter der Teilrahmengröße 40 liegt, wird die Tonhöhenverbesserungsprozedur angewendet, die c(n) gemäß Gleichung (48) modifiziert.
  • 4.1.4 Decodieren der adaptiven und festen Codelexikon-Verstärkung
  • Der empfangene Verstärkungs-Codelexikonindex ergibt die adaptive Codelexikon-Verstärkung und den festen Codelexikon-Verstärkungskorrekturfaktor . Diese Vorgehensweise ist in Abschnitt 3.9 ausführlich beschrieben. Die geschätzte feste Codelexikon-Verstärkung g'c wird mit Gleichung (70) gefunden. Der feste Codelexikon- Vektor wird aus dem Produkt des quantisierten Verstärkungskorrekturfaktors mit dieser vorhergesagten Verstärkung erhalten (Gleichung (64)). Die adaptive Codelexikon-Verstärkung wird mit Gleichung (72) rekonstruiert.
  • 4.1.5 Berechnung des Paritätsbit
  • Vor der Rekonstruktion der Sprache wird das Paritätsbit aus der adaptiven Codelexikon-Verzögerung neu berechnet (Abschnitt 3.7.2). Falls dieses Bit nicht mit dem übertragenen Paritätsbit P0 identisch ist, dann sind aller Wahrscheinlichkeit nach während der Übertragung Bitfehler aufgetreten, und die Fehlerverdeckungsprozedur von Abschnitt 4.3 wird verwendet.
  • 4.1.6 Berechnen der rekonstruierten Sprache
  • Die Anregung u(n) am Eingang des Synthesefilters (siehe Gleichung (74)) wird in das LP-Synthesefilter eingegeben. Die rekonstruierte Sprache für den Teilrahmen ist gegeben durch
  • wobei die interpolierten LP-Filterkoeffizienten sind.
  • Die rekonstruierte Sprache (n) wird dann durch einen in dem nächsten Abschnitt beschriebenen Nachprozessor verarbeitet.
  • 4.2 Nachverarbeitung
  • Die Nachverarbeitung besteht aus drei Funktionen: adaptive Nachfilterung, Hochpaßfilterung und Signalhochskalierung. Das adaptive Postfilter ist die Kaskade aus drei Filtern: einem Tonhöhen-Postfilter Hp(z), einem Kurzzeit-Postfilter Hf(z) und einem Neigungskompensationsfilter Ht(z), gefolgt von einer adaptiven Verstärkungssteuerprozedur, Das Postfilter wird bei jedem Teilrahmen von 5 ms aktualisiert. Der Nachfilterungsprozeß ist wie folgt organisiert. Zunächst wird die Synthesesprache (n) durch (z /&gamma;n) invers gefiltert, um das Restsignal (n) zu erzeugen. Mit dem Signal (n) werden dann die Tonhöhenverzögerung T und die Verstärkung gpit berechnet. Das Signal (n) wird durch das Tonhöhen-Postfilter Hp(z) gefiltert, um das Signal r'(n) zu erzeugen, das wiederum durch das Synthesefilter 1/[gf (z/&gamma;d)] gefiltert wird. Schließlich wird das Signal an dem Ausgang des Synthesefilters 1/[gf (z/&gamma;d)] an das Neigungskompensationsfilter Ht (z) weitergeleitet, was zu dem nachgefilterten Synthesesprachsignal sf(n) führt. Dann wird eine adaptive Verstärkungssteuerung zwischen sf(n) und s(n) angewendet, was das Signal sf'(n) ergibt. Die Hochpaßfilterung und die Skalierung arbeiten an dem nachgefilterten Signal sf'(n).
  • 4.2.1 Tonhöhen-Postfilter
  • Das Tonhöhen- oder harmonische Postfilter ist gegeben durch
  • wobei T die Tonhöhenverzögerung ist und g&sub0; ein Verstärkungsfaktor ist, der gegeben ist durch
  • g&sub0; = &gamma;pgpit, (78)
  • wobei gpit die Tonhöhenverstärkung ist. Sowohl die Tonhöhenverzögerung als auch -verstärkung werden aus dem Decodiererausgangssignal bestimmt. Man beachte, daß gpit durch Ziffer 1 begrenzt ist und auf Null gesetzt wird, falls die Tonhöhenprädiktionsverstärkung unter 3 dB liegt. Durch den Faktor &gamma;p wird das Ausmaß an harmonischer Nachfilterung gesteuert, und er hat den Wert &gamma;p - 0,5. Die Tonhöhenverzögerung und -verstärkung werden aus dem Restsignal (n) berechnet, das durch Filtern der Sprache (n) durch (z/&gamma;n) erhalten wird, was der Zähler des Kurzzeit-Postfilters ist (siehe Abschnitt 4.2.2)
  • Die Tonhöhenverzögerung wird mit einer Prozedur mit zwei Durchgängen berechnet. Bei dem ersten Durchgang wird die beste ganze Zahl T&sub0; in dem Bereich [T&sub1; - 1, T&sub1; + 1], wobei T&sub1; der ganzzahlige Teil der (übertragenen) Tonhöhenverzögerung in dem ersten Teilrahmen ist, ausgewählt. Die beste ganzzahlige Verzögerung ist diejenige, die die Korrelation
  • maximiert. In dem zweiten Durchgang wird die beste gebrochene Verzögerung T mit einer Auflösung 1/8 um T&sub0; herum ausgewählt, und zwar durch Finden der Verzögerung mit der höchsten normierten Korrelation
  • wobei (n) das Restsignal bei Verzögerung k ist. Nachdem die optimale Verzögerung T gefunden worden ist, wird der entsprechende Korrelationswert mit einem Schwellwert verglichen. Falls R'(T) < 0,5, wird das harmonische Postfilter deaktiviert, indem gpit = 0 gesetzt wird. Ansonsten wird der Wert von gpit berechnet aus
  • Das nichtganzzahlige verzögerte Signal (n) wird zunächst mit einem Interpolationsfilter der Länge 33 berechnet. Nach der Auswahl von T wird (n) mit einem längeren Interpolationsfilter der Länge 129 neu berechnet. Das neue Signal ersetzt das vorausgegangene nur dann, falls das längere Filter den Wert R'(T) erhöht.
  • 4.2.2 Kurzzeit-Postfilter
  • Das Kurzzeit-Postfilter ist gegeben durch
  • wobei (z) das empfangene quantisierte LP-Inversfilter (bei dem Decodierer wird keine LP-Analyse durchgeführt) ist und die Faktoren &gamma;n und &gamma;d das Ausmaß an Kurzzeit- Nachfilterung steuern und auf &gamma;n = 0,55 und &gamma;d = 0,7 gesetzt sind. Der Verstärkungsausdruck gf wird aus der abgeschnittenen Pulsantwort hf(n) des Filters (z /&gamma;n)/ (z/&gamma;d) berechnet und ist gegeben durch
  • 4.2.3 Neigungskompensation
  • Schließlich kompensiert das Filter Ht (z) die Neigung in dem Kurzzeit-Postfilter Hf(z) und ist gegeben durch
  • Ht(z) = 1/gt(1 + &gamma;tk&sub1;z-1),
  • wobei &gamma;tk&sub1; ein Neigungsfaktor ist, wobei k&sub1; der auf der Basis von hf(n) berechnete erste Reflexionskoeffizient ist, wobei
  • Der Verstärkungsausdruck gt = 1 - &gamma;tk&sub1; kompensiert den abnehmenden Effekt von gf in Hf(z). Weiterhin ist gezeigt worden, daß das Produktfilter Hf (z) Ht(z) im allgemeinen keine Verstärkung aufweist.
  • Je nach dem Vorzeichen von k&sub1; werden für &gamma;t zwei Werte verwendet. Falls k&sub1; negativ ist, ist &gamma;t = 0,9, und falls k&sub1; positiv ist, ist &gamma;t 0,2.
  • 4.2.4 Adaptive Verstärkungssteuerung
  • Mit der adaptiven Verstärkungssteuerung werden Verstärkungsdifferenzen zwischen dem rekonstruierten Sprachsignal (n) und dem nachgefilterten Signal sf (n) kompensiert. Der Verstärkungsskalierfaktor G für den vorliegenden Teilrahmen wird berechnet durch
  • Das verstärkungsskalierte nachgefilterte Signal sf'(n) ist gegeben durch
  • s '(n) = g(n)s (n), n = 0, ...,39, (88)
  • wobei g(n) auf einer Basis Abtastwert für Abtastwert aktualisiert wird und gegeben ist durch
  • g(n) = 0,85g(n - 1) + 0,15G, n = 0,..., )89)
  • Der Anfangswert von g(-1) = 1,0.
  • 4.2.5 Hochpaßfilterung und Hochskalierung
  • Ein Hochpaßfilter bei einer Grenzfrequenz von 100 Hz wird auf die rekonstruierte und nachgefilterte Sprache sf'(n) angewendet. Das Filter ist gegeben durch
  • Die Hochskalierung besteht aus dem Multiplizieren der hochpaßgefilterten Ausgabe mit einem Faktor 2, um den Eingangssignalpegel wiederzugewinnen.
  • 4.3 Verdecken von Rahmenlöschungen und Paritätsfehlern
  • In den Decodierer ist eine Fehlerverdeckungsprozedur integriert worden, um die Verschlechterungen in der rekonstruierten Sprache aufgrund von Rahmenlöschungen oder Zufallsfehlern in dem Bitstrom zu reduzieren. Dieser Fehlerverdeckungsprozeß tritt in Aktion, wenn entweder i) der Rahmen von Codiererparametern (entsprechend einem 10 ms-Rahmen) als gelöscht identifiziert worden ist oder 11) an dem Paritätsbit für den Tonhöhenverzögerungsindex P1 ein Prüfsummenfehler auftaucht. Letzteres könnte eintreten, wenn der Bitstrom durch Zufallsbitfehler verfälscht worden ist.
  • Wenn an P1 ein Paritätsfehler auftritt, wird der Verzögerungswert T&sub1; auf den Wert der Verzögerung des vorausgegangenen Rahmens gesetzt. Der Wert von T&sub2; wird mit der in Abschnitt 4.1.2 umrissenen Prozedur abgeleitet, wobei dieser neue Wert von T&sub1; verwendet wird. Falls weitere Paritätsfehler auftreten, wird der um Ziffer 1 erhöhte vorausgegangene Wert von T&sub1; verwendet.
  • Der Mechanismus zum Erfassen von Rahmenlöschungen wird in der Empfehlung nicht definiert und hängt von der Anwendung ab. Die Verdeckungsstrategie muß den aktuellen Rahmen auf der Grundlage von zuvor empfangenen Informationen rekonstruieren. Das verwendete Verfahren ersetzt das fehlende Anregungssignal durch eines mit ähnlichen Charakteristiken, wobei seine Energie allmählich verringert wird. Dies geschieht durch Verwendung eines Stimmhaft-/Stimmlos- Klassifizierers auf der Grundlage der Langzeit- Prädiktionsverstärkung, die als Teil der Langzeit- Postfilteranalyse berechnet wird. Das Tonhöhen-Postfilter (siehe Abschnitt 4.2.1) findet den Langzeitprädiktor, bei dem die Prädiktionsverstärkung über 3 dB liegt, und zwar durch Setzen eines Schwellwerts von 0,5 für die normierte Korrelation R'(k) (Gleichung (81)). Für den Fehlerverdeckungsprozeß werden diese Rahmen als periodisch klassifiziert. Der Rahmen wird ansonsten als nichtperiodisch bezeichnet. Ein gelöschter Rahmen erbt seine Klasse von dem vorausgegangenen (rekonstruierten) Sprachrahmen. Man beachte, daß die Stimmhaft-/Stimmlos- Klassifizierung auf der Basis dieses rekonstruierten Sprachsignals ständig aktualisiert wird. Für viele aufeinanderfolgende gelöschte Rahmen könnte sich die Klassifizierung somit möglicherweise ändern. In der Regel geschieht dies nur dann, wenn die ursprüngliche Klassifizierung periodisch war.
  • Folgende sind die für einen gelöschten Rahmen ergriffenen spezifischen Schritte:
  • 1. Wiederholung der LP-Filterparameter,
  • 2. Dämpfung der adaptiven und festen Codelexikon- Verstärkung,
  • 3. Dämpfung des Speichers des Verstärkungsprädiktors,
  • 4. Erzeugung der Ersatzanregung.
  • 4.3.1 Wiederholung der LP-Filterparameter
  • Die LP-Parameter des letzten guten Rahmens werden verwendet. Die Zustände des LSF-Prädiktors enthalten die Werte der empfangenen Codewörter 11. Da das aktuelle Codewort nicht verfügbar ist, wird es aus den wiederholten LSF-Parametern und dem Prädiktorspeicher berechnet aus
  • 4.3.2 Dämpfung der adaptiven und festen Codelexikon- Verstärkung
  • Es wird eine gedämpfte Version des vorherigen festen Codelexikon-Verstärkungsfaktors verwendet.
  • Gleiches geschieht mit dem adaptiven Codelexikon- Verstärkungsfaktor. Außerdem wird eine Begrenzungsoperation verwendet, um seinen Wert unter 0,9 zu halten.
  • 4.3.3 Dämpfung des Speichers des Verstärkungsprädiktors
  • Der Verstärkungsprädiktor verwendet die Energie von im voraus ausgewählten Codelexika. Zur Ermöglichung einer stetigen Fortsetzung des Codierers, nachdem gute Rahmen empfangen worden sind, wird der Speicher des Verstärkungsprädiktors mit einer gedämpften Version der Codelexikonenergie aktualisiert. Der Wert von für den aktuellen Teilrahmen n ist auf den um 4 dM gedämpften durchschnittlichen quantisierten Verstärkungsprädiktionsfehler gesetzt.
  • 4.3.4 Erzeugung der Ersatzanregung
  • Die verwendete Anregung hängt von der Periodizitätsklassifikation ab. Falls der letzte richtig empfangene Rahmen als periodisch klassifiziert wurde, wird der aktuelle Rahmen ebenfalls als periodisch betrachtet. In diesem Fall wird nur das adaptive Codelexikon verwendet, und der feste Codelexikon-Beitrag wird auf Null gesetzt. Die Tonhöhenverzögerung basiert auf der letzten richtig empfangenen Tonhöhenverzögerung und wird für jeden nachfolgenden Rahmen wiederholt. Um eine übermäßige Periodizität zu vermeiden, wird die Verzögerung für jeden nächsten Teilrahmen um Eins erhöht, aber durch 143 begrenzt. Die adaptive Codelexikon-Verstärkung basiert auf einem gedämpften Wert gemäß Gleichung (93).
  • Falls der letzte richtig empfangene Rahmen als nichtperiodisch klassifiziert war, wird der aktuelle Rahmen ebenfalls als nichtperiodisch angesehen und der adaptive Codelexikon-Beitrag wird auf Null gesetzt. Der feste Codelexikon-Beitrag wird durch eine Zufallsauswahl eines Codelexikonindex und Vorzeichenindex erzeugt. Der Zufallsgenerator basiert auf der Funktion
  • Startparameter = Startparameter * 31821 + 13849 (95)
  • mit dem Anfangsstartparameterwert von 21845. Der Zufallscodelexikonindex wird aus den 13 niederwertigsten Bit der nächsten Zufallszahl abgeleitet. Das Zufallsvorzeichen wird aus den 4 niederwertigsten Bit der nächsten Zufallszahl abgeleitet. Die feste Codelexikon-Verstärkung wird gemäß Gleichung (92) gedämpft.
  • 5 Bitgenaue Beschreibung des CS-ACELP-Codierers
  • Ein den CS-ACELP-Codierer mit 16 Bit Festkomma simulierender ANSI-C-Code ist von der ITU-T erhältlich. In den folgenden Abschnitten wird die Verwendung dieses Simulationscodes zusammengefaßt und gezeigt, wie die Software organisiert ist.
  • 5.1 Einsatz der Simulationssoftware
  • Der C-Code besteht aus zwei Hauptprogrammen, coder.c, das den Codierer simuliert, und decoder.c, das den Decodierer simuliert. Der Codierer läuft wie folgt:
  • coder inputfile bstreamfile
  • Die Eingangsdatei (inputfile) und Ausgangsdatei (outputfile) sind abgetastete Datendateien, die 16 Bit- PCM-Signale enthalten. Die Bitstromdatei enthält 81 16-Bit-Wörter, wobei mit dem ersten Wort eine Rahmenlöschung angegeben werden kann und die übrigen 80 Wörter jeweils ein Bit enthalten. Der Decodierer erzeugt aus dieser Bitstromdatei eine nachgefilterte Ausgabedatei, die ein 16 Bit-PCM-Signal enthält.
  • decoder bstreamfile outputfile
  • 5.2 Organisation der Simulationssoftware
  • Bei einer Festkomma-ANSI-C-Simulation werden, wie in Tabelle 10 gezeigt, nur zwei Arten von Festkommadaten verwendet. Zur Erleichterung der Implementierung des Simulationscodes verwenden Schleifenindizes Boolesche Werte und Flags den Typ Flag, der je nach der Zielplattform entweder 16 Bit oder 32 Bit wäre. Tabelle 10: In der ANSI-C-Simulation verwendete Datenarten
  • Alle diese Berechnungen erfolgen mit einem vordefinierten Satz von grundlegenden Operatoren. Die Beschreibung dieser Operatoren erfolgt in Tabelle 11. Die von dem Simulationscodierer verwendeten Tabellen sind in Tabelle 12 zusammengefaßt. Diese Hauptprogramme verwenden eine Bibliothek von Routinen, die in den Tabellen 13, 14 und 15 zusammengefaßt sind. Tabelle 11: In ANSI-C-Simulation verwendete grundlegende Operationen Tabelle 12: Zusammenfassung der Tabellen Tabelle 13: Zusammenfassung der codiererspezifischen Routinen. Tabelle 14: Zusammenfassung der decodiererspezifischen Routinen. Tabelle 15: Zusammenfassung allgemeiner Routinen

Claims (4)

1. Verfahren zur Verwendung in einem Sprachdecodierer (740), der mindestens einen Teil jeweils eines ersten und zweiten aufeinanderfolgenden Rahmens komprimierter Sprachinformationen nicht zuverlässig empfängt, wobei der Sprachdecodierer einen Codelexikonspeicher (95) enthält, um als Reaktion auf ein Signal, das Tonhöhenperiodeninformationen darstellt, ein Vektorsignal zu liefern, das bei dem Erzeugen eines decodierten Sprachsignals verwendet wird, wobei das Verfahren beinhaltet, ein Signal mit einem Wert zu speichern, der dem ersten Rahmen entsprechende Tonhöhenperiodeninformationen darstellt; dadurch gekennzeichnet, daß:
falls der gespeicherte Wert einen Schwellwert nicht übersteigt, der Wert des Signals zur Verwendung in dem zweiten Rahmen derart inkrementiert wird, daß der Codelexikonspeicher als Reaktion auf den inkrementierten Wert des Signals ein Vektorsignal liefert.
2. Verfahren nach Anspruch 1, bei dem der Wert des Tonhöhenperiodeninformationen darstellenden Signals in Einheiten von Abtastwerten eines Signals angegeben wird, das Sprachinformationen darstellt.
3. Verfahren nach Anspruch 2, bei dem der Schritt des Inkrementierens umfaßt, eine Reihe von eine Tonhöhenperiode darstellenden Abtastwerten zu inkrementieren.
4. Verfahren nach Anspruch 1, bei dem der Signalwert, der dem ersten Rahmen entsprechende Tonhöhenperiodeninformationen darstellt, gleich einem Wert von Tonhöhenperiodeninformationen ist, die in einem Rahmen empfangen werden, in dem es zu keinem Ausfall bei dem Empfang von Informationen gekommen ist.
DE69613907T 1995-06-07 1996-05-29 Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen Expired - Lifetime DE69613907T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/482,709 US5699485A (en) 1995-06-07 1995-06-07 Pitch delay modification during frame erasures

Publications (2)

Publication Number Publication Date
DE69613907D1 DE69613907D1 (de) 2001-08-23
DE69613907T2 true DE69613907T2 (de) 2002-04-04

Family

ID=23917124

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69613907T Expired - Lifetime DE69613907T2 (de) 1995-06-07 1996-05-29 Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen

Country Status (9)

Country Link
US (1) US5699485A (de)
EP (1) EP0747882B1 (de)
JP (1) JP3432082B2 (de)
KR (1) KR100389179B1 (de)
AU (1) AU709754B2 (de)
CA (1) CA2177421C (de)
DE (1) DE69613907T2 (de)
ES (1) ES2161974T3 (de)
MX (1) MX9602145A (de)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08179796A (ja) * 1994-12-21 1996-07-12 Sony Corp 音声符号化方法
FR2729246A1 (fr) * 1995-01-06 1996-07-12 Matra Communication Procede de codage de parole a analyse par synthese
SE9500858L (sv) * 1995-03-10 1996-09-11 Ericsson Telefon Ab L M Anordning och förfarande vid talöverföring och ett telekommunikationssystem omfattande dylik anordning
TW317051B (de) * 1996-02-15 1997-10-01 Philips Electronics Nv
US6298057B1 (en) * 1996-04-19 2001-10-02 Nortel Networks Limited System and method for reliability transporting aural information across a network
US5867530A (en) * 1996-06-14 1999-02-02 Trw Inc. Method and apparatus for accomodating signal blockage in satellite mobile radio systems
WO1998006091A1 (fr) * 1996-08-02 1998-02-12 Matsushita Electric Industrial Co., Ltd. Codec vocal, support sur lequel est enregistre un programme codec vocal, et appareil mobile de telecommunications
US6075974A (en) * 1996-11-20 2000-06-13 Qualcomm Inc. Method and apparatus for adjusting thresholds and measurements of received signals by anticipating power control commands yet to be executed
GB2322778B (en) * 1997-03-01 2001-10-10 Motorola Ltd Noise output for a decoded speech signal
WO1998048531A1 (de) * 1997-04-23 1998-10-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum verschleiern von fehlern in einem audiodatenstrom
KR100198476B1 (ko) * 1997-04-23 1999-06-15 윤종용 노이즈에 견고한 스펙트럼 포락선 양자화기 및 양자화 방법
IL120788A (en) * 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
FI113903B (fi) * 1997-05-07 2004-06-30 Nokia Corp Puheen koodaus
FR2774827B1 (fr) * 1998-02-06 2000-04-14 France Telecom Procede de decodage d'un flux binaire representatif d'un signal audio
US6714908B1 (en) * 1998-05-27 2004-03-30 Ntt Mobile Communications Network, Inc. Modified concealing device and method for a speech decoder
DE69943234D1 (de) * 1998-05-27 2011-04-14 Nippon Telegraph & Telephone Vorrichtung und verfahren zur sprachdekodierung
US6810377B1 (en) * 1998-06-19 2004-10-26 Comsat Corporation Lost frame recovery techniques for parametric, LPC-based speech coding systems
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US6104992A (en) * 1998-08-24 2000-08-15 Conexant Systems, Inc. Adaptive gain reduction to produce fixed codebook target signal
JP4249821B2 (ja) * 1998-08-31 2009-04-08 富士通株式会社 ディジタルオーディオ再生装置
US6397178B1 (en) * 1998-09-18 2002-05-28 Conexant Systems, Inc. Data organizational scheme for enhanced selection of gain parameters for speech coding
JP3599581B2 (ja) * 1998-11-25 2004-12-08 キヤノン株式会社 電子装置及びコンピュータ読み取り可能な記憶媒体
US6889183B1 (en) * 1999-07-15 2005-05-03 Nortel Networks Limited Apparatus and method of regenerating a lost audio segment
US6393394B1 (en) * 1999-07-19 2002-05-21 Qualcomm Incorporated Method and apparatus for interleaving line spectral information quantization methods in a speech coder
EP1075101A3 (de) * 1999-08-05 2005-06-22 Alcatel Verfahren und Vorrichtung zur Rahmensynchronisierung
US6959274B1 (en) 1999-09-22 2005-10-25 Mindspeed Technologies, Inc. Fixed rate speech compression system and method
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6826527B1 (en) * 1999-11-23 2004-11-30 Texas Instruments Incorporated Concealment of frame erasures and method
US7574351B2 (en) * 1999-12-14 2009-08-11 Texas Instruments Incorporated Arranging CELP information of one frame in a second packet
US6704703B2 (en) * 2000-02-04 2004-03-09 Scansoft, Inc. Recursively excited linear prediction speech coder
US6584438B1 (en) * 2000-04-24 2003-06-24 Qualcomm Incorporated Frame erasure compensation method in a variable rate speech coder
WO2002003377A1 (en) * 2000-07-05 2002-01-10 Koninklijke Philips Electronics N.V. Method of calculating line spectral frequencies
FR2813722B1 (fr) * 2000-09-05 2003-01-24 France Telecom Procede et dispositif de dissimulation d'erreurs et systeme de transmission comportant un tel dispositif
US6678651B2 (en) * 2000-09-15 2004-01-13 Mindspeed Technologies, Inc. Short-term enhancement in CELP speech coding
EP1199709A1 (de) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Fehlerverdeckung in Bezug auf die Dekodierung von kodierten akustischen Signalen
JP2002202799A (ja) * 2000-10-30 2002-07-19 Fujitsu Ltd 音声符号変換装置
US6968309B1 (en) * 2000-10-31 2005-11-22 Nokia Mobile Phones Ltd. Method and system for speech frame error concealment in speech decoding
DE60139144D1 (de) * 2000-11-30 2009-08-13 Nippon Telegraph & Telephone Audio-dekodierer und audio-dekodierungsverfahren
DE60233283D1 (de) * 2001-02-27 2009-09-24 Texas Instruments Inc Verschleierungsverfahren bei Verlust von Sprachrahmen und Dekoder dafer
JP2002268697A (ja) * 2001-03-13 2002-09-20 Nec Corp パケット誤り耐性付き音声復号装置、音声符号化復号装置、及びその方法
US7212517B2 (en) * 2001-04-09 2007-05-01 Lucent Technologies Inc. Method and apparatus for jitter and frame erasure correction in packetized voice communication systems
JP2003044098A (ja) * 2001-07-26 2003-02-14 Nec Corp 音声帯域拡張装置及び音声帯域拡張方法
US7013267B1 (en) * 2001-07-30 2006-03-14 Cisco Technology, Inc. Method and apparatus for reconstructing voice information
US7711563B2 (en) * 2001-08-17 2010-05-04 Broadcom Corporation Method and system for frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
EP1433164B1 (de) * 2001-08-17 2007-11-14 Broadcom Corporation Verbessertes verbergen einer rahmenlöschung für die prädiktive sprachcodierung auf der basis einer extrapolation einer sprachsignalform
US7590525B2 (en) * 2001-08-17 2009-09-15 Broadcom Corporation Frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
US7353168B2 (en) * 2001-10-03 2008-04-01 Broadcom Corporation Method and apparatus to eliminate discontinuities in adaptively filtered signals
JP4108317B2 (ja) * 2001-11-13 2008-06-25 日本電気株式会社 符号変換方法及び装置とプログラム並びに記憶媒体
KR100413039B1 (ko) * 2002-01-16 2003-12-31 어뮤즈텍(주) 피치보정방법 및 그 장치
CA2388439A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
EP1383110A1 (de) * 2002-07-17 2004-01-21 STMicroelectronics N.V. Verfahren und Vorrichtung für Breitbandsprachkodierung, insbesondere mit einer verbesserten Qualität der stimmhaften Rahmen
US20040064308A1 (en) * 2002-09-30 2004-04-01 Intel Corporation Method and apparatus for speech packet loss recovery
JP4433668B2 (ja) 2002-10-31 2010-03-17 日本電気株式会社 帯域拡張装置及び方法
US6961696B2 (en) * 2003-02-07 2005-11-01 Motorola, Inc. Class quantization for distributed speech recognition
US7305338B2 (en) * 2003-05-14 2007-12-04 Oki Electric Industry Co., Ltd. Apparatus and method for concealing erased periodic signal data
KR20050008356A (ko) * 2003-07-15 2005-01-21 한국전자통신연구원 음성의 상호부호화시 선형 예측을 이용한 피치 지연 변환장치 및 방법
US7729267B2 (en) 2003-11-26 2010-06-01 Cisco Technology, Inc. Method and apparatus for analyzing a media path in a packet switched network
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US9197857B2 (en) 2004-09-24 2015-11-24 Cisco Technology, Inc. IP-based stream splicing with content-specific splice points
US8966551B2 (en) 2007-11-01 2015-02-24 Cisco Technology, Inc. Locating points of interest using references to media frames within a packet flow
KR101034129B1 (ko) * 2004-11-11 2011-05-13 엘지전자 주식회사 인버터 시스템의 과전류 제한장치 및 방법
DE102004059979B4 (de) * 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
BRPI0607646B1 (pt) 2005-04-01 2021-05-25 Qualcomm Incorporated Método e equipamento para encodificação por divisão de banda de sinais de fala
PL1875463T3 (pl) 2005-04-22 2019-03-29 Qualcomm Incorporated Układy, sposoby i urządzenie do wygładzania współczynnika wzmocnienia
US7930176B2 (en) * 2005-05-20 2011-04-19 Broadcom Corporation Packet loss concealment for block-independent speech codecs
US7177804B2 (en) 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
US7831421B2 (en) * 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
ATE490454T1 (de) * 2005-07-22 2010-12-15 France Telecom Verfahren zum umschalten der raten- und bandbreitenskalierbaren audiodecodierungsrate
US9058812B2 (en) * 2005-07-27 2015-06-16 Google Technology Holdings LLC Method and system for coding an information signal using pitch delay contour adjustment
KR100792209B1 (ko) 2005-12-07 2008-01-08 한국전자통신연구원 디지털 오디오 패킷 손실을 복구하기 위한 방법 및 장치
US7457746B2 (en) * 2006-03-20 2008-11-25 Mindspeed Technologies, Inc. Pitch prediction for packet loss concealment
US20070282601A1 (en) * 2006-06-02 2007-12-06 Texas Instruments Inc. Packet loss concealment for a conjugate structure algebraic code excited linear prediction decoder
WO2008007700A1 (fr) * 2006-07-12 2008-01-17 Panasonic Corporation Dispositif de décodage de son, dispositif de codage de son, et procédé de compensation de trame perdue
US7877253B2 (en) * 2006-10-06 2011-01-25 Qualcomm Incorporated Systems, methods, and apparatus for frame erasure recovery
AU2007318506B2 (en) 2006-11-10 2012-03-08 Iii Holdings 12, Llc Parameter decoding device, parameter encoding device, and parameter decoding method
KR101292771B1 (ko) * 2006-11-24 2013-08-16 삼성전자주식회사 오디오 신호의 오류은폐방법 및 장치
US7738383B2 (en) * 2006-12-21 2010-06-15 Cisco Technology, Inc. Traceroute using address request messages
CN101226744B (zh) * 2007-01-19 2011-04-13 华为技术有限公司 语音解码器中实现语音解码的方法及装置
US7706278B2 (en) * 2007-01-24 2010-04-27 Cisco Technology, Inc. Triggering flow analysis at intermediary devices
US8521519B2 (en) * 2007-03-02 2013-08-27 Panasonic Corporation Adaptive audio signal source vector quantization device and adaptive audio signal source vector quantization method that search for pitch period based on variable resolution
WO2008111158A1 (ja) * 2007-03-12 2008-09-18 Fujitsu Limited 音声波形補間装置および方法
US7936695B2 (en) 2007-05-14 2011-05-03 Cisco Technology, Inc. Tunneling reports for real-time internet protocol media streams
US8023419B2 (en) 2007-05-14 2011-09-20 Cisco Technology, Inc. Remote monitoring of real-time internet protocol media streams
US7835406B2 (en) * 2007-06-18 2010-11-16 Cisco Technology, Inc. Surrogate stream for monitoring realtime media
US7817546B2 (en) 2007-07-06 2010-10-19 Cisco Technology, Inc. Quasi RTP metrics for non-RTP media flows
CN101207665B (zh) * 2007-11-05 2010-12-08 华为技术有限公司 一种衰减因子的获取方法
US8214201B2 (en) * 2008-11-19 2012-07-03 Cambridge Silicon Radio Limited Pitch range refinement
JP2010154307A (ja) * 2008-12-25 2010-07-08 Fujitsu Telecom Networks Ltd 伝送装置及び音声信号伝送方法
US8301982B2 (en) 2009-11-18 2012-10-30 Cisco Technology, Inc. RTP-based loss recovery and quality monitoring for non-IP and raw-IP MPEG transport flows
GB0920729D0 (en) * 2009-11-26 2010-01-13 Icera Inc Signal fading
US8542766B2 (en) * 2010-05-04 2013-09-24 Samsung Electronics Co., Ltd. Time alignment algorithm for transmitters with EER/ET amplifiers and others
US8819714B2 (en) 2010-05-19 2014-08-26 Cisco Technology, Inc. Ratings and quality measurements for digital broadcast viewers
US8924200B2 (en) * 2010-10-15 2014-12-30 Motorola Mobility Llc Audio signal bandwidth extension in CELP-based speech coder
US9263049B2 (en) * 2010-10-25 2016-02-16 Polycom, Inc. Artifact reduction in packet loss concealment
US8774010B2 (en) 2010-11-02 2014-07-08 Cisco Technology, Inc. System and method for providing proactive fault monitoring in a network environment
US8559341B2 (en) 2010-11-08 2013-10-15 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US8982733B2 (en) 2011-03-04 2015-03-17 Cisco Technology, Inc. System and method for managing topology changes in a network environment
US8670326B1 (en) 2011-03-31 2014-03-11 Cisco Technology, Inc. System and method for probing multiple paths in a network environment
CA2833874C (en) 2011-04-21 2019-11-05 Ho-Sang Sung Method of quantizing linear predictive coding coefficients, sound encoding method, method of de-quantizing linear predictive coding coefficients, sound decoding method, and recording medium
CN103620675B (zh) 2011-04-21 2015-12-23 三星电子株式会社 对线性预测编码系数进行量化的设备、声音编码设备、对线性预测编码系数进行反量化的设备、声音解码设备及其电子装置
US8724517B1 (en) 2011-06-02 2014-05-13 Cisco Technology, Inc. System and method for managing network traffic disruption
US8830875B1 (en) 2011-06-15 2014-09-09 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US9972325B2 (en) 2012-02-17 2018-05-15 Huawei Technologies Co., Ltd. System and method for mixed codebook excitation for speech coding
US9450846B1 (en) 2012-10-17 2016-09-20 Cisco Technology, Inc. System and method for tracking packets in a network environment
CN104995673B (zh) * 2013-02-13 2016-10-12 瑞典爱立信有限公司 帧错误隐藏
PL3011557T3 (pl) 2013-06-21 2017-10-31 Fraunhofer Ges Forschung Urządzenie i sposób do udoskonalonego stopniowego zmniejszania sygnału w przełączanych układach kodowania sygnału audio podczas ukrywania błędów
MX371425B (es) * 2013-06-21 2020-01-29 Fraunhofer Ges Forschung Aparato y metodo para la ocultacion mejorada del libro de codigo adaptativo en la ocultacion similar a acelp mediante la utilizacion de una estimacion mejorada del retardo de tono.
CN108364657B (zh) 2013-07-16 2020-10-30 超清编解码有限公司 处理丢失帧的方法和解码器
CN105225666B (zh) 2014-06-25 2016-12-28 华为技术有限公司 处理丢失帧的方法和装置
CA2991341A1 (en) * 2015-07-06 2017-01-12 Nokia Technologies Oy Bit error detector for an audio signal decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3102015B2 (ja) * 1990-05-28 2000-10-23 日本電気株式会社 音声復号化方法
US5550544C1 (en) * 1994-02-23 2002-02-12 Matsushita Electric Ind Co Ltd Signal converter noise shaper ad converter and da converter
US5550543A (en) * 1994-10-14 1996-08-27 Lucent Technologies Inc. Frame erasure or packet loss compensation method

Also Published As

Publication number Publication date
JPH09190197A (ja) 1997-07-22
AU709754B2 (en) 1999-09-09
CA2177421C (en) 2001-02-06
DE69613907D1 (de) 2001-08-23
KR970004468A (ko) 1997-01-29
AU5464196A (en) 1996-12-19
EP0747882A3 (de) 1997-09-10
EP0747882B1 (de) 2001-07-18
ES2161974T3 (es) 2001-12-16
MX9602145A (es) 1997-09-30
US5699485A (en) 1997-12-16
CA2177421A1 (en) 1996-12-08
KR100389179B1 (ko) 2003-09-22
JP3432082B2 (ja) 2003-07-28
EP0747882A2 (de) 1996-12-11

Similar Documents

Publication Publication Date Title
DE69613907T2 (de) Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen
DE69613908T2 (de) Stimmhaft/stimmlos-Klassifizierung von Sprache für Sprachdekodierung bei Verlust von Datenrahmen
DE69613910T2 (de) Adaptives, auf der Grundlage eines Kodebuchs arbeitendes Sprachkompressionssystem
DE69322313T2 (de) C.E.L.P. - Vocoder
DE69615839T2 (de) Sprachkodierer
DE69531642T2 (de) Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE60132217T2 (de) Übertragungsfehler-verdeckung in einem audiosignal
DE69522979T2 (de) Erzeugung von linearen Prädiktionskoeffizienten bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69608947T2 (de) Verfahren zur Analyse eines Audiofrequenzsignals durch lineare Prädiktion, und Anwendung auf ein Verfahren zur Kodierung und Dekodierung eines Audiofrequenzsignals
DE69619054T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE3856211T2 (de) Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE60029990T2 (de) Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE60219351T2 (de) Signaländerungsverfahren zur effizienten kodierung von sprachsignalen
DE69910240T2 (de) Vorrichtung und verfahren zur wiederherstellung des hochfrequenzanteils eines überabgetasteten synthetisierten breitbandsignals
DE69133458T2 (de) Verfahren zur Sprachquantisierung und Fehlerkorrektur
DE69625880T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE69625874T2 (de) Verfahren und Vorrichtung zur Wiedergabe von Sprachsignalen, zur Dekodierung, zur Sprachsynthese und tragbares Funkendgerät
DE60220485T2 (de) Verfahren und Vorrichtung zur Verschleierung von Rahmenausfall von prädiktionskodierter Sprache unter Verwendung von Extrapolation der Wellenform
DE69934608T2 (de) Adaptive kompensation der spektralen verzerrung eines synthetisierten sprachresiduums
DE69023402T2 (de) Verfahren zur Sprachkodierung und -dekodierung.
DE60117144T2 (de) Sprachübertragungssystem und verfahren zur behandlung verlorener datenrahmen
DE69604526T2 (de) Verfahren zur Anpassung des Rauschmaskierungspegels in einem Analyse-durch-Synthese-Sprachkodierer mit einem wahrnehmunggebundenen Kurzzeitfilter

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: RESEARCH IN MOTION LTD., WATERLOO, ONTARIO, CA