[go: up one dir, main page]

DE60120766T2 - Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen - Google Patents

Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen Download PDF

Info

Publication number
DE60120766T2
DE60120766T2 DE60120766T DE60120766T DE60120766T2 DE 60120766 T2 DE60120766 T2 DE 60120766T2 DE 60120766 T DE60120766 T DE 60120766T DE 60120766 T DE60120766 T DE 60120766T DE 60120766 T2 DE60120766 T2 DE 60120766T2
Authority
DE
Germany
Prior art keywords
positions
index
amplitude
zero
pulses
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
DE60120766T
Other languages
English (en)
Other versions
DE60120766D1 (de
Inventor
Bruno Rock Forest BESSETTE
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.)
VoiceAge Corp
Original Assignee
VoiceAge Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=4167763&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60120766(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by VoiceAge Corp filed Critical VoiceAge Corp
Application granted granted Critical
Publication of DE60120766D1 publication Critical patent/DE60120766D1/de
Publication of DE60120766T2 publication Critical patent/DE60120766T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • 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
    • 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/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Moving Of The Head To Find And Align With The Track (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Dc Digital Transmission (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Investigating, Analyzing Materials By Fluorescence Or Luminescence (AREA)
  • Treatment Of Fiber Materials (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung:
  • Die vorliegende Erfindung betrifft eine Technik zum digitalen Codieren eines Signals, insbesondere, aber nicht ausschließlich, eines Sprachsignals, im Hinblick auf ein Senden und ein Synthetisieren dieses Signals. Spezifischer betrifft die vorliegende Erfindung ein Verfahren zum Indexieren der Impulspositionen und -amplituden von Impulsen mit Amplitude ungleich Null, insbesondere, aber nicht ausschließlich, in sehr großen algebraischen Codebüchern, die für ein Codieren hoher Qualität von Breitbandsignalen basierend auf algebraischen codeerregten linearen Vorhersage-(ACELP-)Techniken nötig sind.
  • 2. Kurze Beschreibung der gegenwärtigen Technologie:
  • Die Forderung nach effizienten digitalen breitbandigen Sprach/Audio-Codiertechniken mit einem guten subjektiven Qualitäts/Bitraten-Kompromiss wird für zahlreiche Anwendungen, wie beispielsweise eine Audio/Video-Telekonferenz, Multimedia und drahtlose Anwendungen, sowie Internet und Paket-Netzwerkanwendungen, größer. Bis vor kurzem, wurden im Bereich von 200–3400 Hz gefilterte Telefon-Bandbreiten hauptsächlich bei Sprachcodieranwendungen verwendet. Jedoch gibt es eine weitergehende Forderung nach breitbandigen Sprachanwendungen, um die Verständlichkeit und Natürlichkeit der Sprachsignale zu erhöhen. Eine Bandbreite im Bereich von 50–7000 Hz wurde als ausreichend zum Liefern einer persönlichen Sprachqualität als ausreichend befunden. Für Audiosignale ergibt dieser Bereich eine akzeptierbare Audioqualität, ist aber noch geringer als die CD-(Compact Disk-)Qualität, die im Bereich von 20–20000 Hz arbeitet.
  • Ein Sprachcodierer wandelt ein Sprachsignal in einen digitalen Bitstrom um, der über einen Kommunikationskanal übertragen (oder in einem Speichermedium gespeichert) wird. Das Sprachsignal wird digitalisiert (abgetastet und mit normalerweise 16 Bits pro Abtastung quantisiert) und der Sprachcodierer hat die Rolle, diese digitalen Abtastungen mit einer geringeren Anzahl von Bits darzustellen, während eine gute subjektive Sprachqualität beibehalten wird. Der Sprachdecodierer oder Synthesizer arbeitet an dem übertragenen oder gespeicherten Bitstrom und wandelt ihn zurück zu einem Klangsignal.
  • Eine der besten Techniken nach dem Stand der Technik, die einen guten Qualitäts/Bitraten-Kompromiss erreichen kann, ist die so genannte CELP-(codeerregte lineare Vorhersage-)Technik. Gemäß dieser Technik wird das abgetastete Sprachsignal in aufeinander folgenden Blöcken von L Abtastungen verarbeitet, die normalerweise Frames genannt werden, wobei L irgendeine vorbestimmte Zahl (entsprechend 10–30 ms einer Sprache) ist. Bei CELP wird ein LP-(lineare Vorhersage)-Synthesefilter berechnet und in jedem Frame übertragen. Der L-Abtastframe wird dann in kleinere Blöcke aufgeteilt, die Unterframes der Größe von N Abtastungen genannt werden, wobei L = kN und k die Anzahl von Unterframes in einem Frame ist (N entspricht normalerweise 4–10 ms einer Sprache). Ein Erregungssignal wird in jedem Unterframe bestimmt, welches normalerweise aus zwei Komponenten besteht: einer von der vergangenen Erregung (die auch Tonhöhenbeitrag oder adaptives Codebuch genannt wird) und der anderen von einem innovativen Codebuch (die auch festes Codebuch genannt wird). Dieses Erregungssignal wird übertragen und bei dem Codierer als die Eingabe des LP-Synthesefilters verwendet, um die synthetisierte Sprache zu erhalten.
  • Um eine Sprache gemäß der CELP-Technik zu synthetisieren, wird jeder Block von N Abtastungen durch Filtern eines geeigneten Codevektors von dem Innovationscodebuch durch zeitlich variierende Filter synthetisiert, die die spektralen Kennlinien des Sprachsignals modellieren. Diese Filter bestehen aus einem Tonhöhen-Synthesefilter (das normalerweise als adaptives Codebuch implementiert ist, das das vergangene Erregungssignal enthält) und einem LP-Synthesefilter. Am Codiererende wird die Syntheseausgabe für alle oder eine Untergruppe der Codevektoren von dem Codebuch berechnet (Codebuchsuche). Der zurückgehaltene Codevektor ist derjenige, der die Syntheseausgabe erzeugt, die dem ursprünglichen Sprachsignal am nächsten ist, und zwar gemäß einem wahrnehmungsmäßig gewichteten Verzerrungsmaß. Diese Wahrnehmungsgewichtung wird unter Verwendung eines so genannten Wahrnehmungsgewichtungsfilters durchgeführt, das normalerweise vom LP-Synthesefilter abgeleitet wird.
  • Ein innovatives Codebuch in dem CELP-Zusammenhang ist eine indexierte Gruppe von Sequenzen mit einer Länge von N Abtastungen, die N-dimensionale Codevektoren genannt werden. Jede Codebuchsequenz wird durch eine ganze Zahl k im Bereich von 1 bis M indexiert, wobei M die Größe des Codebuchs darstellt, die oft als Anzahl von Bits b ausgedrückt wird, wobei M = 2b.
  • Ein Codebuch kann in einem physikalischen Speicher gespeichert werden, wie z.B. einer Nachschautabelle (einem stochastischen Codebuch), oder kann auf einen Mechanismus zum Beziehen des Index auf einen entsprechenden Codevektor Bezug nehmen, wie z.B. eine Formel (ein algebraisches Codebuch).
  • Ein Nachteil des ersten Typs von Codebüchern, nämlich stochastischen Codebüchern, besteht darin, dass sie oft einen wesentlichen physikalischen Speicher enthalten. Sie sind stochastisch, d.h. zufällig, in dem Sinn, dass der Pfad von dem Index zu dem zugehörigen Codevektor Nachschautabellen enthält, die das Ergebnis von zufällig erzeugten Zahlen oder statistischen Techniken, die auf große Sprachübungsgruppen angewendet sind, sind. Die Größe von stochastischen Codebüchern neigt dazu, durch einen Speicher und/oder eine Suchkomplexität begrenzt zu sein.
  • Der zweite Typ von Codebüchern sind die algebraischen Codebücher. Gegensätzlich zu den stochastischen Codebüchern sind algebraische Codebücher nicht zufällig und erfordern keinen wesentlichen Speicher. Ein algebraisches Codebuch ist eine Gruppe von indexierten Codevektoren, von welchen die Amplituden und Positionen der Impulse des k-ten Codevektors aus einem entsprechenden Index k durch eine Regel abgeleitet werden können, die keinen oder einen minimalen physikalischen Speicher erfordert. Daher ist die Größe von algebraischen Codebüchern nicht durch Speicheranforderungen begrenzt. Algebraische Codebücher können auch für eine effiziente Suche entwickelt sein.
  • Das CELP-Modell ist beim Codieren von Telefonbandklangsignalen sehr erfolgreich gewesen und mehrere CELP-basierende Standards existieren in einem weiten Bereich von Anwendungen, insbesondere bei digitalen zellularen Anwendungen. Im Telefonband ist das Klangsignal auf 200–3400 Hz bandbegrenzt und wird mit 8000 Abtastungen/sek abgetastet. Bei breitbandigen Sprach/Audio- Anwendungen ist das Klangsignal auf 50–7000 Hz bandbegrenzt und wird mit 16000 Abtastungen/sek abgetastet.
  • Einige Schwierigkeiten entstehen dann, wenn das auf ein Telefonband optimierte CELP-Modell auf Breitbandsignale angewendet wird, und zusätzliche Eigenschaften müssen zu dem Modell hinzugefügt werden, um Breitbandsignale hoher Qualität zu erhalten. Diese Eigenschaften enthalten eine effiziente Wahrnehmungsgewichtungsfilterung, eine Tonhöhenfilterung mit variierender Bandbreite und eine effiziente Verstärkungsglättung und Tonhöhenverbesserungstechniken. Eine weitere wichtige Aufgabe, die beim Codieren von Breitbandsignalen entsteht, ist die Notwendigkeit zum Verwenden von sehr großen Erregungs-Codebüchern. Daher werden effiziente Codebuchstrukturen, die einen minimalen Speicher erfordern und schnell durchsucht werden können, sehr wichtig. Algebraische Codebücher sind für ihre Effizienz bekannt geworden und werden nun weithin bei verschiedenen Sprachcodierstandards verwendet. Algebraische Codebücher und zugehörige schnelle Suchprozeduren sind in den US-Patenten mit den folgenden Nr. beschrieben: 5,444,816 (Adoul et al.), veröffentlicht am 22. August 1995; 5,699,482, Adoul et al. erteilt am 17. Dezember 1997; 5,754,976, Adoul et al. erteilt am 19. Mai 1998; und 5,701,392 (Adoul et al.), mit dem Datum 23. Dezember 1997.
  • AUFGABE DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung besteht im Bereitstellen einer neuen Prozedur zum Indexieren von Impulspositionen und -amplituden in algebraischen Codebüchern zum effizienten Codieren von insbesondere, aber nicht ausschließlich, Breitbandsignalen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist in dem beigefügten Verfahrensanspruch 1, dem unabhängigen Vorrichtungsanspruch 27 und dem unabhängigen Systemanspruch 60 definiert. Vorteilhafte Ausführungsbeispiele sind in den abhängigen Ansprüchen definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den beigefügten Zeichnungen gilt folgendes:
  • 1 ist ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels einer Breitband-Codiervorrichtung;
  • 2 ist ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels einer Breitband-Decodiervorrichtung;
  • 3 ist ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels einer Tonhöhen-Analysevorrichtung;
  • 4 ist ein vereinfachtes, schematisches Blockdiagramm eines zellularen Kommunikationssystems, in welchem die Breitband-Codiervorrichtung der 1 und die Breitband-Decodiervorrichtung der 2 implementiert sein können; und
  • 5 ist ein Ablaufdiagramm eines bevorzugten Ausführungsbeispiels für eine Prozedur zum Codieren von zwei signierten Impulsen in einer Spur einer Länge k = 2M, einschließlich eines Indexierens der Impulspositionen und Vorzeichen.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Wie es den Fachleuten auf dem Gebiet bekannt ist, stellt ein zellulares Kommunikationssystem, wie beispielsweise 401 (4), einen Telekommunikationsdienst über einen großen geografischen Bereich zur Verfügung, indem es diesen großen geografischen Bereich in eine Anzahl C von kleineren Zellen aufteilt. Die C kleineren Zellen werden durch jeweilige zellulare Basisstationen 4021 , 4022 , ..., 402C bedient, um jede Zelle mit einer Funksignalgabe, Audio- und Datenkanälen zu versorgen.
  • Funksignalgabekanäle werden zum Platzieren von Anrufen zu mobilen Funktelefonen (mobilen Sender/Empfänger-Einheiten), wie beispielsweise 403, innerhalb der Grenzen des Versorgungsbereichs (der Zelle) der zellularen Basisstation 402 und zum Platzieren von Anrufen zu anderen Funktelefonen 403, die entweder innerhalb oder außerhalb der Zelle der Basisstation lokalisiert sind, oder zu einem anderen Netzwerk, wie beispielsweise dem öffentlichen Telefonnetzwerk (PSTN) 404 verwendet.
  • Wenn ein Funktelefon 403 einmal erfolgreich einen Anruf platziert oder empfangen hat, wird ein Audio- oder Datenkanal zwischen diesem Funktelefon 403 und der zellularen Basisstation 402 entsprechend der Zelle gebildet, in welcher das Funktelefon 403 angeordnet ist, und wird eine Kommunikation zwischen der Basisstation 402 und dem Funktelefon 403 über diesen Audio- oder Datenkanal durchgeführt. Das Funktelefon 403 kann auch Steuer- oder Zeitgabeinformation über einen Signalgabekanal empfangen, während gerade ein Anruf durchgeführt wird.
  • Wenn ein Funktelefon 403 eine Zelle verlässt und in eine andere benachbarte Zelle eintritt, während gerade ein Anruf durchgeführt wird, übergibt das Funktelefon 403 den Anruf zu einem verfügbaren Audio- oder Datenkanal der neuen Zellen-Basisstation 402. Wenn ein Funktelefon 403 eine Zelle verlässt und in eine andere benachbarte Zelle eintritt, während gerade kein Anruf durchgeführt wird, sendet das Funktelefon 403 eine Steuernachricht über den Signalgabekanal, um in die Basisstation 402 der neuen Zelle einzuloggen. Auf diese Weise ist eine mobile Kommunikation über einen weiten geografischen Bereich möglich.
  • Das zellulare Kommunikationssystem 401 weist weiterhin ein Steuer-Endgerät 405 auf, um eine Kommunikation zwischen den zellularen Basisstationen 402 und dem PSTN 404 beispielsweise während einer Kommunikation zwischen einem Funktelefon 403 und dem PSTN 404 oder zwischen einem Funktelefon 403, das in einer ersten Zelle lokalisiert ist, und einem Funktelefon 403, das in einer zweiten Zelle angeordnet ist, zu steuern.
  • Natürlich ist ein bidirektionales drahtloses Funkkommunikations-Untersystem erforderlich, um einen Audio- oder Datenkanal zwischen einer Basisstation 402 einer Zelle und einem in dieser Zelle lokalisierten Funktelefon 403 zu bilden. Wie es in einer sehr vereinfachten Form in 4 dargestellt ist, weist ein solches bidirektionales drahtlose Funkkommunikations-Untersystem typischerweise im Funktelefon 403 folgendes auf:
    • – einen Sender 406, der folgendes enthält:
    • – einen Codierer 407 zum Codieren eines Sprachsignals oder eines anderen Signals, das zu senden ist; und
    • – eine Sendeschaltung 408 zum Senden des codierten Signals vom Codierer 407 über eine Antenne, wie beispielsweise 409; und
    • – einen Empfänger 410, der folgendes enthält:
    • – eine Empfangsschaltung 411 zum Empfangen eines gesendeten codierten Sprachsignals oder eines anderen Signals normalerweise über dieselbe Antenne 409; und
    • – einen Decodierer 412 zum Decodieren des empfangenen codierten Signals von der Empfangsschaltung 411.
  • Das Funktelefon 403 weist weiterhin andere herkömmliche Funktelefonschaltungen 413 auf, um ein Sprachsignal oder ein anderes Signal zu dem Codierer 407 zuzuführen und um das Sprachsignal oder das andere Signal von dem Decodierer 412 zu verarbeiten. Diese Funktelefonschaltungen 413 sind Fachleuten auf dem Gebiet wohlbekannt und werden demgemäß in der vorliegenden Beschreibung nicht weiter beschrieben werden.
  • Ebenso weist ein solches bidirektionales drahtlose Funkkommunikations-Untersystem typischerweise in der Basisstation 402 folgendes auf:
    • – einen Sender 414, der folgendes enthält:
    • – einen Codierer 415 zum Codieren des Sprachsignals oder eines anderen Signals, das zu senden ist; und
    • – eine Sendeschaltung 416 zum Senden des codierten Signals vom Codierer 415 über eine Antenne, wie beispielsweise 417; und
    • – einen Empfänger 418, der folgendes enthält:
    • – eine Empfangsschaltung 419 zum Empfangen eines gesendeten codierten Sprachsignals oder eines anderen Signals über dieselbe Antenne 417 oder über eine andere unterschiedliche Antenne (nicht gezeigt); und
    • – einen Decodierer 420 zum Decodieren des empfangenen codierten Signals von der Empfangsschaltung 419.
  • Die Basisstation 402 weist weiterhin typischerweise eine Basisstations-Steuerung 421 zusammen mit ihrer zugehörigen Datenbank 422 zum Steuern einer Kommunikation zwischen dem Steuer-Endgerät 405 und dem Sender 414 und dem Empfänger 418 auf. Die Basisstations-Steuerung 421 wird auch eine Kommunikation zwischen dem Empfänger 418 und dem Sender 414 im Fall einer Kommunikation zwischen zwei Funktelefonen, wie beispielsweise 403, die in derselben Zelle wie die Basisstation 402 lokalisiert sind, steuern.
  • Wie es den Fachleuten auf dem Gebiet wohlbekannt ist, ist ein Codieren erforderlich, um die Bandbreite zu reduzieren, die zum Senden eines Signals, wie beispielsweise eines Sprachsignals, wie beispielsweise Sprache, über das bidirektionale drahtlose Funkkommunikations-Untersystem, d.h. zwischen einem Funktelefon 403 und einer Basisstation 402, nötig ist.
  • LP-Sprachcodierer (wie beispielsweise 415 und 407), die typischerweise bei 13 kbits/Sekunde und darunter arbeiten, wie beispielsweise codeerregte lineare Vorhersage-(CELP-)Codierer verwenden typischerweise ein LP-Synthesefilter zum Modellieren der kurzzeitigen spektralen Hüllkurve des Sprachsignals. Die LP-Information wird typischerweise alle 10 oder 20 ms zu dem Decodierer (wie beispielsweise 420 und 412) gesendet, und wird am Decodiererende extrahiert.
  • Die in der vorliegenden Beschreibung offenbarten neuen Techniken können mit Telefonbandsignalen verwendet werden, die Sprache enthalten, mit Klangsignalen, die andere als Sprache sind, sowie mit anderen Typen von breitbandigen Signalen.
  • 1 zeigt ein allgemeines Blockdiagramm einer CELP-Typ-Sprachcodiervorrichtung 100, die modifiziert ist, um breitbandige Signale besser unterzubringen. Breitbandige Signale können unter anderem Signale, wie beispielsweise Musik- und Videosignale, aufweisen.
  • Das abgetastete eingegebene Sprachsignal 114 wird in aufeinander folgende L-Abtastblöcke aufgeteilt, die "Frames" genannt werden. In jedem Frame werden andere Parameter, die das Sprachsignal im Frame darstellen, berechnet, codiert und gesendet. LP-Parameter, die das LP-Synthesefilter darstellen, werden norma lerweise einmal für jeden Frame berechnet. Der Frame wird weiter in kleinere Blöcke von N Abtastungen (Blöcke einer Länge N) aufgeteilt, in welchen Erregungsparameter (Tonhöhe und Innovation) bestimmt werden. In der CELP-Literatur werden diese Blöcke der Länge N "Unterframes" genannt und wird auf die N-Abtastsignale in den Unterframes als N-dimensionale Vektoren Bezug genommen. Bei diesem bevorzugten Ausführungsbeispiel entspricht die Länge N 5 ms, während die Länge L 20 ms entspricht, was bedeutet, dass ein Frame vier Unterframes enthält (N = 80 bei der Abtastrate von 16 kHz und 64 nach einer Abwärtsabtastung auf 12,8 kHz). Verschiedene N-dimensionale Vektoren treten in der Codierprozedur auf. Eine Liste der Vektoren, die in den 1 und 2 erscheinen, sowie eine Liste von gesendeten Parametern sind hierin nachfolgend angegeben:
  • Liste der hauptsächlichen N-dimensionalen Vektoren
    • s
      Breitbandsignal-Eingangssprachvektor (nach einer Abwärtsabtastung, einer Vorverarbeitung und einer Höhenanhebung);
      sW
      Gewichteter Sprachvektor;
      sO
      Antwort auf eine Null-Eingabe eines gewichteten Synthesefilters;
      sP
      Abwärts abgetastetes vorverarbeitetes Signal;
      ŝ
      Überabgetastetes synthetisiertes Sprachsignal;
      s'
      Synthesesignal vor einer Rückentzerrung;
      sd
      Rückentzerrtes Synthesesignal;
      sh
      Synthesesignal nach einer Rückentzerrung und einer Nachverarbeitung;
      x
      Zielvektor für eine Tonhöhensuche;
      x2
      Zielvektor bzw. Sollvektor für eine Innovationssuche;
      h
      Gewichtete Synthesefilter-Impulsantwort;
      vT
      Vektor eines adaptiven (Tonhöhen-)Codebuchs bei einer Verzögerung von T;
      yT
      Gefilterter Tonhöhen-Codebuchvektor (vT gefaltet mit h);
      ck
      Innovativer Codevektor bei dem Index k (k-ter Eintrag des Innovations-Codebuchs);
      cf
      Verstärkter skalierter Innovations-Codevektor;
      u
      Erregungssignal (skalierte Innovations- und Tonhöhen-Codevektoren);
      u'
      Verstärkte Erregung;
      z
      Bandpass-Rauschsequenz;
      w'
      Sequenz eine weißen Rauschens; und
      w
      Skalierte Rauschsequenz.
  • Liste von gesendeten bzw. übertragenen Parametern
    • STP
      Kurzzeitige Vorhersageparameter (die A(z) definieren);
      T
      Tonhöhenverzögerung (oder Tonhöhen-Codebuchindex);
      b
      Tonhöhenverstärkung (oder Tonhöhen-Codebucheverstärkung);
      j
      Index des Tiefpassfilters, das bei dem Tonhöhen-Codevektor verwendet wird;
      k
      Codevektorindex (Innovations-Codebucheintrag); und
      g
      Innovations-Codebuchverstärkung.
  • Bei diesem bevorzugten Ausführungsbeispiel werden die STP-Parameter einmal pro Frame gesendet bzw. übertragen und wird der Rest der Parameter in jedem Unterframe (vier Mal pro Frame) übertragen.
  • CODIERERSEITE
  • Das abgetastete Sprachsignal wird auf einer Block-für-Block-Basis durch die Codiervorrichtung 100 der 1 codiert, die in elf Module aufgeteilt ist, die von 101 bis 111 nummeriert sind.
  • Das eingegebene Sprachsignal wird in den oben angegebenen L-Abtastblöcken verarbeitet, die Frames genannt werden.
  • Unter Bezugnahme auf 1 wird das abgetastete eingegebene Sprachsignal 114 in einem Abwärtsabtastmodul 101 abwärts abgetastet. Beispielsweise wird das Signal von 16 kHz nach unten zu 12,8 kHz unter Verwendung von Techniken abwärts abgetastet, die Fachleuten auf dem Gebiet wohlbekannt sind. Eine Abwärtsabtastung nach unten zu einer anderen Frequenz kann natürlich ins Auge gefasst werden. Eine Abwärtsabtastung erhöht die Codiereffizienz, da eine kleinere Frequenzbandbreite codiert wird. Dies reduziert auch die algorithmische Komplexität, da die Anzahl von Abtastungen in einem Frame erniedrigt wird. Die Verwendung einer Abwärtsabtastung wird dann signifikant, wenn die Bitrate unter 16 kbit/s reduziert wird; eine Abwärtsabtastung ist oberhalb von 16 kbit/s nicht wesentlich.
  • Nach einer Abwärtsabtastung wird der Frame mit 320 Abtastungen von 20 ms auf einen Frame mit 256 Abtastungen reduziert (ein Abwärtsabtastverhältnis von 4/5).
  • Der Eingangsframe wird dann zu dem optionalen Vorverarbeitungsblock 102 zugeführt. Der Vorverarbeitungsblock 102 kann aus einem Hochpassfilter mit einer Grenzfrequenz von 50 Hz bestehen. Das Hochpassfilter 102 entfernt die unerwünschten Klangkomponenten unterhalb von 50 Hz.
  • Das abwärts abgetastete, vorverarbeitete Signal ist durch sp(n), n = 0, 1, 2, ..., L – 1, bezeichnet, wobei L die Länge des Frames ist (256 bei einer Abtastfrequenz von 12,8 kHz). Bei einem bevorzugten Ausführungsbeispiel wird das Signal sp(n) unter Verwendung eines Vorverzerrungsfilters 103 mit der folgenden Übertragungsfunktion vorverzerrt: P(z) = 1 – μz –1 wobei μ ein Vorverzerrungsfaktor mit einem Wert ist, der zwischen 0 und 1 lokalisiert ist (ein typischer Wert ist μ = 0,7) und z die Variable des Polynoms P(z) darstellt. Ein Filter höherer Ordnung könnte auch verwendet werden. Es sollte aufgezeigt werden, dass das Hochpassfilter 102 und das Vorverzerrungsfilter 103 ausgetauscht werden können, um effizientere Festkomma-Implementierungen zu erhalten.
  • Die Funktion des Vorverzerrungsfilters 103 besteht im Verstärken der Hochfrequenzgehalten des Eingangssignals. Es reduziert auch den Dynamikbereich des eingegebenen Sprachsignals, was es für eine Festkomma-Implementierung geeigneter macht. Ohne Vorverzerrung ist eine LP-Analyse bei einer Festkommadarstellung unter Verwendung einer Arithmetik mit einzelner Genauigkeit schwierig zu implementieren.
  • Eine Vorverzerrung spielt auch eine wichtige Rolle beim Erreichen einer richtigen gesamten Wahrnehmungsgewichtung des Quantisierungsfehlers, was zum Verbessern einer Klangqualität beiträgt. Dies wird hierin nachfolgend detaillierter erklärt werden.
  • Die Ausgabe des Vorverzerrungsfilters 103 ist mit s(n) bezeichnet. Dieses Signal wird zum Durchführen einer LP-Analyse in einem Berechnungsmodul 104 verwendet. Die LP-Analyse ist eine Technik, die Fachleuten auf dem Gebiet wohlbekannt ist. Bei diesem bevorzugten Ausführungsbeispiel wird der Autokorrelationsansatz verwendet. Bei dem Autokorrelationsansatz wird das Signal s(n) zuerst unter Verwendung eines Hamming-Fensters (mit normalerweise einer Länge in der Größenordnung von 30–40 ms) einer Fensterbildung unterzogen. Die Autokorrelationen werden aus dem Signal, das einer Fensterbildung unterzogen ist, berechnet, und eine Levinson-Durbin-Rekursion wird zum Berechnen von LP-Filterkoeffizienten ai verwendet, wobei i = 1, ..., p und wobei p die LP-Größenordnung ist, welche bei einer Breitbandcodierung typischerweise 16 ist. Die Parameter ai sind die Koeffizienten der Übertragungsfunktion des LP-Filters, die durch die folgende Beziehung gegeben ist:
  • Figure 00120001
  • Die LP-Analyse wird im Berechnungsmodul 104 durchgeführt, das auch die Quantisierung und Interpolation der LP-Filterkoeffizienten durchführt. Die LP-Filterkoeffizienten werden zuerst in einen anderen äquivalenten Bereich transformiert, der für Quantisierungs- und Interpolationszwecke geeigneter ist. Die Bereiche des Paars des Linienspektrums (LSP) und des Paars des Eingangsgrößenspektrums (ISP) sind zwei Bereiche, in welchen eine Quantisierung und eine Interpolation effizient durchgeführt werden können. Die 16 LP-Filterkoeffizienten ai können in der Größenordnung von 30 bis 50 Bits unter Verwendung einer aufgeteilten oder mehrstufigen Quantisierung oder einer Kombination davon quantisiert werden. Der Zweck der Interpolation besteht im Ermöglichen einer Aktualisierung der LP-Filterkoeffizienten in jedem Unterframe, während sie einmal in jedem Frame gesendet werden, was die Codiererleistungsfähigkeit verbessert, ohne die Bitrate zu erhöhen. Es wird geglaubt, dass eine Quantisierung und eine Interpolation der LP-Filterkoeffizienten den Fachleuten auf dem Gebiet auf andere Weise wohlbekannt sind, und demgemäß werden sie in der vorliegenden Beschreibung nicht weiter beschrieben werden.
  • Die folgenden Absätze werden den Rest der Codieroperationen beschreiben, die auf einer Unterframebasis durchgeführt werden. In der folgenden Beschreibung bezeichnet das Filter A(z) das nicht quantisierte interpolierte LP-Filter des Unterframes und bezeichnet das Filter Â(z) das quantisierte interpolierte LP-Filter des Unterframes.
  • Wahrnehmungsgewichtung:
  • In Analyse-durch-Synthese-Codierern werden die optimalen Tonhöhen- und Innovationsparameter durch Minimieren des mittleren quadratischen Fehlers zwischen der eingegebenen Sprache und der synthetisierten Sprache in einem wahrnehmungsgewichteten Bereich gesucht. Dies ist äquivalent zu einem Minimieren des Fehlers zwischen der gewichteten eingegeben Sprache und der gewichteten Synthesesprache.
  • Das gewichtete Signal sw(n) wird in einem Wahrnehmungsgewichtungsfilter 105 berechnet. Herkömmlich wird das gewichtete Signal sw(n) durch ein Gewichtungsfilter mit einer Übertragungsfunktion W(z) in der folgenden Form berechnet: W(z) = A(z/γ1)/A(z/γ2),wobei 0 < γ2< γ1 ≤ 1
  • Wie es Fachleuten auf dem Gebiet wohlbekannt ist, zeigt bei den ehemaligen Analyse-durch-Synthese-(AbS-)Codierern eine Analyse, dass der Quantisierungsfehler durch eine Übertragungsfunktion W–1(z) gewichtet ist, was das Umgekehrte der Übertragungsfunktion des Wahrnehmungsgewichtungsfilters 105 ist. Dieses Ergebnis ist durch B. S. Atal und M. R. Schroeder in "Predictive coding of speech and subjective error criteria", IEEE Transaction ASSP, vol. 27, no. 3, S. 247–254, Juni 1979 gut beschrieben. Die Übertragungsfunktion W–1(z) zeigt einiges der Formantenstruktur des eingegebenen Sprachsignals. Somit wird die Maskierungseigenschaft des menschlichen Ohrs durch derartiges Formen des Quantisierungsfehlers ausgenutzt, dass er mehr Energie in den Formantenbereichen hat, wo er durch die starke Signalenergie maskiert sein wird, die in diesen Bereichen vorhanden ist. Das Ausmaß an Gewichtung wird durch die Faktoren γ1 und γ2 gesteuert.
  • Das obige herkömmliche Wahrnehmungsgewichtungsfilter 105 arbeitet gut mit Telefonbandsignalen. Jedoch wurde es herausgefunden, dass dieses herkömmliche Wahrnehmungsgewichtungsfilter 105 für eine effiziente Wahrnehmungsgewichtung von Breitbandsignalen nicht geeignet ist. Es wurde auch herausgefunden, dass das herkömmliche Wahrnehmungsgewichtungsfilter 105 innewohnende Beschränkungen bezüglich eines gleichzeitigen Modellierens der Formantenstruktur und der erforderlichen spektralen Neigung hat. Die spektrale Neigung ist aufgrund des weiten Dynamikbereichs zwischen niedrigen und hohen Frequenzen bei Breitbandsignalen mehr betont. Um dieses Problem zu lösen, ist vorgeschlagen worden, ein Neigungsfilter in W(z) hinzuzufügen, um die Neigung und die Formantengewichtung des breitbandigen Eingangssignals separat zu steuern.
  • Eine bessere Lösung für dieses Problem besteht im Einführen des Vorverzerrungsfilters 103 am Eingang, im Berechnen des LP-Filters A(z) basierend auf der vorverzerrten Sprache s(n) und im Verwenden eines modifizierten Filters W(z) durch Festlegen seines Nenners.
  • Die LP-Analyse wird im Modul 104 an dem vorverzerrten Signal s(n) durchgeführt, um das LP-Filter A(z) zu erhalten. Ebenso wird ein neues Wahrnehmungsgewichtungsfilter 105 mit festem Nenner verwendet. Ein Beispiel einer Übertragungsfunktion für dieses Wahrnehmungsgewichtungsfilter 104 ist durch die folgende Beziehung gegeben: W(z) = A(z/γ1)/(1 – γ2z–1),wobei 0 < γ2 < γ1 ≤ 1
  • Eine höhere Ordnung kann bei dem Nenner verwendet werden. Diese Struktur entkoppelt die Formantengewichtung im Wesentlichen von der Neigung.
  • Es ist zu beachten, dass deshalb, weil A(z) basierend auf dem vorverzerrten Sprachsignal s(n) berechnet wird, die Neigung des Filters 1/A(z/γ1) im Vergleich mit dem Fall weniger betont wird, in welchem A(z) basierend auf der ursprünglichen Sprache berechnet wird. Da eine Rückentzerrung bei dem Codiererende unter Verwendung eines Filters mit der folgenden Übertragungsfunktion: P–1(z) = 1/(1 – μz –1)durchgeführt wird, wird das Quantisierungsfehlersprektrum durch ein Filter mit einer Übertragungsfunktion von W–1(z)P–1(z) geformt. Wenn γ1 gleich μ gesetzt wird, was typischerweise der Fall ist, wird das Spektrum des Quantisierungsfehlers durch ein Filter geformt, dessen Übertragungsfunktion 1/A(z/γ1) ist, wobei A(z) basierend auf dem vorverzerrten Sprachsignal berechnet wird. Ein subjektives Hören zeigte, dass diese Struktur zum Erreichen der Fehlerformung durch eine Kombination aus einer Vorverzerrung und einer modifizierten Gewichtungsfilterung sehr effizient zum Codieren von Breitbandsignalen ist, und zwar zusätzlich zu den Vorteilen einer Festkomma-Algorithmusimplementierung.
  • Tonhöhenanalyse:
  • Um die Tonhöhenanalyse zu vereinfachen, wird zuerst eine Tonhöhenverzögerung in einer offenen Schleife TOL in dem Tonhöhensuchmodul 106 einer offenen Schleife unter Verwendung des gewichteten Sprachsignals sw(n) geschätzt. Dann wird die Tonhöhenanalyse in einer geschlossenen Schleife, die in einem Tonhöhensuchmodul 107 einer geschlossenen Schleife auf einer Unterframebasis durchgeführt wird, um die Tonhöhenverzögerung einer offenen Schleife TOL beschränkt, was die Suchkomplexität der LTP-Parameter T und W (Tonhöhenverzögerung und Tonhöhenverstärkung) signifikant reduziert. Eine Tonhöhenanalyse einer offenen Schleife wird normalerweise im Modul 106 einmal alle 10 ms (zwei Unterframes unter Verwendung von Techniken durchgeführt, die Fachleuten auf dem Gebiet wohlbekannt sind.
  • Der Sollvektor x für eine LTP-(langzeitige Vorhersage)-Analyse wird zuerst berechnet. Dies wird normalerweise durch Subtrahieren der Null-Eingabe-Antwort so des gewichteten Synthesefilters W(z)/Â(z) von dem gewichteten Sprachsignal sw(n) durchgeführt. Diese Null-Eingabe-Antwort so wird durch eine Null-Eingabe-Antwort-Berechnungseinheit 108 berechnet. Spezifischer wird der Sollvektor x unter Verwendung der folgenden Beziehung berechnet: x = sw – s0 wobei x der N-dimensionale Sollvektor ist, sw der gewichtete Sprachvektor im Unterframe ist und s0 die Null-Eingabe-Antwort des Filters W(z)/Â(z) ist, was die Ausgabe des kombinierten Filters W(z)/Â(z) aufgrund ihrer Anfangszustände ist. Die Null-Eingabe-Antwort-Berechnungseinheit 108 reagiert auf das quantisierte interpolierte LP-Filter Â(z) von der LP-Analyse, der Quantisierungs- und Interpolations-Berechnungseinheit 104 und auf die Anfangszustände des gewichteten Synthesefilters W(z)/Â(z), die im Speichermodul 111 gespeichert sind, um die Null-Eingabe-Antwort s0 (den Teil der Antwort aufgrund der Anfangszustände, wie sie durch Einstellen der Eingaben gleich Null bestimmt sind) des Filters W(z)/Â(z) zu berechnen. Diese Operation ist Fachleuten auf dem Gebiet wohlbekannt und wird demgemäß nicht weiter beschrieben werden.
  • Natürlich können alternative, aber mathematisch äquivalente, Ansätze zum Berechnen des Sollvektors x verwendet werden.
  • Ein N-dimensionaler Impulsantwortvektor h des gewichteten Synthesefilters W(z)/Â(z) wird in dem Impulsantwortgenerator 109 unter Verwendung der LP-Filterkoeffizienten A(z) und Â(z) vom Modul 104 berechnet. Wiederum ist diese Operation Fachleuten auf dem Gebiet wohlbekannt und wird demgemäß in der vorliegenden Beschreibung nicht weiter beschrieben werden.
  • Die Tonhöhen-(oder Tonhöhen-Codebuch-)Parameter b einer geschlossenen Schleife, nämlich T und j, werden in dem Tonhöhensuchmodul 107 einer geschlossenen Schleife berechnet, das den Sollvektor x, den Impulsantwortvektor h und die Tonhöhenverzögerung einer geschlossenen Schleife TOL als Eingaben verwendet. Herkömmlich ist die Tonhöhenvorhersage durch ein Tonhöhenfilter mit der folgenden Übertragungsfunktion dargestellt worden: 1/(1 – bz–T)wobei b die Tonhöhenverstärkung ist und T die Tonhöhenverzögerung oder -nacheilzeit ist. In diesem Fall ist der Tonhöhenbeitrag zu dem Erregungssignal u(n) durch bu(n – T) gegeben, wobei die Gesamterregung gegeben ist durch u(n) = bu(n – T) + gck(n)wobei g die innovative Codebuchverstärkung ist und ck(n) der innovative Codevektor beim Index k ist.
  • Diese Darstellung hat Beschränkungen, wenn die Tonhöhenverzögerung T kürzer als die Unterframelänge N ist. Bei einer anderen Darstellung kann der Tonhöhenbeitrag als ein Tonhöhen-Codebuch gesehen werden, das das vergangene Erregungssignal enthält. Allgemein ist jeder Vektor im Tonhöhen-Codebuch eine um Eins verschobene Version des vorherigen Vektors (unter einem Wegwerfen von einer Abtastung und einem Hinzufügen einer neuen Abtastung). Für Tonhöhenverzögerungen T > N ist das Tonhöhen-Codebuch äquivalent zu der Filterstruktur (1/(1 – bz–T) und ist ein Tonhöhen-Codebuchvektor vT(n) bei der Tonhöhenverzögerung T gegeben durch vT(n) = u(n – T), n = 0, ... N – 1.
  • Für Tonhöhenverzögerungen T, die kürzer als N sind, wird ein Vektor vT(n) durch Wiederholen der verfügbaren Abtastungen von der vergangenen Erregung gebildet, bis der Vektor fertig ist (dies ist nicht äquivalent zu der Filterstruktur).
  • In neuesten Codierern wird eine höhere Tonhöhenauflösung verwendet, was die Qualität von Sprachklangsegmenten signifikant verbessert. Dies wird durch Überabtasten des vergangenen Erregungssignals unter Verwendung von Vielphasen-Interpolationsfiltern erreicht. in diesem Fall entspricht der Vektor vT(n) normalerweise einer interpolierten Version der vergangenen Erregung, wobei die Tonhöhenverzögerung T eine nicht ganzzahlige Verzögerung (z.B. 50,25) ist.
  • Die Tonhöhensuche besteht aus einem Finden der besten Tonhöhenverzögerung T und einer Verstärkung b, die den mittleren quadratischen gewichteten Fehler E zwischen dem Sollvektor x und der skalierten gefilterten vergangenen Erregung minimieren. Ein Fehler E wird ausgedrückt als: E = ||x – byT||2 wobei yT der gefilterte Tonhöhen-Codebuchvektor bei der Tonhöhenverzögerung T ist:
  • Figure 00170001
  • Es kann gezeigt werden, dass der Fehler E durch Maximieren des Suchkriteriums minimiert wird.
    Figure 00170002
    wobei t eine Vektortransposition bezeichnet.
  • Bei einem bevorzugten Ausführungsbeispiel wird eine Tonhöhenauflösung einer Unterabtastung von 1/3 verwendet und ist die Tonhöhen-(Tonhöhen-Codebuch)-Suche aus drei Stufen zusammengesetzt.
  • In der ersten Stufe wird eine Tonhöhenverzögerung einer offenen Schleife TOL in einem Tonhöhensuchmodul 106 einer offenen Schleife in Reaktion auf das gewichtete Sprachsignal sw(n) geschätzt. Wie es in der vorangehenden Beschreibung angezeigt ist, wird diese Tonhöhenanalyse einer offenen Schleife normalerweise einmal alle 10 ms (zwei Unterframes) unter Verwendung von Techniken durchgeführt, die Fachleuten auf dem Gebiet wohlbekannt sind.
  • In der zweiten Stufe wird das Suchkriterium C in dem Tonhöhensuchmodul 107 einer geschlossenen Schleife für ganzzahlige Tonhöhenverzögerungen um die geschätzte Tonhöhenverzögerung einer offenen Schleife TOL gesucht (normalerweise ±5), was die Suchprozedur signifikant vereinfacht. Die folgende Beschreibung schlägt eine einfache Prozedur zum Aktualisieren des gefilterten Codevektors yT ohne die Notwendigkeit zum Berechnen der Faltung für jede Tonhöhenverzögerung vor.
  • Wenn einmal eine optimale ganzzahlige Tonhöhenverzögerung in der zweiten Stufe gefunden ist, testet eine dritte Stufe der Suche (Modul 107) die Bruchteile um diese optimale ganzzahlige Tonhöhenverzögerung.
  • Wenn die Tonhöhenvorhersageeinheit durch ein Filter der Form 1/(1 – bz–T) dargestellt wird, was eine gültige Annahme für Tonhöhenverzögerungen T > N ist, zeigt das Spektrum des Tonhöhenfilters eine harmonische Struktur über dem gesamten Frequenzbereich, wobei eine harmonische Frequenz auf 1/T bezogen ist. In einem Fall von Breitbandsignalen ist diese Struktur nicht sehr effizient, da die harmonische Struktur in Breitbandsignalen nicht das gesamte ausgedehnte Spektrum abdeckt. Die harmonische Struktur existiert nur bis zu einer bestimmten Frequenz, und zwar in Abhängigkeit von dem Sprachsegment. Somit muss das Tonhöhenvorhersagefilter, um eine effiziente Darstellung des Tonhöhenbeitrags in gesprochenen Segmenten einer breitbandigen Sprache zu erreichen, die Flexibilität eines Variierens des Ausmaßes an Periodizität über das Breitbandspektrum haben.
  • Ein verbessertes Verfahren, das ein effizientes Modellieren der harmonischen Struktur des Sprachspektrums von Breitbandsignalen erreichen kann, ist in der vorliegenden Beschreibung offenbart, wobei mehrere Formen von Tiefpassfiltern auf die vergangene Erregung angewendet werden und das Tiefpassfilter mit einer höheren Vorhersageverstärkung ausgewählt wird.
  • Wenn eine Unterabtast-Tonhöhenauflösung verwendet wird, können die Tiefpassfilter in die Interpolationsfilter eingebaut werden, die zum Erhalten der höheren Tonhöhenauflösung verwendet werden. In diesem Fall wird die dritte Stufe der Tonhöhensuche, in welcher die Bruchteile um die ausgewählte ganzzahlige Tonhöhenverzögerung getestet werden, für die mehreren Interpolationsfilter mit unterschiedlichen Tiefpasscharakteristiken wiederholt und werden der Bruchteil und der Filterindex, welche das Suchkriterium C maximieren, ausgewählt.
  • Ein einfacherer Ansatz besteht im Beenden der Suche in den oben beschriebenen drei Stufen, um die optimale Bruchteil-Tonhöhenverzögerung unter Verwendung von nur einem Interpolationsfilter mit einer bestimmten Frequenzantwort zu bestimmen und die optimale Tiefpassfilterform an dem Ende durch Anwenden der unterschiedlichen vorbestimmten Tiefpassfilter auf den ausgewählten Tonhöhen-Codebuchvektor vT auszuwählen und um das Tiefpassfilter auszuwählen, welches den Tonhöhenvorhersagefehler minimiert. Dieser Ansatz wird nachfolgend detailliert diskutiert.
  • 3 stellt ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels des vorgeschlagenen letzteren Ansatzes dar.
  • In einem Speichermodul 303 ist das vergangene Erregungssignal u(n), n < 0, gespeichert. Das Tonhöhen-Codebuchsuchmodul 301 reagiert auf den Sollvektor x, auf die Tonhöhenverzögerung einer offenen Schleife TOL und auf das vergangene Erregungssignal u(n), n < 0 vom Speichermodul 303, um eine Tonhöhen-Codebuch-(Tonhöhen-Codebuch-)Suche durchzuführen, die das oben definierte Suchkriterium C minimiert. Aus dem Ergebnis der im Modul 301 durchgeführten Suche erzeugt ein Modul 302 den optimalen Tonhöhen-Codebuchvektor vT. Es ist zu beachten, dass deshalb, weil eine Unterabtast-Tonhöhenauflösung verwendet wird (eine Bruchteil-Tonhöhe), das vergangene Erregungssignal u(n), n < 0, interpoliert wird und der Tonhöhen-Codebuchvektor vT dem interpolierten vergangenen Erregungssignal entspricht. Bei diesem bevorzugten Ausführungsbeispiel hat das Interpolationsfilter (im Modul 301, aber nicht gezeigt) eine Tiefpassfiltercharakteristik, die Frequenzinhalte oberhalb von 7000 Hz entfernt.
  • Bei einem bevorzugten Ausführungsbeispiel werden K Filtercharakteristiken verwendet; diese Filtercharakteristiken bzw. Kennlinien könnten Tiefpass- oder Bandpassfilterkennlinien sein. Wenn der optimale Codevektor vT einmal bestimmt ist und durch den Tonhöhen-Codevektorgenerator 302 zugeführt ist, werden K gefilterte Versionen von vT jeweils unter Verwendung von K unterschiedlichen Frequenzformungsfiltern berechnet, wie beispielsweise 305(j) , wobei j = 1, 2, ..., K. Diese gefilterten Versionen sind mit ν(j)f bezeichnet, wobei j = 1, 2, ..., K. Die unterschiedlichen Vektoren ν(j)f werden in jeweiligen Modulen 304(j) gefaltet, wobei j = 0, 1, 2, ..., K, und zwar mit der Impulsantwort h, um die Vektoren y(j), wobei j = 0, 1, 2, ..., K. Um den mittleren quadratischen Tonhöhenvorhersagefehler für jeden Vektor y(j) zu berechnen, wird der Wert y(j) mittels eines entsprechenden Verstärkers 307(j) mit der Verstärkung b multipliziert und wird der Wert by(j) von dem Sollvektor x mittels eines entsprechenden Subtrahierers 308(j) subtrahiert. Ein Selektor 309 wählt das Frequenzformungsfilter 305(j) aus, das den mittleren quadratischen Tonhöhenvorhersagefehler minimiert. e(j) = ||x – b(j)y(j)||2, j = 1, 2, ...,K
  • Um den mittleren quadratischen Tonhöhenvorhersagefehler e(j) für jeden Wert von y(j) zu berechnen, wird der Wert y(j) mittels eines entsprechenden Verstärkers 307(j) mit der Verstärkung b multipliziert und wird der Wert b(j)y(j) von dem Sollvektor x mittels Subtrahierern 308(j) subtrahiert. Jede Verstärkung b(j) wird in einer entsprechenden Verstärkungsberechnungseinheit 306(j) in Verbindung mit dem Frequenzformungsfilter bei dem Index j unter Verwendung der folgenden Beziehung berechnet: b(j) = xty(j)/||y(j)||2.
  • Im Selektor 309 werden die Parameter b, T und j basierend auf vT oder ν(j)f ausgewählt, was den mittleren quadratischen Tonhöhenvorhersagefehler e minimiert.
  • Nimmt man wieder Bezug auf 1, wird der Tonhöhen-Codebuchindex T codiert und zu einem Multiplexer 112 gesendet bzw. übertragen. Die Tonhöhenverstärkung b wird quantisiert und zum Multiplexer 112 übertragen. Mit diesem neuen Ansatz ist zusätzliche Information nötig, um den Index j des ausgewählten Frequenzformungsfilters im Multiplexer 112 zu codieren. Beispielsweise dann, wenn drei Filter verwendet werden (j = 0, 1, 2, 3), sind zwei Bits nötig, um diese Information darzu stellen. Die Filterindexinformation j kann auch gemeinsam mit der Tonhöhenverstärkung b codiert werden.
  • Innovatives Codebuch:
  • Wenn die Tonhöhen- oder die LTP-(langzeitige Vorhersage)-Parameter b, T und j einmal bestimmt sind, besteht der nächste Schritt im Suchen nach der optimalen innovativen Erregung mittels eines Suchmoduls 110 der 1. Zuerst wird der Sollvektor x durch Subtrahieren des LTP-Beitrags aktualisiert: x2 = x – byT wobei b die Tonhöhenverstärkung ist und yT der gefilterte Tonhöhen-Codebuchvektor (die vergangene Erregung bei der Verzögerung, gefiltert mit dem ausgewählten Tiefpassfilter und gefaltet mit der Impulsantwort h, wie es unter Bezugnahme auf 3 beschrieben ist) ist.
  • Die Suchprozedur bei CELP wird durch Finden des optimalen Erregungs-Codevektors ck und der Verstärkung g durchgeführt, die den mittleren quadratischen Fehler zwischen dem Sollvektor und dem skalierten gefilterten Codevektor minimieren.
    Figure 00210001
    wobei H eine untere dreieckförmige Faltungsmatrix ist, die aus dem Impulsantwortvektor h abgeleitet ist.
  • Es ist bemerkenswert, dass das verwendete Innovations-Codebuch ein dynamisches Codebuch ist, das aus einem algebraischen Codebuch besteht, dem ein adaptives Vorfilter F(z) folgt, welches spezielle spektrale Komponenten verstärkt, um die Synthese-Sprachqualität zu verbessern, und zwar gemäß dem US-Patent Nr. 5,444,816. Andere Verfahren können zum Entwickeln dieses Vorfilters verwendet werden. Hier wird eine Entwicklung verwendet, die relevant für Breitbandsignale ist, wobei F(z) aus zwei Teilen besteht: einem Periodizitätsverstärkungsteil 1/(1 – 0,85z–T) und einem Neigungsteil (1 - β1z–1), wobei T der ganzzahlige Teil der Tonhöhenverzögerung ist und β1 auf die Stimmhaftigkeit des vorherigen Unterframes bezogen ist und durch [0.0,0.5] begrenzt ist. Es ist zu beachten, dass vor der Codebuchsuche die Impulsantwort h(n) das Vorfilter F(z) enthalten muss. Das bedeutet: h(n)← h(n) + βh(n - T)
  • Vorzugsweise wird die innovative Codebuchsuche im Modul 110 mittels eines algebraischen Codebuchs durchgeführt, wie es in den US-Patenten Nr. beschrieben ist: 5,444,816 (Adoul et al.), herausgegeben am 22. August 1995; 5,699,482, erteilt für Adoul et al. am 17. Dezember 1997; 5,754,976, erteilt für Adoul et al. am 19. Mai 1998; und 5,701,392 (Adoul et al.) mit dem Datum 23. Dezember 1997.
  • Es gibt viele Wege zum Entwickeln eines algebraischen Codebuchs. Bei dem gegenwärtig beschriebenen Ausführungsbeispiel ist das algebraische Codebuch aus Codevektoren mit Np Impulsen mit einer Amplitude ungleich Null (oder kurz gesagt Impulsen ungleich Null) pi zusammengesetzt.
  • Lasst uns die Position und die Amplitude des i-ten Impulses ungleich Null jeweils mi und βi nennen. Wir werden annehmen, dass die Amplitude βi bekannt ist, und zwar entweder deshalb, weil die i-te Amplitude fest ist oder weil es irgendein Verfahren zum Auswählen von βi vor der Codebuchsuche existiert. Die Vorauswahl der Impulsamplituden wird gemäß dem Verfahren durchgeführt, wie es in dem oben angegebenen US-Patent Nr. 5,754,976 beschrieben ist.
  • Lasst uns "Spur i", bezeichnet mit Ti, die Gruppe von Positionen pi nennen, die der i-te Impuls ungleich Null zwischen 0 und N – 1 besetzen kann. Einige typische Gruppen von Spuren sind nachfolgend unter Annahme von N = 64 angegeben.
  • Mehrere Entwurfsbeispiele sind im US-Patent Nr. 5,444,816 eingeführt worden und als "Verschachtelte Einzelimpulspermutationen" (ISPP) bezeichnet worden. Diese Beispiele basierten auf einer Codevektorlänge von N = 40 Abtastungen.
  • Hier geben wir neue Entwurfsbeispiele basierend auf einer Codevektorlänge von N = 64 und auf einer Struktur von "Verschachtelten Einzelimpulspermutationen" ISPP(64,4) an, die in Tabelle 1 angegeben sind.
  • Tabelle 1: ISPP(64,4)-Entwurf
    Figure 00230001
  • Bei dem ISPP(64,4)-Entwurf wird eine Gruppe von 64 Positionen in 4 verschachtelte Spuren von 60/4 = 16 gültigen Positionen jeweils aufgeteilt. Vier Bits sind erforderlich, um die 16 = 24 gültigen Positionen eines gegebenen Impulses ungleich Null zu spezifizieren. Es gibt viele Wege zum Ableiten einer Codebuchstruktur und dieses ISPP-Entwurfs zum Unterbringen bestimmter Erfordernisse in Bezug auf eine Anzahl von Impulsen oder Codierbits. Mehrere Codebücher können basierend auf dieser Struktur durch Variieren der Anzahl von Impulsen ungleich Null entworfen werden, die in jeder Spur platziert werden können.
  • Wenn ein einzelner Impuls ungleich Null mit Vorzeichen in jeder Spur platziert ist, wird die Impulsposition mit 4 Bits codiert, und ihr Vorzeichen (wenn wir berücksichtigen, dass jeder Impuls ungleich Null entweder positiv oder negativ sein kann) wird mit 1 Bit codiert. Daher ist eine Gesamtheit von 4 × (4 + 1) = 20 Codierbits zum Spezifizieren von Impulspositionen und -vorzeichen für diese bestimmte algebraische Codebuchstruktur erforderlich.
  • Wenn zwei Impulse ungleich Null mit Vorzeichen in jeder Spur platziert sind, werden die zwei Impulspositionen mit 8 Bits codiert und können ihre entsprechenden Vorzeichen mit nur 1 Bit codiert werden, indem die Impulsreihenfolge ausgenutzt wird (dies wird später in der vorliegenden Beschreibung detailliert erklärt werden). Daher ist eine Gesamtheit von 4 × (4 + 4 + 1) = 36 Codierbits zum Spezifizieren von Impulspositionen und -vorzeichen für diese bestimmte algebraische Codebuchstruktur erforderlich.
  • Andere Codebuchstrukturen können durch Platzieren von 3, 4, 5 oder 6 Impulsen ungleich Null in jeder Spur entworfen werden, Verfahren zum effizienten Codieren der Impulspositionen und -vorzeichen in solchen Strukturen werden später offenbart werden.
  • Weiterhin können andere Codebücher durch Platzieren einer ungleichen Anzahl von Impulsen ungleich Null in unterschiedlichen Spuren oder durch Ignorieren von bestimmten Spuren oder durch Verbinden von bestimmten Spuren entworfen werden. Beispielsweise kann ein Codebuch durch Platzieren von 3 Impulsen ungleich Null in Spuren T0 und T2 und von 2 Impulsen ungleich Null in Spuren T1 und T3 entworfen werden (13 + 9 + 13 + 9 = 42-Bit-Codebuch). Andere Codebücher können durch Berücksichtigen der Vereinigung von Spuren T2 und T3 und durch Platzieren von Impulsen ungleich Null in Spuren T0, T1 und T2-T3 entworfen werden.
  • Wie es gesehen werden kann, kann eine große Vielfalt von Codebüchern um das allgemeine Thema von ISPP-Entwürfen gebildet werden.
  • Effiziente Codierung von Impulspositionen und -vorzeichen (Codebuch-Indexierung):
  • Hier werden mehrere Fälle zum Platzieren von 1 bis 6 Impulsen ungleich Null mit Vorzeichen berücksichtigt werden und werden Verfahren zum effizienten gemeinsamen Codieren von Impulspositionen und -vorzeichen in einer gegebenen Spur offenbart.
  • Zuerst werden wir Beispiele eines Codierens von 1 Impuls ungleich Null und von 2 Impulsen ungleich Null pro Spur angeben. Ein Codieren von einem Impuls ungleich Null mit Vorzeichen pro Spur ist einfach und ein Codieren von 2 Impulsen ungleich Null mit Vorzeichen ist in der Literatur beschrieben worden, und zwar in dem EFR-Sprachcodierstandard (globales System für mobile Kommunikationen, GSM 06.60, "Digital cellular telecommunications system; Enhanced Full Rate (EFR) speech transcoding", European Telecommunication Standard Institute (1996).
  • Nachdem ein Verfahren zum Codieren von 2 Impulsen ungleich Null mit Vorzeichen präsentiert worden ist, werden Verfahren zum effizienten Codieren von 3, 4, 5 und 6 Impulsen ungleich Null mit Vorzeichen pro Spur offenbart werden.
  • Codieren von 1 Impuls mit Vorzeichen pro Spur
  • In einer Spur der Länge K erfordert ein Impuls ungleich Null mit Vorzeichen 1 Bit für das Vorzeichen und log2(K) Bits für die Position. Wir werden hier den speziellen Fall berücksichtigen, in welchem K = 2M, was bedeutet, dass M Bits nötig sind, um die Impulsposition zu codieren. Somit ist eine Gesamtheit von M + 1 Bits für einen Impuls ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M nötig. Bei diesem bevorzugten Ausführungsbeispiel ist das Bit, das das Vorzeichen darstellt (Vorzeichenindex) auf 0 eingestellt, wenn der Impuls ungleich Null positiv ist, und auf 1, wenn der Impuls ungleich Null negativ ist. Natürlich kann auch die umgekehrte Notation verwendet werden.
  • Der Positionsindex eines Impulses in einer bestimmten Spur ist durch die Impulsposition in dem Unterframe gegeben, geteilt (ganzzahlige Teilung) durch die Impulsbeabstandung in der Spur. Der Spurindex wird durch den Rest der ganzzahligen Division gefunden. Nimmt man das Beispiel ISPP(64,4) der Tabelle 1, ist die Unterframegröße 64 (0–63) und ist die Impulsbeabstandung 4. Ein Impuls bei der Unterframeposition 25 hat einen Positionsindex von 25 DIV 4 = 6 und einen Spurindex von 25 MOD 4 = 1, wobei DIV eine ganzzahlige Division bezeichnet und MOD den Teilungsrest bezeichnet. Gleichermaßen hat ein Impuls bei einer Unterframeposition von 40 einen Positionsindex 10 und einen Spurindex 0.
  • Der Index von einem Impuls ungleich Null mit Vorzeichen mit einem Positionsindex p und einem Vorzeichenindex s und in einer Spur der Länge 2M ist gegeben durch: I1p = p + s × 2M.
  • Für den Fall von K = 16 (M = 4 Bits) wird der 5-Bit-Index des Impulses mit Vorzeichen in der nachfolgenden Tabelle dargestellt:
  • Figure 00250001
  • Die Prozedur code_1pulse(p, s, M) zeigt, wie ein Impuls bei einem Positionsindex p und einem Vorzeichenindex s in einer Spur der Länge 2M zu codieren ist.
  • Figure 00260001
    Prozedur 1: Codieren von 1 Impuls ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von M + 1 Bits.
  • Codieren von 2 Impulsen mit Vorzeichen pro Spur
  • In einem Fall von zwei Impulsen ungleich Null pro Spur von K = 2M potentiellen Positionen benötigt jeder Impuls ein Bit für das Vorzeichen und M Bits für die Position, was eine Gesamtheit von 2M + 2 Bits ergibt. Jedoch existiert eine gewisse Redundanz aufgrund der Unwichtigkeit der Impulsreihenfolge. Beispielsweise ist ein Platzieren des ersten Impulses bei einer Position p und des zweiten Impulses bei einer Position q äquivalent zu einem Platzieren des ersten Impulses bei einer Position q und des zweiten Impulses bei einer Position p. Ein Bit kann durch Codieren von nur einem Vorzeichen und durch Ableiten des zweiten Vorzeichens aus der Reihenfolge der Positionen im Index gespart werden. Bei diesem bevorzugten Ausführungsbeispiel ist der Index gegeben durch: I2p = p1 + p0 × 2M + s × 22M wobei s der der Vorzeichenindex des Impulses und gleich Null beim Positionsindex p0 ist.
  • Bei dem Codierer wird dann, wenn die zwei Vorzeichen gleich sind, die kleinere Position auf p0 eingestellt und wird die größere Position auf p1 eingestellt. Wenn andererseits die zwei Vorzeichen nicht gleich sind, dann wird die größere Position auf p0 eingestellt und wird die kleinere Position auf p1 eingestellt.
  • Bei dem Decodierer ist das Vorzeichen des Impulses ungleich Null bei der Position p0 schnell verfügbar. Das zweite Vorzeichen wird aus der Impulsreihenfolge abgeleitet. Wenn die p1 kleiner als die Position p0 ist, dann ist das Vorzeichen des Impulses ungleich Null bei der Position p1 entgegengesetzt zu dem Vorzeichen des Impulses und gleich Null bei der Position p0. Wenn die Position p1 größer als die Position p0 ist, dann ist das Vorzeichen des Impulses ungleich Null bei der Position p1 dasselbe wie das Vorzeichen des Impulses ungleich Null bei der Position p0.
  • Bei diesem bevorzugten Ausführungsbeispiel ist die Reihenfolge der Bits im Index nachfolgend gezeigt. s entspricht dem Vorzeichen des Impulses ungleich Null p0.
  • Figure 00270001
  • Die Prozedur zum Codieren von zwei Impulsen ungleich Null mit Positionsindizes p0 und p1 und Vorzeichenindizes σ0 und σ1 ist in 5 gezeigt. Dies wird in der nachfolgenden Prozedur 2 weiter erklärt.
  • Figure 00270002
    Prozedur 2: Codieren von 2 Impulsen ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 2M + 1 Bits.
  • Codieren von 3 Impulsen mit Vorzeichen pro Spur
  • In einem Fall von drei Impulsen ungleich Null pro Spur kann eine ähnliche Logik wie bei dem Fall von zwei Impulsen ungleich Null verwendet werden. Für eine Spur mit 2M Positionen sind 3M + 1 Bits anstelle von 3M + 3 Bits nötig. Eine einfache Art zum Indexieren der Impulse ungleich Null, die in der vorliegenden Beschreibung offenbart ist, besteht im Teilen der Spurpositionen in zwei Hälften (oder Abschnitte) und im Identifizieren einer Hälfte, die wenigstens zwei Impulse ungleich Null enthält. Die Anzahl von Positionen in jedem Abschnitt ist K/2 = 2M/2 = 2M-1, was mit M – 1 Bits dargestellt werden kann. Die zwei Impulse ungleich Null im Abschnitt, der wenigstens zwei Impulse ungleich Null enthält, werden mit der Prozedur Code_2pulse([p0p1],[s0s1], M – 1) codiert, was 2(M – 1) + 1 Bits erfordert, und der übrige Impuls der irgendwo in der Spur (in jedem Abschnitt) sein kann, wird mit der Prozedur code_1pulse(p, s, M) codiert, was M + 1 Bits erfordert. Schließlich wird der Index des Abschnitts, der die zwei Impulse ungleich Null enthält, mit 1 Bit codiert. Somit ist die Gesamtanzahl von erforderlichen Bits 2(M – 1) + 1 + M + 1 + 1 = 3M + 1.
  • Eine einfache Art zum Prüfen, ob zwei Impulse ungleich Null in derselben Hälfte der Spur positioniert sind, wird durch Prüfen durchgeführt, ob das signifikanteste Bit (MSB) von ihren Positionsindizes gleich sind oder nicht. Dies kann auf einfache Weise durch die Exklusiv-ODER-Logikoperation durchgeführt werden, was 0 ergibt, wenn die MSBs gleich sind, und 1, wenn nicht. Es ist zu beachten, dass MSB = 0 bedeutet, dass die Position zur unteren Hälfte der Spur gehört (0 – (K/2 – 1)), und MSB = 1 bedeutet, dass sie zur oberen Hälfte gehört (K/2 – (K – 1)). Wenn die zwei Impulse ungleich Null zur oberen Hälfte gehören, müssen sie zu dem Bereich (0 – (K/2 – 1)) verschoben werden, bevor sie unter Verwendung von 2(M – 1) + 1 Bits codiert werden. Dies kann durch Maskieren der M – 1 am wenigsten signifikanten Bits (LSB) mit einer Maske durchgeführt werden, die aus M – 1 Einsen (1-en) besteht (was der Zahl 2M-1 – 1) entspricht.
  • Die Prozedur für ein Codieren von 3 Impulsen bei Positionsindizes p0, p1 und p2 und Vorzeichenindizes σ0, σ1 und σ2 wird in der nachfolgenden Prozedur beschrieben.
  • Figure 00280001
  • Figure 00290001
    Prozedur 3: Codieren von 3 Impulsen mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 3M + 1 Bits.
  • Die nachfolgende Tabelle zeigt die Verteilung der Bits in dem 13-Bit-Index gemäß diesem bevorzugten Ausführungsbeispiel für den Fall von M = 4 (K = 16).
  • Figure 00290002
  • Codieren von 4 Impulsen mit Vorzeichen pro Spur
  • Die 4 Impulse ungleich Null mit Vorzeichen in einer spur der Länge K = 2M können unter Verwendung von 4M Bits codiert werden.
  • Gleich dem Fall von 3 Impulsen werden die K Positionen in der Spur in 2 Abschnitte (zwei Hälften) aufgeteilt, wobei jeder Abschnitt K/2 Impulspositionen enthält. Hier bezeichnen wird die Abschnitte als Abschnitt A mit Positionen 0 bis K/2 – 1 und als Abschnitt B mit Positionen K/2 bis K – 1. Jeder Abschnitt kann von 0 bis 4 Impulse ungleich Null enthalten. Die nachfolgende Tabelle zeigt die 5 Fälle, die die mögliche Anzahl von Impulsen in jedem Abschnitt darstellen:
  • Figure 00300001
  • In den Fällen 0 oder 4 können die 4 Impulse in einem Abschnitt der Länge K/2 = 2M-1 unter Verwendung von 4(M – 1) + 1 = 4M – 3 Bits codiert werden (dies wird später erklärt werden).
  • In den Fällen 1 oder 3 kann der 1 Impuls in einem Abschnitt der Länge K/2 = 2M-1 mit M – 1 + 1 = M Bits codiert werden und können die 3 Impulse im anderen Abschnitt mit 3(M – 1) + 1 = 3M – 2 Bits codiert werden. Dies ergibt eine Gesamtheit von M + 3M – 2 = 4M – 2 Bits.
  • Im Fall 2 können die Impulse in einem Abschnitt der Länge K/2 = 2 M-1 mit 2(M – 1) + 1 = 2M – 1 Bits codiert werden. Somit sind für beide Abschnitte 2(2M – 1) = 4M – 2 Bits erforderlich.
  • Nun kann der Fallindex mit 2 Bits (4 mögliche Fälle) unter der Annahme codiert werden, dass die Fälle 0 und 4 kombiniert sind. Dann ist für die Fälle 1, 2 oder 3 die Anzahl von benötigten Bits 4M – 2. Dies ergibt eine Gesamtheit von 4M – 2 + 2 = 4M Bits. Für die Fälle 0 oder 4 ist 1 Bit zum Identifizieren von jedem Fall benötigt, und 4M – 3 Bits sind zum Codieren der 4 Impulse im Abschnitt nötig. Addiert man die für den allgemeinen Fall nötigen 2 Bits ergibt dies eine Gesamtheit von 1 + 4M – 3 + 2= 4M Bits.
  • Somit können, wie es aus der obigen Beschreibung gesehen werden kann, die 4 Impulse mit einer Gesamtheit von 4M Bits codiert werden.
  • Die Prozedur zum Codieren von 4 Impulsen ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 4M Bits ist in nachfolgender Prozedur 4 gezeigt.
  • Die nachfolgenden vier Tabellen zeigen die Verteilung von Bits im Index für die oben beschriebenen unterschiedlichen Fälle gemäß dem bevorzugten Ausführungsbeispiel, wobei M = 4 (K = 16). Ein Codieren von 4 Impulsen mit Vorzeichen pro Spur erfordert in diesem Fall 16 Bits.
  • Fälle 0 oder 4
    Figure 00310001
  • Fälle 1
    Figure 00310002
  • Fälle 2
    Figure 00310003
  • Fälle 3
    Figure 00310004
  • Prozedur code_4impulse([p0p1p2p3],[σ0σ1σ2σ3],M)
    Figure 00310005
  • Prozedur 4: Codieren von 4 Impulsen ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 4M Bits.
    Figure 00320001
  • Es ist zu beachten, dass für die Fälle 0 oder 1, wobei die 4 Impulse ungleich Null in demselben Abschnitt sind, 4(M – 1) + 1 = 4M – 3 Bits nötig sind. Dies wird unter Verwendung eines einfachen Verfahrens zum Codieren von 4 Impulsen ungleich Null in einem Abschnitt der Länge K/2 = 2M-1 Bits durchgeführt. Dies wird durch weiteres Aufteilen des Abschnitts in zwei Unterabschnitte der Länge K/4 = 2M-2 durchgeführt; durch Identifizieren eines Unterabschnitts, der wenigstens 2 Impulse ungleich Null enthält; durch Codieren der 2 Impulse ungleich Null in diesem Unterabschnitt unter Verwendung von 2(M – 2) + 1 = 2M – 3 Bits; durch Codieren des Index des Unterabschnitts, der wenigstens 2 Impulse ungleich Null enthält, unter Verwendung von 1 Bit und durch Codieren der übrigen 2 Impulse ungleich Null, und zwar unter der Annahme, dass sie irgendwo im Abschnitt sein können, unter Verwendung von 2(M – 1) + 1 = 2M – 1 Bits. Dies ergibt eine Gesamtheit von (2M – 3) + (1) + (2M – 1) = 4M – 3 Bits.
  • Ein Codieren von 4 Impulsen ungleich Null mit Vorzeichen in einem Abschnitt der Länge K/2 = 2M-1 unter Verwendung von 4M – 3 Bits ist im Prozedur 4 Abschnitt gezeigt.
  • Prozedur 4 Abschnitt: Codieren von 4 Impulsen mit Vorzeichen in einem Abschnitt der Länge K/2 = 2M-1 unter Verwendung von 4M – 3 Bits
    Figure 00330001
  • Codieren von 5 Impulsen mit Vorzeichen pro Spur
  • Die 5 Impulse ungleich 0 mit Vorzeichen in einer Spur der Länge K = 2M können unter Verwendung von 5M Bits codiert werden.
  • Gleich dem Fall von 4 Impulsen ungleich Null werden die K Positionen in der Spur in 2 Abschnitte (zwei Hälften) aufgeteilt, wobei jeder Abschnitt K/2 Positionen enthält. Hier bezeichnen wir die Abschnitte als Abschnitt A mit Positionen 0 bis K/2 – 1 und als Abschnitt B mit Positionen K/2 bis K – 1. Jeder Abschnitt kann von 0 bis 5 Impulse enthalten. Die nachfolgende Tabelle zeigt die 6 Fälle, die die mögliche Anzahl von Impulsen in jedem Abschnitt darstellen:
  • Figure 00340001
  • Im Fall 0, 1 und 2 gibt es wenigstens 3 Impulse ungleich Null im Abschnitt B. Andererseits gibt es in den Fällen 3, 4 und 5 wenigstens 3 Impulse im Abschnitt A. Somit besteht ein einfacher Ansatz zum Codieren der 5 Impulse ungleich Null im Codieren der 3 Impulse ungleich Null im selben Abschnitt unter Verwendung der Prozedur 3, die 3(M – 1) + 1 = 3M – 2 Bits erfordert, und im Codieren der übrigen zwei Impulse unter Verwendung der Prozedur 2, die 2M + 1 Bits erfordert. Dies ergibt 5M – 1 Bits. Ein zusätzliches Bit ist zum Identifizieren des Abschnitts nötig, der wenigstens 3 Impulse ungleich Null enthält (Fälle (0, 1, 2) oder Fälle (3, 4, 5)). Somit ist eine Gesamtheit von 5M Bits zum Codieren der 5 Impulse ungleich Null mit Vorzeichen nötig.
  • Die Prozedur zum Codieren von 5 Impulsen mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 5M Bits ist in nachfolgender Prozedur 5 gezeigt.
  • Die nachfolgenden 2 Tabellen zeigen die Verteilung von Bits im Index für die oben beschriebenen unterschiedlichen Fälle gemäß dem bevorzugten Ausführungsbeispiel, wobei M = 4 (K = 16). Ein Codieren von 5 Impulsen ungleich Null mit Vorzeichen pro Spur erfordert in diesem Fall 20 Bits.
  • Fälle 0, 1 und 2
    Figure 00350001
  • Fälle 3, 4 und 5
    Figure 00350002
  • Prozedur code_5pulse([p0p1p2p3p4],[σ0σ1σ2σ3σ4],M)
    Figure 00350003
  • Figure 00360001
    Prozedur 5: Codieren von 5 Impulsen mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 5M Bits
  • Codieren von 6 Impulsen mit Vorzeichen pro Spur
  • Die 6 Impulse mit Vorzeichen in einer Spur der Länge K = 2M werden bei diesem bevorzugten Ausführungsbeispiel unter Verwendung von 6M – 2 Bits codiert.
  • Gleich dem Fall von 5 Impulsen werden die K Positionen in der Spur in 2 Abschnitte (zwei Hälften) aufgeteilt, wobei jeder Abschnitt K/2 Positionen enthält. Hier bezeichnen wir die Abschnitte als Abschnitt A mit Positionen 0 bis K/2 – 1 und als Abschnitt B mit Positionen K/2 bis K – 1. Jeder Abschnitt kann von 0 bis 6 Impulse enthalten. Die nachfolgende Tabelle zeigt die 7 Fälle, die die mögliche Anzahl von Impulsen in jedem Abschnitt darstellen:
  • Figure 00360002
  • Es ist zu beachten, dass die Fälle 0 und 6 gleich sind, außer dass die 6 Impulse ungleich Null in unterschiedlichen Abschnitten sind. Gleichermaßen besteht der Unterschied zwischen den Fällen 1 und 5 sowie den Fällen 2 und 4 in dem Abschnitt, der mehr Impulse enthält. Daher können diese Fälle gekoppelt werden, und ein zusätzliches Bit kann zugeordnet werden, um den Abschnitt zu identifizieren, der mehr Impulse enthält. Da diese Fälle anfangs 6M – 5 Bits benötigen, benötigen die gekoppelten Fälle unter Berücksichtigung des Abschnitts-Bits 6M – 4 Bits.
  • Somit haben wir nun 4 Zustände von gekoppelten Fällen, wobei 2 zusätzliche Bits für den Zustand nötig sind. Dies ergibt eine Gesamtheit von 6M – 4 + 2 = 6M – 2 Bits für die 6 Impulse ungleich Null mit Vorzeichen. Die gekoppelten Fälle sind in der nachfolgenden Tabelle gezeigt.
  • Figure 00370001
  • In den Fällen 0 oder 6 ist 1 Bit zum Identifizieren des Abschnitts nötig, der 6 Impulse ungleich Null enthält. 5 Impulse ungleich Null in diesem Abschnitt werden unter Verwendung der Prozedur 5 codiert, die 5(M – 1) Bits benötigt (da die Impulse auf diesen Abschnitt begrenzt sind), und der übrige Puls wird unter Verwendung der Prozedur 1 codiert, die 1 + (M – 1) Bits erfordert. Somit ist eine Gesamtheit von 1 + 5(M – 1) + M = 6M – 4 Bits für diese gekoppelten Fälle nötig. Zusätzliche 2 Bits werden zum Codieren des Zustands des gekoppelten Falls nötig, was eine Gesamtheit von 6M – 2 Bits ergibt.
  • In den Fällen 1 oder 5 ist ein Bit zum Identifizieren des Abschnitts nötig, der 5 Impulse enthält. Die 5 Impulse in diesem Abschnitt werden unter Verwendung der Prozedur 5 codiert, die 5(M – 1) Bits benötigt, und der Impuls im anderen Abschnitt wird unter Verwendung der Prozedur 1 codier, die 1 + (M – 1) Bits erfordert. Somit ist eine Gesamtheit von 1 + 5(M – 1) + M = 6M – 4 Bits für diese gekoppelten Fälle nötig. Zusätzliche 2 Bits werden zum Codieren des Zustands der gekoppelten Fälle benötigt, was eine Gesamtheit von 6M – 2 Bits ergibt.
  • In den Fällen 2 oder 4 ist ein Bit zum Identifizieren des Abschnitts nötig, der 4 Impulse ungleich Null enthält. Die 4 Impulse in diesem Abschnitt werden unter Verwendung der Prozedur 4 codiert, die 4(M - 1) Bits benötigt, und die 2 Impulse im anderen Abschnitt werden unter Verwendung der Prozedur 2 codiert, was 1 + 2(M – 1) Bits erfordert. Somit ist eine Gesamtheit von 1 + 4(M – 1) + 1 + 2 + (M – 1) = 6M – 4 Bits für diese gekoppelten Fälle nötig. Zusätzliche 2 Bits werden zum Codieren des Zustands des Falls benötigt, was eine Gesamtheit von 6M – 2 Bits ergibt.
  • Im Fall 3 werden die 3 Impulse ungleich Null in jedem Abschnitt unter Verwendung der Prozedur 3 codiert, was 3(M – 1) + 1 Bits in jedem Abschnitt erfordert. Dies ergibt für beide Abschnitte 6M – 4 Bits. Zusätzliche 2 Bits werden zum Codieren des Zustands des Falls benötigt, was eine Gesamtheit von 6M – 2 Bits ergibt.
  • Die Prozedur zum Codieren von 6 Impulsen ungleich Null mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 6M – 2 Bits ist in nachfolgender Prozedur 6 gezeigt.
  • Die nachfolgenden 2 Tabellen zeigen die Verteilung von Bits im Index für die oben beschriebenen unterschiedlichen Fälle gemäß dem bevorzugten Ausführungsbeispiel, wobei M = 4 (K = 16). Ein Codieren von 6 Impulsen ungleich Null mit Vorzeichen pro Spur erfordert in diesem Fall 22 Bits.
  • Fälle 0 und 6
    Figure 00380001
  • Fälle 1 und 5
    Figure 00380002
  • Fälle 2 und 4
    Figure 00380003
  • Fall 3
    Figure 00390001
  • Prozedur code_6pulse([p0p1p2p3p4p5],[σ0σ1σ2σ3σ4σ5],M)
    Figure 00390002
  • Figure 00400001
    Prozedur 6: Codieren von 6 Impulsen mit Vorzeichen in einer Spur der Länge K = 2M unter Verwendung von 6M – 2 Bits.
  • Beispiele von Codebuchstrukturen basierend auf ISPP(64,4)
  • Hier werden unterschiedliche Codebuchentwicklungsbeispiele basierend auf der oben erklärten ISPP(64,4)-Entwicklung präsentiert. Die Spurgröße ist K = 16, was M = 4 Bits pro Spur erfordert. Die unterschiedlichen Entwicklungsbeispiele werden durch Ändern der Anzahl von Pulsen ungleich Null pro Spur erhalten. 8 mögliche Entwicklungen sind nachfolgend beschrieben. Andere Codebuchstrukturen können auf einfache Weise durch Auswählen von unterschiedlichen Kombinationen von Impulsen ungleich Null pro Spur erhalten werden.
  • Entwicklung 1: 1 Impuls pro Spur (20-Bit-Codebuch)
  • Bei diesem Beispiel erfordert jeder Impuls ungleich Null (4 + 1) Bits (Prozedur 1), was eine Gesamtheit von 20 Bits für die 4 Impulse in den 4 Spuren ergibt.
  • Entwicklung 2: 2 Impulse pro Spur (36-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die zwei Impulse ungleich Null in jeder Spur (4 + 4 + 1) = 9 Bits (Prozedur 2), was eine Gesamtheit von 36 Bits für die 8 Impulse ungleich Null in den vier Spuren ergibt.
  • Entwicklung 3: 3 Impulse pro Spur (52-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 3 Impulse ungleich Null in jeder Spur (3 × 4 + 1) = 13 Bits (Prozedur 3), was eine Gesamtheit von 52 Bits für die 12 Impulse ungleich Null in den vier Spuren ergibt.
  • Entwicklung 4: 4 Impulse pro Spur (64-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 4 Impulse ungleich Null in jeder Spur (4 × 4) = 16 Bits (Prozedur 4), was eine Gesamtheit von 64 Bits für die 16 Impulse in den 4 Spuren ergibt.
  • Entwicklung 5: 5 Impulse pro Spur (80 Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 5 Impulse ungleich Null in jeder Spur (5 × 4) =20 Bits (Prozedur 5), was eine Gesamtheit von 80 Bits für die 20 Impulse ungleich Null in den 4 Spuren ergibt.
  • Entwicklung 6: 6 Impulse pro Spur (88-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 6 Impulse ungleich Null in jeder Spur (6 × 4 – 2) = 22 Bits (Prozedur 6), was eine Gesamtheit von 88 Bits für die 24 Impulse ungleich Null in den 4 Spuren ergibt.
  • Entwicklung 7: 3 Impulse in Spuren T0 und T2 und 2 Impulse in Spuren T1 und T3 (44-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 3 Impulse ungleich Null in den Spuren T0 und T2 (3 × 4 + 1) = 13 Bits (Prozedur 3) pro Spur und erfordern die 2 Impulse ungleich Null in den Spuren T1 und T3 (1 + 4 + 4) = 9 Bits (Prozedur 2) pro Spur. Dies ergibt eine Gesamtheit von (13 + 9 + 13 + 9) = 44 Bits für die 10 Impulse ungleich Null in den 4 Spuren.
  • Entwicklung 8: 5 Impulse in Spuren T0 und T2 und 4 Impulse in Spuren T1 und T3 (72-Bit-Codebuch)
  • Bei diesem Beispiel erfordern die 5 Impulse ungleich Null in den Spuren T0 und T2 (5 × 4) = 20 Bits (Prozedur 5) pro Spur und erfordern die 4 Impulse in den Spuren T1 und T3 (4 × 4) = 16 Bits (Prozedur 4) pro Spur. Dies ergibt eine Gesamtheit von (20 + 16 + 20 + 16) = 72 Bits für die 18 Impulse ungleich Null in den 4 Spuren.
  • Codebuchsuche:
  • Bei diesem bevorzugten Ausführungsbeispiel wird ein spezielles Verfahren zum Durchführen einer Suche zuerst in die Tiefe verwendet, das im US-Patent 5,701,392 beschrieben ist, wodurch die Speichererfordernisse zum Speichern der Elemente der Matrix HtH (welche hierin nachfolgend definiert werden wird) signifikant reduziert werden. Diese Matrix enthält die Autokorrelationen der Impulsantwort h(n), und sie ist zum Durchführen der Suchprozedur nötig. Bei diesem bevorzugten Ausführungsbeispiel wird nur ein Teil dieser Matrix berechnet und gespeichert, und wird der andere Teil online innerhalb der Suchprozedur berechnet.
  • Das algebraische Codebuch wird durch Finden des optimalen Erregungs-Codevektors ck und der Verstärkung g durchsucht, welche den mittleren quadratischen Fehler zwischen dem Sollvektor und dem skalierten gefilterten Codevektor
    Figure 00420001
    minimieren, wobei H eine untere Dreiecks-Faltungsmatrix ist, die von dem Impulsantwortvektor h abgeleitet ist. Die Matrix h ist als die untere Dreiecks-Toeplitz-Faltungsmatrix mit einer Diagonalen h(0) und unteren Diagonalen h(1), ..., h(N – 1) definiert.
  • Es kann gezeigt werden, dass der mittlere quadratische gewichtete Fehler E durch Maximieren des Suchkriteriums
    Figure 00420002
    minimiert werden kann, wobei d = Htx2 die Korrelation zwischen dem Sollsignal x2(n) und der Impulsantwort h(n) ist (was auch als der rückwärts gefilterte Sollvektor bekannt ist) und ΦHtH die Matrix der Korrelationen von h(n) ist.
  • Die Elemente des Vektors d werden berechnet durch
    Figure 00430001
    und die Elemente der symmetrischen Matrix Φ werden berechnet durch
  • Figure 00430002
  • Der Vektor d und die Matrix Φ können vor der Codebuchsuche berechnet werden.
  • Die algebraische Struktur der Codebücher lässt sehr schnelle Suchprozeduren zu, da der Innovationsvektor ck nur einige Impulse ungleich Null enthält. Die Korrelation im Zähler des Suchkriteriums Qk ist gegeben durch
    Figure 00430003
    wobei mi die Position des i-ten Impulses ist, βi seine Amplitude ist und Np die Anzahl von Impulsen ist. Die Energie im Nenner des Suchkriteriums Qk ist gegeben durch
  • Figure 00430004
  • Um die Suchprozedur zu vereinfachen, werden die Impulsamplituden durch Quantisieren eines bestimmten Referenzsignals b(n) vorbestimmt. Mehrere Verfahren können zum Definieren dieses Referenzsignals verwendet werden. Bei diesem bevorzugten aus ist b(n) gegen durch
    Figure 00440001
    wobei Ed = d'd die Energie des Signals d(n) ist und Er = r'LTPrLTP die Energie des Signals rLTP(n) ist, welches das Restsignal nach einer langzeitigen Vorhersage ist. Der Skalierungsfaktor α steuert das Ausmaß an Abhängigkeit des Referenzsignals von d(n).
  • Im Signalauswahl-Impulsamplitudenansatz, der im US-Patent 5,754,976 offenbart ist, ist das Vorzeichen eines Impulses bei der Position i gleich dem Vorzeichen des Referenzsignals bei dieser Position eingestellt. Um die Suche zu vereinfachen, werden das Signal d(n) und die Matrix Φ modifiziert, um die vorausgewählten Vorzeichen zu enthalten.
  • Lasst uns den Vektor, der die Vorzeichen b(n) enthält, mit sb(n) bezeichnen. Das modifizierte Signal d'(n) ist gegeben durch d'(n) = sb(n)d(n), n = 0, ..., N – 1und die modifizierte Autokorrelationsmatrix Φ' ist gegeben durch ϕ'(i, j) = sb(i)sb(j)ϕ(i, j), j = 0, ..., N – 1; j = i, ..., N–1.
  • Die Korrelation beim Zähler des Suchkriteriums Qk ist nun gegeben durch
    Figure 00440002
    und die Energie beim Nenner des Suchkriteriums Qk ist gegeben durch
  • Figure 00440003
  • Das Ziel der Suche besteht nun im Bestimmen des Codevektors mit der besten Gruppe von Np Impulspositionen unter der Annahme, dass Amplituden der Impulse ausgewählt worden sind, wie es oben beschrieben ist. Das Basis-Auswahlkriterium ist die Maximierung des oben angegebenen Verhältnisses Qk.
  • Gemäß dem US-Patent 5,701,392 werden, um die Suchkomplexität zu reduzieren, die Impulspositionen für Nm Impulse gleichzeitig bestimmt. Präziser werden die Np verfügbaren Impulse in M nicht leere Untergruppen von jeweils Nm Impulsen so aufgeteilt, dass N1 + N2 ... + Nm ... + NM = Np. Eine bestimmte Auswahl von Positionen für die ersten J = N1 + N2 ... + Nm-1 Impulse, die berücksichtigt sind, wird ein Pegel-m-Pfad oder ein Pfad einer Länge J genannt. Ein Basiskriterium für einen Pfad von J Impulspositionen ist das Verhältnis Qk(J), wenn nur die J relevanten Impulse berücksichtigt werden.
  • Die Suche beginnt mit der Untergruppe #1 und geht weiter mit darauf folgenden Untergruppen gemäß einer Baumstruktur, wobei eine Untergruppe m bei dem m-ten Pegel des Baums gesucht wird.
  • Der Zweck der Suche beim Pegel 1 besteht im Berücksichtigen der N1 Impulse der Untergruppe #1 und ihrer gültigen Positionen, um einen, oder eine Anzahl von, Kandidatenpfad(en) der Länge N1 zu bestimmen, welche die Baumknoten beim Pegel 1 sind.
  • Der Pfad bei jedem Abschlussknoten des Pegels bzw. der Ebene m – 1 wird zu einer Länge N1 + N2 ... + Nm bei einer Ebene m durch Berücksichtigen von Nm neuen Impulsen und ihrer gültigen Positionen erweitert. Einer oder eine Anzahl von erweiterten Kandidatenpfad(en) wird bzw. werden bestimmt, um Knoten der Ebene m zu bilden.
  • Der beste Codevektor entspricht dem Pfad der Länge Np, welcher ein gegebenes Kriterium, wie beispielsweise das Kriterium Qk(Np) in Bezug auf alle Knoten der Ebene M, maximiert.
  • Bei diesem bevorzugten Ausführungsbeispiel werden immer zwei Impulse gleichzeitig in der Suchprozedur berücksichtigt, d.h. Nm = 2. Jedoch anstelle eines Annehmens, dass die Matrix Φ im Voraus berechnet und gespeichert wird, was einen Speicher von N × N Worten (64 × 64 = 4k Worte bei diesem bevorzugten Ausführungsbeispiel) erfordert, wird ein speichereffizienter Ansatz verwendet, der das Speicher erfordernis signifikant reduziert. Bei diesem neuen Ansatz wird die Suchprozedur auf eine solche Weise durchgeführt, dass nur ein Teil der benötigten Elemente der Korrelationsmatrix im Voraus berechnet und gespeichert wird. Dieser Teil bezieht sich auf die Korrelationen der Impulsantwort entsprechend potentieller Impulspositionen in nachfolgenden Spuren, sowie die Korrelationen entsprechend ϕ(jj), j = 0, ... N – 1 (das bedeutet die Elemente der Hauptdiagonalen der Matrix Φ).
  • Als Beispiel für ein Sparen von Speicher ist bei diesem bevorzugten Ausführungsbeispiel die Unterframegröße N = 64, was bedeutet, dass die Korrelationsmatrix die Größe 64 × 64 = 4096 hat. Da die Impulse mit zwei Impulsen gleichzeitig in aufeinander folgenden Spuren gesucht werden, nämlich den Spuren T0-T1, T1-T2, T2-T3 oder T3-T0, sind die nötigen Korrelationselemente diejenigen, die Impulsen in benachbarten Spuren entsprechen. Da jede Spur 16 potentielle Positionen enthält, existieren 16 × 16 = 256 Korrelationselemente entsprechend zwei benachbarten Spuren. Somit sind bei dem speichereffizienten Ansatz die nötigen Elemente 4 × 256 = 1024 für die vier Möglichkeiten von benachbarten Spuren T0-T1, T1-T2, T2-T3 und T3-T0). Zusätzlich sind 64 Korrelationen in der Diagonalen der Matrix nötig. Dies ergibt ein Speichererfordernis von 1088 anstelle von 4096 Worten.
  • Eine spezielle Form der Baumsuchprozedur zuerst in die Tiefe wird bei diesem bevorzugten Ausführungsbeispiel verwendet, wobei zwei Impulse in zwei aufeinander folgenden Spuren gleichzeitig gesucht werden. Um die Komplexität zu reduzieren, wird eine begrenzte Anzahl von potentiellen Positionen des ersten Impulses getestet. Weiterhin können für algebraische Codebücher mit einer großen Anzahl von Impulsen einige Impulse in den höheren Ebenen des Suchbaums fixiert werden.
  • Um auf intelligente Weise zu erfragen, welche potentiellen Impulspositionen für den ersten Impuls berücksichtigt werden, oder um einige Impulspositionen zu fixieren, wird ein "Impulspositions-Wahrscheinlichkeitsschätzvektor" b verwendet, der auf sprachbezogenen Signalen basiert. Die p-te Komponente b(p) dieses Schätzvektors b charakterisiert die Wahrscheinlichkeit eines Impulses, der eine Position p(p = 0, 1, ... N – 1) in dem besten Codevektor besetzt, nachdem wir suchen.
  • Für eine gegebene Spur zeigt der Schätzvektor b die relative Wahrscheinlichkeit jeder gültigen Position an. Diese Eigenschaft kann auf vorteilhafte Weise als ein Auswahlkriterium in den ersten paar Ebenen der Baumstruktur anstelle des Basis- Auswahlkriteriums Qk(j) verwendet werden, welches in den ersten paar Ebenen irgendwie an zu wenigen Impulsen arbeitet, um eine zuverlässige Leistungsfähigkeit beim Auswählen von gültigen Positionen arbeitet.
  • Bei diesem bevorzugten Ausführungsbeispiel ist der Schätzvektor b dasselbe Referenzsignal, das beim Vorauswählen der oben beschriebenen Impulsamplituden verwendet wird. Das heißt:
    Figure 00470001
    wobei Ed = d'd die Energie des Signals d(n) ist und Er = r'LTPrLTP die Energie des Signals rLTP(n) ist, welches das Restsignal nach einer langzeitigen Vorhersage ist.
  • Wenn der optimale Erregungs-Codevektor ck und seine Verstärkung g einmal durch das Modul 110 ausgewählt sind, werden der Codebuchindex k und die Verstärkung g codiert und zum Multiplexer 112 übertragen.
  • Unter Bezugnahme auf 1 werden die Parameter b, T, j, Â(z), k und g durch den Multiplexer 112 multiplext, bevor sie über einen Kommunikationskanal übertragen werden.
  • Speicheraktualisierung:
  • Im Speichermodul 111 (1) werden die Zustände des gewichteten Synthesefilters W(z)/Â(z) durch Filtern des Erregungssignals u = gck + bvT durch das gewichtete Synthesefilter aktualisiert. Nach dieser Filterung werden die Zustände des Filters gemerkt und im nächsten Unterframe als Anfangszustände zum Berechnen der Null-Eingabe-Antwort im Berechnungseinheitsmodul 108 verwenden.
  • Wie im Fall des Sollvektors x können andere Alternative, aber mathematisch äquivalente, Ansätze, die Fachleuten auf dem Gebiet wohlbekannt sind, zum Aktualisieren der Filterzustände verwendet werden.
  • DECODIERERSEITE
  • Die Sprachdecodiervorrichtung 200 der 2 stellt die verschiedenen Schritte dar, die zwischen dem digitalen Eingang 222 (Eingangsstrom zum Demultiplexer 217) und der ausgegebenen abgetasteten Sprache 223 (sout vom Addierer 221) ausgeführt werden.
  • Der Demultiplexer 217 extrahiert die Synthesemodellparameter aus der von einem digitalen Eingangskanal empfangenen binären Informationen. Von jedem empfangenen binären Frame sind die extrahierten Parameter folgende:
    • – die Parameter für eine kurzzeitige Vorhersage (STP) Â(z) in der Zeile 225 (einmal pro Frame);
    • – die Parameter für eine langzeitige Vorhersage (LTP) T, b und j (für jeden Unterframe); und
    • – der Innovations-Codebuchindex k und die Verstärkung g (für jeden Unterframe).
  • Das gegenwärtige Sprachsignal wird basierend auf diesen Parametern synthetisiert, wie es hierin nachfolgend erklärt werden wird.
  • Das innovative Codebuch 218 ist verantwortlich für den Index k, um den Innovations-Codevektor ck zu erzeugen, der durch die decodierte Verstärkung g durch einen Verstärker 224 skaliert ist. Bei dem bevorzugten Ausführungsbeispiel wird ein innovatives Codebuch 218, wie es in den oben angegebenen US-Patenten mit den Nr. 5,444,816; 5,699,482; 5,754,976; und 5,701,392 beschrieben ist, um den innovativen Codevektor ck darzustellen.
  • Der erzeugte skalierte Codevektor gck am Ausgang des Verstärkers 224 wird durch ein Innovationsfilter 205 verarbeitet.
  • Periodizitätsverstärkung:
  • Der erzeugte skalierte Codevektor gck am Ausgang des Verstärkers 224 wird auch einen frequenzabhängigen Tonhöhenverstärker, nämlich das Innovationsfilter 205, verarbeitet.
  • Ein Verstärken der Periodizität des Erregungssignals u verbessert die Qualität in einem Fall von gesprochenen Segmenten. Dies wurde in der Vergangenheit durch Filtern des Innovationsvektors von dem innovativen Codebuch (festem Codebuch) 218 durch ein Filter in der Form 1/(1 – εbz–T) durchgeführt, wobei ε ein Faktor unter 0,5 ist, der das Ausmaß an eingeführter Periodizität steuert. Dieser Ansatz ist in einem Fall von Breitbandsignalen weniger effizient, da er eine Periodizität über dem gesamten Spektrum einführt. Ein neuer alternativer Ansatz, der ein Teil der vorliegenden Erfindung ist, wird offenbart, wodurch eine Periodizitätsverstärkung bzw. -erhöhung durch Filtern des innovativen Codevektors ck von dem innovativen (festen) Codebuch durch ein Innovationsfilter 205 (F(z)) erreicht wird, dessen Frequenzantwort die höheren Frequenzen mehr als niedrigere Frequenzen betont. Die Koeffizienten von F(z) sind auf das Ausmaß an Periodizität im Erregungssignal u bezogen.
  • Viele Verfahren, die Fachleuten auf dem Gebiet bekannt sind, sind zum Erhalten von gültigen Periodizitätskoeffizienten verfügbar. Beispielsweise liefert der Wert von der Verstärkung b eine Anzeige einer Periodizität. Das bedeutet, dass dann, wenn die Verstärkung b nahe 1 ist, die Periodizität des Erregungssignals u hoch ist, und dann, wenn die Verstärkung b kleiner als 0,5 ist, die Periodizität niedrig ist.
  • Eine weitere effiziente Art zum Ableiten der Filter-F(z)-Koeffizienten besteht im Beziehen von ihnen auf das Ausmaß eines Tonhöhenbeitrags im gesamten Erregungssignal u. Das resultiert in einer Frequenzantwort in Abhängigkeit von der Unterframeperiodizität, wobei höhere Frequenzen für höhere Tonhöhenverstärkungen stärker betont werden (stärkere Gesamtneigung). Das Innovationsfilter 205 hat den Effekt eines Erniedrigens der Energie des innovativen Codevektors ck bei niedrigen Frequenzen, wenn das Erregungssignal u mehr periodisch ist, was die Periodizität des Erregungssignals u bei niedrigeren Frequenzen mehr als bei höheren Frequenzen verstärkt. Vorgeschlagene Formen für ein Innovationsfilter 205 sind: F(z) = 1 – σz –1 (1)oderF(z) = –αz + 1 – αz –1 (2)wobei σ oder α Periodizitätsfaktoren sind, die von der Ebene einer Periodizität des Erregungssignals u abgeleitet sind.
  • Die zweite Form mit drei Ausdrücken von (Fz) wird bei einem bevorzugten Ausführungsbeispiel verwendet. Der Periodizitätsfaktor α wird in dem Stimmhaftigkeitsfaktorgenerator 204 berechnet. Mehrere Verfahren können zum Ableiten des Periodizitätsfaktors α basierend auf der Periodizität des Erregungssignals u verwendet werden. Nachfolgend werden zwei Verfahren präsentiert.
  • Verfahren 1:
  • Das Verhältnis eines Tonhöhenbeitrags zu dem gesamten Erregungssignal u wird zuerst in dem Stimmhaftigkeitsfaktorgenerator 204 berechnet durch
    Figure 00500001
    wobei vT der Tonhöhen-Codebuchvektor ist, b die Tonhöhenverstärkung ist und u das Erregungssignal u ist, das am Ausgang des Addierers 219 gegeben ist durch u = gck + bvT
  • Es ist zu beachten, dass der Ausdruck bvT seine Quelle im Tonhöhen-Codebuch (Tonhöhen-Codebuch) 201 in Reaktion auf die Tonhöhenverzögerung T und den im Speicher 203 gespeicherten vergangenen Wert von u hat. Der Tonhöhen-Codevektor vT von dem Tonhöhen-Codebuch 201 wird dann durch ein Tiefpassfilter 202 verarbeitet, dessen Grenzfrequenz mittels des Index j vom Demultiplexer 217 eingestellt ist. Der resultierende Codevektor vT wird dann mit der Verstärkung b von dem Demultiplexer 217 durch einen Verstärker 226 multipliziert, um das Signal bvT zu erhalten.
  • Der Faktor α wird im Stimmhaftigkeitsfaktorgenerator 204 berechnet durch α = qRp begrenzt durch α < q
    wobei q ein Faktor ist, der das Ausmaß an Verstärkung steuert (q ist bei diesem bevorzugten Ausführungsbeispiel auf 0,25 eingestellt).
  • Verfahren 2:
  • Ein weiteres Verfahren zum Berechnen des Periodizitätsfaktors α wird nachfolgend diskutiert.
  • Zuerst wird ein Stimmhaftigkeitsfaktor rv im Stimmhaftigkeitsfaktorgenerator 204 berechnet durch: rv = (Ev – Ec)/(Ev + Ec)wobei Ev die Energie des skalierten Tonhöhen-Codevektors bvT ist und Ec die Energie des skalierten innovativen Codevektors gck ist. Das bedeutet:
  • Figure 00510001
  • Es ist zu beachten, dass der Wert von rv zwischen –1 und 1 liegt (1 entspricht rein gesprochenen Signalen und –1 entspricht rein nicht gesprochenen Signalen).
  • Bei diesem bevorzugten Ausführungsbeispiel wird dann der Faktor α in dem Stimmhaftigkeitsfaktorgenerator 204 berechnet durch: α = 0,125(1 + rv)was einem Wert von 0 für rein nicht gesprochene Signale und 0,25 für rein gesprochene Signale entspricht.
  • In der ersten Form mit zwei Ausdrücken von F(z) kann der Periodizitätsfaktor σ unter Verwendung von σ = 2α bei den obigen Verfahren 1 und 2 angenähert werden. In einem solchen Fall wird der Periodizitätsfaktor σ bei dem obigen Verfahren 1 wie folgt berechnet: σ = 2qRp begrenzt durch σ < 2q.
  • Beim Verfahren 2 wird der Periodizitätsfaktor σ wie folgt berechnet: σ = 0,25(1 + rv).
  • Das verstärkte Signal cf wird daher durch Filtern des skalierten innovativen Codevektors gck durch das Innovationsfilter 205 (F(z)) berechnet.
  • Das verstärkte Erregungssignal u' wird durch den Addierer 220 berechnet als: u' = cf + bvT
  • Es ist zu beachten, dass dieser Prozess nicht bei dem Codierer 100 durchgeführt wird. Somit ist es wesentlich, den Inhalt des Tonhöhen-Codebuchs 201 unter Verwendung des Erregungssignals u ohne Verstärkung zu aktualisieren, um eine Synchronität zwischen dem Codierer 100 und dem Decodierer 200 beizubehalten. Daher wird das Erregungssignal u zum Aktualisieren des Speichers 203 des Tonhöhen-Codebuchs 201 verwendet und wird das verstärkte Erregungssignal u' am Eingang des LP-Synthesefilters 206 verwendet.
  • Synthese und Rückentzerrung
  • Das synthetisierte Signal s' wird durch Filtern des verstärkten Erregungssignals u' durch das LP-Synthesefilter 206 berechnet, das die Form 1/Â(z) hat, wobei Â(z) das interpolierte LP-Filter im aktuellen Unterframe ist. Wie es in 2 gesehen werden kann, werden die quantisierten LP-Koeffizienten Â(z) auf der Leitung 225 vom Demultiplexer 217 zu dem LP-Synthesefilter 206 zugeführt, um die Parameter des LP-Synthesefilters 206 entsprechend einzustellen. Das Rückentzerrungsfilter 207 ist das Umgekehrte des Vorverzerrungsfilters 103 der 1. Die Übertragungsfunktion des Rückentzerrungsfilters 207 ist gegeben durch: D(z) = 1/(1 – μz–1)wobei μ ein Vorverzerrungsfaktor mit einem Wert ist, der zwischen 0 und 1 angeordnet ist (ein typischer Wert ist μ = 0,7). Ein Filter höherer Ordnung könnte auch verwendet werden.
  • Der Vektor s' wird durch das Rückentzerrungsfilter D(z) (Modul 207) gefiltert, um den Vektor sd zu erhalten, der durch das Hochpassfilter 208 geführt wird, um die unerwünschten Frequenzen unter 50 Hz zu entfernen und um weiterhin sh zu erhalten.
  • Überabtastung und Hochfrequenzregeneration
  • Das Überabtastungsmodul 209 führt den umgekehrten Prozess des Abwärtsabtastungsmoduls 101 der 1 durch. Bei diesem bevorzugten Ausführungsbeispiel wandelt eine Überabtastung von der 12,8 kHz-Abtastrate zu der ursprünglichen 16 kHz-Abtastrate unter Verwendung von Techniken um, die Fachleuten auf dem Gebiet wohlbekannt sind. Das überabgetastete Synthesesignal wird mit ŝ bezeichnet. Das Signal ŝ wird auch das synthetisierte breitbandige Zwischensignal genannt.
  • Das überabgetastete Synthesesignal ŝ enthält nicht die höheren Frequenzkomponenten, die durch den Abwärtsabtastprozess (Modul 101 der 1) bei dem Codierer 100 verloren wurden. Dies teilt dem synthetisierten Sprachsignal eine Tiefpasswahrnehmung zu. Zum Wiederherstellen des vollständigen Bandes des ursprünglichen Signals ist eine Hochfrequenzerzeugungsprozedur offenbart. Diese Prozedur wird in Modulen 210 bis 216 und in einem Addierer 221 durchgeführt und erfordert eine Eingabe von dem Stimmhaftigkeitsfaktorgenerator 204 (2).
  • Bei diesem neuen Ansatz werden die Hochfrequenzinhalte durch Auffüllen des oberen Teils des Spektrums mit einem weißen Rauschen erzeugt, das in dem Erregungsbereich geeignet skaliert ist, dann in den Sprachbereich umgewandelt ist, und zwar vorzugsweise durch Formen von ihm mit demselben LP-Synthesefilter, das zum Synthetisieren des abwärts abgetasteten Signals ŝ verwendet ist.
  • Die Hochfrequenzerzeugungsprozedur gemäß der vorliegenden Erfindung wird hierin nachfolgend beschrieben.
  • Der Zufallsrauschgenerator 213 erzeugt eine Sequenz eines weißen Rauschens w' mit einem flachen Spektrum über der gesamten Frequenzbandbreite unter Verwendung von Techniken, die Fachleuten auf dem Gebiet wohlbekannt sind. Die erzeugte Sequenz hat eine Länge N', welche die Unterframelänge im ursprünglichen Bereich ist. Es ist zu beachten, dass N die Unterframelänge im abwärts abgetasteten Bereich ist. Bei diesem bevorzugten Ausführungsbeispiel gilt N = 64 und N' = 80, was 5 ms entspricht.
  • Die Sequenz des weißen Rauschens wird im Verstärkungseinstellmodul 214 geeignet skaliert. Eine Verstärkungseinstellung weist die folgenden Schritte auf. Zuerst wird die Energie der erzeugten Rauschsequenz w' gleich der Energie des verstärkten Erregungssignals u' gesetzt, das durch ein Energieberechnungsmodul 210 berechnet ist, und die resultierende skalierte Rauschsequenz ist gegeben durch:
  • Figure 00540001
  • Der zweite Schritt bei der Verstärkungsskalierung besteht im Berücksichtigen der Hochfrequenzinhalte des synthetisierten Signals am Ausgang des Stimmhaftigkeitsfaktorgenerators 204, um die Energie des erzeugten Rauschens in einem Fall von gesprochenen Segmenten zu reduzieren (wobei weniger Energie bei hohen Frequenzen vorhanden ist, im Vergleich mit nicht gesprochenen Segmenten). Vorzugsweise ist ein Messen der Hochfrequenzinhalte durch Messen der Neigung des Synthesesignals durch eine Berechnungseinheit 212 für eine spektrale Neigung und durch entsprechendes Reduzieren der Energie implementiert. Andere Messungen, wie beispielsweise Nulldurchgangsmessungen, können gleichermaßen verwendet werden. Wenn die Neigung sehr stark ist, was gesprochenen Segmenten entspricht, wird die Rauschenergie weiter reduziert. Der Neigungsfaktor wird im Modul 212 als der erste Korrelationskoeffizient des Synthesesignals sh berechnet und ist gegeben durch:
    Figure 00550001
    mit den Bedingungen Neigung ≥ 0 und Neigung ≥ rv wobei der Stimmhaftigkeitsfaktor rv gegeben ist durch rv = (Ev – Ec)/(Ev + Ec)wobei Ev die Energie des skalierten Tonhöhen-Codevektors bvT ist und Ec die Energie des skalierten innovativen Codevektors gck ist, wie es früher beschrieben ist. Der Stimmhaftigkeitsvektor rv ist sehr häufig kleiner als Neigung, aber diese Bedingung wurde als eine Vorsichtsmaßnahme gegenüber Hochfrequenztönen eingeführt, wobei der Neigungswert negativ ist und der Wert von rv hoch ist. Daher reduziert diese Bedingung die Rauschenergie für solche Tonsignale.
  • Der Neigungswert ist in einem Fall eines flachen Spektrums 0 und in einem Fall von stark gesprochenen Signalen 1 und ist in einem Fall von nicht gesprochenen Signalen negativ, wobei mehr Energie bei hohen Frequenzen vorhanden ist.
  • Unterschiedliche Verfahren können verwendet werden, um den Skalierungsfaktor gt von dem Ausmaß von Hochfrequenzinhalten abzuleiten. Bei dieser Erfindung sind basierend auf der Neigung eines Signals, die oben beschrieben ist, zwei Verfahren gegeben.
  • Verfahren 1:
  • Der Skalierungsfaktor gt wird aus der Neigung abgeleitet durch:
  • Figure 00550002
  • Für ein stark gesprochenes Signal, bei welchem die Neigung sich 1 nähert, ist gt 0,2, und für stark nicht gesprochene Signale wird gt 1,0.
  • Verfahren 2:
  • Der Neigungsfaktor gt wird zuerst derart beschränkt, dass er größer oder gleich Null ist, und dann wird der Skalierungsfaktor aus der Neigung abgeleitet durch: gt = 10–0,6Neigung
  • Die skalierte Rauschsequenz wg, die im Verstärkungseinstellmodul 214 erzeugt ist, ist daher gegeben durch: wg = gtw'
  • Wenn die Neigung nahe Null ist, ist der Skalierungsfaktor gt nahe 1, was nicht in einer Energiereduktion resultiert. Wenn der Neigungswert 1 ist, resultiert der Skalierungsfaktor gt in einer Reduktion von 12 dB bezüglich der Energie des erzeugten Rauschens.
  • Wenn das Rauschen einmal geeignet skaliert ist (wg), wird es unter Verwendung des spektralen Formers 215 in den Sprachbereich gebracht. Bei dem bevorzugten Ausführungsbeispiel wird dies durch Filtern des Rauschens wg durch eine bandbreitenerweiterte Version desselben LP-Synthesefilters erreicht, das in dem abwärts abgetasteten Bereich verwendet wird (1/Â(z/0,8). Die entsprechenden bandbreitenerweiterten LP-Filterkoeffizienten werden im spektralen Former 215 berechnet.
  • Die gefilterte skalierte Rauschsequenz wf wird dann unter Verwendung des Bandpassfilters 216 einer Bandpassfilterung zu dem erforderlichen Frequenzbereich unterzogen, um wiederhergestellt zu werden. Bei dem bevorzugten Ausführungsbeispiel beschränkt das Bandpassfilter 216 die Rauschsequenz auf den Frequenzbereich 5,6–7,2 kHz. Die resultierende bandpassgefilterte Rauschsequenz z wird im Addierer 221 zu dem überabgetasteten synthetisierten Sprachsignal ŝ addiert, um das schließliche rekonstruierte Klangsignal sout am Ausgang 223 zu erhalten.

Claims (62)

  1. Verfahren zum Indexieren von Impulspositionen und -amplituden in einem algebraischen Codebuch für effizientes Codieren und Decodieren eines Schallsignals, wobei: – das Codebuch einen Satz von Impulsamplitude-/-positionskombinationen umfasst; – jede Impulsamplitude-/-positionskombination eine Anzahl von verschiedenen Positionen definiert und sowohl Impulse mit Amplitude gleich Null als auch Impulse mit Amplitude ungleich Null, die zu jeweiligen Positionen der Kombination gehören, umfasst; und – jeder Impuls mit Amplitude ungleich Null eine von einer Vielzahl von möglichen Amplituden annimmt; und wobei das Indexierverfahren umfasst: – Bilden eines Satzes von mindestens einer Spur der Impulspositionen, wobei die Position jedes Impulses mit Amplitude ungleich null jeder Impulsamplitude-/-positionskombination auf eine Spur des Satzes beschränkt ist; – Indexieren in Übereinstimmung mit einer ersten Prozedur, nachfolgend Prozedur 1 genannt, der Position und Amplitude eines Impulses mit Amplitude ungleich Null, wenn nur die Position des einen Impulses mit Amplitude ungleich Null in einer Spur des Satzes liegt; – Indexieren in Übereinstimmung mit einer zweiten Prozedur, nachfolgend Prozedur 2 genannt, der Positionen und Amplituden von zwei Impulsen mit Amplitude ungleich null, wenn nur die Positionen der zwei Impulse mit Amplitude ungleich Null in einer Spur des Satzes liegen; und – wenn die Positionen einer Anzahl X von Impulsen mit Amplitude ungleich Null in einer Spur des Satzes liegen, wobei X ≥ 3: • Teilen der Positionen der einen Spur in zwei Abschnitte; • Verwenden einer weiteren, zu der Anzahl X gehörenden Prozedur, nachfolgend Prozedur X genannt, zum Indexieren der Positionen und Amplituden der X Impulse mit Amplitude ungleich Null, wobei die Prozedur X umfasst: • Identifizieren, in welchem der zwei Spurabschnitte jeder Impuls mit Amplitude ungleich Null liegt; • Berechnen von Teilindizes der X Impulse mit Amplitude ungleich Null unter Verwendung der Prozeduren 1 und 2 in mindestens einem der Spurabschnitte und der ganzen Spur; und • Berechnen eines Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich Null durch Kombinieren der Teilindizes.
  2. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, welches umfasst, die Impulspositionen jeder Spur mit den Impulspositionen der anderen Spuren zu verschachteln.
  3. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem das Berechnen eines Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich null umfasst: Berechnen mindestens eines Zwischenindex durch Kombinieren von mindestens zwei der Teilindizes; und Berechnen des Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich Null durch Kombinieren der übrigen Teilindizes und des mindestens einen Zwischenindex.
  4. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem die Prozedur 1 umfasst, einen Positions- und Amplitudenindex zu erzeugen, der einen Positionsindex, der die Position des einen Impulses mit Amplitude ungleich Null in der einen Spur anzeigt, und einen Amplitudenindex, der die Amplitude des einen Impulses mit Amplitude ungleich Null anzeigt, enthält.
  5. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 4 definiert, bei dem der Positionsindex eine erste Gruppe von Bits umfasst und der Amplitudenindex mindestens ein Bit umfasst.
  6. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 5 definiert, bei dem das mindestens eine Bit des Amplitudenindex ein Bit höheren Ranges ist.
  7. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 5 definiert, bei dem die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst und bei dem das mindestens eine Bit des Amplitudenindex ein Vorzeichenbit ist.
  8. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem: die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst; und die Prozedur 1 umfasst, einen Positions- und Amplitudenindex des einen Impulses mit Amplitude ungleich Null zu erzeugen, mit der Form: I1p = p + s × 2M wobei p ein Positionsindex des einen Impulses mit Amplitude ungleich Null in der einen Spur ist, s ein Vorzeichenindex des einen Impulses mit Amplitude ungleich Null ist und 2M die Anzahl von Positionen in der einen Spur ist.
  9. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 8 definiert, bei dem die Anzahl von Positionen in der einen Spur 16 ist und bei dem der Positions- und Amplitudenindex ein 5-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00590001
  10. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem die Prozedur 2 umfasst, einen Positions- und Amplitudenindex zu erzeugen, der enthält: erste und zweite Positionsindizes, die jeweils die Positionen der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigen; und einen Amplitudenindex, der die Amplituden der zwei Impulse mit Amplitude ungleich Null anzeigt.
  11. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 10 definiert, bei dem im Positions- und Amplitudenindex: der Amplitudenindex mindestens ein Bit umfasst; der erste Positionsindex eine erste Gruppe von Bits umfasst; und der zweite Positionsindex eine zweite Gruppe von Bits umfasst.
  12. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 11 definiert, bei dem im Positions- und Amplitudenindex: das mindestens eine Bit des Amplitudenindex ein Bit höheren Ranges ist; die Bits der ersten Gruppe Bits mittleren Ranges sind; und die Bits der zweiten Gruppe Bits niedrigeren Ranges sind.
  13. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 11 definiert, bei dem die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst und bei dem das mindestens eine Bit des Amplitudenindex ein Vorzeichenbit ist.
  14. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 10 definiert, bei dem die Prozedur 2 umfasst: wenn die zwei Impulse gleiche Amplitude haben, Erzeugen eines Amplitudenindex, der die Amplitude des Impulses mit Amplitude ungleich Null anzeigt, dessen Position durch den ersten Positionsindex angezeigt wird, Erzeugen eines ersten Positionsindex, der die kleinere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt, und Erzeugen eines zweiten Positionsindex, der die größere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt; und wenn die zwei Impulse verschiedene Amplituden haben, Erzeugen eines Amplitudenindex, der die Amplitude des Impulses mit Amplitude ungleich Null anzeigt, dessen Position durch den ersten Positionsindex angezeigt wird, Erzeugen eines ersten Positionsindex, der die größere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt, und Erzeugen eines zweiten Positionsindex, der die kleinere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt.
  15. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem die Prozedur 2 umfasst, wenn die Position eines ersten Impulses mit Amplitude ungleich Null mit Positionsindex p0 und Vorzeichenindex σ0 und die Position eines zweiten Impulses mit Amplitude ungleich Null mit Positionsindex p1 und Vorzeichenindex σ1 in einer Spur des Satzes liegen, Erzeugen eines Positions- und Amplitudenindex der ersten und zweiten Impulse mit Amplitude ungleich Null in der Form: Wenn σ0 = σ1 Wenn p0 ≤ p1 I2p = p1 + p0 × 2M + σ0 × 22M Wenn p0 ≥ p1 I2p = p0 + p1 × 2M + σ0 × 22M Wenn σ0 ≠ σ1 Wenn p0 ≤ p1 I2p = p0 + p1 × 2M + σ1× 22M Wenn p0 ≥ p1 I2p = p1 + p0 × 2M + σ0 × 22M wobei 2M die Anzahl von Positionen in der einen Spur ist.
  16. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 15 definiert, bei dem die Anzahl von Positionen in der einen Spur 16 ist und bei dem der Positions- und Amplitudenindex ein 9-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00610001
  17. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem, wenn X = 3: das Teilen der Positionen der einen Spur in zwei Abschnitte umfasst, die Positionen der einen Spur in untere und obere Spurabschnitte zu teilen; und die Prozedur 3 umfasst: Identifizieren von einem der oberen und unteren Spurabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der drei Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  18. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 17 definiert, bei dem: das Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2 umfasst, wenn die Positionen der mindestens zwei Impulse mit Amplitude ungleich Null in dem oberen Abschnitt liegen, die Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Abschnitt zu dem unteren Abschnitt zu verschieben.
  19. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 18 definiert, bei dem das Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Abschnitt zu dem unteren Abschnitt umfasst, eine Anzahl von niederwertigsten Bits der Positionsindizes der mindestens zwei Impulse mit Amplitude ungleich Null mit einer aus der Anzahl Einsen bestehenden Maske zu maskieren.
  20. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 17 definiert, bei dem das Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2 umfasst, einen Abschnittsindex einzufügen, der den einen der unteren und oberen Spurabschnitte anzeigt, in dem die mindestens zwei Impulse mit Amplitude ungleich Null liegen.
  21. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 17 definiert, bei dem die Anzahl von Positionen in der einen Spur 16 ist und bei dem der Positions- und Amplitudenindex ein 13-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00620001
  22. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 1 definiert, bei dem: die Prozedur 1 umfasst, einen Positions- und Amplitudenindex zu erzeugen, der einen Positionsindex, der die Position des einen Impulses mit Amplitude ungleich Null in der einen Spur anzeigt, und einen Amplitudenindex enthält, der die Amplitude des einen Impulses mit Amplitude ungleich Null anzeigt, wobei der Positionsindex eine erste Gruppe von Bits umfasst und der Positionsindex mindestens ein Bit umfasst; die Prozedur 2 umfasst, einen Positions- und Amplitudenindex zu erzeugen, der erste und zweite Positionsindizes, die jeweils die Positionen der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigen, und einen Amplitudenindex enthält, der die Amplituden der zwei Impulse mit Amplitude ungleich Null anzeigt, wobei der Amplitudenindex mindestens ein Bit umfasst, der erste Positionsindex eine erste Gruppe von Bits umfasst und der zweite Positionsindex eine zweite Gruppe von Bits umfasst; wenn X = 3: das Teilen der Positionen der einen Spur in zwei Abschnitte umfasst, die Positionen der einen Spur in untere und obere Spurabschnitte zu teilen; und die Prozedur 3 umfasst: Identifizieren von einem der oberen und unteren Spurabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der drei Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  23. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 22 definiert, bei dem, wenn X = 4: das Teilen der Positionen der einen Spur in zwei Abschnitte umfasst, die Positionen der einen Spur in untere und obere Spurabschnitte zu teilen; und die Prozedur 4 umfasst: – wenn der obere Spurabschnitt die Positionen der vier Impulse mit Amplitude ungleich Null enthält: weiter Teilen des oberen Spurabschnitts in untere und obere Spurteilabschnitte; Identifizieren von einem der oberen und unteren Spurteilabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurteilabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen des ganzen oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der drei anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex des einen Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen drei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der zwei anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der zwei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des anderen Impulses mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem oberen Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen der vier Impulse mit Amplitude ungleich Null enthält: weiter Teilen des unteren Spurabschnitt in untere und obere Spurteilabschnitte; Identifizieren von einem der oberen und unteren Spurteilabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurteilabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen des ganzen unteren Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der drei Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  24. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 23 definiert, bei dem die Prozedur 4 umfasst: – wenn der eine Spurteilabschnitt der obere Teilabschnitt ist, das Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2 umfasst, die Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Spurteilabschnitt zu dem unteren Spurteilabschnitt zu verschieben.
  25. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 24 definiert, bei dem das Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Teilabschnitt zu dem unteren Teilabschnitt umfasst, eine Anzahl von niederwertigsten Bits der Positionsindizes der mindestens zwei Impulse mit Amplitude ungleich Null mit einer aus der Anzahl Einsen bestehenden Maske zu maskieren.
  26. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 23 definiert, bei dem, wenn X = 5: das Teilen der Positionen der einen Spur in zwei Spurabschnitte umfasst, die Positionen der einen Spur in untere und obere Abschnitte zu teilen; und die Prozedur 5 umfasst: Detektieren eines der unteren und oberen Spurabschnitte, in denen die Positionen von mindestens drei Impulsen mit Amplitude ungleich Null liegen; Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des einen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  27. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 23 definiert, bei dem, wenn X = 5: das Teilen der Positionen der einen Spur in zwei Abschnitte umfasst, die Positionen der einen Spur in untere und obere Spurabschnitte zu teilen; und die Prozedur 5 umfasst: – wenn der obere Spurabschnitt die Positionen der fünf Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der vier anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der drei anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Position von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen zwei Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von vier Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des anderen Impulses mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen der fünf Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  28. Verfahren zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 27 definiert, bei dem, wenn X = 6: das Teilen der Positionen der einen Spur in zwei Abschnitte umfasst, die Positionen der einen Spur in untere und obere Spurabschnitte zu teilen; und die Prozedur 6 umfasst: – wenn der obere Spurabschnitt die Positionen der sechs Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von fünf Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der fünf anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der fünf Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex des Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des unteren Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der vier anderen Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der vier Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 4, angewandt auf die Positionen des oberen Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des unteren Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen drei Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen drei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von vier Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen zwei Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der vier Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 4, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; – wenn der untere Spurabschnitt die Positionen von fünf Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des übrigen Impulses mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex der fünf Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem oberen Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes; und – wenn der untere Spurabschnitt die Positionen der sechs Impulse mit Amplitude ungleich Null enthält: Berechnen eines ersten Teilindex von fünf Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des unteren Spurabschnitts; und Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null durch Kombinieren der ersten und zweiten Teilindizes.
  29. Vorrichtung zum Indexieren von Impulspositionen und -amplituden in einem algebraischen Codebuch für effizientes Codieren und Decodieren eines Schallsignals, wobei: – das Codebuch einen Satz von Impulsamplitude-/-positionskombinationen umfasst; – jede Impulsamplitude-/-positionskombination eine Anzahl von verschiedenen Positionen definiert und sowohl Impulse mit Amplitude gleich Null als auch Impulse mit Amplitude ungleich Null, die zu jeweiligen Positionen der Kombination gehören, umfasst; und – jeder Impuls mit Amplitude ungleich Null eine von einer Vielzahl von möglichen Amplituden annimmt; und wobei die Indexiervorrichtung umfasst: – einen Satz von mindestens einer Spur der Impulspositionen, wobei die Position jedes Impulses mit Amplitude ungleich Null jeder Impulsamplitude-/-positionskombination auf eine Spur des Satzes beschränkt ist; – eine Einrichtung zum Indexieren in Übereinstimmung mit einer ersten Prozedur, nachfolgend Prozedur 1 genannt, der Position und Amplitude eines Impulses mit Amplitude ungleich Null, wenn nur die Position des einen Impulses mit Amplitude ungleich Null in einer Spur des Satzes liegt; – eine Einrichtung zum Indexieren in Übereinstimmung mit einer zweiten Prozedur, nachfolgend Prozedur 2 genannt, der Positionen und Amplituden von zwei Impulsen mit Amplitude ungleich Null, wenn nur die Positionen der zwei Impulse mit Amplitude ungleich Null in einer Spur des Satzes liegen; und – wenn die Positionen einer Anzahl X von Impulsen mit Amplitude ungleich Null in einer Spur des Satzes liegen, wobei X ≥ 3: • eine Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte; • eine Einrichtung zur Durchführung einer weiteren, zu der Anzahl X gehörenden Prozedur, nachfolgend Prozedur X genannt, zum Indexieren der Positionen und Amplituden der X Impulse mit Amplitude ungleich Null, wobei die Einrichtung zur Durchführung der Prozedur X umfasst: • eine Einrichtung zum Identifizieren, in welchem der zwei Spurabschnitte jeder Impuls mit Amplitude ungleich Null liegt; und • eine Einrichtung zum Berechnen von Teilindizes der X Impulse mit Amplitude ungleich Null unter Verwendung der Prozeduren 1 und 2 in mindestens einem der Spurabschnitte und der ganzen Spur; und • eine Einrichtung zum Berechnen eines Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich Null, wobei die Indexberechnungseinrichtung eine Einrichtung zum Kombinieren der Teilindizes umfasst.
  30. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, welche eine Einrichtung umfasst, um die Impulspositionen jeder Spur mit den Impulspositionen der anderen Spuren zu verschachteln.
  31. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der die Einrichtung zum Berechnen eines Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich null umfasst: eine Einrichtung zum Berechnen mindestens eines Zwischenindex durch Kombinieren von mindestens zwei der Teilindizes; und Berechnen des Positions- und Amplitudenindex der X Impulse mit Amplitude ungleich Null durch Kombinieren der übrigen Teilindizes und des mindestens einen Zwischenindex.
  32. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der die Prozedur 1 eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex umfasst, der einen Positionsindex, der die Position des einen Impulses mit Amplitude ungleich Null in der einen Spur anzeigt, und einen Amplitudenindex, der die Amplitude des einen Impulses mit Amplitude ungleich Null anzeigt, enthält.
  33. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 32 definiert, bei der der Positionsindex eine erste Gruppe von Bits umfasst und der Amplitudenindex mindestens ein Bit umfasst.
  34. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 33 definiert, bei der das mindestens eine Bit des Amplitudenindex ein Bit höheren Ranges ist.
  35. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 33 definiert, bei der die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst und bei der das mindestens eine Bit des Amplitudenindex ein Vorzeichenbit ist.
  36. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der: die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst; und die Prozedur 1 umfasst, einen Positions- und Amplitudenindex des einen Impulses mit Amplitude ungleich Null zu erzeugen, mit der Form: I1p = p + s × 2M wobei p ein Positionsindex des einen Impulses mit Amplitude ungleich Null in der einen Spur ist, s ein Vorzeichenindex des einen Impulses mit Amplitude ungleich Null ist und 2M die Anzahl von Positionen in der einen Spur ist.
  37. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 36 definiert, bei der die Anzahl von Positionen in der einen Spur 16 ist und bei der der Positions- und Amplitudenindex ein 5-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00730001
  38. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der die Prozedur 2 eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex umfasst, der enthält: erste und zweite Positionsindizes, die jeweils die Positionen der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigen; und einen Amplitudenindex, der die Amplituden der zwei Impulse mit Amplitude ungleich Null anzeigt.
  39. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 38 definiert, bei der im Positions- und Amplitudenindex: der Amplitudenindex mindestens ein Bit umfasst; der erste Positionsindex eine erste Gruppe von Bits umfasst; und der zweite Positionsindex eine zweite Gruppe von Bits umfasst.
  40. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 39 definiert, bei der im Positions- und Amplitudenindex: das mindestens eine Bit des Amplitudenindex ein Bit höheren Ranges ist; die Bits der ersten Gruppe Bits mittleren Ranges sind; und die Bits der zweiten Gruppe Bits niedrigeren Ranges sind.
  41. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 39 definiert, bei der die Vielzahl von möglichen Amplituden jedes Impulses mit Amplitude ungleich Null +1 und –1 umfasst und bei der das mindestens eine Bit des Amplitudenindex ein Vorzeichenbit ist.
  42. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 39 definiert, bei der die Prozedur 2 umfasst: – wenn die zwei Impulse gleiche Amplitude haben: eine Einrichtung zum Erzeugen eines Amplitudenindex, der die Amplitude des Impulses mit Amplitude ungleich Null anzeigt, dessen Position durch den ersten Positionsindex angezeigt wird; eine Einrichtung zum Erzeugen eines ersten Positionsindex, der die kleinere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt; eine Einrichtung zum Erzeugen eines zweiten Positionsindex, der die größere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt; und – wenn die zwei Impulse verschiedene Amplituden haben: eine Einrichtung zum Erzeugen eines Amplitudenindex, der die Amplitude des Impulses mit Amplitude ungleich Null anzeigt, dessen Position durch den ersten Positionsindex angezeigt wird; eine Einrichtung zum Erzeugen eines ersten Positionsindex, der die größere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt; und eine Einrichtung zum Erzeugen eines zweiten Positionsindex, der die kleinere Position der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigt.
  43. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der die Prozedur 2, wenn die Position eines ersten Impulses mit Amplitude ungleich Null mit Positionsindex p0 und Vorzeichenindex σ0 und die Position eines zweiten Impulses mit Amplitude ungleich Null mit Positionsindex p1 und Vorzeichenindex σ1 in einer Spur des Satzes liegen, eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der ersten und zweiten Impulse mit Amplitude ungleich Null in der Form umfasst: Wenn σ0 = σ1 Wenn p0 ≤ p1 I2p = p1 + p0 × 2M + σ0 × 22M Wenn p0 ≥ p1 I2p = p0 + p1 × 2M + σ0 × 22M Wenn σ0 ≠ σ1 Wenn p0 ≤ p1 I2p = p0 + p1 × 2M + σ1 × 22M Wenn p0 ≥ p1 I2p = p1 + p0 × 2M + σ0 × 22M wobei 2M die Anzahl von Positionen in der einen Spur ist.
  44. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 43 definiert, bei der die Anzahl von Positionen in der einen Spur 16 ist und bei der der Positions- und Amplitudenindex ein 9-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00750001
  45. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der, wenn X = 3: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Einrichtung zum Teilen der Positionen der einen Spur in untere und obere Spurabschnitte umfasst; und die Prozedur 3 umfasst: eine Einrichtung zum Identifizieren von einem der oberen und unteren Spurabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; eine Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der drei Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  46. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 45 definiert, bei der: die Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2, wenn die Positionen der mindestens zwei Impulse mit Amplitude ungleich Null in dem oberen Abschnitt liegen, eine Einrichtung zum Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Abschnitt zu dem unteren Abschnitt umfasst.
  47. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 46 definiert, bei der die Einrichtung zum Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Abschnitt zu dem unteren Abschnitt eine Einrichtung zum Maskieren einer Anzahl von niederwertigsten Bits der Positionsindizes der mindestens zwei Impulse mit Amplitude ungleich Null mit einer aus der Anzahl Einsen bestehenden Maske umfasst.
  48. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 45 definiert, bei der die Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2 eine Einrichtung zum Einfügen eines Abschnittsindex umfasst, der den einen der unteren und oberen Spurabschnitte anzeigt, in dem die mindestens zwei Impulse mit Amplitude ungleich Null liegen.
  49. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 45 definiert, bei der die Anzahl von Positionen in der einen Spur 16 ist und bei der der Positions- und Amplitudenindex ein 13-Bit-Index ist, dargestellt in der folgenden Tabelle:
    Figure 00760001
  50. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 29 definiert, bei der: die Prozedur 1 eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex umfasst, der einen Positionsindex, der die Position des einen Impulses mit Amplitude ungleich Null in der einen Spur anzeigt, und einen Amplitudenindex enthält, der die Amplitude des einen Impulses mit Amplitude ungleich Null anzeigt, wobei der Positionsindex eine erste Gruppe von Bits umfasst und der Positionsindex mindestens ein Bit umfasst; die Prozedur 2 eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex umfasst, der erste und zweite Positionsindizes, die jeweils die Positionen der zwei Impulse mit Amplitude ungleich Null in der einen Spur anzeigen, und einen Amplitudenindex enthält, der die Amplituden der zwei Impulse mit Amplitude ungleich Null anzeigt, wobei der Amplitudenindex mindestens ein Bit umfasst, der erste Positionsindex eine erste Gruppe von Bits umfasst und der zweite Positionsindex eine zweite Gruppe von Bits umfasst; wenn X = 3: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Einrichtung zum Teilen der Positionen der einen Spur in untere und obere Spurabschnitte umfasst; und die Prozedur 3 umfasst: eine Einrichtung zum Identifizieren von einem der oberen und unteren Spurabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; eine Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der drei Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  51. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 50 definiert, bei der, wenn X = 4: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Ein richtung zum Teilen der Positionen der einen Spur in untere und obere Spurabschnitte umfasst; und die Prozedur 4 umfasst: – wenn der obere Spurabschnitt die Positionen der vier Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum weiter Teilen des oberen Spurabschnitts in untere und obere Spurteilabschnitte; eine Einrichtung zum Identifizieren von einem der oberen und unteren Spurteilabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; eine Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurteilabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen des ganzen oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der drei anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex des einen Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen drei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der zwei anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der zwei Impulse mit Ampli tude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des anderen Impulses mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem oberen Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen der vier Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum weiter Teilen des unteren Spurabschnitt in untere und obere Spurteilabschnitte; eine Einrichtung zum Identifizieren von einem der oberen und unteren Spurteilabschnitte, der die Positionen von mindestens zwei Impulsen mit Amplitude ungleich Null enthält; eine Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des einen Spurteilabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen des ganzen unteren Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der vier Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  52. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 51 definiert, bei der die Prozedur 4 umfasst: – wenn der eine Spurteilabschnitt der obere Teilabschnitt ist, die Einrichtung zum Berechnen eines ersten Teilindex der mindestens zwei Impulse mit Amplitude ungleich Null, die in dem einen Spurteilabschnitt liegen, unter Verwendung der Prozedur 2 eine Einrichtung zum Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Spurteilabschnitt zu dem unteren Spurteilabschnitt umfasst.
  53. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 24 definiert, bei der die Einrichtung zum Verschieben der Positionen der mindestens zwei Impulse mit Amplitude ungleich Null von dem oberen Teilabschnitt zu dem unteren Teilabschnitt eine Einrichtung zum Maskieren einer Anzahl von niederwertigsten Bits der Positionsindizes der mindestens zwei Impulse mit Amplitude ungleich Null mit einer aus der Anzahl Einsen bestehenden Maske umfasst.
  54. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 51 definiert, bei der, wenn X = 5: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Einrichtung zum Teilen der Positionen der einen Spur in untere und obere Abschnitte umfasst; und die Prozedur 5 umfasst: eine Einrichtung zum Detektieren eines der unteren und oberen Spurabschnitte, in denen die Positionen von mindestens drei Impulsen mit Amplitude ungleich Null liegen; eine Einrichtung zum Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem einen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des einen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  55. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 51 definiert, bei der, wenn X = 5: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Einrichtung zum Teilen der Positionen der einen Spur in untere und obere Spurabschnitte umfasst; und die Prozedur 5 umfasst: – wenn der obere Spurabschnitt die Positionen der fünf Impulse mit Amplitude ungleich null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der vier anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der drei anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der drei Impulse mit Ampli tude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen zwei Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von vier Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des anderen Impulses mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen der fünf Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von drei Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null unter Verwendung der Prozedur 2, angewandt auf die Positionen der ganzen einen Spur; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der fünf Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  56. Vorrichtung zum Indexieren von Impulspositionen und -amplituden, wie in Anspruch 55 definiert, bei der, wenn X = 6: die Einrichtung zum Teilen der Positionen der einen Spur in zwei Abschnitte eine Einrichtung zum Teilen der Positionen der einen Spur in untere und obere Spurabschnitte umfasst; und die Prozedur 6 umfasst: – wenn der obere Spurabschnitt die Positionen der sechs Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von fünf Impulsen mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Position eines Impulses mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der fünf anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der fünf Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex des Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Proze dur 1, angewandt auf die Positionen des unteren Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von zwei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der vier anderen Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der vier Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 4, angewandt auf die Positionen des oberen Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des unteren Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von drei Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen drei Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der drei Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen drei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 3, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von vier Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Positionen der anderen zwei Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der vier Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 4, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex der übrigen zwei Impulse mit Amplitude ungleich Null, die in dem oberen Spurabschnitt liegen, unter Verwendung der Prozedur 2, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; – wenn der untere Spurabschnitt die Positionen von fünf Impulsen mit Amplitude ungleich Null enthält und der obere Spurabschnitt die Position des übrigen Impulses mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex der fünf Impulse mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem oberen Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des oberen Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst; und – wenn der untere Spurabschnitt die Positionen der sechs Impulse mit Amplitude ungleich Null enthält: eine Einrichtung zum Berechnen eines ersten Teilindex von fünf Impulsen mit Amplitude ungleich Null, die in dem unteren Spurabschnitt liegen, unter Verwendung der Prozedur 5, angewandt auf die Positionen des unteren Spurabschnitts; eine Einrichtung zum Berechnen eines zweiten Teilindex des übrigen Impulses mit Amplitude ungleich Null, der in dem unteren Spurabschnitt liegt, unter Verwendung der Prozedur 1, angewandt auf die Positionen des unteren Spurabschnitts; und eine Einrichtung zum Erzeugen eines Positions- und Amplitudenindex der sechs Impulse mit Amplitude ungleich Null, wobei die Indexerzeugungseinrichtung eine Einrichtung zum Kombinieren der ersten und zweiten Teilindizes umfasst.
  57. Zellulares Kommunikationssystem zur Bedienung eines großen geografischen Gebiets, das in eine Vielzahl von Zellen geteilt ist, umfassend: mobile Sender-/Empfängereinheiten; zellulare Basisstationen, die sich jeweils in den Zellen befinden; eine Einrichtung zur Steuerung der Kommunikation zwischen den zellularen Basisstationen; ein bidirektionales drahtloses Kommunikations-Teilsystem zwischen jeder mobilen Einheit, die sich in einer Zelle befindet, und der zellularen Basisstation dieser einen Zelle, welches bidirektionale drahtlose Kommunikations-Teilsystem sowohl in der mobilen Einheit als auch der zellularen Basisstation (a) einen Sender mit einer Einrichtung zum Codieren eines Sprachsignals und einer Einrichtung zum Senden des codierten Sprachsignals und (b) einen Empfänger mit einer Einrichtung zum Empfangen eines gesendeten codierten Sprachsignals und einer Einrichtung zum Decodieren des empfangenen codierten Sprachsignals umfasst; – wobei die Einrichtung zum Codieren eines Sprachsignals eine Einrichtung umfasst, die auf das Sprachsignal antwortet, um Sprachsignal-Codierparameter zu erzeugen, und wobei die Einrichtung zur Erzeugung von Sprachsignal-Codierparametern eine Einrichtung zur Durchsuchung eines algebraischen Codebuchs im Hinblick auf Erzeugung von mindestens einem der Sprachsignal-Codierparameter und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch umfasst, wobei das Sprachsignal das Schallsignal bildet.
  58. Zellulares Netzelement, das (a) einen Sender mit einer Einrichtung zum Codieren eines Sprachsignals und einer Einrichtung zum Senden des codierten Sprachsignals und (b) einen Empfänger mit einer Einrichtung zum Empfangen eines gesendeten codierten Sprachsignals und einer Einrichtung zum Decodieren des empfangenen codierten Sprachsignals umfasst; – wobei die Einrichtung zum Codieren eines Sprachsignals eine Einrichtung umfasst, die auf das Sprachsignal antwortet, um Sprachsignal-Codierparameter zu erzeugen, und wobei die Einrichtung zur Erzeugung von Sprachsignal-Codierparametern eine Einrichtung zur Durchsuchung eines algebraischen Codebuchs im Hinblick auf Erzeugung von mindestens einem der Sprachsignal-Codierparameter und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch umfasst, wobei das Sprachsignal das Schallsignal bildet.
  59. Zellulare mobile Sender-/Empfängereinheit, die (a) einen Sender mit einer Einrichtung zum Codieren eines Sprachsignals und einer Einrichtung zum Senden des codierten Sprachsignals und (b) einen Empfänger mit einer Einrichtung zum Empfangen eines gesendeten codierten Sprachsignals und einer Einrichtung zum Decodieren des empfangenen codierten Sprachsignals umfasst; – wobei die Einrichtung zum Codieren eines Sprachsignals eine Einrichtung umfasst, die auf das Sprachsignal antwortet, um Sprachsignal-Codierparameter zu erzeugen, und wobei die Einrichtung zur Erzeugung von Sprachsignal-Codierparametern eine Einrichtung zur Durchsuchung eines algebraischen Codebuchs im Hinblick auf Erzeugung von mindestens einem der Sprachsignal-Codierparameter und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch umfasst, wobei das Sprachsignal das Schallsignal bildet.
  60. Bidirektionales drahtloses Kommunikations-Teilsystem für ein zellulares Kommunikationssystem, welches System dafür eingerichtet ist, ein geografisches Gebiet zu bedienen, das in eine Vielzahl von Zellen geteilt ist, und umfasst: mobile Sender-/Empfängereinheiten; zellulare Basisstationen, die sich jeweils in den Zellen befinden; und eine Einrichtung zur Steuerung der Kommunikation zwischen den zellularen Basisstationen; wobei das Teilsystem dafür eingerichtet ist, zwischen jeder mobilen Einheit, die sich in einer Zelle befindet, und der zellularen Basisstation dieser einen Zelle zu arbeiten, wobei das bidirektionale drahtlose Kommunikations-Teilsystem weiterhin sowohl in der mobilen Einheit als auch der zellularen Basisstation umfasst: (a) einen Sender mit einer Einrichtung zum Codieren eines Sprachsignals und einer Einrichtung zum Senden des codierten Sprachsignals, und (b) einen Empfänger mit einer Einrichtung zum Empfangen eines gesendeten codierten Sprachsignals und einer Einrichtung zum Decodieren des empfangenen codierten Sprachsignals; wobei die Einrichtung zum Codieren eines Sprachsignals eine Einrichtung umfasst, die auf das Sprachsignal antwortet, um Sprachsignal-Codierparameter zu erzeugen, und wobei die Einrichtung zur Erzeugung von Sprachsignal-Codierparametern eine Einrichtung zur Durchsuchung eines algebraischen Codebuchs im Hinblick auf Erzeugung von mindestens einem der Sprachsignal-Codierparameter und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch umfasst, wobei das Sprachsignal das Schallsignal bildet.
  61. Codierer zum Codieren eines Schallsignals, mit einer Schallsignal-Verarbeitungseinrichtung, die auf das Schallsignal antwortet, um Schallsignal-Codierparameter zu erzeugen, wobei die Schallsignal-Verarbeitungseinrichtung umfasst: eine Einrichtung zur Durchsuchung eines algebraischen Codebuchs im Hinblick auf Erzeugung von mindestens einem der Sprachsignal-Codierparameter; und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch.
  62. Decodierer zum Synthetisieren eines Schallsignals als Antwort auf Schallsignal-Codierparameter, umfassend: eine Codierparameter-Verarbeitungseinrichtung, die auf die Schallsignal-Codierparameter antwortet, um ein Erregungssignal zu erzeugen, wobei die Codierparameter-Verarbeitungseinrichtung umfasst: ein algebraisches Codebuch, das auf mindestens einen der Sprachsignal-Codierparameter reagiert, um einen Teil des Erregungssignals zu erzeugen; und eine Vorrichtung wie in irgendeinem der Ansprüche 29 bis 56 angegeben zum Indexieren von Impulspositionen und -amplituden in dem algebraischen Codebuch; und eine Synthesefiltereinrichtung zum Synthetisieren des Schallsignals als Antwort auf das Erregungssignal.
DE60120766T 2000-11-22 2001-11-22 Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen Expired - Lifetime DE60120766T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2327041 2000-11-22
CA002327041A CA2327041A1 (en) 2000-11-22 2000-11-22 A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
PCT/CA2001/001675 WO2002043053A1 (en) 2000-11-22 2001-11-22 Indexing pulse positions and signs in algebraic codebooks for coding of wideband signals

Publications (2)

Publication Number Publication Date
DE60120766D1 DE60120766D1 (de) 2006-07-27
DE60120766T2 true DE60120766T2 (de) 2007-06-14

Family

ID=4167763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60120766T Expired - Lifetime DE60120766T2 (de) 2000-11-22 2001-11-22 Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen

Country Status (19)

Country Link
US (1) US7280959B2 (de)
EP (1) EP1354315B1 (de)
JP (1) JP4064236B2 (de)
KR (1) KR20020077389A (de)
CN (1) CN1205603C (de)
AT (1) ATE330310T1 (de)
AU (2) AU2002221389B2 (de)
BR (1) BR0107760A (de)
CA (1) CA2327041A1 (de)
DE (1) DE60120766T2 (de)
DK (1) DK1354315T3 (de)
ES (1) ES2266312T3 (de)
HK (1) HK1050262A1 (de)
MX (1) MXPA03004513A (de)
NO (1) NO20023252L (de)
PT (1) PT1354315E (de)
RU (1) RU2003118444A (de)
WO (1) WO2002043053A1 (de)
ZA (1) ZA200205695B (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
US7249014B2 (en) * 2003-03-13 2007-07-24 Intel Corporation Apparatus, methods and articles incorporating a fast algebraic codebook search technique
US7379866B2 (en) * 2003-03-15 2008-05-27 Mindspeed Technologies, Inc. Simple noise suppression model
JP4047296B2 (ja) * 2004-03-12 2008-02-13 株式会社東芝 音声復号化方法及び音声復号化装置
WO2004090870A1 (ja) 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
JP4580622B2 (ja) * 2003-04-04 2010-11-17 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
US7318035B2 (en) 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
KR100651712B1 (ko) * 2003-07-10 2006-11-30 학교법인연세대학교 광대역 음성 부호화기 및 그 방법과 광대역 음성 복호화기및 그 방법
US20050050119A1 (en) * 2003-08-26 2005-03-03 Vandanapu Naveen Kumar Method for reducing data dependency in codebook searches for multi-ALU DSP architectures
KR100656788B1 (ko) * 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
US7571094B2 (en) * 2005-09-21 2009-08-04 Texas Instruments Incorporated Circuits, processes, devices and systems for codebook search reduction in speech coders
US7602745B2 (en) * 2005-12-05 2009-10-13 Intel Corporation Multiple input, multiple output wireless communication system, associated methods and data structures
JP3981399B1 (ja) * 2006-03-10 2007-09-26 松下電器産業株式会社 固定符号帳探索装置および固定符号帳探索方法
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
RU2462770C2 (ru) * 2007-03-02 2012-09-27 Панасоник Корпорэйшн Устройство кодирования и способ кодирования
DK2827327T3 (da) 2007-04-29 2020-10-12 Huawei Tech Co Ltd Fremgangsmåde til excitationsimpulskodning
CN100530357C (zh) 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
ES2428572T3 (es) * 2007-07-27 2013-11-08 Panasonic Corporation Dispositivo de codificación de audio y método de codificación de audio
CN100578619C (zh) 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
FR2934598B1 (fr) 2008-07-30 2012-11-30 Rhodia Poliamida E Especialidades Ltda Procede de fabrication de matrice polymerique thermoplastique
JP5223786B2 (ja) * 2009-06-10 2013-06-26 富士通株式会社 音声帯域拡張装置、音声帯域拡張方法及び音声帯域拡張用コンピュータプログラムならびに電話機
JP5002642B2 (ja) * 2009-11-09 2012-08-15 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
CN102299760B (zh) 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN102623012B (zh) * 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
SG192734A1 (en) 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Apparatus and method for error concealment in low-delay unified speech and audio coding (usac)
WO2012110415A1 (en) 2011-02-14 2012-08-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for processing a decoded audio signal in a spectral domain
MX2013009306A (es) 2011-02-14 2013-09-26 Fraunhofer Ges Forschung Aparato y metodo para codificar y decodificar una señal de audio utilizando una porcion alineada anticipada.
CN102959620B (zh) 2011-02-14 2015-05-13 弗兰霍菲尔运输应用研究公司 利用重迭变换的信息信号表示
MY165853A (en) 2011-02-14 2018-05-18 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
MY160272A (en) 2011-02-14 2017-02-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Audio Codec Using Noise Synthesis During Inactive Phases
EP2676270B1 (de) 2011-02-14 2017-02-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung eines teils eines audiosignals anhand einer transientendetektion und eines qualitätsergebnisses
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
EP2676267B1 (de) * 2011-02-14 2017-07-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung und dekodierung von impulspositionen von spuren eines audiosignals
WO2012111512A1 (ja) 2011-02-16 2012-08-23 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム及び記録媒体
EP2763137B1 (de) * 2011-09-28 2016-09-14 LG Electronics Inc. Sprachsignalkodierverfahren und sprachsignaldekodierverfahren
US9015044B2 (en) * 2012-03-05 2015-04-21 Malaspina Labs (Barbados) Inc. Formant based speech reconstruction from noisy signals
RU2636126C2 (ru) * 2012-10-05 2017-11-20 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Устройство для кодирования речевого сигнала с использованием acelp в автокорреляционной области
MX347080B (es) 2013-01-29 2017-04-11 Fraunhofer Ges Forschung Llenado con ruido sin informacion secundaria para celp (para codificadores tipo celp).
US9728200B2 (en) 2013-01-29 2017-08-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for adaptive formant sharpening in linear prediction coding
KR102081043B1 (ko) * 2013-04-05 2020-02-26 돌비 레버러토리즈 라이쎈싱 코오포레이션 향상된 스펙트럼 확장을 사용하여 양자화 잡음을 감소시키기 위한 압신 장치 및 방법
US9384746B2 (en) * 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
US10573326B2 (en) * 2017-04-05 2020-02-25 Qualcomm Incorporated Inter-channel bandwidth extension
CN110247714B (zh) * 2019-05-16 2021-06-04 天津大学 集伪装与加密于一体的仿生隐蔽水声通信编码方法及装置
CN117040663B (zh) * 2023-10-10 2023-12-22 北京海格神舟通信科技有限公司 一种用于估计宽带频谱噪底的方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
CA2010830C (en) 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
US5751903A (en) * 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE504397C2 (sv) * 1995-05-03 1997-01-27 Ericsson Telefon Ab L M Metod för förstärkningskvantisering vid linjärprediktiv talkodning med kodboksexcitering
US6393391B1 (en) * 1998-04-15 2002-05-21 Nec Corporation Speech coder for high quality at low bit rates

Also Published As

Publication number Publication date
JP2004514182A (ja) 2004-05-13
DK1354315T3 (da) 2006-10-16
ZA200205695B (en) 2003-04-04
CN1395724A (zh) 2003-02-05
WO2002043053A1 (en) 2002-05-30
ES2266312T3 (es) 2007-03-01
JP4064236B2 (ja) 2008-03-19
CA2327041A1 (en) 2002-05-22
RU2003118444A (ru) 2004-12-10
CN1205603C (zh) 2005-06-08
ATE330310T1 (de) 2006-07-15
MXPA03004513A (es) 2004-12-03
EP1354315B1 (de) 2006-06-14
PT1354315E (pt) 2006-10-31
KR20020077389A (ko) 2002-10-11
NO20023252L (no) 2002-09-12
AU2002221389B2 (en) 2006-07-20
US7280959B2 (en) 2007-10-09
AU2138902A (en) 2002-06-03
HK1050262A1 (en) 2003-06-13
EP1354315A1 (de) 2003-10-22
NO20023252D0 (no) 2002-07-04
BR0107760A (pt) 2002-11-12
DE60120766D1 (de) 2006-07-27
US20050065785A1 (en) 2005-03-24

Similar Documents

Publication Publication Date Title
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE69910239T2 (de) Verfahren und vorrichtung zur adaptiven bandbreitenabhängigen grundfrequenzsuche für die kodierung breitbandiger signale
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE60124274T2 (de) Codebuchstruktur und suchverfahren für die sprachkodierung
DE69531471T2 (de) Mehrkanalsignalkodierung unter Verwendung gewichteter Vektorquantisierung
DE60024123T2 (de) Lpc-harmonischer sprachkodierer mit überrahmenformat
DE60011051T2 (de) Celp-transkodierung
DE602004007786T2 (de) Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
DE60029990T2 (de) Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer
DE69916321T2 (de) Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen
DE69634645T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE602004003610T2 (de) Halbrätiger Vocoder
DE69029120T2 (de) Stimmenkodierer
DE60219351T2 (de) Signaländerungsverfahren zur effizienten kodierung von sprachsignalen
DE69531642T2 (de) Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69613360T2 (de) Linear-prädiktiver analyse-durch-synthese sprachkodierer
DE69928288T2 (de) Kodierung periodischer sprache
DE19604273C2 (de) Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit
DE69625874T2 (de) Verfahren und Vorrichtung zur Wiedergabe von Sprachsignalen, zur Dekodierung, zur Sprachsynthese und tragbares Funkendgerät
DE69900786T2 (de) Sprachkodierung
DE69832358T2 (de) Verfahren zur Sprachkodierung und -dekodierung
DE60012760T2 (de) Multimodaler sprachkodierer
DE60126149T2 (de) Verfahren, einrichtung und programm zum codieren und decodieren eines akustischen parameters und verfahren, einrichtung und programm zum codieren und decodieren von klängen
DE69622646T2 (de) Abschwächung der Kodebuchverstärkung bei Ausfall von Datenpaketen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition