DE69328034T2 - Kodierung mit modulation, fehlerkontrolle, gewichtung und bitzuordnung - Google Patents

Kodierung mit modulation, fehlerkontrolle, gewichtung und bitzuordnung

Info

Publication number
DE69328034T2
DE69328034T2 DE69328034T DE69328034T DE69328034T2 DE 69328034 T2 DE69328034 T2 DE 69328034T2 DE 69328034 T DE69328034 T DE 69328034T DE 69328034 T DE69328034 T DE 69328034T DE 69328034 T2 DE69328034 T2 DE 69328034T2
Authority
DE
Germany
Prior art keywords
bit
vectors
speech
code
frame
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
DE69328034T
Other languages
English (en)
Other versions
DE69328034D1 (de
Inventor
C. Hardwick
S. Lim
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.)
Digital Voice Systems Inc
Original Assignee
Digital Voice Systems Inc
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
Application filed by Digital Voice Systems Inc filed Critical Digital Voice Systems Inc
Publication of DE69328034D1 publication Critical patent/DE69328034D1/de
Application granted granted Critical
Publication of DE69328034T2 publication Critical patent/DE69328034T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • 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/002Dynamic bit allocation
    • 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
    • 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/04Speech 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 using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/1505Golay Codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • 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/04Speech 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 using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

    Hintergrund der Erfindung
  • Diese Erfindung betrifft Verfahren zum Sichern der Qualität von Sprache oder anderer akustischer Signale, wenn diese über einen verrauschten Kanal übertragen werden.
  • Relevante Veröffentlichungen umfassen: J. L. Flanagan, Speech Analysis, Synthesis and Perception, Springer-Verlag, 1972, Seiten 378-386 (diskutiert ein Phasen-Vocoder-Sprachanalyse-Synthese-System auf Frequenzbasis); Quatieri et al. "Speech Transformations Based on a Sinusoidal Representation", IEEE TASSP, Vol. ASSP34, Nr. 6, Dez. 1986, Seiten 1449-1986 (diskutiert eine Analyse-Synthese- Technik, beruhend auf sinusförmiger Darstellung); Griffin, "Multiband Exitation- Vocoder", Ph. D. Thesis, M. LT. 1987 (diskutiert einen 8000 bps-Mehrband-Erregungs-Sprachcodierer); Griffin et al. "A High Quality 9,6 kbps-Speech Coding System", Proc. ICASSP 86, Seiten 125-128, Tokyo, Japan, April 13-20, 1986 (diskutiert einen 9600 bps-Mehrband-Erregungs-Sprachcodierer); Griffin et al. "A New Model-Based Speech Analysis/Synthesis System", Proc. ICASSP 85, Seiten 513-516, Tampa, FL., März 26-29, 1985 (diskutiert ein Mehrband-Erregungs- Sprachmodell); Hardwick, "A 4,8 kbps-Multiband Excitation Speech Coder", S. M. Thesis, M. I. T. Mai 1988 (diskutiert einen 4800 bps-Mehrband-Erregungs-Sprachcodierer); McAulay et al. "Mid-Rate Coding Based on a Sinusoidal Representation of Speech", Proc. ICASSP 85, Seiten 945-948, Tampa, FL., März 26-29, 1985 (diskutiert den Sinuswandler-Sprachcodierer); Campbell et al. "The New 4800 bps Voice Coding Standard", Mil Speech Tech Converence, Nov. 1989 (diskutiert eine Fehlerkorrektur in einem Sprachcodierer der US-Regierung); Campbell et al. "CELP Coding for Land Mobile Radio Applications", Proc. ICASSP 90, Seiten 465-468, Albequerque, N. M. April 3-6, 1990 (diskutiert eine Fehlerkorrektur in einem Sprachcodierer der US-Regierung); Levesque et al. Error-Control Techni ques for Digital Communication, Wiley, 1985 (diskutiert allgemein Fehlerkorrektur); Lin et al. Error Control Coding, Prentice-Hall, 1983 (diskutiert allgemein Fehlerkorrektur); Jayant et al. Digital Coding of Waveforms, Prentice-Hall, 1984 (diskutiert allgemein Sprachcodierung); Digital Voice Systems, Inc., "INMARSAT-M Voice Coder", Version 1.9, November 18, 1992 (diskutiert einen 6,4 kbps-IMBETM-Sprachcodierer für INMARSAT-M-Standard; Digital Voice Systems, Inc., "APCO/NASTD/Fed Project 25 Vocoder Description", Version 1.0, Dezember 1, 1992 (diskutiert einen 7,2 kbps IMBETM-Sprachcodierer für AP- CO/NASTD/Fed Project 25-Standard) (beigefügt als Anlage A).
  • Das Problem zuverlässiger Übertragung von Digitaldaten über verrauschte Kommunikationskanäle hat eine große Anzahl von Anwendungen, und im Ergebnis erhielt es in der Literatur wesentliche Beachtung. Traditionelle Digitale Kommunikationssysteme beruhten auf Fehlerkorrektur- und Erfassungsverfahren zur zuverlässigen Signaldatenübertragung über verrauschte Kanäle. Es wurden komplizierte Fehlercodierungstechniken entwickelt, um systematisch Bitfehler zu korrigieren und zu erfassen, die durch den Kanal eingeführt werden. Beispiele herkömmlich verwendeter Fehlerüberwachungscodes (ECC's) umfassen: Golay-Codes, Hamming-Codes, BCH-Codes, CRC-Codes, Faltungscodes, Reed-Solomon-Codes, etc.... Diese Codes funktionieren alle durch Wandeln eines Satzes von Informationsbits in eine größere Anzahl von Bits, die dann durch den Kanal übertragen werden. Die Zunahme der Anzahl von Bits kann als eine Form von Redundanz betrachtet werden, die es dem Empfänger ermöglicht, bis zu einer gewissen Anzahl Bitfehler zu korrigieren und/oder zu erfassen. Bei traditionellen ECC-Verfahren ist die Anzahl von Bitfehlern, die korrigiert/erfasst werden kann, eine Funktion des Redundanzbetrags, der zu den Daten addiert wird. Dies führt zu einem Kompromiss zwischen Zuverlässigkeit (der Anzahl von Bitfehlern, die korrigiert werden kann) und der nutzbaren Datenrate (der Informationsmenge, die nach Platzbelassung für Redundanz übertragen werden kann). Der Konstrukteur digitaler Kommunikation führt typischerweise eine hoch entwickelte Systemanalyse durch, um den besten Kompromiss zwischen diesen beiden gegenläufigen Anforderungen zu bestimmen.
  • Die zuverlässige Übertragung von Sprache oder anderen akustischen Signalen über einen Kommunikationskanal ist ein diesbezügliches Problem, das komplizierter gemacht wird durch das Erfordernis, zuerst das analoge akustische Signal in eine digitale Darstellung zu wandeln. Dies erfolgt häufig durch Digitalisierung des Analogsignals mit einem A-D-Wandler. Im Falle von Sprache, wo ein 8 Bit-A-D- Wandler das Signal mit einer Rate von 8 kHz abtasten kann, würde die digitale Darstellung 64 kbps erfordern. Wenn zusätzliche redundante Information vor der Übertragung durch den Kanal hinzugefügt werden muss, dann wäre die erforderliche Kanaldatenrate signifikant größer als 64 kbps. Wenn beispielsweise der Kanal eine 50%-ige Redundanz für eine zuverlässige Übertragung benötigt, dann wäre die erforderliche Kanaldatenrate 64 + 32 = 96 kbps. Leider liegt diese Datenrate in vielen digitalen Kommunikationssystemen jenseits dessen, was praktikabel ist. Demzufolge ist ein bestimmtes Verfahren zum Mindern der Größe der digitalen Darstellung erforderlich. Dieses Problem, allgemein als "Kompression" bezeichnet, erfolgt durch einen Signalcodierer. Im Falle von Sprache oder anderen akustischen Signalen wird ein System dieses Typs häufig als Sprachcodierer, Stimmcodierer oder einfach als Vocoder bezeichnet.
  • Ein moderner Sprachcodierer führt eine hoch entwickelte Analyse an dem Eingangssignal durch, das entweder als Analogsignal oder als die Ausgabe eines A-D- Wandlers angesehen werden kann. Das Ergebnis dieser Analyse ist eine komprimierte digitale Darstellung, die etwa 100 bps klein sein kann. Die tatsächlich erreichte Kompressionsrate ist allgemein eine Funktion der gewünschten Wiedergabetreue (d. h. Sprachqualität) und dem verwendeten Typ des Sprachcodierers. Es sind verschiedene Typen von Sprachcodierem konstruiert worden, um mit hohen Raten (16-64 kbps), mittleren Raten (2-16 kbps) und geringen Raten (0-2 kbps) zu arbeiten. In jüngster Zeit waren Sprachcodierer mittlerer Rate Gegenstand neuerlichen Interesses, und zwar aufgrund der Zunahme mobiler Kommunikationsdienste (zellulare, Satellitentelephonie, beweglicher Landfunk, Luftfahrt-Sprachübertragung etc....). Diese Anwendungen erfordern typischerweise eine hohe Sprachqualität bei mittleren Raten. Zusätzlich unterliegen diese Anwendungen alle signifikanten Kanalverschlechterungen, einschließlich hohen Bitfehlerraten (BER) von 1-10% und Mehrwegeschwund. (Anzumerken ist, dass das Problem von Bitfehlern in gewissem Ausmaß in allen digitalen Kommunikations- und Speicheranwendungen vorhanden ist. Wegen der Ernsthaftigkeit des Problems in mobiler Umgebung wird das Beispiel mobiler Kommunikation aufgezeigt.)
  • Wie oben diskutiert, gibt es zahlreiche Sprachcodierungsverfahren, die in der Vergangenheit entwickelt worden sind. Eine Klasse von Sprachcodierern, die extensiv studiert und in der Praxis verwendet worden ist, beruht auf einem darunter liegenden Sprachmodell. Beispiele von dieser Klasse von Vocodern beinhalten linear prädiktive Vocoder, homomorphe Vocoder, Sinus-Wandlungs-Codierer, Mehrband- Erregungs-Sprachcodierer, verbesserte Mehrband-Erregungs-Sprachcodierer und Kanal-Vocoder. Bei diesen Vocodern wird die Sprache auf Kurzzeitbasis durch einen Satz von Modellparametern charakterisiert. Die Modellparameter bestehen typischerweise aus einer bestimmten Kombination von stimmartig/nichtstimmartig- Entscheidungen, stimmartig/nichtstimmartig-Wahrscheinlichkeitsmessung, Teilungsdauer-, Grundfrequenz-, Verstärkungs-, Spektralhüllparametern und Rest- oder Fehlerparametern. Für diese Klasse von Sprachcodierern wird die Sprache analysiert, indem zuerst die Sprache unter Verwendung eines Fensters segmentiert wird, und zwar eines Hamming-Fensters. Dann werden für jedes Sprachsegment die Modellparameter geschätzt und quantisiert.
  • Bei verrauschten digitalen Kommunikationssystemen liegt der herkömmliche Ansatz darin, die quantisierten Modellparameter mit irgendeiner Form von ECC zu schützen. Die dem ECC zugeordnete Redundanzinformation wird von dem Empfänger verwendet, um die durch den Kanal eingeführten Bitfehler zu korrigieren und/oder zu erfassen. Der Empfänger rekonstruiert dann die Modellparameter und synthetisiert dann ein digitales Sprachsignal, das durch einen D-A-Wandler und einen Lautsprecher für Wiedergabe geeignet ist. Die eingebaute Fehlerüberwachungsmöglichkeit gestattet es dem Empfänger, die Verzerrung und andere Artefakte zu reduzieren, die aufgrund des Vorhandenseins von Bitfehlern in den empfangenen Daten in die synthetisierte Sprache eingeführt werden würden. Leider besteht bei jedem Fehlerüberwachungscode eine gewisse Wahrscheinlichkeit, dass der Empfänger zu viele zu korrigierende Fehler erhält. In diesem Fall beeinträchtigen die verbleibenden Bitfehler die Rekonstruktion der Modellparameter und die Möglichkeit der Einführung signifikanter Verschlechterungen in die synthetisierte Sprache. Dieses Problem kann verringert werden entweder durch Einbau zusätzlicher Fehlerüberwachungscodes oder durch Einbauen einer zusätzlichen Fehlererfassungsmöglichkeit, die Fehler erfassen kann, die nicht korrigiert werden können. Diese herkömmlichen Ansätze erfordern eine zusätzliche Redundanz und erhöhen daher weiter die Kanaldatenrate, die zur Übertragung einer festen Informationsmenge erforderlich ist. Dieses Erfordernis ist ein Nachteil, da es bei den meisten Anwendungen erwünscht ist, die Gesamtanzahl von Bits zu minimieren, die übertragen (oder gespeichert) werden.
  • Hierin beschriebene Ausführungen der Erfindung sind bei vielen verschiedenen digitalen Kommunikationssystemen anwendbar, von denen einige Sprachcodierer enthalten. Beispiele von Sprachcodierern, die in einem solchen Kommunikationssystem enthalten sein können, sind linear prädiktive Sprachcodierer, Kanal-Vocoder, homomorphe Vocoder, Sinuswandler-Codierer, Mehrband-Erregungs-Sprachcodierer und verbesserte Mehrband-Erregungs-(IMBETM)-Sprachcodierer, sind jedoch hierauf nicht beschränkt. Zum Zwecke der Beschreibung von Details von Ausführungen der Erfindung haben wir uns auf ein digitales Kommunikationssystem mit dem IMBETM-Sprachcodierer konzentriert. Dieser besondere Sprachcodierer wurde auf 6,4 kbps zur Verwendung über das INMARSAT-M-(International Marine Satellite Organization)- und das OPTUS-Mobilesat-Satelliten-Kommunikationssystem standardisiert und es wurden 7,2 kbps zur Verwendung in dem AP- CO/NASTD/Fed Project 25, einem nordamerikanischen beweglicher-Landfunk- Standard, gewählt.
  • Der IMBETM-Codierer verwendet ein robustes Sprachmodell, das als Mehrband- Erregungs-(MBE)-Sprachmodell bezeichnet wird. Das MBE-Sprachmodell wurde von Griffin und Lim 1984 entwickelt. Dieses Modell verwendet eine flexiblere Darstellung des Sprachsignals als herkömmliche Sprachmodelle. Infolgedessen ist es in der Lage, eine natürlicher klingende Sprache zu produzieren, und es ist ro bust gegenüber dem Vorhandensein von akustischem Hintergrundrauschen. Diese Eigenschaften bewirken, dass das MBE-Sprachmodell extensiv für Sprachcodierung mit hoher Qualität und mittlerer Rate verwendet wird.
  • s(n) soll ein diskretes Sprachsignal bezeichnen, das durch Abtasten eines analogen Sprachsignals erhalten wird. Um die Aufmerksamkeit auf ein kurzes Sprachsegment zu richten, über das die Modellparameter als konstant angenommen werden, wird das Signal s(n) mit einem Fenster w(n) multipliziert, um ein gefenstertes Sprachsegment oder einen Rahmen zu erhalten, sw(n). Das Sprachsegment sw(n) wird in Antwort auf einen linearen Filter hw(n) in ein bestimmtes Erregungssignal ew(n) modelliert. Daher kann sw(ω), die Fourier-Transformation von sw(n), ausgedrückt werden als:
  • Sw(ω) = Hw(ω)Ew(ω) (1)
  • wobei Hw(ω) und Ew(ω) die Fourier-Transformationen von hw(n) bzw. ew(n) sind. Das Spektrum Hw(ω) wird oft als Spektralhülle des Sprachsegments bezeichnet.
  • In traditionellen Sprachmodellen wird Sprache in zwei Klassen unterteilt, in Abhängigkeit davon, ob das Signal überwiegend periodisch (stimmartig) oder überwiegend rauschartig (nichtstimmartig) ist. Für stimmartige Sprache ist das Erregungssignal eine periodische Impulssequenz, wenn der Abstand zwischen den Impulsen die Teilungsdauer ist. Für nichtstimmartige Sprache ist das Erregungssignal eine Sequenz weißen Rauschens.
  • Bei traditionellen Sprachmodellen wird jedes Sprachsegment klassifiziert als entweder vollständig stimmartig oder vollständig nichtstimmartig. Im Gegensatz hierzu teilt das MBE-Sprachmodell das Erregungsspektrum in eine Anzahl nichtüberlappender Frequenzbänder und trifft eine stimmartig- oder nichtstimmartig- (V/UV) Entscheidung für jedes Frequenzband. Dieser Ansatz ermöglicht es, dass das Erregungssignal für ein bestimmtes Sprachsegment ein Gemisch von periodischer (stimmartiger) Energie und aperiodischer (nichtstimmartiger) Energie ist. Diese zusätzliche Flexibilität in der Modellierung des Erregungssignals ermöglicht es, dass das MBE-Sprachmodell eine qualitativ hochwertige Sprache erzeugt und robust gegenüber Hintergrundrauschen ist.
  • Auf dem MBE-Sprachmodell beruhende Sprachcodierer schätzen einen Satz von Modellparametern für jedes Sprachsegment. Die MBE-Modellparameter bestehen aus einer Grundfrequenz, einem Satz von V/UV-Entscheidungen, welche das Erregungssignal charakterisieren, und einem Satz von Spektralamplituden, die die Spektralhülle charakterisieren. Sobald die MBE-Modellparameter für jedes Segment geschätzt worden sind, werden sie quantifiziert, mit ECC geschützt und zum Decodierer übertragen. Der Decodierer vollzieht dann eine Fehlerüberwachungs- Decodierung, um Bitfehler zu korrigieren oder zu erfassen. Die resultierenden Bits werden dann verwendet, um die MBE-Modellparameter zu rekonstruieren, die wiederum zum Synthetisieren eines Sprachsignals verwendet werden, das durch einen D-A-Wandler und einen herkömmlichen Lautsprecher zur Wiedergabe geeignet ist.
  • Zusammenfassung der Erfindung
  • Erfindungsgemäß wird ein in Anspruch 1 beanspruchtes Verfahren zum Codieren von Digitaldaten vorgeschlagen, wobei das Verfahren die Schritte aufweist:
  • Teilen der Digitaldaten in einen oder mehrere Rahmen;
  • ferner, Teilen jedes der Rahmen in eine Mehrzahl von Bitvektoren;
  • Codieren eines oder mehrerer der Bitvektoren mit Fehlerüberwachungscodes;
  • und dadurch gekennzeichnet, dass es ferner die Schritte aufweist:
  • Erzeugen eines Modulationsschlüssels aus einem oder mehreren der Bitvektoren; und
  • Verwenden des Modulationsschlüssels zum Modulieren eines oder mehrerer der codierten Bitvektoren.
  • Die Merkmale nach dem Oberbegriff von Anspruch 1 sind aus dem Dokument US-A-4,799,059 bekannt.
  • In einer Ausführung verwendet das Verfahren eine Bitmodulation, damit unkorrigierbare Bitfehler erfasst werden können, ohne dass irgendeine weitere Redundanz dem Digitaldatenstrom hinzugefügt werden muss. Die Digitaldaten werden zuerst in fortlaufende Rahmen unterteilt. Dann wird für jeden Rahmen ein Modulationsschlüssel aus einem Abschnitt der Digitaldaten erzeugt, der wiederum zum Erzeugen einer eindeutigen Modulationssequenz verwendet wird. Diese Sequenz wird dann mit den Digitaldaten kombiniert, nachdem der Fehlerüberwachungscode angewendet worden ist. Ein Decodierer, der einen Rahmen modulierter Daten empfängt, versucht, den korrekten Demodulationsschlüssel zu erzeugen, die Daten zu demodulieren und eine Fehler überwachende Decodierung durchzuführen. Durch Vergleichen der Daten vor und nach der Fehler überwachenden Decodierung wird ein Fehlermaß berechnet. Der Wert des Fehlermaßes bezeichnet die Wahrscheinlichkeit, dass der Demodulationsschlüssel unkorrekt ist. Wenn der Wert des Fehlermaßes einen Schwellenwert überschreitet, dann deklariert der Decodierer den momentanen Rahmen von Digitaldaten als ungültig und führt eine Rahmenwiederholung und einen anderen geeigneten Vorgang durch.
  • Zusätzlich können Ausführungen der Erfindung ein Bit-Prioritisierungsverfahren aufweisen, das die Zuverlässigkeit verbessert, mit der ein Satz von Quantisierwerten über einen verrauschten Kommunikationskanal übertragen werden kann. Dieses Verfahren ordnet jeder Binärstelle in einem Satz von Quantisierwerten ein Gewicht zu. Bei irgendeinem Quantisierwert ist das Gewicht für eine signifikantere Binärstelle größer als für eine weniger signifikante Binärstelle. Das Gewicht der Binärstellen gleicher Signifikanz in verschiedenen Quantisierwerten variiert in Abhängigkeit von der Empfindlichkeit der verschiedenen Quantisierwerte auf Bitfehler: empfindlichere Binärstellen erhalten ein höheres Gewicht als weniger empfindliche Binärstellen. Die Bits in jeder der Binärstellen werden entsprechend ihrem Gewicht prioritisiert, und die prioritisierten Bits werden dann mit den Fehlerüberwachungscodes codiert. Fehlerüberwachungscodes mit höherer Redundanz werden typischerweise verwendet, um die Prioritäts-höheren Bits zu codieren (d. h. Bits mit höherem Gewicht), wohingegen die Fehlerüberwachungscodes mit geringerer Redundanz zum Codieren der Prioritäts-niedrigeren Bits verwendet werden (d. h. Bits mit geringerem Gewicht). Dieses Verfahren verbessert die Effizienz der Fehlerüberwachungscodes, da nur die kritischsten Bits mit hoher Redundanz geschützt werden. Der Decodierer, der die prioritisierten Daten empfängt, führt eine Fehler überwachende Decodierung durch und ordnet dann die Bits um, unter Verwendung des gleichen Wichtungsverfahrens, um die Quantisierwerte zu rekonstruieren.
  • Weitere Ausführungen der Erfindung können ein verbessertes Verfahren zum Decodieren und Synthetisieren eines akustischen Signals aus einem Digitaldatenstrom beinhalten. Dieses Verfahren teilt die Digitaldaten in fortlaufende Rahmen, denen jeweils ein Zeitsegment des Signals zugeordnet wird. Das Verfahren führt dann eine Fehler überwachende Decodierung der Digitaldaten durch und führt dann eine weitere Decodierung durch, um eine Frequenzdomänen-Darstellung der Zeitsegmente zu rekonstruieren. Die Anzahl von in jedem Rahmen erfassten Fehlern wird bestimmt durch Vergleichen der Daten vor und nach der Fehler überwachenden Decodierung. Die Frequenzdomänen-Darstellung wird dann in Abhängigkeit von der Anzahl der erfassten Fehler geglättet, und die geglättete Darstellung wird zum Synthetisieren eines akustischen Signals verwendet. Typischerweise nimmt der Glättungsbetrag zu, wenn die Anzahl erfasster Fehler zunimmt, und der Glättungsbetrag nimmt ab, wenn die Anzahl erfasster Fehler abnimmt. Dieses Verfahren reduziert den Grad der Verschlechterung, die ein Hörer wahrnimmt, wenn er das synthetisierte akustische Signal hört, wenn die Digitaldaten eine wesentliche Anzahl von Bitfehlern enthalten.
  • Ausführungen der Erfindung können eine besonders vorteilhafte Bitzuordnung für einen 7,2 kbps-Sprachcodierer und -Decodierer beinhalten. Bei einem solchen System hat jeder Rahmen 144 Bits, die verschiedenen Parametern zugeordnet werden müssen. Wir haben nach beträchtlichen Experimenten herausgefunden, dass eine besonders vorteilhafte Zuordnung dieser Bits wie folgt ist: 88 Bits für die Sprachmodellparameter und 56 Bits für die Fehler überwachende Codierung. Bevorzugt werden die den Sprachmodellparametern zugeordneten 88 Bits ferner wie folgt zugeordnet: 8 Bits für die Grundfrequenz, K Bits für die stimm artig/nichtstimmartig-Entscheidungen und 79 - K Bits für die Spektralamplituden und 1 Bit zur Synchronisierung.
  • Kurzbeschreibung der Zeichnungen
  • Nun werden Beispiele der Ausführungen der vorliegenden Erfindung anhand der Zeichnungen beschrieben, worin:
  • Fig. 1 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, bei der die im IMBETM-Sprachcodierer verwendete Grundfrequenz codiert und decodiert wird.
  • Fig. 2 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, bei der die im IMBETM-Sprachcodierer verwendeten stimmartig/nichtstimmartig-Entscheidungen codiert und decodiert werden.
  • Fig. 3 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, bei der die im IMBETM-Sprachcodierer verwendeten Spektralamplituden in einem Satz von Quantisierwerten quantisiert werden, bezeichnet mit &sub2; bis .
  • Fig. 4 zeigt eine bevorzugte Ausführung der Erfindung, in der die im IM- BETM-Sprachcodierer verwendeten Spektralemplituden-Vorhersageresiduen in sechs Blöcke für = 34 geteilt werden.
  • Fig. 5 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der der teilweise zur Darstellung der IM- BETM-Spektralamplituden verwendete Verstärkungsvektor gebildet wird.
  • Fig. 6 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausfüh rung der Erfindung, in der die im IMBETM-Sprachcodierer verwendeten Spektralamplituden aus einem Satz von Quantisierwerten, bezeichnet mit &sub2; bis rekonstruiert werden (d. h. invers quantisiert werden).
  • Fig. 7 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der die Quantisierwerte für einen Rahmen von IMBETM-Modellparametern in einen Rahmen von Digitaldaten codiert werden.
  • Fig. 8 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der ein Rahmen von Digitaldaten in einen Satz von Quantisierwerten decodiert wird, die einen Rahmen von IMBETM-Modellparametern darstellen.
  • Fig. 9 zeigt eine bevorzugte Ausführung der Erfindung, in der die Quantisierwerte, die die im 7,2 kbps-IMBETM-Sprachcodierer verwendeten Spektralamplituden darstellen, für = 16 prioritisiert werden.
  • Fig. 10 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der aus den im 7,2 kbps-IMBETM-Sprachcodierer verwendeten Quantisierwerten die vier Prioritäts-höchsten Codevektoren gebildet werden.
  • Fig. 11 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der aus den im 7,2 kbps-IMBETM-Sprachcodierer verwendeten Quantisierwerten die vier Prioritäts-niedrigsten Codevektoren gebildet werden.
  • Fig. 12 ist ein Blockdiagramm mit Darstellung einer bevorzugten Ausführung der Erfindung, in der die im IMBETM-Sprachcodierer verwendeten Spektralamplituden adaptiv geglättet werden.
  • Fig. 13 und 14 sind Flussdiagramme mit Darstellung einer bevorzugten Ausführung der Erfindung, in der die im IMBETM-Sprachcodierer verwendeten Modellparameter adaptiv geglättet werden und in der Rahmenwiederholungen und Rahmenstummschaltungen durchgeführt werden, wenn ein Fehlermaß einen Schwellenwert überschreitet.
  • Fig. 15 und 16 sind Flussdiagramme mit Darstellung einer bevorzugten Ausführung der Erfindung, in der die Quantisierwerte, die in dem 7,2 kbps-IM- BETM-Sprachcodierer einen Rahmen darstellen, in einen Rahmen von Digitaldaten codiert werden.
  • Fig. 17 und 18 sind Flussdiagramme mit Darstellung einer bevorzugten Ausführung der Erfindung, in der empfangene Daten, die in dem 7,2 kbps- IMBETM-Sprachcodierer einen Rahmen darstellen, in einen Satz von Bit-Codierungen decodiert werden.
  • Beschreibung von bevorzugten Ausführungen der Erfindung
  • Die bevorzugte Ausführung der Erfindung wird im Kontext des 7,2 kbps-IMBETM- Sprachcodierers beschrieben, der als der Bewegliche Landfunk-Standard vom AP- CO/NASTD/Fed Project 25 verwendet wird. In dem IMBETM-Sprachcodierer wird das Sprachsignal in Segmente unterteilt, und jedes Segment dient zur Schätzung eines Satzes von Parametern, bestehend aus der Grundfrequenz &sub0;, den V/UV- Entscheidungen, k für 1 ≤ k ≤ , wie den Spektralamplituden, l für 1 ≤ l ≤ L. Dann wird ein Quantisierer verwendet, um jeden Satz von Modellparametern auf Rahmen von Quantisierwerten zu reduzieren, bezeichnet mit
  • Da der Project 25-Sprachcodierer zum Betrieb mit 7,2 kbps mit einer 20 ms-Rahmenlänge ausgelegt ist, sind pro Rahmen nur 144 Bits verfügbar. Von diesen 144 Bits sind 56 für die Fehlerüberwachung reserviert, so dass nur 88 Bits verbleiben, die über den Rahmen von + 3 Quantisierwerten zu verteilen sind. Diese 88 Bits müssen in einer hochentwickelten Weise verwendet werden, um sicherzustellen, dass die MBE-Modellparameter mit einer ausreichenden Wiedergabetreue übertragen werden, damit der Decodierer eine qualitativ hochwertige Sprache synthetisieren kann. In den folgenden Abschnitten wird das Verfahren zum Erreichen dieses Ziels beschrieben.
  • Der Codierer und der Decodierer ordnen beide die 88 Bits pro Rahmen in der Weise zu, die in Tabelle 1 gezeigt ist. Diese Tabelle stellt die Tatsache heraus, dass sich die Bitzuordnung in Abhängigkeit von der Anzahl von Modellparametern von Rahmen zu Rahmen ändert. Wie nachfolgend beschrieben, wird die exakte Bitzuordnung durch die am meisten signifikanten sechs Bits der Teilung vollständig bestimmt.
  • Tabelle 1: Bitzuordnung unter Modellparametern Parameter Anzahl von Bits
  • Grundfrequenz 8
  • Entscheidungen stimmartig/nichtstimmartig
  • Spektralamplituden 79 -
  • Synchronisierung 1 Tabelle 2: Acht Bit-Binärdarstellung
  • Die Grundfrequenz wird mit einer Ein-Viertel-Abtastauflösung in dem Intervall 2π/123,125 ≤ &sub0; ≤ 2π/19,875 geschätzt, wobei sie jedoch nur mit einer Halbabtast- Auflösung codiert wird. Dies erfolgt durch Finden des Werts von &sub0;, welcher genügt:
  • Der Quantisierwert &sub0; wird mit 8 Bits dargestellt, unter Verwendung der in Tabelle 2 gezeigten vorzeichenlosen Binärdarstellung. Diese Darstellung wird insgesamt im IMBETM-Sprachcodierer verwendet.
  • Die Grundfrequenz wird am Empfänger unter Verwendung von Gleichung (3) decodiert und rekonstruiert, um &sub0; in die empfangene Grundfrequenz &sub0; zu wandeln. Zusätzlich wird &sub0; verwendet zur Berechnung von und , der Anzahl von V/UV-Entscheidungen bzw. der Anzahl von Spektralamplituden. Diese Beziehungen sind in den Gleichungen (4) und (5) angegeben.
  • Ein Blockdiagramm des Grundfrequenz-Codierungs- und -Decodierungsprozesses ist in Fig. 1 gezeigt.
  • Gleichung (4) zeigt, dass die Parameter nur eine Funktion der sechs am meisten signifikanten Bits (MSB's) des Quantisierwerts &sub0; ist. Wie nachfolgend diskutiert wird, interpretieren der IMBETM-Sprachcodierer und -Decodierer jeden Rahmen unter Verwendung eines variablen Rahmenformats (d. h. einer variablen Bitzuordnung), welche durch diese Parameter bzw. spezifiziert wird. Da für einen richtigen Betrieb das vom Codierer und Decodierer verwendete Rahmenformat identisch sein muss, ist es sehr wichtig, dass = . Aufgrund dieser Tatsache werden diese sechs Bits in dem IMBETM-Sprachrahmen als die prioritätshöchsten Bits angesehen.
  • Die V/UV-Entscheidungen k, für 1 ≤ k ≤ , sind Binärwerte, die jedes Frequenzband als entweder stimmartig oder nichtstimmartig klassifizieren. Diese Werte werden codiert durch
  • Der Quantisierwert &sub1; wird mit Bits unter Verwendung einer vorzeichenlosen Binärdarstellung dargestellt, analog zu jener, die in Tabelle 2 gezeigt ist.
  • Am Empfänger werden die &sub1; entsprechenden Bits in die V/UV-Entscheidungen l für 1 ≤ l ≤ decodiert. Anzumerken ist, dass dies eine Abweichung von der V/UV-Konvention ist, die vom Codierer verwendet wird, der eine einzige V/UV- Entscheidung verwendet, um ein gesamtes Frequenzband darzustellen. Stattdessen verwendet der Decodierer für jede Spektralamplitude eine separate V/UV-Entscheidung. Der Decodierer vollzieht diese Wandlung unter Verwendung von &sub1; zur Bestimmung, welche Frequenzbänder stimmartig oder nichtstimmartig sind. Der Zustand von l wird dann in Abhängigkeit davon gesetzt, ob die Frequenz ω = l · &sub0; innerhalb eines stimmartigen oder nichtstimmartigen Frequenzbands liegt. Dies kann man mathematisch so ausdrücken, wie in den folgenden zwei Gleichungen gezeigt:
  • Fig. 2 zeigt ein Blockdiagramm des V/UV-Entscheidungs-Codierungs- und -Decodierungsprozesses.
  • Die Spektzalamplituden l für 1 ≤ l ≤ sind reale Werte, die vor dem Codieren quantisiert werden müssen. Dies erfolgt so wie in Fig. 3 gezeigt, durch Bildung der Spektralamplituden-Vorhersageresiduen l für 1 ≤ l ≤ , gemäß den Gleichungen (9) bis (14). Zum Zwecke dieser Diskussion bezeichnet l(0) die nicht quantisierten Spektralamplituden des gegenwärtigen Rahmens, während l(-1) die quantisierten Spektralamplituden des vorherigen Rahmens bezeichnet. Ähnlich bezeichnet (0) die Anzahl von Oberschwingungen im momentanen Rahmen, während (-1) die Anzahl von Oberschwingungen im vorherigen Rahmen bezeichnet.
  • Der Vorhersagekoeffizient, ρ, wird bei jedem Rahmen entsprechend der folgenden Regel korrigiert:
  • Zur Bildung l unter Verwendung der Gleichungen (9) bis (12) wird Folgendes angenommen:
  • &sub0;(-1) = 1.0 (13)
  • Auch bei der Initialisierung sollte l -1) für alle l gleich 1,0 gesetzt werden, und (-1) = 30.
  • Die -Vorhersageresiduen werden dann in sechs Blöcke unterteilt. Die Länge jedes Blocks, bezeichnet mit i für 1 ≤ i ≤ 6 wird derart korrigiert, dass die folgenden Bedingungen erfüllt sind:
  • Der erste oder frequenzniedrigste Block wird mit 1,j für 1 ≤ j ≤ &sub1; bezeichnet und besteht aus den aufeinander folgenden ersten &sub1;-Elementen von &sub1; (d. h. 1 ≤ l ≤ &sub1;). Der zweite Block wird mit 2,j für 1 ≤ j ≤ &sub2; bezeichnet, und besteht aus den folgenden nächsten &sub2;-Elementen von l
  • Dies geht bis zum sechsten oder frequenzhöchsten Block weiter, der bezeichnet wird mit 6,j für 1 ≤ j ≤ &sub6;. Er besteht aus den aneinander folgenden letzten &sub6;-Elementen von l
  • Ein Beispiel dieses Prozesses ist in Fig. 4 für = 34 gezeigt.
  • Jeder dieser sechs Blöcke wird unter Verwendung einer Diskreten Cosinus-Transformation (DCT) transformiert. Die Länge des DCT für den i-ten Block ist gleich i. Die DCT-Koeffizienten werden mit i,k bezeichnet, wobei 1 ≤ i ≤ 6 die Blockzahl bezeichnet, und 1 ≤ k ≤ i einen bestimmten Koeffizienten innerhalb jedes Blocks bezeichnet. Die Formel zur Berechnug dieser DTC-Koeffizienten ist wie folgt:
  • Die DCT-Koeffizienten von jedem der sechs Blöcke werden dann in zwei Gruppen unterteilt. Die erste Gruppe besteht aus dem ersten DCT-Koeffizienten von jedem der sechs Blöcke. Diese Koeffizienten werden verwendet, um einen Sechs- Element-Vektor i für 1 ≤ i ≤ 6 zu bilden, wobei i = i,1. Der Vektor i wird als der Verstärkungsvektor bezeichnet, und dessen Aufbau ist in Fig. 5 dargestellt.
  • Die zweite Gruppe besteht aus den verbleibenden DCT-Koeffizienten höherer Ordnung. Diese Koeffizienten entsprechen i,j, wobei 1 ≤ i ≤ 6 und 2 ≤ j ≤ i. Wenn hierbei i = 1, dann gibt es in dem i-ten Block keine DCT-Koeffizienten höherer Ordnung.
  • Ein wichtiges Merkmal des Spektralamplituden-Codierungsverfahrens ist, dass die Spektralamplituden-Information differenziell übertragen wird. Insbesondere wird ein Vorhersageresidual übertragen, welches die Änderung der Spektralhülle zwischen dem momentanen Rahmen und dem vorherigen Rahmen misst. Damit ein Differenzialschema dieses Typs richtig arbeitet, muss der Codierer den Betrieb des Decodierers simulieren und die rekonstruierten Spektralamplituden aus dem vorherigen Rahmen verwenden, um die Spektralamplituden des gegenwärtigen Rahmens vorherzusagen. Der IMBETM-Spektralamplituden-Codierer simuliert den Spektralamplituden-Decodierer, indem er = setzt, und rekonstruiert dann die Spektralamplituden wie oben diskutiert. Dies ist in dem Rückkopplungsweg in Fig. 3 gezeigt.
  • Der Verstärkungsvektor kann als grobe Darstellung der Spektralhülle des momentanen Sprachsegments betrachtet werden. Die Quantisierung des Verstärkungsvektors beginnt mit einer Sechspunkt-DCT von i für 1 ≤ i ≤ 6, wie in der folgenden Gleichung gezeigt.
  • Der resultierende Vektor, bezeichnet mit m für 1 ≤ m ≤ 6, wird in zwei Teile quantisiert. Das erste Element, &sub1;, kann als Darstellung der Gesamtverstärkung oder des Gesamtpegels des Sprachsegments betrachtet werden. Dieses Element wird unter Verwendung eines 6 Bit nicht uniformen Quantisierers, der in Anlage E der Beschreibung des APCO/NASTD/Fed Project 25-Vocoders angegeben ist, quantisiert. Der 6 Bit-Wert &sub2; wird definiert als der Index des Quantisierwerts (wie in dieser Anlage gezeigt), der, im Sinne eines mittleren quadratischen Fehlers, &sub1; am nächsten ist. Die verbleibenden fünf Elemente m werden unter Verwendung uniformer Skalarquantisierer quantisiert, wobei die Quantisierwerte &sub3; bis &sub7; aus den Vektorelementen gemäß Gleichung (19) berechnet werden.
  • Die Parameter m und m in Gleichung (19) sind die Anzahl von Bits und die Schrittgrößen, die zur Quantisierung jedes Elements verwendet werden. Diese Werte sind abhängig von , was die Anzahl von Oberschwingungen im momentanen Rahmen ist. Diese Abhängigkeit ist im Anhang F der Beschreibung des AP- CO/NASTD/Fed Project 25-Vocoders aufgelistet, der hierin unter Bezugnahme aufgenommen wird. Da der Codierer nicht kennt, werden die korrekten Werte von m und m zuerst unter Verwendung dieses Anhangs erhalten, und dann werden die Quantisierwerte m für 3 ≤ m ≤ 7 unter Verwendung von Gleichung (19) berechnet. Der letzte Schritt dient zum Wandeln jedes Quantisierwerts in eine vorzeichenlose binäre Darstellung unter Verwendung des gleichen Verfahrens wie in Tabelle 2 dargestellt.
  • Sobald der Verstärkungsvektor quantisiert worden ist, werden die verbleibenden Bits verwendet, um die - 6 DCT-Koeffizienten höherer Ordnung zu codieren, welche die Darstellung der Spektralamplituden komplettieren. Anhang G der Beschreibung des APCO/NASTD/Fed Project 25-Vocoders zeigt die Bitzuordnung als Funktion von für diese Koeffizienten. Für jeden Wert von bilden die Einträge - 6, bezeichnet als &sub8; bis die Bitzuordnung für die DCT-Koeffizienten höherer Ordnung. Die verwendete Konvention ist, dass jeweils
  • entsprechend
  • ist.
  • Sobald die Bitzuordnung für die DCT-Koeffizienten höherer Ordnung erhalten worden ist, werden diese Koeffizienten unter Verwendung uniformer Quantisierung quantisiert. Für die zum Quantisieren jedes Koeffizienten verwendete Schrittgröße muss die Bitzuordnung und die Standardabweichung des DCT-Koeffizienten unter Verwendung der Tabellen 3 und 4 berechnet Werden. Wenn zum Beispiel einem bestimmten Koeffizienten 4 Bits zugeordnet werden, dann ist aus Tabelle 3 die Schrittgröße, , gleich 0,40σ. Wenn dies der dritte DCT-Koeffizient von irgendeinem Block (d. h. i,3) war, dann ist σ = 0,241, wie in Tabelle 4 gezeigt. Eine Durchführung dieser Multiplikation ergibt eine Schrittgröße von 0,0964. Sobald die Bitzuordnung und die Schrittgrößen für die DCT-Koeffizienten höherer Ordnung bestimmt worden sind, werden die Quantisierwerte m für 8 ≤ m ≤ + 1 gemäß Gleichung (20) berechnet.
  • Tabelle 3: Uniforme Quantisierschrittgröße für DCT-Koeffizienten höherer Ordnung Bitzahlen Schrittgröße
  • 1 1,2 σ
  • 2 0,85 σ
  • 3 0,65 σ
  • 4 0,40 σ
  • 5 0,28 σ
  • 6 0,156 σ
  • 7 0,08 σ
  • 8 0,04 σ
  • 9 0,02 σ
  • 10 0,01 σ
  • Die Parameter m, m und m In Gleichung (20) betreffen den Quantisierwert, die Zahl von Bits bzw. die Schrittgröße, die für i,k berechnet worden ist. Die Beziehung zwischen m, i und k in Gleichung (20) ist übrigens bekannt und kann ausgedrückt werden als:
  • m = 6 + k + n (21)
  • Schließlich wird jeder Quantisierwert in eine geeignete vorzeichenlose Binärdarstellung gewandelt, die analog zu der in Tabelle 2 gezeigten ist.
  • Damit der Decodierer die Spektralamplituden rekonstruieren kann, muss zuerst der Parameter aus &sub0; durch die Gleichungen (3) und (4) berechnet werden. Dann können die Spektralamplituden durch Invertieren der oben beschriebenen Quantisier- und Codierprozedur decodiert und rekonstruiert werden. Ein Blockdiagramm des Spektralamplituden-Decodierers ist in Fig. 6 gezeigt.
  • Tabelle 4: Standardabweichung von DCT-Koeffizienten höherer Ordnung DCT-Koeffizient σ
  • Ci,2 0,307
  • Ci,3 0,241
  • Ci,4 0,207
  • Ci,5 0,190
  • Ci,6 0,190
  • Ci,7 0,179
  • Ci,8 0,173
  • Ci,9 0,165
  • Ci,10 0,170
  • Der erste Schritt beim Spektralamplituden-Rekonstruktionsprozess ist die Teilung der Spektralamplituden in sechs Blöcke. Die Länge jedes Blocks, i für 1 ≤ i ≤ 6, wird korrigiert, damit die folgenden Bedingungen erfüllt sind.
  • Die Elemente dieser Blöcke werden mit i,k bezeichnet, wobei 1 ≤ i ≤ 6 die Blockzahl bezeichnet und wobei 1 ≤ k ≤ i das Element innerhalb dieses Blocks bezeichnet. Das erste Element jedes Blocks wird dann durch die Gleichung (24) gleich dem decodierten Verstärkungsvektor i gesetzt.
  • i.1 = i für 1 ≤ i ≤ 6 (24)
  • Die verbleibenden Elemente jedes Blocks entsprechen den decodierten DCT-Koeffizienten höherer Ordnung.
  • Die Verstärkung wird in zwei Teilen decodiert. Zuerst wird der Sechs-Bit-Quantisierwert &sub2; verwendet, um das erste Element des transformierten Verstärkungsvektors zu rekonstruieren, bezeichnet mit &sub1;. Dies erfolgt unter Verwendung des 6 Bit-Werts &sub2; als Index in die Quantisierwerte, die im Anhang E der Beschreibung des APCO/NASTD/Fed Project 25-Vocoders aufgelistet sind. Dann werden die fünf Quantisierwerte &sub3; bis &sub7; verwendet, um die verbleibenden fünf Elemente des transformierten Verstärkungsvektors, bezeichnet mit &sub2; bis &sub6; zu rekonstruieren. Dies erfolgt unter Verwendung von , der Zahl von Oberschwingungen im gegenwärtigen Rahmen, in Kombination mit der Tabelle in diesem Anhang zum Aufstellen der Bitzuordnung und der Schrittgröße für jedes dieser fünf Elemente. Die Beziehung zwischen den empfangenen Quantisierwerten und den transformierten Verstärkungsvektorelementen ist in Gleichung (25) ausgedrückt,
  • wobei m und m die Schrittgrößen und die Zahl von Bits sind, die über den Anhang F der Beschreibung des APCO/NASTD/Fed Project 25-Vocoders zu finden sind, der hierin unter Bezugnahme aufgenommen wird. Sobald der transformierte Verstärkungsvektor auf diese Weise rekonstruiert worden ist, muss der Verstärkungsvektor i für 1 ≤ i ≤ 6 durch eine inverse DCT von m berechnet werden, wie in den folgenden Gleichungen gezeigt.
  • Die DCT-Koeffizienten höherer Ordnung, die bezeichnet sind mit i,k für 2 ≤ i ≤ 6 und 1 ≤ k ≤ i werden aus den Quantisierwerten &sub8;, &sub0;, ... rekonstruiert. Zuerst wird die Bitzuordnungstabelle, die im Anhang G der Beschreibung des APCO/NASTD/Fed Project 25-Vocoders aufgelistet ist, der hier Bezugnahme aufgenommen wird, verwendet, um die geeignete Bitzuordnung zu bestimmen. Die verwendete Konvention ist, dass
  • jeweils
  • entspricht. Sobald die Bitzuordnung bestimmt worden ist, werden unter Verwendung der Tabellen 3 und 4 die Schrittgrößen für jedes i,k berechnet. Die Bestimmung der Bitzuordnung und der Schrittgrößen für den Decodierer erfolgt in der gleichen Weise wie im Codierer. Durch die Bezeichnung m und m zur Bezeichnung der Zahl von Bits bzw. der Schrittgröße kann dann jeder DCT-Koeffizient höherer Ordnung gemäß der folgenden Formel rekonstruiert werden,
  • wobei wie in Gleichung (21) die folgende Gleichung in Bezug auf m, i und k verwendet werden kann:
  • m = 6 + k + (29)
  • Sobald die DCT-Koeffizienten i,k rekonstruiert worden sind, wird die inverse DCT an jedem der sechs Blöcke berechnet, zur Bildung der Vektoren i,j. Dies erfolgt unter Verwendung der folgenden Gleichungen für 1 ≤ i ≤ 6.
  • Dann werden die sechs transformierten Blöcke i,j zur Bildung eines einzigen Vektors der Länge verbunden, bezeichnet als für 1 ≤ l ≤ . Der Vektor l entspricht den rekonstruierten Spektralamplituden-Vorhersageresiduen. Die verwendete Konvention ist, dass für 1 ≤ j ≤ &sub1; die ersten &sub1;-Elemente von l gleich 1,j sind.
  • Für 1 ≤ j ≤ &sub2; sind die nächsten &sub2;-Elemente von Tl gleich 6,j. Dies geht weiter, bis für 1 ≤ j ≤ &sub6; die letzten &sub6;-Elemente von l gleich 6,j sind. Schließlich werden die rekonstruierten log&sub2;-Spektralamplituden für den gegenwärtigen Rahmen unter Verwendung der folgenden Gleichungen berechnet.
  • Zur Rekonstruktion von l(0) unter Verwendung der Gleichungen (32) bis (34) wird immer folgendes angenommen:
  • &sub0;(-1) = 1.0 (35)
  • l(-1) = (-1) für l > (-1) (36)
  • Zusätzlich wird angenommen, dass bei Initialisierung l(-1) = 1 und für alle l und (-1) = 30. Übrigens benötigen spätere Abschnitte des IMBETM-Decodierers die Spektralamplituden, l für 1 ≤ l ≤ , die durch Anwenden des inversen log&sub2; an jedem der mit Gleichung (34) berechneten Werte berechnet werden müssen.
  • Anzumerken ist schließlich, dass klar sein sollte, dass der IMBETM-Sprachcodierer ein variables Rahmenformat verwendet (d. h. variable Bitzuordnung), die von der Zahl von Oberschwingungen in jedem Rahmen abhängig ist. Am Codierer wird der Wert verwendet, um die Bitzuordnung und die Quantisierschrittgrößen zu bestimmen, wohingegen am Decodierer der Wert verwendet wird, um die Bitzuordnung und die Quantisierschrittgrößen zu bestimmen. Um einen richtigen Betrieb sicherzustellen, ist es notwendig, dass diese zwei Werte gleich sind (d. h. = ). Der Codierer und der Decodierer sind so konstruiert, dass sie diese Eigenschaft aufweisen, außer bei Vorhandensein einer großen Anzahl von Bitfehlern. Zusätzlich gestattet die Verwendung von Bitmodulation, dass der Decodierer Rahmen erfasst, wo eine große Anzahl von Bitfehlern das Erzeugen der korrekten Bitzuordnung und der Quantisierschrittgrößen verhindern könnte. In diesem Fall verwirft der Decodierer die Bits für den gegenwärtigen Rahmen und wiederholt die Parameter von dem vorherigen Rahmen. Dies wird in späteren Abschnitten dieses Dokuments im näheren Detail diskutiert.
  • Zur Synchronisierung ist in jedem Sprachrahmen ein Letztes-Bit-Quantisierwert reserviert. Dieser Quantisierwert, bezeichnet mit , wird durch den Codierer auf eine wechselnde Sequenz gesetzt. Wenn dieses Bit während des vorherigen Sprachrahmens auf 0 gesetzt war, dann sollte dieses Bit für den gegenwärtigen Sprachrahmen auf 1 gesetzt werden. Wenn andernfalls dieses Bit während des vorherigen Sprachrahmens auf 1 gesetzt war, dann sollte dieses Bit für den gegenwärtigen Sprachrahmen auf 0 gesetzt werden. Dies ist in der folgenden Gleichung ausgedrückt, wobei (0) den Wert für den gegenwärtigen Rahmen betrifft, während (-1) den Wert für den vorherigen Rahmen betrifft.
  • Es wird angenommen, dass (0) während des ersten Rahmens nach der Initialisierung gleich 0 gesetzt werden sollte.
  • Der Decodierer kann dieses Bit verwenden, um die Synchronisierung durchzuführen. Wie später in dieser Beschreibung dargestellt, wird dieses Bit nicht Fehler überwachend codiert oder moduliert, und es wird in einen festen Offset relativ zu Beginn jedes 144 Bit-Rahmens von Sprachdaten angeordnet. Der Decodierer kann dann jeden möglichen Offset in dem empfangenen Datenstrom prüfen und feststellen, welcher Offset am wahrscheinlichsten dem Synchronisierbit entspricht. Dann kann der Beginn jedes Sprachrahmens unter Verwendung der bekannten Distanz zwischen dem Beginn jedes Sprachrahmens und dem Synchronisierbit festgestellt werden. Übrigens kann die Anzahl empfangener Sprachrahmen, die zum Synchronisieren verwendet werden, modifiziert werden, um einen Kompromiss der Wahrscheinlichkeit von Falschsynchronisierung, der Synchronisierverzögerung und der Fähigkeit zur Durchführung der Synchronisation bei Vorhandensein von Bitfehlern zu finden. Übrigens können andere Synchronisierfelder außerhalb des IM- BETM-Sprachcodierers vorgesehen werden, um ohne die Verwendung von zur Synchronisierung auszukommen.
  • Der IMBETM-Codierer kombiniert die oben beschriebenen Quantisierverfahren mit einer Sequenz von Bitmanipulationen, um die Robustheit der Synsteme gegen Kanalverschlechterungen (d. h. Bitfehler) zu erhöhen. Jeder Rahmen von Quantisierwerten, bezeichnet mit
  • wird zuerst in einem Satz von Bitvektoren, bezeichnet mit &sub0;, ..., &sub7;, gemäß jeder Bitempfindlichkeit auf Bitfehler prioritisiert. Das Ergebnis ist, dass Bitfehler, die in den Prioritäts-höchsten Bitvektor, &sub0;, eingeführt wurden, starke Verzerrungen in der decodierten Sprache verursachen. Umgekehrt verursachen Bitfehler, die dem Prioritäts-niedrigsten Bitvektor, &sub7;, hinzugefügt werden, geringe Verzerrungen in der decodierten Sprache. Die Bitvektoren werden dann mit Fehlerüberwachungscodes geschützt, einschließlich sowohl [15, 11] Golay-Codes und [15, 11] Hamming-Codes, um Codevektoren zu erzeugen, die mit &sub0;, ..., &sub7; bezeichnet werden. Die Verwendung von Bit-Prioritisierung erhöht die Effektivität der Fehlerüberwachungscodes, da nur die empfindlichsten Bits durch die hochredundanten Golay-Codes geschützt werden.
  • Der IMBETM-Codierer verwendet auch eine Bitmodulation, um die Robustheit des Systems auf Bitfehler weiter zu erhöhen. Einer der Bitvektoren wird zum Erzeugen eines Modulationsschlüssels verwendet, der zum Initialisieren einer pseudozufälligen Sequenz verwendet wird. Diese Sequenz wird in einen Satz von binären Modulationsvektoren gewandelt, die den Codevektoren modulo 2-addiert werden (d. h. nach der Fehlerüberwachungs-Codierung). Das Ergebnis ist ein Satz von modulierten Codevektoren, bezeichnet mit &sub0;, ..., &sub7;. Schließlich wird eine Zwischen-Rahmen-Bitverschachtelung an den modulierten Codevektoren verwendet, um den Effekt kurzer, stoßartiger Fehler zu spreizen. Ein Blockdiagramm der durch den Codierer durchgeführten Manipulationen ist in Fig. 7 gezeigt.
  • Der IMBETM-Decodierer kehrt die vom Codierer durchgeführten Bitmanipulationen um. Zuerst entschachtelt der Decodierer jeden Rahmen von 144 Bits zum Erhalt der acht Codevektoren &sub0;, ..., &sub7; . Der Prioritäts-höchste Codevektor wird dann Fehlerüberwachungs-decodiert zum Erzeugen eines Demodulationsschlüssels verwendet. Der Demodulationsschlüssel wird dann verwendet, um eine pseudozufällige Sequenz zu initialisieren, die in einen Satz von binären Modulationsvektoren gewandelt wird. Diese werden zu den verbleibenden Codevektoren modulo 2 addiert, um einen Satz von demodulierten Codevektoren zu erzeugen, bezeichnet mit &sub0;, ..., &sub7;, die der Decodierer dann Fehlerüberwachungs-decodiert, um die Bitvektoren &sub0;, ..., &sub7;, zu rekonstruieren. Schließlich rearrangiert der Decodierer diese Bitvektoren zum Rekonstruktieren der Quantisierwerte, bezeichnet mit &sub0;, &sub1;, , die dann zum Rekonstruieren von Rahmen-MBE-Modellparametern verwendet wird. Jeder Rahmen von Modellparametern kann dann von einem IMBETM Sprachsynthetisierer verwendet werden, um ein Zeitsegment von Sprache zu synthetisieren. Ein Blockdiagramm von Decodierer-durchgeführten Bitmanipulationen ist in Fig. 8 gezeigt.
  • Übrigens verwendet der IMBETM-Sprachcodierer eine Anzahl unterschiedlicher Mechanismen, um die Leistung beim Vorhandensein von Bitfehlern zu verbessern. Diese Mechanismen bestehen erstens aus Fehlerüberwachungs-Codes, die eine signifikante Anzahl von Fehlern beseitigen können. Zusätzlich verwendet der IM- BETM-Sprachcodierer Bitmodulation in Kombination von Rahmenwiederholungen und Rahmenstummschaltungen, um besonders fehlerhafte Rahmen zu erfassen und zu verwerfen. Schließlich verwendet der IMBETM-Sprachdecodierer eine adaptive Glättung, um den erhaltenen Effekt etwa verbleibender Fehler zu reduzieren. Diese Mechanismen werden alle in den folgenden Abschnitten dieser Beschreibung diskutiert.
  • Die erste Bitmanipulation, die vom IMBETM-Codierer verwendet wird, ist eine Prioritisierung der Quantisierwerte
  • in einen Satz von 8 Bitvektoren, bezeichnet mit &sub0;, &sub1;, ... &sub7;. Die Bitvektoren &sub0; bis &sub3; sind 12 Bit lang, während die Bitvektoren &sub4; bis &sub6; alle 11 Bit lang sind, und der Bitvektor &sub7; 7 Bits lang ist.
  • In diesem gesamten Abschnitt der Konvention wird angenommen, dass das Bit N, wobei N die Vektorlänge ist, das am meisten signifikante Bit (MSB) ist, und das Bit 1 das am wenigsten signifikante Bit (LSB) ist.
  • Die Prioritisierung der Quantisierwerte in den Satz von Bitvektoren beginnt mit u&sub0;. Die sechs am meisten signifikanten Bits von &sub0; (d. h. Bits 12 bis 7) werden gleich den sechs am meisten signifikanten Bits von &sub0; (d. h. Bits 8 bis 3) gesetzt. Die nächsten drei am meisten signifikanten Bits von &sub0; (d. h. die Bits 6 bis 4) werden gleich den drei am meisten signifikanten Bits von &sub2; (d. h. Bits 6 bis 4) gesetzt. Die verbleibenden drei Bits von &sub0; werden aus den Spektralamplituden-Quantisierwerten &sub3; bis erzeugt. Insbesondere werden diese Quantisierwerte so angeordnet, wie in Fig. 9 gezeigt. In dieser Figur bezeichnen die schraffierten Bereiche die Zahl von Bits, die jedem dieser Werte zugeordnet sind, unter der Annahme, dass = 16. Übrigens ändern sich die anderen Werte von dieser Figur entsprechend der Bitzuordnungsinformation, die in den Anhängen F und G der Beschreibung des APCO/NASTD-Fed Project 25-Vocoders enthalten sind. Die verbleibenden drei Bits von &sub0; werden dann gewählt, beginnend in der oberen linken Ecke dieser Figur (d. h. Bit 10 von &sub3;) und Abtasten von links nach rechts. Wenn das Ende irgendeiner Reihe erreicht ist, geht die Abtastung von links nach rechts in der nächsttieferen Reihe weiter. Das Bit 3 von &sub0; wird gleich dem Bit gesetzt, das dem ersten schraffierten Block entspricht, unter Verwendung der vorgeschriebenen Abtastfolge erreicht wird. Ähnlich wird das Bit 2 von &sub0; gleich dem Bit gesetzt, das dem erreichten zweiten schraffierten Block entspricht, und das Bit 1 von &sub0; wird gleich dem Bit gesetzt, das dem erreichten dritten schraffierten Block entspricht.
  • Die Abtastung der Spektralamplituden-Quantisierwerte &sub3; bis , die zum Erzeugen der letzten drei Bits von &sub0; verwendet wird, wird für die Bitvektoren &sub1; bis &sub3; fortgeführt. Jedes aufeinander folgende Bit in diesen Vektoren wird gleich dem Bit gesetzt, das dem nächstschraffierten Block entspricht. Dieser Prozess beginnt mit Bit 12 von &sub1;, geht über Bit 1 von &sub1; bis Bit 12 von &sub2; weiter und geht auf diese Weise weiter, bis er schließlich Bit 1 von &sub3; erreicht. An dieser Stelle sind die 48 Prioritäts-höchsten (d. h. empfindlichsten) Bits den Bitvektoren &sub0; bis &sub3; zugeordnet worden, wie in Fig. 10 gezeigt.
  • Die Formation der Bitvektoren &sub4; bis &sub7; beginnt mit den V/UV-Entscheidungsbits. Dies erfolgt durch Einsetzen in die Bitvektoren (beginnend mit Bit 11 von &sub4;, weiter durch Bit 1 von &sub4; bis Bit 11 von &sub5;, und geht auf diese Weise weiter, bis schließlich Bit 5 von &sub7; erreicht wird) aller Bits von &sub1; (beginnend mit MSB), weiter mit Bit 3 und dann Bit 2 von &sub2;, und dann geht es weiter mit der Abtastung von &sub3; bis , wie oben beschrieben. Die letzten vier Bits von &sub7; (beginnend mit Bit 4 und endend mit Bit 1) werden gleich Bit 1 von &sub2; Bit 2 von &sub0;, Bit 1 von b&sub0; bzw. dann Bit 1 von gesetzt. Ein Blockdiagramm dieser Prozedur ist in Fig. 11 für = 6 gezeigt.
  • Die oben beschriebene Formation der Bitvektoren prioritisiert die Bits entsprechend ihrer Empfindlichkeit auf Bitfehler. Ein in &sub0; eingeführter Bitfehler verursacht allgemein die größte Verschlechterung der Sprachqualität, während ein in &sub7; eingeführter Bitfehler eine geringe Verschlechterung der Sprachqualität verursacht. Demzufolge werden 56 Bits pro Rahmen, die zur Fehlerüberwachung verfügbar sind, zum Schützen der ersten vier Bitfektoren mit [23, 12] Golay-Codes geschützt, während die nächsten drei Bitvektoren mit [15, 11] Hamming-Codes geschützt werden. Der letzte Bitvektor verbleibt ungeschützt. Dieser Ansatz genügt, da er die stärker redundanten (und daher robusteren) Golay-Codes nur dort verwendet, wo sie am meisten benötigt werden, während er weniger redundante (und daher weniger robuste) Codes in den anderen Bereichen verwendet.
  • Die oben beschriebene Bit-Prioritisierung kann als Zuordnung eines Gewichts zu jeder lokalisierten Binärstelle in dem Satz von Quantisierwerten betrachtet werden. In irgendeinem Quantisierwert ist das Gewicht größer für eine signifikantere Binärstelle als für eine weniger signifikante Binärstelle. Zusätzlich ist das relative Gewicht einer Binärstelle gleicher Signifikanz in unterschiedlichen Quantisierwerten abhängig von der Empfindlichkeit jedes Quantisierwerts auf Bitfehler (d. h. die erhaltene Verschlechterung, die sich nach Synthetisierung der Sprache mit Bitfehlern in einem bestimmten Quantisierwert ergibt). Sobald das Gewicht jeder Binärstelle zugeordnet wurde, wird die Konstruktion der Bitvektoren durchgeführt durch Ordnen jedes Bits entsprechend dem Gewicht seiner Binärstelle, und dann Aufteilen der geordneten Bitsequenz in Bitvektoren geeigneter Länge.
  • Sobald die acht Bitvektoren gebildet worden sind, werden sie jeweils in einen entsprechenden Codevektor umgewandelt. Die Erzeugung der acht Codevektoren i für 0 ≤ i ≤ 7 erfolgt gemäß dem folgenden Satz von Gleichungen,
  • i = i · PG für 0 ≤ i ≤ 3 (38)
  • i = i · PH für 4 ≤ i ≤ 6 (39)
  • T = T (40)
  • wobei PG und PH die Paritätsmatrizen für den [23, 12] Golay-Code bzw. den [15, 11] Hamming-Code sind. Diese sind nachfolgend gezeigt, wobei fehlende Einträge als gleich null angenommen werden. Übrigens sind alle Operationen modulo 2-Operationen, wie in den hierin zitierten Referenzen definiert, und die Vektoren i und i werden als Zeilenvektoren angenommen, wobei das am weitesten "linke" Bit das MSB ist. Diese Konvention wird überall in diesem Abschnitt verwendet.
  • Die oben gezeigte Golay-Paritätsmatrix PG ist eine systematische Darstellung des Standard [23, 12] Golay-Codes. Standardverfahren zum Decodieren dieses Codes und des Hamming-Codes sind in der Literatur diskutiert. Diese Verfahren werden vom IMBETM-Decodierer verwendet, um die maximale Zahl von Fehlern für jeden Code zu korrigieren.
  • Der IMBETM-Sprachcodierer verwendet Bitmodulation zum Vorsehen eines Mechanismus zum Erfassen von Fehlern in &sub0; jenseits der drei Fehler, die der [23, 12] Golay-Code korrigieren kann. Der erste Schritt in dieser Prozedur ist es, einen Satz von binären Modulationsvektoren zu erzeugen, die zu den Codevektoren &sub0; bis &sub7; (modulo 2) addiert werden. Die Modulationsvektoren werden aus einer pseudozufälligen Sequenz erzeugt, die an dem Wert eines Modulationsschlüssels initialisiert wird, der aus dem Bitvektor &sub0; erzeugt wird. Insbesondere wird die in der folgenden Gleichung definierte Sequenz verwendet,
  • pr(0) = 16 &sub0; (41)
  • wobei der Bitvektor &sub0; als vorzeichenlose 12 Bit-Zahl im Bereich [0, 4095] interpretiert wird. Gleichung (42) dient zur rekursiven Berechnung der pseudozufälligen Sequenz pr(n) über den Bereich 1 ≤ n ≤ 114. Jedes Element dieser Sequenz kann als 16 Bit-Zufallszahl interpretiert werden, die gleichmäßig über das Intervall [0, 65535] verteilt ist. Unter Verwendung dieser Interpretation wird ein Satz von binären Modulationsvektoren, bezeichnet mit &sub0; bis &sub7;, aus der unten gezeigten Sequenz erzeugt.
  • &sub0; = [0, 0. ..., 0] (43)
  • &sub1; = [ pr(1)/32768 , pr(2)/32768 , ..., pr(23)/32768 ] (44)
  • &sub2; = [ pr(24)/32768 , pr(25)/32768 , ..., pr(46)/32768 ] (45)
  • &sub3; = [ pr(47)/32768 , pr(48)/32768 , ..., pr(69)/32768 ] (46)
  • &sub4; = [ pr(70)/32768 , pr(71)/32768 , ..., pr(84)/32768 ] (47)
  • &sub5; = [ pr(85)/32768 , pr(86)/32768 , ..., pr(99)/32768 ] (48)
  • &sub6; = [ pr(100)/32768 , pr(101)/32768 , ..., pr(114)/32768 ] (49)
  • m&sub7; = [0, 0, .... 0] (50)
  • Wenn diese Modulationsvektoren auf diese Weise berechnet worden sind, werden die modulierten Codevektoren, &sub0; für 0 ≤ i ≤ 7, durch (modulo 2) Addieren der Codevektoren zu den Modulationsvektoren berechnet.
  • für 0 ≤ i ≤ 7 (51)
  • Anzumerken ist, dass die vom IMBETM-Codierer durchgeführte Bitmodulation von dem Decodierer invertiert werden kann, wenn &sub0; keine unkorrigierbaren Bitfehler enthält. In diesem Fall erhält die Golay-Decodierung &sub0; die immer gleich &sub0; ist, da m&sub0; = 0, den korrekten Wert von u&sub0;. Der Decodierer kann dann &sub0;, verwenden, um die pseudo-zufällige Sequenz und die Modulationsvektoren &sub1; bis &sub7; zu rekonstruieren. Eine Subtraktion dieser Vektoren von &sub1; bis &sub7; ergibt dann die Codevektoren &sub1; bis &sub7;. Hierbei kann die Restfehler-Überwachungsdecodierung durchgeführt werden. Wenn andernfalls &sub0; unkorrigierbare Bitfehler enthält, kann die Modulation vom Decodierer allgemein nicht invertiert werden. In diesem Fall gibt das wahrscheinliche Ergebnis der Golay-Decodierung &sub0; einige &sub0;, was nicht gleich &sub0; ist. Demzufolge wird der Decodierer die pseudo-zufällige Sequenz inkorrekt initialisieren, und die von dem Decodierer berechneten Modulationsvektoren werden mit den vom Codierer verwendeten Modulationsvektoren nicht korreliert. Die Verwendung dieser inkorrekten Modulationsvektoren zum Rekonstruieren der Codevektoren ist im Wesentlichen das Gleiche wie der Durchlauf von &sub1;, ..., &sub6; durch einen Kanal mit einer 50%-igen Bitfehlerrate (BER). Der IMBETM-Decodierer verwertet die Tatsache, dass statistisch eine 50%-ige BER zur Folge hat, dass die an &sub1; bis &sub6; verwendeten Golay- und Hamming-Codes eine Anzahl von Fehlern korrigieren, die der maximalen Fähigkeit des Codes nahe ist. Durch Zählen der Gesamtzahl von Fehlern, die in allen diesen Codevektoren korrigiert werden, ist der Decodierer in der Lage, zuverlässig Rahmen zu erfassen, in denen &sub0; wahrscheinlich unkorrigierbare Bitfehler enthält. Der Decodierer führt während dieser Rahmen Rahmenwiederholungen durch, um die erhaltene Verschlechterung bei Vorhandensein von Bitfehlern zu reduzieren. Experimentelle Ergebnisse haben gezeigt, dass Rahmenwiederholungen bevorzugt sind, um ein inkorrekt decodiertes &sub0; zu verwenden, da dieser Codevektor die Bitzuordnung für die Parameterquantisierer steuert.
  • Somit gestattet die Verwendung der Zufalls-Bitmodulation durch den Decodierer, dass der Decodierer zuverlässig erfassen kann, ob irgendwelche unkorrigierbaren Bitfehler in &sub0; vorhanden sind, ohne dass eine weitere Redundanz in dem Datenstrom angeordnet werden muss. Dies ermöglicht eine effiziente Nutzung des Kommunikationskanals, während das Einbringen starker Verschlechterungen in die synthetisierte Sprache eliminiert wird.
  • Die Zwischen-Rahmen-Bitverschachtelung dient zum Spreizen kurzer vieler Stöße unter verschiedenen Codewörtern. Dies senkt die Wahrscheinlichkeit, dass ein kurzer Fehlerstoß ein unkorrigierbares Fehlermuster ergibt. Die minimale Trennung zwischen irgendwelchen zwei Bits desselben Fehlerkorrekturcodes ist 6 Bits. Die exakte Ordnung der 144 Bits in jedem Rahmen ist im Anhang H der Beschreibung des APCO/NASTD/Fed Project 25 Vocoders aufgelistet, datiert am 1. Dezember 1992. Die Tabelle dieses Anhangs verwendet dieselbe Notierung wie oben diskutiert, d. h. das Bit N (wobei N die Vektorlänge ist) ist das MSB, und das Bit 1 ist das LSB. Die Sprachcodierungsbits sollten in das Project 25-Rahmenformat eingesetzt werden, beginnend mit dem Bit &sub1; und endend mit dem Bit &sub1;&sub4;&sub4;.
  • Der IMBETM-Sprachdecodierer schätzt die Anzahl von Fehlern in jeweils erhaltenen Datenrahmen durch Berechnung der Fehlerzahl, die jeweils durch die [23, 12] und [15, 11] Hamming-Codes korrigiert sind. Die Fehlerzahl für jeden Codevektor wird mit i für 0 ≤ i ≤ 6 bezeichnet, wobei i die Zahl von Bitfehlern betrifft, die während der Fehler überwachenden Decodierung von i erfasst wurden. Diese sieben Bitfehlerparameter können leicht unter Verwendung der folgenden Gleichung bestimmt werden, wobei wiederum alle arithmetischen Operationen modulo 2 sind.
  • Aus diesen Fehlerwerten werden die zwei anderen Fehlerparameter, wie nachfolgend gezeigt, berechnet.
  • T = i (53)
  • R(0) = .95 · R(-1) + .000356 T (54)
  • Der Parameter r(0) ist die Schätzung der Fehlerrate für den gegenwärtigen Rahmen, während R(-1) die Schätzung der Fehlerrate für den vorherigen Rahmen ist. Diese Fehlerparameter dienen zur Steuerung des unten beschriebenen Rahmenwiederholungsprozesses und zur Steuerung der unten beschriebenen adaptiven Glättungsfunktionen. Diese beiden Funktionen sind ausgestaltet, um die Empfangsqualität der decodierten Sprache zu verbessern, wobei die Fehler überwachende Decodierung nicht immer in der Lage ist, alle Bitfehler zu korrigieren, die von einem stark verschlechterten Kanal eingeführt werden.
  • Der IMBETM-Decodierer prüft jeden empfangenen Datenrahmen zum Erfassen und Verwerten von solchen Rahmen, die stark verfälscht sind. Es wird eine Anzahl verschiedener Fehlerbedingungen geprüft, und wenn eine dieser Bedingungen anzeigt, dass der gegenwärtige Rahmen ungültig ist, dann wird eine Rahmenwiederholung durchgeführt. Der IMBETM-Sprachcodierer verwendet Werte von &sub0; im Bereich 0 ≤ &sub0; ≤ 207 zur Darstellung gültiger Teilungsschätzungen. Zusätzlich werden Werte von b&sub0; im Bereich 216 ≤ &sub0; ≤ 219 vom Codierer verwendet, um stille Rahmen darzustellen. Die verbleibenden Werte von &sub0; werden für künftige Verbesserungen reserviert (wie etwa DTMF-Signale, Ruf-Fortgangssignale, verbesserte Sprachcodierer, Inband-Daten etc.), und sie werden gegenwärtig als ungültig angesehen. Eine Rahmenwiederholung wird von dem Decodierer durchgeführt, wenn er einen ungültigen Wert von &sub0; empfängt oder beide der folgenden zwei Gleichungen wahr sind.
  • &sub0; ≥ 2 (55)
  • T > 11 (56)
  • Diese zwei Gleichungen dienen zur Erfassung der inkorrekten Demodulation, die sich ergibt, wenn unkorrigierbare Bitfehler in &sub0; vorhanden sind. Der Decodierer führt eine Rahmenwiederholung mit den folgenden Schritten durch:
  • 1) Der gegenwärtig empfangene 144 Bit-Datenrahmen wird als ungültig markiert und anschließend während der künftigen Bearbeitungsschritte ignoriert.
  • 2) Die IMBETM-Modellparameter für den gegenwärtigen Rahmen werden gleich den IMBETM-Modellparametern für den vorherigen Rahmen gesetzt. Insbesondere werden die folgenden Aktualisierungs-Ausdrücke berechnet.
  • &sub0;(0) = &sub0;(-1) (57)
  • (0) = (-1) (58)
  • (0) = (-1) (59)
  • k(0) = k(-1) für 1 ≤ k ≤ (60)
  • l(0) = l(-1) für 1 ≤ l ≤ (61)
  • l(0) = l(-1) für 1 ≤ l ≤ (62)
  • 3) Die wiederholten Modellparameter werden in allen künftigen Prozessen verwendet, wo immer die gegenwärtigen Modellparameter benötigt werden (d. h. Sprachsynthese).
  • Der IMBETM-Decodierer verwendet Stummschaltung zur Rauschsperre der Ausgabe in Umgebungen mit starken Bitfehlern. Dies ist angezeigt, nachdem vier aufeinander folgende Rahmen wiederholt worden sind, oder wenn R > 0,085. Zusätzlich schaltet der Decodierer die Sprachausgabe stumm, wenn ein stiller Rahmen empfangen wird, angezeigt durch 216 ≤ &sub0; ≤ 219. Das empfohlene Stummschaltungsverfahren ist es, die Syntheseprozedur zu umgehen und das synthetische Sprachsignal, (n), auf Zufallsrauschen zu setzen, das über die Intervall-[- 5,5]-Abtastungen gleichmäßig verteilt ist.
  • In der oben beschriebenen Ausführung wird die Logik, die zum Erfassen einer inkorrekten Demodulation des gegenwärtigen Rahmens dient, durch die Parameter i für 0 ≤ i ≤ 6 überwacht, welche die Zahl der Fehler darstellen, die während der Fehler überwachenden Decodierung von i erfasst werden. Diese Erfassungslogik kann verallgemeinert werden auf die Berechnung eines Fehlermaßes auf der Basis des Ergebnisses des Vergleichs von i mit i (d. h. die demodulierten Codevektoren vor und nach der Fehler überwachenden Decodierung). Wenn der Wert dieses Fehlermaßes einen Schwellenwert überschreitet, dann wird der gegenwärtige Rahmen als ungültig erklärt. Dies beruht auf der Tatsache, dass eine inkorrekte Demodulation starke Diskrepanzen zwischen diesen Vektoren verursacht, mit der Folge eines hohen Werts des Fehlermaßes. Dann wird für ungültige Rahmen ein geeigneter Vorgang durchgeführt, wie etwa eine Rahmenwiederholung oder eine Rahmenstummschaltung. Der Vorteil dieses verallgemeinerten Blickpunkts ist, dass er leicht alternative Fehlermaße aufnimmt, die unter bestimmten Kanalbedingungen eine verbesserte Leistung bieten können. Beispielsweise können weiche Entscheidungsdaten (d. h. Multi-Bit-Daten) aus einem Modem oder einer ähnlichen Vor richtung mit dem offenbarten Demodulationsverfahren problemlos kombiniert werden, um eine verbesserte Leistung zu erhalten.
  • Der IMBETM-Sprachdecodierer versucht, die Empfangsqualität der synthetisierten Sprache durch Verbessern der Spektralamplituden zu verbessern. Die nicht verbesserten Spektralamplituden werden von künftigen Rahmen bei der Berechnung von Gleichung (34) benötigt. Jedoch werden die verbesserten Spektralamplituden in der Sprachsynthese verwendet. Die Verbesserung der Spektralamplituden wird erreicht durch Erzeugen eines Satzes spektraler Gewichte von den Modellparametern des gegenwärtigen Rahmens. Zuerst werden RM0 und RM1 wie nachfolgend gezeigt berechnet:
  • Dann werden die Parameter RM0 und RM1 verwendet, um einen Satz von Gewicht, zu berechnen, erhalten durch:
  • Diese Gewichte werden dann verwendet, um die Spektralamplituden für den gegenwärtigen Rahmen gemäß der Beziehung zu verbessern:
  • Ein letzter Schritt ist die Skalierung der verbesserten Spektralamplituden, um irgendeine Energiedifferenz zwischen den verbesserten und nicht verbesserten Amplituden zu beseitigen. Der richtige Skalierfaktor, bezeichnet mit γ, ist nachfolgend angegeben.
  • Dieser Skalierfaktor wird bei jeder der verbesserten Spektralamplituden angewendet, wie in Gleichung (68) gezeigt.
  • l = γ · l für 1 ≤ l ≤ (68)
  • Der einfacheren Notation wegen bezeichnet diese Gleichung sowohl die skalierten als auch unskalierten Spektralamplituden als l. Diese Konvention wurde verwendet, da die unskalierten Amplituden verworfen werden und nur die skalierten Amplituden nachfolgend von dem Decodierer während der Parameter-Glättung und der Sprachsynthese verwendet werden.
  • Der in Gleichung (64) ausgedrückte Wert von RM0 ist ein Maß der Energie in dem gegenwärtigen Rahmen. Dieser Wert dient zur Aktualisierung eines lokalen Energieparameters gemäß der folgenden Regel:
  • Diese Gleichung erzeugt den lokalen Energieparameter für den gegenwärtigen Rahmen, SE(0), aus RM0 und dem Wert des lokalen Energieparameters von dem vorherigen Rahmen SE(-1). Der Parameter SE(0) dient zur adaptiven Glättung der V/UV-Entscheidungen, wie unten beschrieben.
  • Der IMBETM-Decodierer führt eine adaptive Glättung durch, um die durch unkorrigierbare Bitfehler in &sub0;, &sub1;, ..., L+2 verursachten Empfangsverzerrungen zu reduzieren. Die adaptiven Glättungsverfahren werden durch zwei Fehlerratenparameter, T und R, überwacht, die wie oben diskutiert für den gegenwärtigen Rahmen geschätzt werden. Wenn T und R klein sind, wird angenommen, dass die Fehler überwachende Decodierung alle Bitfehler entfernt hat, und die decodierten Modellparameter nicht gestört sind. Umgekehrt, wenn T und R klein sind, wird angenommen, dass die Wahrscheinlichkeit hoch ist, dass einige unkorrigierte Bitfehler in die decodierten Modellparameter eingeführt worden sind, und es wird eine starke Glättung durchgeführt.
  • Die vom Decodierer zu glättenden ersten Parameter sind die V/UV-Entscheidungen. Zuerst wird ein adaptiver Schwellenwert VM unter Verwendung von Gleichung (70) berechnet.
  • wobei der Energieparameter Se(0) in Gleichung (69) definiert ist. Nachdem der adaptive Schwellenwert berechnet ist, wird jede verbesserte Spektralamplitude l für 1 ≤ l ≤ mit VM verglichen, und wenn l > VM, dann wird die V/UV-Entscheidung für diese Spektralamplitude als stimmartig deklariert, unabhängig von der decodierten V/UV-Entscheidung. Andernfalls wird die decodierte V/UV-Entscheidung für diese Spektralamplitude unverändert belassen. Dieser Prozess kann mathematisch ausgedrückt werden, wie unten gezeigt.
  • Wenn die V/UV-Entscheidungen geglättet worden sind, glättet der Decodierer adaptiv die Spektralamplituden l für 1 ≤ l ≤ . Das Spektralamplituden-Glättungsverfahren berechnet das folgende Amplitudenmaß für das gegenwärtige Segment.
  • AM = l (72)
  • Anschließend wird ein Amplitudenschwellenwert gemäß der folgenden Gleichung aktualisiert:
  • wobei τM(0) und τM(-1) den Wert des Amplitudenschwellenwert für den gegenwärtigen bzw. vorherigen Rahmen darstellen. Die zwei Parameter AM und τM(0) werden dann verwendet, um den nachfolgend angegebenen Skalierfaktor γM zu berechnen.
  • Dieser Skalierfaktor wird mit jeder der Spektralamplituden l für 1 ≤ l ≤ multipliziert. Übrigens muss dieser Schritt abgeschlossen werden, nachdem die Spektralamplituden-Verbesserung durchgeführt worden ist und nachdem VM gemäß Gleichung (70) berechnet worden ist. Die korrekte Sequenz ist in Fig. 12 gezeigt.
  • Weitere Merkmale der bevorzugten Ausführung sind in den beigefügten Ansprüchen angegeben.

Claims (18)

1. Verfahren zum Codieren von Digitaldaten, wobei das Verfahren die Schritte aufweist:
Teilen der Digitaldaten in einen oder mehrere Rahmen;
ferner, Teilen jedes der Rahmen in eine Mehrzahl von Bitvektoren;
Codieren eines oder mehrerer der Bitvektoren mit Fehlerüberwachungscodes;
und dadurch gekennzeichnet, dass es ferner die Schritte aufweist:
Erzeugen eines Modulationsschlüssels aus einem oder mehreren der Bitvektoren; und
Verwenden des Modulationsschlüssels zum Modulieren eines oder mehrerer der codierten Bitvektoren.
2. Verfahren nach Anspruch 1, wobei eine erste Gruppe der Bitvektoren jeweils durch einen ersten Typ von Fehlerüberwachungscode codiert wird und eine zweite Gruppe der Bitvektoren jeweils durch einen zweiten Typ von Fehlerüberwachungscode codiert wird.
3. Verfahren nach Anspruch 1 oder 2, wobei der Modulationsschlüssel aus einem prioritätshohen Bitvektor erzeugt wird.
4. Verfahren nach Anspruch 1 oder 2, wobei die Digitaldaten-Rahmen durch Codieren eines Sprachsignals mit einem Sprachcodierer erzeugt werden.
5. Verfahren nach Anspruch 4, wobei die Digitaldaten-Rahmen in eine Mehrzahl von Rahmenformaten gruppiert werden können und wobei der Modulationsschlüssel aus einem der Bitvektoren erzeugt wird, wobei der eine Bitvektor das im gegenwärtigen Rahmen verwendete Rahmenformat bestimmt.
6. Verfahren zum Decodieren von Digitaldaten, die unter Verwendung des Verfahrens von Anspruch 1 codiert worden sind, wobei das Verfahren die Schritte aufweist:
Teilen der Digitaldaten in einen oder mehrere Rahmen;
ferner, Teilen jedes der Rahmen in eine Mehrzahl von Codevektoren;
Erzeugen eines Demodulationsschlüssels aus einem oder mehreren der Codevektoren;
Verwenden des Demodulationsschlüssels zum Demodulieren eines oder mehrerer der Codevektoren; und
Fehlerüberwachungs-Decodieren eines oder mehrerer der demodulierten Codevektoren.
7. Verfahren nach Anspruch 6, das ferner die Schritte aufweist:
Berechnen eines Fehlermaßes, das zumindest teilweise durch Vergleichen der vor der Fehlerüberwachungs-Decodierung demodulierten Codevektoren mit den nach der Fehlerüberwachungs-Decodierung demodulierten Codevektoren gebildet wird;
Vergleichen des Werts des Fehlermaßes gegenüber einem Schwellenwert; und
Ungültigerklären des Rahmens, wenn das Fehlermaß den Schwellenwert überschreitet.
8. Verfahren nach Anspruch 7, wobei die Demodulation unter Verwendung eines Verfahrens durchgeführt wird, das die Schritte aufweist:
Initialisieren einer pseudozufälligen Sequenz unter Verwendung des Demodulationsschlüssels;
Verwenden der pseudozufälligen Sequenz zum Erzeugen eines oder mehrerer binärer Demodulationsvektoren; und
Durchführen einer Modulo-2-Addition der binären Demodulationsvektoren zu einer Mehrzahl der Codevektoren.
9. Verfahren nach Anspruch 8, wobei der Demodulationsschlüssel von einem der Codevektoren erzeugt wird, nachdem der eine Codevektor fehlerüberwachend decodiert worden ist.
10. Verfahren nach Anspruch 6, 7, 8 oder 9, wobei eine erste Gruppe der demodulierten Codevektoren jeweils unter Verwendung eines ersten Typs von Fehlerüberwachungscodes decodiert wird und eine zweite Gruppe der demodulierten Codevektoren jeweils unter Verwendung eines zweiten Typs von Fehlerüberwachungscodes decodiert wird.
11. Verfahren nach Anspruch 10, wobei der erste Typ von Fehlerüberwachungscode ein Golay-Code ist und der zweite Typ von Fehlerüberwachungscode ein Hamming-Code ist.
12. Verfahren nach Anspruch 6, 7, 8 oder 9, wobei der Demodulationsschlüssel aus einem prioritätshohen Codevektor erzeugt wird.
13. Verfahren nach Anspruch 7, 8 oder 9, wobei das Fehlermaß zumindest teilweise durch Zählen der Anzahl von Fehlern berechnet wird, die durch die Fehlerüberwachungs-Decodierung erfasst oder korrigiert werden.
14. Verfahren nach Anspruch 12, wobei die Digitaldaten-Rahmen ein Sprachsignal repräsentieren, das mit einem Sprachcodierer codiert worden ist.
15. Verfahren nach Anspruch 14, wobei die Digitaldaten-Rahmen in eine Mehrzahl von Rahmenformaten gruppiert werden können und wobei der Demodulationsschlüssel aus einem der Codevektoren erzeugt wird, wobei der eine Codevektor das in jedem Rahmen verwendete Rahmenformat bestimmt.
16. Verfahren nach Anspruch 14, wobei der Demodulationsschlüssel aus einem der Codevektoren erzeugt wird, wobei der eine Codevektor zumindest teilweise den Pegel des Sprachsignals repräsentiert.
17. Verfahren nach Anspruch 14, wobei die ungültigen Rahmen verworfen werden und durch den zuletzt decodierten Rahmen ersetzt werden, der nicht als ungültig erklärt worden ist.
18. Verfahren nach Anspruch 14, wobei der Sprachcodierer einer der folgenden Sprachcodierer ist: ein Mehrband-Erregungs(MBE)- Sprachcodierer, ein Verbesserter-Mehrband-Erregungs(IMBETM)- Sprachcodierer oder ein Sinuswandler-Sprachcodierer (STC).
DE69328034T 1992-11-30 1993-11-29 Kodierung mit modulation, fehlerkontrolle, gewichtung und bitzuordnung Expired - Lifetime DE69328034T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/982,937 US5517511A (en) 1992-11-30 1992-11-30 Digital transmission of acoustic signals over a noisy communication channel
PCT/US1993/011609 WO1994012932A1 (en) 1992-11-30 1993-11-29 Coding with modulation, error control, weighting, and bit allocation

Publications (2)

Publication Number Publication Date
DE69328034D1 DE69328034D1 (de) 2000-04-13
DE69328034T2 true DE69328034T2 (de) 2000-12-21

Family

ID=25529664

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69331886T Expired - Lifetime DE69331886T2 (de) 1992-11-30 1993-11-29 Kodierung mit Modulation, Fehlerkontrolle, Gewichtung und Bitzuordnung
DE69328034T Expired - Lifetime DE69328034T2 (de) 1992-11-30 1993-11-29 Kodierung mit modulation, fehlerkontrolle, gewichtung und bitzuordnung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69331886T Expired - Lifetime DE69331886T2 (de) 1992-11-30 1993-11-29 Kodierung mit Modulation, Fehlerkontrolle, Gewichtung und Bitzuordnung

Country Status (5)

Country Link
US (2) US5517511A (de)
EP (2) EP0671032B1 (de)
AU (1) AU5683394A (de)
DE (2) DE69331886T2 (de)
WO (1) WO1994012932A1 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517511A (en) * 1992-11-30 1996-05-14 Digital Voice Systems, Inc. Digital transmission of acoustic signals over a noisy communication channel
US6611607B1 (en) 1993-11-18 2003-08-26 Digimarc Corporation Integrating digital watermarks in multimedia content
US6449377B1 (en) * 1995-05-08 2002-09-10 Digimarc Corporation Methods and systems for watermark processing of line art images
US6944298B1 (en) * 1993-11-18 2005-09-13 Digimare Corporation Steganographic encoding and decoding of auxiliary codes in media signals
US6614914B1 (en) 1995-05-08 2003-09-02 Digimarc Corporation Watermark embedder and reader
US5748763A (en) * 1993-11-18 1998-05-05 Digimarc Corporation Image steganography system featuring perceptually adaptive and globally scalable signal embedding
FI98163C (fi) * 1994-02-08 1997-04-25 Nokia Mobile Phones Ltd Koodausjärjestelmä parametriseen puheenkoodaukseen
US6560349B1 (en) * 1994-10-21 2003-05-06 Digimarc Corporation Audio monitoring using steganographic information
AU696092B2 (en) * 1995-01-12 1998-09-03 Digital Voice Systems, Inc. Estimation of excitation parameters
WO1996025802A2 (en) * 1995-02-07 1996-08-22 Ntp Incorporated System, transmitting and receiving circuitry for serially transmitting and serially receiving encoded information and method of operation
US5701390A (en) * 1995-02-22 1997-12-23 Digital Voice Systems, Inc. Synthesis of MBE-based coded speech using regenerated phase information
US5754974A (en) * 1995-02-22 1998-05-19 Digital Voice Systems, Inc Spectral magnitude representation for multi-band excitation speech coders
US6760463B2 (en) * 1995-05-08 2004-07-06 Digimarc Corporation Watermarking methods and media
DE69629986T2 (de) * 1995-07-27 2004-07-15 Victor Company of Japan, Ltd., Yokohama Verfahren und Gerät zum Kodieren digitaler akustischer Signale
US5774837A (en) * 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
GB9523406D0 (en) * 1995-11-16 1996-01-17 Aromascan Plc Sensor transduction
US6170073B1 (en) * 1996-03-29 2001-01-02 Nokia Mobile Phones (Uk) Limited Method and apparatus for error detection in digital communications
EP0928521A1 (de) * 1996-09-25 1999-07-14 Qualcomm Incorporated Verfahren und vorrichtung zur erfassung schlechter von einem mobiltelefon mit decodierten sprachparametern empfangener datenpakete
US7788092B2 (en) * 1996-09-25 2010-08-31 Qualcomm Incorporated Method and apparatus for detecting bad data packets received by a mobile telephone using decoded speech parameters
US5968199A (en) * 1996-12-18 1999-10-19 Ericsson Inc. High performance error control decoder
US6161089A (en) * 1997-03-14 2000-12-12 Digital Voice Systems, Inc. Multi-subframe quantization of spectral parameters
US6131084A (en) * 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
AU7655298A (en) * 1997-07-02 1999-01-25 Alcatel Alsthom Compagnie Generale D'electricite Device for transmitting a coded adpcm voice signal
US6000054A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for encoding and decoding binary information using restricted coded modulation and parallel concatenated convolution codes
US6199037B1 (en) 1997-12-04 2001-03-06 Digital Voice Systems, Inc. Joint quantization of speech subframe voicing metrics and fundamental frequencies
KR100341044B1 (ko) * 1997-12-08 2002-07-13 다니구찌 이찌로오, 기타오카 다카시 음성 신호 가공 방법 및 음성 신호 가공 장치
KR19990065424A (ko) * 1998-01-13 1999-08-05 윤종용 저지연 다중밴드 여기 보코더를 위한 피치 결정방식
US6405338B1 (en) * 1998-02-11 2002-06-11 Lucent Technologies Inc. Unequal error protection for perceptual audio coders
US6356600B1 (en) * 1998-04-21 2002-03-12 The United States Of America As Represented By The Secretary Of The Navy Non-parametric adaptive power law detector
KR100493263B1 (ko) * 1998-05-27 2005-06-02 가부시키가이샤 엔.티.티.도코모 인터리빙을 행하기 위한 방법 및 장치와, 디인터리빙을행하기 위한 방법 및 장치
US6263087B1 (en) * 1998-06-26 2001-07-17 Signafy, Inc. Method of encoding bits in a signal
US6272176B1 (en) * 1998-07-16 2001-08-07 Nielsen Media Research, Inc. Broadcast encoding system and method
US7103065B1 (en) * 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
US6357029B1 (en) * 1999-01-27 2002-03-12 Agere Systems Guardian Corp. Joint multiple program error concealment for digital audio broadcasting and other applications
US6377915B1 (en) * 1999-03-17 2002-04-23 Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. Speech decoding using mix ratio table
US6377916B1 (en) 1999-11-29 2002-04-23 Digital Voice Systems, Inc. Multiband harmonic transform coder
US6397368B1 (en) * 1999-12-06 2002-05-28 Intellon Corporation Forward error correction with channel adaptation
US6587826B1 (en) * 1999-12-15 2003-07-01 Agere Systems Inc. Channel code configurations for digital audio broadcasting systems and other types of communication systems
US20010041981A1 (en) * 2000-02-22 2001-11-15 Erik Ekudden Partial redundancy encoding of speech
US6892343B2 (en) 2000-03-27 2005-05-10 Board Of Regents Of The University Of Nebraska System and method for joint source-channel encoding, with symbol decoding and error correction
US7080009B2 (en) * 2000-05-01 2006-07-18 Motorola, Inc. Method and apparatus for reducing rate determination errors and their artifacts
US6606726B1 (en) * 2000-06-13 2003-08-12 Telefonaktiebolaget L M Ericsson (Publ) Optimization of acceptance of erroneous codewords and throughput
IL154651A0 (en) * 2000-08-29 2003-09-17 Ntru Cryptosystems Inc Speed enhanced cryptographic method and apparatus
US20030030637A1 (en) * 2001-04-20 2003-02-13 Grinstein Georges G. Method and system for data analysis
EP1411695B1 (de) * 2001-06-09 2005-08-17 Samsung Electronics Co., Ltd. Abbildung mit ungleichmässigem Fehlerschutz
WO2003015285A1 (en) * 2001-08-09 2003-02-20 Adaptive Networks, Inc. Error correction process and mechanism
KR100703295B1 (ko) * 2001-08-18 2007-04-03 삼성전자주식회사 이동통신시스템에서 안테나 어레이를 이용한 데이터 송/수신 장치 및 방법
US6904540B2 (en) 2001-10-29 2005-06-07 Hewlett-Packard Development Company, L.P. Targeted data protection
JP4245288B2 (ja) * 2001-11-13 2009-03-25 パナソニック株式会社 音声符号化装置および音声復号化装置
US6973579B2 (en) 2002-05-07 2005-12-06 Interdigital Technology Corporation Generation of user equipment identification specific scrambling code for the high speed shared control channel
US7764716B2 (en) * 2002-06-21 2010-07-27 Disney Enterprises, Inc. System and method for wirelessly transmitting and receiving digital data using acoustical tones
DE10230809B4 (de) * 2002-07-08 2008-09-11 T-Mobile Deutschland Gmbh Verfahren zur Übertragung von Audiosignalen nach dem Verfahren der priorisierenden Pixelübertragung
US7970606B2 (en) 2002-11-13 2011-06-28 Digital Voice Systems, Inc. Interoperable vocoder
US7240260B2 (en) * 2002-12-11 2007-07-03 Intel Corporation Stimulus generation
US7634399B2 (en) * 2003-01-30 2009-12-15 Digital Voice Systems, Inc. Voice transcoder
US8359197B2 (en) * 2003-04-01 2013-01-22 Digital Voice Systems, Inc. Half-rate vocoder
US20050091041A1 (en) * 2003-10-23 2005-04-28 Nokia Corporation Method and system for speech coding
US20050091044A1 (en) * 2003-10-23 2005-04-28 Nokia Corporation Method and system for pitch contour quantization in audio coding
US7684505B2 (en) * 2004-04-26 2010-03-23 Qualcomm Incorporated Method and apparatus for encoding interleaving and mapping data to facilitate GBPS data rates in wireless systems
US7599363B2 (en) * 2004-08-13 2009-10-06 Samsung Electronics Co. Ltd Method for reporting reception result of packets in mobile communication system
US7885809B2 (en) * 2005-04-20 2011-02-08 Ntt Docomo, Inc. Quantization of speech and audio coding parameters using partial information on atypical subsequences
US20070180349A1 (en) * 2006-01-31 2007-08-02 Jacobsen Eric A Techniques for uequal error protection for layered protection applications
SG159500A1 (en) * 2006-07-28 2010-03-30 Qualcomm Inc Data encoding method and apparatus for flash-type signaling
US7958433B1 (en) * 2006-11-30 2011-06-07 Marvell International Ltd. Methods and systems for storing data in memory using zoning
US8036886B2 (en) 2006-12-22 2011-10-11 Digital Voice Systems, Inc. Estimation of pulsed speech model parameters
JP5256756B2 (ja) 2008-02-05 2013-08-07 パナソニック株式会社 Adpcm音声伝送システムの音声処理装置およびその音声処理方法
US8195452B2 (en) * 2008-06-12 2012-06-05 Nokia Corporation High-quality encoding at low-bit rates
KR101236054B1 (ko) * 2008-07-17 2013-02-21 노키아 코포레이션 벡터 양자화기를 위한 고속 최근접 이웃 탐색용 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
CN106409299B (zh) * 2012-03-29 2019-11-05 华为技术有限公司 信号编码和解码的方法和设备
EP2885785B1 (de) * 2013-03-27 2021-10-13 Irdeto B.V. Datenverarbeitung
IT201900017273A1 (it) * 2019-09-26 2021-03-26 Pasquale Ciccimarra Metodo per rendere sicuro un dispositivo elettronico
US11270714B2 (en) 2020-01-08 2022-03-08 Digital Voice Systems, Inc. Speech coding using time-varying interpolation
US11990144B2 (en) 2021-07-28 2024-05-21 Digital Voice Systems, Inc. Reducing perceived effects of non-voice data in digital speech

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2949505A (en) * 1957-08-14 1960-08-16 Bell Telephone Labor Inc Reduced bandwith transmission system
US3674939A (en) * 1969-11-26 1972-07-04 Fred A Brooks Baseband pulse code modulation system
US3982070A (en) * 1974-06-05 1976-09-21 Bell Telephone Laboratories, Incorporated Phase vocoder speech synthesis system
US3975587A (en) * 1974-09-13 1976-08-17 International Telephone And Telegraph Corporation Digital vocoder
US4047151A (en) * 1974-12-24 1977-09-06 Rydbeck Nils R C Adaptive error correcting transmission system
GB1563801A (en) * 1975-11-03 1980-04-02 Post Office Error correction of digital signals
FR2412987A1 (fr) * 1977-12-23 1979-07-20 Ibm France Procede de compression de donnees relatives au signal vocal et dispositif mettant en oeuvre ledit procede
US4232194A (en) * 1979-03-16 1980-11-04 Ocean Technology, Inc. Voice encryption system
US4276647A (en) * 1979-08-02 1981-06-30 Xerox Corporation High speed Hamming code circuit and method for the correction of error bursts
JPS5625853A (en) * 1979-08-09 1981-03-12 Mitsubishi Electric Corp Information transmission system
US4312198A (en) * 1979-08-09 1982-01-26 Sedley Bruce S Magnetic key operated hotel door lock
JPS57123747A (en) * 1981-01-24 1982-08-02 Mitsubishi Electric Corp Loop transmitting method
EP0076234B1 (de) * 1981-09-24 1985-09-04 GRETAG Aktiengesellschaft Verfahren und Vorrichtung zur redundanzvermindernden digitalen Sprachverarbeitung
AU570439B2 (en) * 1983-03-28 1988-03-17 Compression Labs, Inc. A combined intraframe and interframe transform coding system
JPS60142430A (ja) * 1983-12-28 1985-07-27 Fujitsu Ltd 誤り訂正・検出装置
NL8400728A (nl) * 1984-03-07 1985-10-01 Philips Nv Digitale spraakcoder met basisband residucodering.
US4648091A (en) * 1984-07-02 1987-03-03 General Electric Company Apparatus and method for decoding error correction coded information
US4622680A (en) * 1984-10-17 1986-11-11 General Electric Company Hybrid subband coder/decoder method and apparatus
US4885790A (en) * 1985-03-18 1989-12-05 Massachusetts Institute Of Technology Processing of acoustic waveforms
FR2583240B1 (fr) * 1985-06-05 1994-02-04 France Telediffusion Procede de transmission en blocs de mots d'information numerique
US4879748A (en) * 1985-08-28 1989-11-07 American Telephone And Telegraph Company Parallel processing pitch detector
US4726029A (en) * 1985-09-10 1988-02-16 Hycom Incorporated Error-correcting modem
US4720861A (en) * 1985-12-24 1988-01-19 Itt Defense Communications A Division Of Itt Corporation Digital speech coding circuit
US4799059A (en) * 1986-03-14 1989-01-17 Enscan, Inc. Automatic/remote RF instrument monitoring system
JPS6348030A (ja) * 1986-08-15 1988-02-29 Nec Corp パケツト交換システム
US4797926A (en) * 1986-09-11 1989-01-10 American Telephone And Telegraph Company, At&T Bell Laboratories Digital speech vocoder
US4882733A (en) * 1987-03-13 1989-11-21 Ford Aerospace Corporation Method and apparatus for combining encoding and modulation
US5095392A (en) * 1988-01-27 1992-03-10 Matsushita Electric Industrial Co., Ltd. Digital signal magnetic recording/reproducing apparatus using multi-level QAM modulation and maximum likelihood decoding
US5023910A (en) * 1988-04-08 1991-06-11 At&T Bell Laboratories Vector quantization in a harmonic speech coding arrangement
NL8801155A (nl) * 1988-05-03 1989-12-01 Philips Nv Televisie-overdrachtsysteem met hybride kodeerschakeling.
CA2026207C (en) * 1989-01-27 1995-04-11 Louis Dunn Fielder Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5007094A (en) * 1989-04-07 1991-04-09 Gte Products Corporation Multipulse excited pole-zero filtering approach for noise reduction
US5042069A (en) * 1989-04-18 1991-08-20 Pacific Communications Sciences, Inc. Methods and apparatus for reconstructing non-quantized adaptively transformed voice signals
JPH0782359B2 (ja) * 1989-04-21 1995-09-06 三菱電機株式会社 音声符号化装置、音声復号化装置及び音声符号化・復号化装置
DE69029120T2 (de) * 1989-04-25 1997-04-30 Toshiba Kawasaki Kk Stimmenkodierer
US5036515A (en) * 1989-05-30 1991-07-30 Motorola, Inc. Bit error rate detection
JPH0398318A (ja) * 1989-09-11 1991-04-23 Fujitsu Ltd 音声符号化方式
US5081681B1 (en) * 1989-11-30 1995-08-15 Digital Voice Systems Inc Method and apparatus for phase synthesis for speech processing
US5097507A (en) * 1989-12-22 1992-03-17 General Electric Company Fading bit error protection for digital cellular multi-pulse speech coder
GB9010637D0 (en) * 1990-05-11 1990-07-04 Secr Defence A high frequency multichannel diversity differential phase shift(dpsk)communications system
JP2841765B2 (ja) * 1990-07-13 1998-12-24 日本電気株式会社 適応ビット割当て方法及び装置
US5216747A (en) * 1990-09-20 1993-06-01 Digital Voice Systems, Inc. Voiced/unvoiced estimation of an acoustic signal
US5226108A (en) * 1990-09-20 1993-07-06 Digital Voice Systems, Inc. Processing a speech signal with estimated pitch
US5226084A (en) * 1990-12-05 1993-07-06 Digital Voice Systems, Inc. Methods for speech quantization and error correction
US5247579A (en) * 1990-12-05 1993-09-21 Digital Voice Systems, Inc. Methods for speech transmission
KR0125581B1 (ko) * 1991-07-24 1998-07-01 구자홍 디지탈 영상신호의 에러수정 시스템
US5285498A (en) * 1992-03-02 1994-02-08 At&T Bell Laboratories Method and apparatus for coding audio signals based on perceptual model
US5295159A (en) * 1992-04-17 1994-03-15 Bell Communications Research, Inc. Coordinated coding for digital transmission
US5517511A (en) * 1992-11-30 1996-05-14 Digital Voice Systems, Inc. Digital transmission of acoustic signals over a noisy communication channel

Also Published As

Publication number Publication date
WO1994012932A1 (en) 1994-06-09
EP0671032A4 (de) 1996-08-14
US5870405A (en) 1999-02-09
US5517511A (en) 1996-05-14
AU5683394A (en) 1994-06-22
DE69331886D1 (de) 2002-06-06
DE69328034D1 (de) 2000-04-13
DE69331886T2 (de) 2002-11-14
EP0671032B1 (de) 2000-03-08
EP0671032A1 (de) 1995-09-13
EP0955586A1 (de) 1999-11-10
EP0955586B1 (de) 2002-05-02

Similar Documents

Publication Publication Date Title
DE69328034T2 (de) Kodierung mit modulation, fehlerkontrolle, gewichtung und bitzuordnung
DE69133058T2 (de) Verfahren zur Kodierung von Sprachsignalen
DE602004003610T2 (de) Halbrätiger Vocoder
DE60316396T2 (de) Interoperable Sprachkodierung
US5247579A (en) Methods for speech transmission
DE69815650T2 (de) Sprachkodierer
DE69522979T2 (de) Erzeugung von linearen Prädiktionskoeffizienten bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69531471T2 (de) Mehrkanalsignalkodierung unter Verwendung gewichteter Vektorquantisierung
DE69604729T2 (de) Verfahren zur sprachkodierung mittels linearer prädiktion und anregung durch algebraische kodes
DE69613908T2 (de) Stimmhaft/stimmlos-Klassifizierung von Sprache für Sprachdekodierung bei Verlust von Datenrahmen
US5754974A (en) Spectral magnitude representation for multi-band excitation speech coders
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE69900786T2 (de) Sprachkodierung
DE69518452T2 (de) Verfahren für die Transformationskodierung akustischer Signale
DE69602421T2 (de) Verfahren zur sprachkodierung mittels analyse durch synthese
DE69523498T2 (de) Verminderung der Rechenkomplexität bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
EP1093690B1 (de) Verfahren und anordnung zur fehlerverdeckung
DE69601068T2 (de) Verfahren zur sprachkodierung mittels analyse durch synthese
DE69622646T2 (de) Abschwächung der Kodebuchverstärkung bei Ausfall von Datenpaketen
DE69912063T2 (de) Übertragungssystem, welches einen verbesserten signalkodierer und -dekodierer verwendet
DE69431489T2 (de) Adaptive fehlerkontrolle für adpcm sprachkodierer
DE4236315C1 (de) Verfahren zur Sprachcodierung
CA2149039C (en) Coding with modulation, error control, weighting, and bit allocation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition