DE602004004546T2 - Datenkompression mit inkrementeller redundanz - Google Patents

Datenkompression mit inkrementeller redundanz Download PDF

Info

Publication number
DE602004004546T2
DE602004004546T2 DE602004004546T DE602004004546T DE602004004546T2 DE 602004004546 T2 DE602004004546 T2 DE 602004004546T2 DE 602004004546 T DE602004004546 T DE 602004004546T DE 602004004546 T DE602004004546 T DE 602004004546T DE 602004004546 T2 DE602004004546 T2 DE 602004004546T2
Authority
DE
Germany
Prior art keywords
pdu
depunctured
sequence
compressed
values
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.)
Active
Application number
DE602004004546T
Other languages
English (en)
Other versions
DE602004004546D1 (de
Inventor
Wensheng Cary HUANG
Raymond Cary TOY
Peter Malm
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of DE602004004546D1 publication Critical patent/DE602004004546D1/de
Application granted granted Critical
Publication of DE602004004546T2 publication Critical patent/DE602004004546T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft Kommunikationssysteme und im Besonderen Techniken zum Bereitstellen einer inkrementellen Redundanz in Funksystemen, die ein Unscharfes-Entscheidungsdecodieren einsetzen.
  • Hintergrund der Erfindung
  • Eine paketbasierte Datenübertragung ist zunehmend populär in Kommunikationssystemen einschließlich landmobilen Funknetzwerken geworden. Eine Paketübertragung eröffnet die Möglichkeit zum Verbessern des Benutzerdurchsatzes durch erneutes Übertragen fehlgeschlagener Datenpakete. Einige unterschiedliche Protokolle zur erneuten Übertragung, sämtliche auf einer automatischen Wiederholungsanforderung (ARQ, automatic repeat request) basierend, bieten diese Funktionalität. In hybriden ARQ-Protokollen, wenn ein Datenblock ein Kanalcodieren nicht besteht, wird er üblicherweise in einem Lokalspeicher in dem Empfänger gespeichert, und eine Anforderung zur erneuten Übertragung des fehlgeschlagenen Blocks wird an den Sender gesendet. Beim Empfangen des erneut übertragenen Datenblocks wird dann der erneut übertragene Block mit dem zuvor im Speicher gespeicherten, fehlgeschlagenen Block zusammengefasst. Der zusammengefasste Block wird dann kanaldecodiert. 1 zeigt ein Blockdiagramm eines typischen Kommunikationssystems, das ein hybrides ARQ-basiertes Protokoll einsetzen kann.
  • Wie in 1 gezeigt enthält ein beispielhafter Sender 100 einen Codierer 104 und eine Steuereinheit 106. Ähnlich enthält Empfänger 114 einen Decodierer 108, Speicher 116 und eine Steuereinheit 112. Im Sender 100 wird die Nutzlast, zusammen mit einer Header- und Prüfsummeninformation (als Datenblock 102 gezeigt), durch Codierer 104 codiert, um dem Datenblock eine Redundanz hinzuzufügen. Die Datenredundanz hilft dem Empfänger, eine Vorwärtsfehlerkorrektur (FEC, forward error correction) durchzuführen. Um die Anzahl von Bits in dem codierten Block zu reduzieren, werden Bits mit Verwenden eines Punktierungsmusters entfernt, um einen punktierten codierten Block zu bilden. Nachdem der Block empfangen ist, decodiert der Decodierer 108 den Block-Header, um die zum Decodieren der Dateneinheit erforderlichen Parameter zu erhalten. Der Decodierer decodiert dann die empfangene Dateneinheit und verifiziert die Prüfsummen. Wenn die empfangene Dateneinheit den Decodierprozess nicht besteht (d.h., dass sie Fehler hat, die nicht korrigiert werden können), dann sendet die Steuereinheit 112 eine automatische Anforderung für eine erneute Übertragung (ARQ) an Sender 100 zum erneuten Übertragen dieser Dateneinheit. Nach Empfang einer ARQ für einen bestimmten Block sendet Steuereinheit 106 erneut den angeforderten Block. Wenn der erneut übertragene Datenblock empfangen ist, fasst der Empfänger die erneut übertragene Dateneinheit mit der im Speicher gespeicherten fehlgeschlagenen Dateneinheit zusammen. Der Empfänger decodiert dann die zusammengefasste Dateneinheit und verifiziert die Prüfsumme.
  • Ein hybrides ARQ-Protokoll kann entweder als Typ-I-hybrides ARQ oder Typ-II-hybrides ARQ klassifiziert sein, abhängig davon, was erneut übertragen wird. Im Typ-I wird der angeforderte Datenblock auf dieselbe Weise wie die originale Übertragung erneut übertragen (d.h., dass der Datenblock codiert und punktiert wird mit Verwenden desselben Codes und Punktierungsschemas wie der originale Datenblock). Deshalb setzt ein Typ-I-hybrides ARQ-System eine feste Redundanz in einer erneuten Übertragung ein. Im Typ-II enthält der erneut übertragene Block jedoch unterschiedliche redundante Bits (d.h., dass der erneut übertragene Datenblock und der fehlgeschlagene Datenblock nicht auf dieselbe Weise codiert und/oder punktiert sein können).
  • Im Typ-II-hybriden ARQ kann, jedes Mal, wenn ein Datenblock den Decodierprozess nicht besteht, der erneut übertragene Datenblock unterschiedliche redundante Bits enthalten. Deshalb kann es wünschenswert sein, mehr als einen fehlgeschlagenen Datenblock zu speichern. Demgemäß kann eine empfangene Dateneinheit mit einem oder mehreren zuvor fehlgeschlagenen Dateneinheiten vor einem Decodieren zusammengefasst werden. Dieses resultiert in mehr Redundanz in der zusammengefassten Dateneinheit, und einer erhöhten Möglichkeit eines erfolgreichen Decodierens in Typ-II-hybriden ARQ-Systemen. Dieser Prozess zum erneuten Übertragen der fehlgeschlagenen Dateneinheit mit zusätzlichen redundanten Bits kann wiederholt werden, bis ein erfolgreiches Decodieren erreicht wird (oder bis entschieden wird, weitere Versuche zum Decodieren des Blocks aufzugeben). Die Redundanz wird, mit anderen Worten, inkrementell erreicht. Deshalb wird auf das Typ-II-hybride ARQ auch als inkrementelles Redundanz (IR) hybrides ARQ verwiesen.
  • Zusätzlich zu ARQ-Protokollen wird ein Faltungscodieren/decodieren allgemein in Drahtloskommunikationssystemen verwendet. 2 zeigt ein Blockdiagramm der Modulation/Demodulation und eines Codierens/Decodierens einer Kommunikationsverbindung. Die Information, m, empfangen von Informationsquelle 200, wird faltungscodiert, durch Codierer 202, in codierte Bits, U, um Datenredundanz hinzuzufügen. Die codierten Bits, gruppiert in Symbole, werden dann in Wellenform S moduliert, durch Modulator 204. Die Wellenform wird dann über Kanal 206 an den Empfänger gesendet. Während der Übertragung kann die Wellenform durch Rauschen verdorben werden, was in einer empfangenen Wellenform Ŝ resultiert, die unterschiedlich von S ist. Der Demodulator 208 demoduliert die verdorbene Wellenform Ŝ in die demodulierte Sequenz, Z. Decodierer 210 erschafft einen Schätzwert, m ^, von m durch Faltungsdecodieren der demodulierten Sequenz Z. Der Schätzwert m ^ wird dann Informationssenke 212 bereitgestellt.
  • Es ist herausgefunden worden, dass für Faltungscodiereneinsetzende Systeme eine quantisierte Version von Z (d.h. ein Unscharfes-Entscheidungsdecodieren) besser ist als eine Sequenz von Z, die nur zwei Pegel hat (d.h., ein Hartes-Entscheidungsdecodieren). Wenn ein Unscharfes-Entscheidungsdecodieren in einem IR-System eingesetzt wird, müssen mehr Daten gespeichert werden. Zum Beispiel gibt es in einem der Modulations- und Codierschemas des Enhanced General Packet Radio Service (EGPRS), MCS-9, 2 Paketdateneinheiten (PDUs, Packet Data Units) in einem Funkblock, von denen jede 612 Bits hat. In dem Empfänger stellt der Demodulator typischerweise dem Decodierer einen 16-Bit unscharfen Wert für jedes empfangene Bit in Z bereit. Um eine inkrementelle Redundanz bereitzustellen, benötigt der Empfänger deshalb wenigstens 2,4 KB an Speicher zum Speichern dieser zwei PDUs in diesem Funkblock. Ein Speichern von 256 Funkblöcken in dem Empfänger würde deshalb 712 K Bytes an Speicher zum Speichern der unscharfen Werte für den Decodierer erfordern.
  • Die Größe des Speichers innerhalb eines Mobilendgeräts ist vorzugsweise minimiert aufgrund der Kosten und des Leistungsverbrauchs, die mit großen Speichermengen verknüpft sind. Deshalb verringert eine kleine Speichermenge Kosten und verlängert die Betriebszeit des Mobilendgeräts. Demgemäß ist die zum Bereitstellen einer inkrementellen Redundanz wie oben diskutierte Speichermenge nahezu immer unerschwinglich groß für Mobilanwendungen.
  • Jedoch machen es die Vorteile von hybriden ARQ-Systemen, die eine inkrementelle Redundanz einsetzen, wünschenswert (und in manchen Fällen zwingend, so wie in EGPRS-Systemen), IR in Drahtloskommunikationen anzuwenden. Weil ein Implementieren von IR sehr teuer hinsichtlich einer Speicherlagerung in dem Empfänger ist, sind Verfahren zum Komprimieren der Datenblöcke entwickelt worden.
  • Ein Weg zum Reduzieren der Speichergröße ist ein Komprimieren der fehlgeschlagenen Blöcke vor einem Speichern dieser. Jeder empfangene Block codierter Daten besteht aus einer großen Anzahl von Symbolen, und jedes Symbol wird in dem Empfänger durch Bitvektor von Länge L dargestellt. Eine Komprimierung ermöglicht es, dass jedes Symbol durch einen Bitvektor einer kürzeren Länge K dargestellt wird, wobei K < L, was wiederum in einer kleineren Speichergröße in dem Empfänger resultiert.
  • Jedoch muss der Komprimierungsalgorithmus mit einem Dekomprimierungsalgorithmus komplementiert werden, um gespeicherte Dateneinheiten mit deren entsprechenden erneuten Übertragungen zu dekomprimieren und zusammenzufassen. Darüber hinaus kann die Zusammenfassung von Komprimierungs/Dekomprimierungsalgorithmen zu einer erhöhten Implementierungskomplexität führen. Folglich kann die als ein Ergebnis eines Verwendens eines kleineren Speichers gesparte elektrische Energie verwendet werden, wenn hochkomplexe Komprimierungs/Dekomprimierungsalgorithmen verwendet werden.
  • Weil das Speicherungsformat der fehlgeschlagenen Dateneinheiten eine direkte Beziehung mit der Speichergröße hat, existiert ein Bedarf für ein effizientes Format zum Speichern fehlgeschlagener Datensysteme in Systemen, die IR einsetzen.
  • Dokument US 2002/0159545 offenbart einen Empfänger, der empfangene punktierte Blocks in punktiertem oder unpunktiertem Format speichern kann. Dokument US 2002/0107987 lehrt ein Verfahren zur Komprimierung für Systeme für eine inkrementelle Redundanz, wobei für jedes empfangene Paket, das ein Decodieren nicht besteht, der Empfänger die Bitvorzeichen behält und einen Skalierungsfaktor berechnet. Wenn eine erneute Übertragung ankommt, wird das neu empfangene Paket mit den durch den Skalierungsfaktor multiplizierten Vorzeichenwerten zusammengefasst.
  • Zusammenfassung der Erfindung
  • Als eine Lösung der oben beschriebene Probleme stellt die Erfindung, gemäß beispielhaften Ausführungsformen, Techniken bereit zur effizienten Speicherung fehlgeschlagener Paketdateneinheiten (PDUs) in Systemen, die eine inkrementelle Redundanz einsetzen.
  • Gemäß einer beispielhaften Ausführungsform der Erfindung wird eine empfangene Übertragung zum Abrufen bzw. Wiedergewinnen einer PDU verarbeitet. Die PDU wird dann depunktiert und decodiert. Wenn die decodierte PDU Fehler enthält, dann wird die PDU, in ihrem punktierten Format im Speicher gespeichert, und eine Anforderung zur erneuten Übertragung wird an den Sender gesendet. Alternativ kann die PDU in ihrem depunktierten Format gespeichert werden. Gemäß einer anderen beispielhaften Ausführungsform der Erfindung erzeugt der Empfänger eine Sequenz unscharfer Werte, die jedes Bit in einer empfangenen Übertragung darstellen, und ein Skalierungsfaktor, der die unscharfen Werte innerhalb der Sequenz darstellt, wird dann berechnet und gespeichert. Eine eine PDU darstellende Untersequenz wird erzeugt, und die Untersequenz wird dann depunktiert gemäß dem verknüpften Punktierungsschema und decodiert. Wenn die decodierte Untersequenz Fehler enthält, dann wird die Untersequenz unscharfer Werte komprimiert und im Speicher gespeichert.
  • Gemäß einer anderen beispielhaften Ausführungsform der Erfindung bestimmt der Empfänger, vor einem Decodieren der aktuell empfangenen depunktierten PDU, ob es irgendwelche entsprechenden komprimierten, im Speicher gespeicherten Sequenzen gibt. Wenn es im Speicher gespeicherte komprimierte Sequenzen gibt, dann tut der Empfänger für jede entsprechende komprimierte Sequenz folgendes: Er dekomprimiert die Sequenz; er depunktiert die dekomprimierte Sequenz; und er fasst die depunktierte, dekomprimierte Sequenz mit der aktuell empfangenen, depunktierten Sequenz zusammen. Die resultierende zusammengefasste Sequenz wird decodiert, und wenn es irgendwelche Fehler gibt, wird die aktuell empfangene Sequenz, in ihrem punktierten Format, komprimiert und im Speicher gespeichert.
  • Es soll betont werden, dass der Begriff „umfasst/umfassend", wenn in dieser Spezifizierung verwendet, genommen wird zum Spezifizieren des Vorhandenseins angegebener Merkmale, ganzer Zahlen, Schritte oder Komponenten, aber nicht das Vorhandensein oder eine Hinzufügung eines oder mehrerer anderen Merkmale, ganzer Zahlen, Schritte, Komponenten oder Gruppen davon ausschließt.
  • Kurze Beschreibung der Zeichnungsfiguren
  • Die Ziele und Vorteile der Erfindung werden durch Lesen der detaillierten Beschreibung in Verbindung mit den Zeichnungen verstanden werden.
  • 1 zeigt ein Blockdiagramm eines typischen Kommunikationssystems.
  • 2 zeigt ein Blockdiagramm der Modulation/Demodulation und eines Codierens/Decodierens einer Kommunikationsverbindung.
  • 3 zeigt Diagramm der Empfängerkette gemäß einer Ausführungsform der Erfindung.
  • 4a zeigt ein Flussdiagramm, das ein Verfahren zum Speichern fehlgeschlagener Dateneinheiten gemäß einer beispielhaften Ausführungsform der Erfindung beschreibt.
  • 4b zeigt ein Flussdiagramm, das ein Verfahren zum Speichern fehlgeschlagener Dateneinheiten gemäß einer anderen beispielhaften Ausführungsform der Erfindung beschreibt.
  • 5 zeigt die Datenstruktur eines Eintrags im Speicher gemäß einer beispielhaften Ausführungsform der Erfindung.
  • 6 zeigt ein Beispiel von gemäß einer Ausführungsform der Erfindung gespeicherten Einträgen.
  • 7a zeigt einen beispielhaften Pseudocode zur Berechnung eines bündelweisen Skalierungsfaktorvektors gemäß einer Ausführungsform der Erfindung.
  • 7b zeigt einen beispielhaften Pseudocode zum Komprimieren und Speichern der unscharfen Werte gemäß einer Ausführungsform der Erfindung.
  • 7c zeigt einen beispielhaften Pseudocode zum Dekomprimieren der gespeicherten unscharfen Werte einer PDU gemäß einer Ausführungsform der Erfindung.
  • 7d zeigt einen beispielhaften Pseudocode zum Dekomprimieren der gespeicherten unscharfen Werte einer PDU gemäß einer anderen Ausführungsform der Erfindung.
  • 7e zeigt einen beispielhaften Pseudocode zum Zusammenfassen von PDUs gemäß einer Ausführungsform der Erfindung.
  • Detaillierte Beschreibung der Erfindung
  • Die vielfältigen Merkmale der Erfindung werden nun mit Verweis auf die Figuren beschrieben werden, in denen ähnliche Teile mit denselben Bezugszeichen identifiziert sind.
  • In der folgenden Beschreibung werden, zu Erklärungszwecken und nicht zur Begrenzung, spezifische Details bekannt gemacht, so wie bestimmte Schritte, Algorithmen, Techniken, Schaltkreise und ähnliches, um ein tiefgehendes Verständnis der Erfindung bereitzustellen. Jedoch wird dem Fachmann ersichtlich sein, dass die Erfindung in anderen Ausführungsformen praktiziert werden kann, die von diesen spezifischen Details abweichen. In anderen Fällen wird eine detaillierte Beschreibung wohlbekannter Verfahren, Vorrichtungen und Schaltkreise weggelassen, um die Beschreibung der Erfindung nicht mit unnötigen Details zu verdunkeln.
  • Diese und andere Aspekte der Erfindung werden nun im größeren Detail in Verbindung mit einer Anzahl beispielhafter Ausführungsformen beschrieben werden. Zum Erleichtern eines Verständnisses der Erfindung werden viele Aspekte der Erfindung in Form von Sequenzen von Handlungen beschrieben werden, die durch Elemente eines Computersystems oder einer Vorrichtung durchgeführt werden sollen. Es wird erkannt werden, dass in jeder der Ausführungsformen die vielfältigen Aktionen durch spezialisierte Schaltkreise durch auf einem oder mehreren Prozessoren ausgeführten Programmanweisungen, oder durch eine Zusammenfassung von beidem durchgeführt werden könnten. Darüber hinaus kann die Erfindung zusätzlich betrachtet werden, gesamt innerhalb einer Form eines computer-lesbaren Speichermediums verkörpert zu sein, mit einer darin gespeicherten angemessenen Menge von Computeranweisungen, die einen Prozessor zum Ausführen der hier beschriebenen Techniken veranlassen würde. Somit können die vielfältigen Aspekte der Erfindung in vielen unterschiedlichen Formen verkörpert sein, und sämtliche solcher Formen sind innerhalb des Bereichs ins Auge gefasst.
  • 3 zeigt ein Blockdiagramm der Empfängerkette gemäß einer beispielhaften Ausführungsform der Erfindung. Der Detektor für eine unscharfe Ausgabe 301 setzt einen Viterbi-Algorithmus für eine unscharfe Ausgabe (SOVA, Soft Output Viterbi Algorithm) ein, so wie den durch J. Hagenauer und P. Hoeher, „A Viterbi algorithm with soft-decision outputs and its applications", in Proc. Globecom, Dallas, TX, Nov. 1989, Seiten 1680–1986 beschriebenen. Somit ist die Ausgabe des Detektors für eine unscharfe Ausgabe 301 in der Form unscharfer Werte für jedes individuelle Bit innerhalb des empfangenen Funkblocks. In der beispielhaften Ausführungsform ist jeder unscharfe Wert in der Form des Logarithmus des Verhältnisses der Wahrscheinlichkeit, dass das empfangene Bit einen bestimmten Wert darstellt gegenüber der Wahrscheinlichkeit, dass es einen unterschiedlichen Wert darstellt. Zum Beispiel kann das Verhältnis die Wahrscheinlichkeit sein, dass. das Bit eine Null ist über die Wahrscheinlichkeit, dass das Bit eine Eins ist. Die unscharfen Werte werden zurückgetauscht bzw. gedeswapt und entschachtelt, um die unscharfen Werte zu der Reihenfolge des originalen codierten Blocks wieder herzustellen. (Tauschen bzw. Swapping und Verschachteln bzw. Interleaving sind wohlbekannte Prozesse, die bei dem Sender durchgeführt sind, um die Schwundeffekte zu reduzieren, die auf dem Kanal auftreten.) Die unscharfen Werte, die die Bits innerhalb der Dateneinheit darstellen, werden dann an die Zusammenfasseinheit 303 gespeist.
  • Wenn die gegenwärtig empfangene Dateneinheit eine erneut übertragene Dateneinheit ist (d.h., dass die Dateneinheit in einem vorherigen Funkblock übertragen wurde und den Decodierprozess nicht bestanden hat), dann werden die die aktuell empfangene Dateneinheit darstellenden unscharfen Werte mit den unscharfen Werten der entsprechenden fehlgeschlagenen Dateneinheit zusammengefasst, die im Lokalspeicher 309 gespeichert wurden. Die zusammengefasste Dateneinheit wird dann an Decodierer 305 gespeist. Wenn die aktuell empfangene Dateneinheit nicht eine erneut übertragene Dateneinheit ist, dann wird sie direkt an den Decodierer 305 gespeist. Wo, wie in diesem Beispiel, die Likelihood-Werte, die durch die unscharfen Werte dargestellt sind, logarithmisch skaliert sind, kann die Form der Zusammenfassung eine Addition sein, was in einem anderen Likelihood-Wert resultiert. Wo ein logarithmisches Skalieren nicht verwendet wird, sollten die Likelihood-Werte mittels einer Multiplikation zusammengefasst werden. Für noch andere Formen unscharfer Werte können unterschiedliche Verfahren zum Zusammenfassen verwendet werden. Die bestimmte Form eines Zusammenfassens ist nicht ein wesentlicher Aspekt der Erfindung.
  • Die zusammengefasste Dateneinheit wird dann an den Decodierer 305 gespeist, der den Kanalcode decodiert und die geschätzte übertragene Bitsequenz ausgibt. In paketbasierten Übertragungssystemen enthalten die Blocks eine Sorte von Fehlerdetektionsbits, so wie Bits für eine zyklische Redundanzprüfung (CRC, Cyclic Redundancy Check) oder Paritätsbits. Der Decodierer 305 verwendet die Fehlerdetektionsbits zum Bestimmen, ob die decodierte Dateneinheit Fehler enthält. Wenn die zusammengefasste Dateneinheit oder die aktuell empfangene Dateneinheit den Decodierprozess nicht besteht, wird eine erneute Übertragung der aktuell empfangenen Dateneinheit gemäß dem anwendbaren ARQ-Protokoll angefordert, und die aktuell empfangene Dateneinheit wird komprimiert und im Speicher zu späteren Verwendung gespeichert.
  • Die fehlgeschlagenen Dateneinheiten (d.h., die Dateneinheiten, die nicht erfolgreich decodiert sind) werden an Komprimierungs/Dekomprimierungseinheit 307 gespeist, wo sie komprimiert und im Lokalspeicher 309 gespeichert werden. Wenn eine erneut übertragene Dateneinheit ankommt, wird sie mit ihrer entsprechenden fehlgeschlagenen Dateneinheit zusammengefasst, die, vor einem Zusammenfassen, durch Komprimierungs/Dekomprimierungseinheit 307 dekomprimiert worden ist.
  • Unter der Annahme, dass der Schwundkanal und die Interferenz beide konstant sind während der Übertragung eines Funkblocks oder Bündels, ist das Signal-zu-Interferenz-und-Rausch-Verhältnis (SINR) für den gesamten Funkblock oder das Bündel konstant. Diese Annahme ist für viele Landmobilfunkszenarien gültig, die Schwund und eine Interferenz erleiden. Eine Folge eines konstanten SINR ist, dass der Absolutwert, der durch Detektor 301 erzeugten unscharfen Werte in demselben Bereich für den gesamten Funkblock oder das Bündel ist. Diese Eigenschaft wird zum Komprimieren der unscharfen Werte auf eine einfache und effiziente Weise verwendet.
  • Der Komprimierungsalgorithmus gemäß einer beispielhaften Ausführungsform der Erfindung hat im Grunde zwei Teile. Zuerst berechnet der Komprimierungsalgorithmus einen Skalierungsfaktor α, der als ein Schätzwert sämtlicher unscharfer Werte dient, die die Bits innerhalb der empfangenen Dateneinheit darstellen. Dieser Skalierungsfaktor kann zum Beispiel der Mittelwert des Absolutwerts der unscharfen Werte in der Dateneinheit sein. Jedoch ist die Verwendung einer Berechnung eines Absolutmittelwerts nicht ein wesentliches Merkmal der Erfindung. Andere Skalierungswertberechnungen können in alternativen Ausführungsformen verwendet werden, da es der Kanaldecodierer ist, der bestimmt, wie der Skalierungsfaktor zum Erhalten einer optimalen Leistung berechnet werden sollte. Als zweites speichert der Komprimierungsalgorithmus das Vorzeichen jedes der unscharfen Werte, die die Bits innerhalb der Dateneinheit darstellen.
  • Man nehme zum Beispiel an, dass die folgende Dateneinheit mit N unscharfen Werte empfangen worden ist s = ⌊s1, s2, ..., sN⌋, (1)wobei s1 der erste unscharfe Wert in der Dateneinheit ist usw. Der Skalierungsfaktor α ist eine Funktion f(·) der unscharfen Werte α = f(s) (2)
  • Ein Beispiel einer geeigneten Funktion könnte der Absolutmittelwert
    Figure 00120001
    sein.
  • Die in dem Lokalspeicher zu speichernden komprimierten Daten (d.h. die Vorzeichenwerte) können erzeugt werden als
    Figure 00120002
    oder anders, ck = 1 wenn sk = 0. Der Vektor c besteht somit aus den Vorzeichen unscharfer Werte. Da ein Bit ausreichend ist zum Speichern eines Vorzeichens eines unscharfen Wertes, ist der Speicherverbrauch für eine Dateneinheit mit N unscharfen Werten N Bits. Der Skalierungsfaktor wird, vorzugsweise mit einer hohen Genauigkeit, auch in dem Lokalspeicher gespeichert. Jedoch wird der der Speicherung des Skalierungsfaktors zurechenbare relative Speicherzuwachs kleiner, wie die Größe der Dateneinheit zunimmt.
  • Der Dekomprimierungsalgorithmus gemäß einer beispielhaften Ausführungsform der Erfindung multipliziert jedes gespeicherte Vorzeichen für einen unscharfen Wert mit seinem verknüpften Skalierungsfaktor. Somit ist der Dekomprimierungsalgorithmus im Grunde eine Multiplizierung der gespeicherten Dateneinheit c mit dem begleitenden Skalierungsfaktor.
  • Somit ist ŝ = αc = α[c1, c2, ..., cN] (5)die dekomprimierte Dateneinheit. Dieser ist geeignet zur Verwendung in einem Mobilempfänger, weil er eine einfache Operation in einem digitalen Signalprozessor ist, die nicht viel Komplexität hinzufügt. Dann, wo die Dateneinheit in ihrem punktierten Format komprimiert wurde, wird die Dateneinheit gemäß ihrem verknüpften Punktierungsschema depunktiert. Die depunktierte dekomprimierte Dateneinheit ist dann fertig zum Gebrauch, so wie durch Zusammenfassen davon mit einer erneut übertragenen Dateneinheit, bevor ein neuer Kanaldecodierungsversuch getätigt wird. Alternativ kann die Dateneinheit in ihrem depunktierten Format komprimiert werden, was den Bedarf zum Depunktieren der dekomprimierten Dateneinheit vor einem Zusammenfassen davon mit einer erneut übertragenen Dateneinheit eliminiert. Jedoch müssen, in diesem Fall, weil Nullen in der Position entsprechend den punktierten Bitpositionen eingetragen sind, diese Bitpositionen zurück zu Nullen in der dekomprimierten Dateneinheit wiederhergestellt werden.
  • Der oben beschriebene Dekomprimierungs/Komprimierungsalgorithmus nimmt an, dass das SINR über den gesamten Datenblock konstant ist. Jedoch ist dieses nicht in allen Systemen der Fall. Zum Beispiel besteht, in EGPRS-Systemen, ein Funkblock aus vier Übertragungsbündeln. Deshalb kann jedes der individuellen Bits eines Datenblocks über unterschiedliche Bündel übertragen werden. Demgemäß muss der oben beschriebene Komprimierungs/Dekomprimierungsalgorithmus modifiziert werden, um die mehrfachen Übertragungsbündel zu berücksichtigen (auf diesen modifizierten Algorithmus gemäß den beispielhaften Ausführungsformen der Erfindung wird hier als „bündelweise" Komprimierung verwiesen werden).
  • Gemäß EGPRS-Protokollen besteht ein Funkblock aus vier Bündeln, die in denselben Zeitschlitzen in vier fortlaufenden TDMA-Rahmen übertragen sind. Dieser Funkblock umfasst einen Header und ein oder zwei Funkverbindungssteuer-(RLC, Radio Link Control)Datenblöcke (PDUs). Der Header enthält das Modulations- und Codierungsschema (MCS, Modulation and Coding Scheme) und andere zum Decodieren der PDUs erforderliche Information. Die EGPRS-Datenblocks verwenden entweder eine GMSK- oder 8PSK-Modulation. Es gibt neun Modulations- und Codierungsschemas. Schemas 1–6 enthalten eine PDU in dem Funkverbindungssteuer/Mediumszugriffssteuer-(RLC/MAC, Radio Link Control/Medium Access Control) Block, wohingegen Schemas 7–9 zwei PDUs enthalten.
  • In dem Codierer werden der Header und der RLC-Datenblock bzw. die RLC-Datenblöcke separat verarbeitet (d.h., dass der Header und die PDUs separat codiert werden). weitere Details hinsichtlich des Codierungsprozesses können in der GSM 05.03 Spezifikation gefunden werden. Die codierten PDUs werden dann punktiert mit Verwenden eines der Punktierungsschemas (PS), die mit dem MCS der PDU verknüpft sind, zum Bilden eines Funkblocks einer festen Länge. Der Funkblock wird dann verschachtelt und auf eines der vier Bündel in einem Funkblock abgebildet.
  • 4a beschreibt eine beispielhafte Ausführungsform der Erfindung unter dem Rahmenwerk von EGPRS, jedoch kann das Verfahren bzw. die Verfahren der Erfindung auf sämtliche Funksysteme angewendet werden, die unscharfes-Entscheidungsdecodieren einsetzen. Der Prozess beginnt bei Schritt 402, wo eine Sequenz unscharfer Werte durch einen Detektor für eine unscharfe Ausgabe 301 erzeugt wird. In dieser Ausführungsform, wie in der oben diskutierten Ausführungsform, stellen diese unscharfen Werte das Verhältnis der Wahrscheinlichkeit dar, dass ein empfangenes Bit einen Wert darstellt gegenüber einem anderen Wert, zum Beispiel eine 1 oder –1. Diese Sequenz unscharfer Werte wird dann zurückgetauscht bzw. gedeswapt und entschachtelt beim Schritt 404, so dass die empfangenen Bits, die durch die unscharfen Werte dargestellt sind, zu deren originalen codierten RLC/MAC-Blockreihenfolge wiederhergestellt werden, die für den Decodierungsprozess erforderlich ist. Der Header wird dann depunktiert und decodiert beim Schritt 406 zum Erhalten der Decodierparameter, zum Beispiel, das MCS, Codierungs- und Punktierungsschema (PS), Blocksequenznummer (BSN) der PDU (oder PDUs, wenn Schemas 7–9 eingesetzt werden), und das Blockaufteilungsflag (SPB, split-block flag) für Schemas 1–4, erforderlich zum Decodieren der PDU(s). Wenn der Header nicht erfolgreich decodiert wird („NEIN"-Pfad raus von Entscheidungsblock 408), können die erforderlichen Decodierparameter nicht erhalten werden, und die PDU kann nicht decodiert werden. Demgemäß wird der aktuelle Funkblock weggeworfen, und der Sender wird über den Headerfehlschlag beim Schritt 412 informiert.
  • Wenn der Header erfolgreich decodiert wird („JA"-Pfad raus vom Entscheidungsblock 408), dann wird die PDU abgerufen und temporär beim Schritt 438 gespeichert. Die PDU wird dann beim Schritt 410 depunktiert. Die Steuerung schreitet zum Schritt 416 voran, um zu bestimmen, ob oder nicht die PDU zuvor übertragen worden ist, d.h., ob die aktuelle PDU eine erneute Übertragung einer zuvor fehlgeschlagenen PDU ist. Dieses kann erreicht werden, in der beispielhaften Ausführungsform, durch Prüfen, ob die BSN der PDU in dem in größerem Detail unten diskutierten IR-Speicher existiert.
  • Wenn die aktuelle PDU eine erneute Übertragung ist („NEIN"-Pfad raus vom Entscheidungsblock 416), werden die entsprechenden fehlgeschlagenen PDUs (d.h., sämtliche der PDUs mit derselben im Speicher 309 gespeicherten BSN) beim Schritt 418 gespeichert, und beim Schritt 440 depunktiert. Die dekomprimierte, depunktierte PDU wird dann mit der aktuell empfangenen PDU beim Schritt 420 zusammengefasst. Die zusammengefasste PDU wird dann beim Schritt 422 decodiert. Andernfalls („JA"-Pfad raus vom Entscheidungsblock 422) wird die aktuell empfangene depunktierte PDU beim Schritt 422 decodiert.
  • Beim Schritt 424 wird bestimmt, ob die aktuell empfangene PDU (erste Übertragung des Blocks) oder die zusammengefasste PDU (erneute Übertragung des Blocks) den Decodierprozess nicht bestanden hat. Wenn sie den Decodierprozess nicht besteht („NEIN"-Pfad raus vom Entscheidungsblock 424), und es einen freien Eintrag im IR-Speicher gibt („JA"-Pfad raus vom Entscheidungsblock 426), wird die aktuell empfangene punktierte PDU komprimiert (Schritt 428) und im Speicher 309 gespeichert (Schritt 430). Gemäß einer beispielhaften Ausführungsform wird die PDU komprimiert und im IR-Speicher zusammen mit der zur Dekomprimierung erforderlichen Unterstützungsinformation gespeichert. Wenn kein IR-Speicher übrig ist („NEIN"-Pfad raus vom Entscheidungsblock 426), dann wird die aktuell empfangene PDU nicht gespeichert und eine Anforderung zur erneuten Übertragung wird an den Sender gesendet (Schritt 436). Wenn die PDU erfolgreich decodiert wird („JA"-Pfad raus vom Entscheidungsblock 424), werden sämtliche Einträge mit derselben BSN wie die aktuell empfangene PDU aus dem IR-Speicher beim Schritt 432 gelöscht, und die decodierten Daten werden an die Informationssenke beim Schritt 434 geliefert.
  • Wenn der Empfänger eine neue PDU empfängt, prüft er, ob der empfangene Block eine erneute Übertragung ist (wie im Schritt 416 gezeigt). Wenn er es ist, dekomprimiert und depunktiert der Dekomprimierungsalgorithmus den gespeicherten Eintrag beim Schritt 418. Der Zusammenfassalgorithmus fasst dann die dekomprimierte(n) PDU(s) mit der erneut übertragenen PDU beim Schritt 420 zusammen. Wenn die erneut übertragene PDU dasselbe Punktierungsschema wie eine zuvor gespeicherte PDU einsetzt, wird die kürzlichst empfangene PDU mit der zuvor gespeicherten PDU zusammengefasst, die dann an den Decodierer zum Kanaldecodieren gespeist wird. Die aktuelle PDU wird dann verwendet zum Ersetzen der alten PDU mit Verwenden desselben Punktierungsschemas. Jedoch ist es perfekt annehmbar, sämtliche erneute Übertragungen zu speichern, selbst wenn dasselbe Punktierungsschema zuvor verwendet worden ist. Dies erhöht eine Speicherverwendung und Berechnungskomplexität. Wenn die Daten erfolgreich decodiert sind, wird der decodierte Datenblock geliefert und seine bezogene Speicherung wird gelöscht.
  • 4b beschreibt eine alternative Ausführungsform, wobei die PDU komprimiert und in ihrem depunktierten Format gespeichert wird. Der Komprimierungsprozess ist derselbe wie der des punktierten Formats, mit der Ausnahme, dass die zu komprimierende Sequenz größer ist. Weil der Depunktierungsprozess Nullen in die den punktierten Bits entsprechenden Positionen einsetzt, ist jedoch die Dekomprimierung unterschiedlich von der des punktierten Formats. Demgemäß setzt, für die komprimierte depunktierte PDU, der Dekomprimierungsalgorithmus Nullen in die dekomprimierte Sequenz für die Position der eingesetzten Nullen in die depunktierte PDU ein, und stellt andere Bits in der Sequenz gemäß deren Bündelskalierungsfaktoren und deren im IR-Speicher gespeicherten Vorzeichen wieder her (Schritt 418b). Die dekomprimierte PDU wird dann mit der aktuell empfangenen PDU zusammengefasst und decodiert.
  • Gemäß dem obigen basiert der Komprimierungsalgorithmus gemäß einer Ausführungsform der Erfindung auf der Annahme, dass der Schwundkanal und die Interferenz beide konstant sind während der Übertragung eines Datenblocks. Zum Einsetzen des Komprimierungsalgorithmus auf das oben beschriebene EGPRS-System wird deshalb eine bündelweise Komprimierung wie unten beschrieben eingesetzt.
  • Während einer bündelweisen Komprimierung wird ein Skalierungsfaktor für jedes der Übertragungsbündel berechnet. Man nehme an, dass der Skalierungsfaktor von Bündel AI (wobei A einen mit einem spezifischen Punktierungsschema PS1 punktierten Punktblock bezeichnet) mit αI bezeichnet ist, der Skalierungsfaktor von AII mit αII bezeichnet ist usw. Dann stellt der Vektor α = [αI, αII, αIII, αIV] den Skalierungsvektor für die vier A-Bündel, [AI, ..., AIV] dar. Ähnlich, wo mehrfache Punktierungsschemas eingesetzt werden, wird der Skalierungsfaktor für B-Bündel durch β bezeichnet, und der Skalierungsfaktor für C-Bündel durch γ bezeichnet (wobei B und C mit Punktierungsschema PS2 bzw. PS3 punktierte Funkblöcke bezeichnen).
  • Wenn eine empfangene PDU den Decodierprozess nicht besteht, wie oben diskutiert, wird die punktierte PDU komprimiert und im Lokalspeicher 309 zusammen mit der zum Dekomprimieren der PDU erforderlichen Unterstützungsinformation gespeichert. Eine beispielhafte Datenstruktur eines Eintrags im Speicher ist in 5 gezeigt. Das BSN-Feld 500 kennzeichnet die bestimmte fehlgeschlagene PDU. Das SPB-Feld 501 gibt an, ob die PDU in zwei Stücke zur erneuten Übertragung aufgespalten worden ist. Dieses kann auftreten, wenn das Codierungsschema für eine erneute Übertragung zu groß ist zum Enthalten der gesamten Nachricht der originalen Übertragung. Deshalb wird die erneute Übertragung in zwei Stücke aufgespalten. Wenn die erneute Übertragung auftritt ist die BSN dieselbe für bei Hälften, so dass das SPB-Flag angibt, welche Hälfte übertragen wurde. Das Feld PDUNUM 507 gibt die PDU-Nummer in dem RLC/MAC-Block an, welche für MCS-7, -8 und -9 bedeutungsvoll ist, da sie die einzigen sind, die zwei PDUs enthalten. Das PDUNUM-Feld, zusammen mit dem MCS 503 und PS 505 Feld, speichern eine Information, die beim Dekomprimierungs-, Depunktierungs- und Decodierungsprozess benötigt wird. Das SV-Feld 509 speichert den Skalierungsfaktor der vier Bündel, über die die PDU übertragen wurde, und ist deshalb eine Gruppe von vier Elementen. Das Feld für komprimierte Daten (Compressed Data) 511 ist, wo die komprimierten Daten gespeichert sind, d.h., der Vektor, der das Vorzeichen jedes unscharfen Wertes in der PDU darstellt. Demgemäß gleicht die Anzahl von in dem IR-Speicher gespeicherten Einträgen für eine bestimmte BSN, in dem schlechtesten Fall, der Anzahl von Punktierungsschemas des MCS der PDU. Ein Beispiel einer PDU, die eine BSN von 88 hat, mit Verwenden von MCS-9, und wenigstens drei Mal übertragen worden ist, ist in 6 gezeigt.
  • Die Haupt-IR-Funktionen gemäß der Erfindung können in zwei Klassen aufgeteilt werden: die IR-Speicherverwaltungsklasse und die IR-Kernklasse. Die IR-Speicherverwaltungsklasse enthält Funktionen, die den IR-Speicher initialisieren, prüfen ob eine neu empfangene PDU eine neue Übertragung ist, einen freien Eintrag in dem IR-Speicher finden, und IR-Einträge löschen, die veraltet sind. Die IR-Kernklasse besteht aus Funktionen, die den Skalierungsfaktor für einen Funkblock berechnen, eine PDU komprimieren und speichern, eine komprimierte PDU dekomprimieren, und sämtliche der PDUs, die dieselbe BSN und SPB haben, mit der aktuellen PDU zum Decodieren zusammenfassen.
  • Da eine BSN eine nicht-negative Zahl ist, kann die IR-Speicherverwaltung einfach zu implementieren sein. Wir geben hier nun eine mögliche Implementierung, aber viele andere Schemas zum Verwalten des IR-Speichers sind möglich. Irgendeine negative Zahl kann verwendet werden zum Darstellen eines leeren Eintrags in dem IR-Speicher. Die IR-Initialisierungsroutine weist eine negative Zahl an sämtliche der BSN-Felder in der IR-Eintragstabelle zu. Nachdem eine PDU empfangen ist, wird die BSN dieser PDU mit sämtlichen der BSN in der Tabelle verglichen zum Prüfen, ob dieses der anfängliche Übertragungsblock ist. Wenn dieselbe BSN und SPB in dem IR-Speicher gefunden sind, dann ist der Block eine erneute Übertragung. Wenn eine PDU nicht erfolgreich decodiert ist (d.h., wie es eine fehlgeschlagene PDU ist), ist es notwendig zu bestimmen, ob es irgendeinen leeren, in dem IR-Speicher verbliebenen IR-Eintrag gibt. Ein leerer IR-Eintrag könnte gefunden werden durch Suchen nach einem negativen BSN-Feld in dem IR-Speicher. Wenn die Einträge mit einer bestimmten BSN nicht mehr nützlich sind, entweder wegen eines erfolgreichen Decodierens oder wegen eines durch die Kommunikationssteuereinheit so informiert Seins, werden diese Einträge gelöscht durch Zuweisen einer negativen Zahl an die BSN-Felder in dem IR-Eintrag.
  • Ein beispielhafter Pseudocode zum Berechnen des bündelweisen Skalierungsvektors gemäß einer Ausführungsform der Erfindung ist in 7a gezeigt. Wie gezeigt speichert der Vektor, scaleVector[], die vier Skalierungsfaktoren, die den vier Bündeln eines Funkblocks entsprechen. Die Skalierungsfaktoren werden berechnet durch Nehmen des Mittelwerts der unscharfen Werte über ein Bündel. Wie oben diskutiert wird jedes empfangene Bit in einem Bündel durch einen unscharfen Wert dargestellt. Diese unscharfen Werte für jedes Bündel werden in einer X-mal-Y-Gruppe gespeichert, receivedVector[burstNum,pos], wobei jede Spalte ein neues Bündel darstellt und die Zeilen eine Anzahl von Bit in dem Bündel, burstLength, darstellen. Demgemäß kann auf jeden unscharfen Wert in der Gruppe durch seine Bündelnummer und repräsentative Bitposition oder Zahl zugegriffen werden.
  • Ein beispielhafter Pseudocode zur Komprimierung der unscharfen Werte, die die punktierte PDU darstellen, gemäß der Erfindung, ist in 7b gezeigt, mit der Annahme, dass die unscharfen Werte, die die Bits der punktierten PDU darstellen, in puncturedVector[] gespeichert sind, und die Anzahl von Bits in einer punktierten PDU pduLength ist. Wie gezeigt ist für jedes Bit in der PDU (d.h. 1 bis pduLength) der Wert des gespeicherten Vektors auf 1 gesetzt, wenn der repräsentative unscharfe Wert geringer als 0 ist, andernfalls ist der Wert auf 0 gesetzt.
  • Der Dekomprimierungsprozess ist in dem beispielhaften Pseudocode von 7c gezeigt. Wo, wie in diesem Beispiel, die individuellen Bits einer PDU über eine Anzahl von Bündeln übertragen werden, muss das Bündel, in dem jedes Bit in der PDU übertragen wurde, bestimmt werden, so dass der dem Bündel entsprechende Skalierungsfaktor identifiziert werden kann. Deshalb wird die Tabelle, scaleIndexTable[pos], erschaffen, um die Position jedes Bits in der PDU, pos, auf die Bündelnummer abzubilden, in dem es übertragen wurde. Demgemäß hat scaleIndexTable[] eine Länge von pduLength. Die Einträge in scaleIndexTable[] haben den Wert zwischen 1 und 4, der die Bündelnummer angibt.
  • Der Dekomprimierungsprozess beginnt durch Abrufen unscharfer Werte vom Speicher (z.B. der gespeicherte Vektor, der die Vorzeichenwerte für jeden unscharfen Wert in der PDU enthält), wie in 7c gezeigt. Jeder Vorzeichenwert wird dann mit dem entsprechenden Skalierungsfaktor multipliziert, resultierend in dem Vektor decompressedVektor[], der die unkomprimierten unscharfen Werte für die punktierte PDU enthält. Alternativ, in dem Fall, wo die PDU in ihrem depunktierten Format komprimiert ist, werden die punktierten Bits in der PDU entsprechenden Positionen mit Nullen wiederhergestellt, während die anderen Bits gemäß deren Bündelskalierungsfaktoren und deren im IR-Speicher gespeicherten Vorzeichen wiederhergestellt werden, wie in 7d gezeigt.
  • Schließlich ist ein beispielhafter Pseudocode für die Zusammenfassfunktion in 7e gezeigt. Die Zusammenfassfunktion fasst die aktuell empfangene depunktierte PDU mit sämtlichen ihrer vorherigen Übertragungen zusammen. Die vorherigen Übertragungen werden gefunden, durch Bestimmen ob es irgendwelche Einträge innerhalb des IR-Speichers mit derselben BSN und SPB wie die neu empfangene PDU gibt. Wenn vorherige Übertragungen in dem IR-Speicher gefunden werden, werden sie eine nach der anderen in decompressedVector[pos] dekomprimiert, in depuncturedVector[] depunktiert, und zusammengefasst.
  • Der Zusammenfassprozess beginnt durch Zuweisen einer neu empfangenen depunktierten PDU, newDepuncturedVector[] an den Vektor combinedVector[]. Die Funktion sucht dann von dem ersten Eintrag in dem IR-Speicher bis zu dem letzten Eintrag, numIREntries, um vorherige Übertragungen der aktuellen PDU zu finden. Wenn irgendeine vorherige Übertragung gefunden wird, wird sie zuerst dekomprimiert, mit Verwenden der Dekomprimierungsfunktion, decompressed (IREntry[l]), und dann in den Vektor, depuncturedVector[], depunktiert mit Verwenden der Funktion depuncture(decompressedVector[], IREntry[l].mcs), gemäß dem MCS-Parameter mcs. Der depunctureVector[] wird dann mit dem combinedVector[] zusammengefasst. Wo, wie in diesem Beispiel, die unscharfen Werte Likelihood-Werte sind, die logarithmisch skaliert sind, kann die Form des Zusammenfassens eine Addition sein, was in einem anderen Likelihood-Wert resultiert. Demgemäß werden der depunctureVector[] und combinedVector[] zusammengefasst durch Durchführen einer Addition Wert um Wert. Dieser Prozess wird iteriert, bis sämtliche der vorherigen Übertragungen der aktuellen PDU zusammengefasst sind. Der combinedVector[] wird dann an den Decodierer geschickt.
  • In Empfängern des oben beschriebenen Typs kann der Komprimierungs/Dekomprimierungsalgorithmus eine kleine Strafe im Benutzerdatendurchsatz auf sich laden. Jedoch ist der Vorteil der Erfindung die steile Abnahme im Speicherverbrauch verglichen zu der unkomprimierten depunktierten Dateneinheit. Die Speicherkomprimierung ist etwa proportional zu dem Inversen der Anzahl von Bits, die ein unkomprimiertes Symbol darstellen.
  • Die Erfindung ist mit Verweis auf bestimmte Ausführungsformen beschrieben worden, jedoch wird es dem Fachmann ersichtlich sein, dass es möglich ist, die Erfindung in spezifischen Formen zu verkörpern, die anders als die der oben beschriebenen Ausführungsformen sind. Dieses kann getan werden, ohne von dem Denken der Erfindung abzuweichen.
  • Somit ist die bevorzugte Ausführungsform lediglich veranschaulichend und sollte nicht in irgendeiner Art als beschränkend betrachtet werden. Der Bereich der Erfindung ist vielmehr durch die angefügten Ansprüche gegeben, als durch die vorhergehende Beschreibung, und sämtliche Variationen und Äquivalente, die innerhalb den Bereich der Ansprüche fallen, sind beabsichtigungsgemäß darin aufgenommen.

Claims (11)

  1. Verfahren zum Speichern fehlgeschlagener Paketdateneinheiten, PDUs, in einem Paketübertragungssystem, in dem die PDUs zum Enthalten einer Redundanz codiert werden, und vor einer Übertragung gemäß einem spezifizierten Punktierungsschema punktiert werden, wobei das Verfahren umfasst: Empfangen einer Vielzahl von Bündeln, von denen jedes einen jeweiligen Abschnitt einer PDU enthält; Verarbeiten jedes der empfangenen Bündel zum Erzeugen einer Sequenz unscharfer Werte, die jedes Bit in dem jeweiligen Abschnitt der PDU darstellen (402); Bilden der PDU aus den jeweiligen Abschnitten der PDU; Depunktieren der PDU (406); Decodieren der depunktierten PDU (422); und wenn die decodierte PDU Fehler enthält, dann Durchführen von: Komprimieren der PDU (428); Speichern der komprimierten PDU (430); und Anfordern einer erneuten Übertragung (436), wobei der Schritt zum Komprimieren der PDU umfasst: für jeden der jeweiligen Abschnitte der PDU, Berechnen eines die unscharfen Werte innerhalb der Sequenz darstellenden Skalierungsfaktors; und Erzeugen einer Sequenz von Werten, wobei jeder Wert ein Vorzeichen eines jeweiligen einen der Sequenz von unscharfen Werten darstellt, und wobei der Schritt zum Speichern der komprimierten PDU umfasst: Speichern der berechneten Skalierungsfaktoren und der Sequenzen der Werte, die mit jedem der jeweiligen Abschnitte der PDU verknüpft sind.
  2. Verfahren gemäß Anspruch 1, wobei jeder der Skalierungsfaktoren ein Durchschnitt der Absolutwerte der unscharfen Werte innerhalb der Sequenz des jeweiligen Abschnitts der PDU ist.
  3. Verfahren gemäß Anspruch 1, wobei die PDU in ihrem punktierten Format komprimiert wird.
  4. Verfahren gemäß Anspruch 3, ferner umfassend: Bestimmen, vor dem Decodieren der depunktierten PDU, ob es irgendwelche komprimierten, im Speicher gespeicherten PDUs gibt, die der aktuell empfangenen, depunktierten PDU entsprechen; wenn es irgendwelche entsprechenden, im Speicher gespeicherten PDUs gibt, dann für jede entsprechende PDU: Dekomprimieren der PDU; Depunktieren der dekomprimierten PDU; Zusammenfassen der depunktierten, dekomprimierten PDU mit der aktuell empfangenen, depunktierten PDU; Decodieren der zusammengefassten PDU; und wenn die decodierte zusammengefasste PDU Fehler enthält, dann Komprimieren und Speichern der aktuell empfangenen punktierten PDU.
  5. Verfahren gemäß Anspruch 1, wobei die PDU in ihrem depunktierten Format komprimiert wird.
  6. Verfahren gemäß Anspruch 5, ferner umfassend: Bestimmen, vor dem Decodieren der depunktierten PDU, ob es irgendwelche komprimierten, im Speicher gespeicherten PDUs gibt, die der aktuell empfangenen, depunktierten PDU entsprechen; wenn es irgendwelche entsprechenden, im Speicher gespeicherten PDUs gibt, dann für jede entsprechende PDU: Dekomprimieren der PDU; Zusammenfassen der dekomprimierten PDU mit der aktuell empfangenen, depunktierten PDU; Decodieren der zusammengefassten PDU; und wenn die decodierte zusammengefasste PDU Fehler enthält, dann Komprimieren und Speichern der aktuell empfangenen depunktierten PDU.
  7. Verfahren gemäß Anspruch 6, wobei der Schritt zum Dekomprimieren der entsprechenden PDU umfasst: für jeden der jeweiligen Abschnitte der PDU, Durchführen von: Multiplizieren der jeweiligen gespeicherten Sequenz von Werten, die das Vorzeichen des jeweiligen einen der Sequenz von unscharfen Werten darstellen, mit dem jeweiligen einen der gespeicherten Skalierungsfaktoren.
  8. Empfänger mit: einem Detektor für eine unscharfe Ausgabe, der konfiguriert ist zum Erzeugen einer Sequenz von jedes Bit innerhalb eines empfangenen Bündels darstellenden unscharfen Werten, wobei jedes Bündel einen jeweiligen Abschnitt einer Paketdateneinheit, PDU, enthält; einem Decodierer; einem lokalen Speicher; und einem Prozessor, wobei der Prozessor eine Logik umfasst, die konfiguriert ist zum: Verarbeiten jedes einer Vielzahl empfangener Bündel, um eine Sequenz von unscharfen Werten zu erzeugen, die jedes Bit in dem jeweiligen Abschnitt der PDU darstellen (402); Bilden der PDU aus den jeweiligen Abschnitten der PDU; Depunktieren der PDU (406); und Komprimieren der PDU und Speichern der komprimierten PDU in dem lokalen Speicher und Anfordern einer erneuten Übertragung, wenn die depunktierte PDU den Decodierprozess nicht besteht, wobei das Komprimieren der PDU umfasst: für jeden der jeweiligen Abschnitte der PDU, Berechnen eines die unscharfen Werte innerhalb der Sequenz darstellenden Skalierungsfaktors; und Erzeugen einer Sequenz von Werten, wobei jeder Wert ein Vorzeichen eines jeweiligen einen der Sequenz von unscharfen Werten darstellt, und wobei das Speichern der komprimierten PDU umfasst: Speichern der berechneten Skalierungsfaktoren und der Sequenzen der Werte, die mit jedem der jeweiligen Abschnitte der PDU verknüpft sind.
  9. Empfänger gemäß Anspruch 8, wobei der Prozessor ferner eine Logik enthält, die konfiguriert ist zum: Bestimmen, vor dem Decodieren der depunktierten PDU, ob es irgendwelche entsprechenden komprimierten, im Speicher gespeicherten PDUs gibt; wobei die Logik für jede gespeicherte PDU konfiguriert ist zum: Dekomprimieren der PDU; Depunktieren der dekomprimierten PDU; Zusammenfassen der depunktierten, dekomprimierten PDU mit der aktuell empfangenen, depunktierten PDU; und Komprimieren und Speichern der aktuell empfangenen punktierten PDU, wenn die decodierte zusammengefasste PDU den Decodierprozess nicht besteht.
  10. Computer-lesbares Speichermedium mit einer oder mehreren darin gespeicherten Anweisungen, die einen Prozessor veranlassen, die Schritte durchzuführen zum: Verarbeiten jedes von einer empfangenen Vielzahl von Bündeln, von denen jedes einen jeweiligen Abschnitt einer Paketdateneinheit, PDU, enthält, zum Erzeugen einer Sequenz unscharfer Werte, die jedes Bit in dem jeweiligen Abschnitt der PDU darstellen; Bilden der PDU aus den jeweiligen Abschnitten der PDU; Depunktieren der PDU; Decodieren der depunktierten PDU; und wenn die decodierte PDU Fehler enthält, dann Durchführen von: Komprimieren der punktierten PDU (428); Speichern der komprimierten punktierten PDU (430); und Anfordern einer erneuten Übertragung (436), wobei der Schritt zum Komprimieren der punktierten PDU umfasst: für jeden der jeweiligen Abschnitte der PDU, Berechnen eines die unscharfen Werte innerhalb der Sequenz darstellenden Skalierungsfaktors; und Erzeugen einer Sequenz von Werten, wobei jeder Wert ein Vorzeichen eines jeweiligen einen der Sequenz von unscharfen Werten darstellt, und wobei der Schritt zum Speichern der komprimierten punktierten PDU umfasst: Speichern der berechneten Skalierungsfaktoren und der Sequenzen der Werte, die mit jedem der jeweiligen Abschnitte der PDU verknüpft sind.
  11. Computer-lesbares Speichermedium gemäß Anspruch 10, mit ferner einer oder mehreren Anweisungen, die einen Prozessor veranlassen, die Schritte durchzuführen zum: Bestimmen, vor dem Decodieren der depunktierten PDU, ob es irgendwelche entsprechenden komprimierten, im Speicher gespeicherten PDUs gibt; wenn es entsprechende komprimierte, im Speicher gespeicherte PDUs gibt, dann für jede entsprechende komprimierte PDU: Dekomprimieren der PDU; Depunktieren der dekomprimierten PDU; Zusammenfassen der depunktierten, dekomprimierten PDU mit der aktuell empfangenen, depunktierten PDU; Decodieren der zusammengefassten PDU; und wenn die decodierte zusammengefasste PDU Fehler enthält, dann Komprimieren und Speichern der aktuell empfangenen punktierten PDU.
DE602004004546T 2003-08-22 2004-08-20 Datenkompression mit inkrementeller redundanz Active DE602004004546T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US645560 2003-08-22
US10/645,560 US20050044473A1 (en) 2003-08-22 2003-08-22 Data compression with incremental redundancy
PCT/EP2004/009346 WO2005020502A1 (en) 2003-08-22 2004-08-20 Data compression with incremental redundancy

Publications (2)

Publication Number Publication Date
DE602004004546D1 DE602004004546D1 (de) 2007-03-15
DE602004004546T2 true DE602004004546T2 (de) 2007-10-31

Family

ID=34194343

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004004546T Active DE602004004546T2 (de) 2003-08-22 2004-08-20 Datenkompression mit inkrementeller redundanz

Country Status (5)

Country Link
US (1) US20050044473A1 (de)
EP (1) EP1656759B1 (de)
AT (1) ATE352918T1 (de)
DE (1) DE602004004546T2 (de)
WO (1) WO2005020502A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177852A1 (en) * 2008-01-09 2009-07-09 Mediatek Inc. Data block receiver and method for decoding data block
US9924512B1 (en) 2009-03-24 2018-03-20 Marvell International Ltd. OFDMA with block tone assignment for WLAN
WO2010143019A1 (en) * 2009-06-12 2010-12-16 Nokia Corporation Method and apparatus for providing quantization and coding of groupings of soft information
US8571010B1 (en) 2009-07-21 2013-10-29 Marvell International Ltd. Simultaneous uplink transmission in a wireless network
US8472383B1 (en) 2009-11-24 2013-06-25 Marvell International Ltd. Group management in multiuser communications
US8671321B2 (en) 2012-06-28 2014-03-11 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for retransmission processing in a communication receiver
US9825678B2 (en) 2013-11-26 2017-11-21 Marvell World Trade Ltd. Uplink multi-user multiple input multiple output for wireless local area network
WO2015081269A1 (en) 2013-11-27 2015-06-04 Marvell Semiconductor, Inc. Sounding and tone block allocation for orthogonal frequency division multiple access (ofdma) in wireless local area networks
US9166660B2 (en) 2013-11-27 2015-10-20 Marvell World Trade Ltd. Uplink multi-user multiple input multiple output beamforming
EP3138226B1 (de) 2014-05-02 2020-07-08 NXP USA, Inc. Signalisierung von mehrbenutzerzuweisung in einem drahtlosen kommunikationsnetz

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI109251B (fi) * 1999-09-10 2002-06-14 Nokia Corp Tiedonsiirtomenetelmä, radiojärjestelmä, radiolähetin ja radiovastaanotin
US6981060B2 (en) * 2000-12-14 2005-12-27 Telefonaktiebolaget L M Ericsson (Publ) Compression based on channel characteristics
US6909758B2 (en) * 2001-04-27 2005-06-21 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for decoding data blocks

Also Published As

Publication number Publication date
US20050044473A1 (en) 2005-02-24
ATE352918T1 (de) 2007-02-15
EP1656759A1 (de) 2006-05-17
WO2005020502A1 (en) 2005-03-03
EP1656759B1 (de) 2007-01-24
DE602004004546D1 (de) 2007-03-15

Similar Documents

Publication Publication Date Title
DE60124568T2 (de) Hybrid-arq-verfahren für paketdatenübertragung
DE60112206T2 (de) ARQ aAutomatische Ssendewiederholung für Turbo codierte Daten
DE60309007T2 (de) Fehlererkennungsverfahren in drahtlosen Kommunikationssystemen
DE19630343B4 (de) Verfahren und Paket-Übertragungssystem unter Verwendung einer Fehlerkorrektur von Datenpaketen
DE69838355T2 (de) Verfahren, Rechnersystem und Empfänger zur inkrementalen Redundanz Dekodierung
DE60035773T2 (de) Datenwiederübertragungsverfahren in einem sprach-über-datenkommunikationssystem
DE69829847T2 (de) Fehlerschutzverfahren und vorrichtung für über-funk-dateiübertragung
DE69816261T2 (de) Turbokodierung mit übertragung und mehrstufiger verarbeitung von daten
DE69834964T2 (de) Verfahren und Vorrichtung zur effizienten Wiederübertragung mittels Symbolakkumulation
DE60114849T2 (de) ARQ Sendewiederholung mit Anforderungswiederholungs-Schema das mehrere Redundanz-Versionen verwendet und Empfänger/Sender dafür
DE60217992T2 (de) System und Verfahren zum Erzeugen von Coden in einem Kommunikationssystem
DE10248446B4 (de) Sende/Empfangsvorrichtung und Verfahren für eine Paketwiederholungsübertragung in einem mobilen Kommunikationssystem
DE602004004546T2 (de) Datenkompression mit inkrementeller redundanz
DE69532180T2 (de) Verfahren zur vorwärtsfehlerkorrektur
DE10296698B4 (de) Verfahren und Vorrichtung zum Kodieren und Dekodieren von Daten mit unterschiedlichen Modulationsschemata und Kodierungen und einem ARQ-Protokoll
DE112005003401T5 (de) Datenkommunikationsverfahren und -Vorrichtung
US7302628B2 (en) Data compression with incremental redundancy
DE602004010433T2 (de) Verfahren, system und vorrichtung zur arq-datenübertragung
DE60002884T2 (de) Verfahren und system zur datenempfangsquittierung
DE112004003036T5 (de) Gemeinsamer Vorwärtsfehlerkorrektur- und automatischer Wiederholanforderungsbetrieb für eine Datenübertragungsschicht
DE102015110602A1 (de) Verfahren und Vorrichtung zum iterativen Decodieren einer Datentransferstruktur
CN108809518A (zh) 用于降低错误性能的级联Spinal码构建方法
DE60308509T2 (de) Blinde transportformatdetektion für übertragungsverbindung
DE60033577T2 (de) Paketübertragung mit automatischem aufforderungsprotokoll mit verwendung von punktierten kodes
CN102412938B (zh) 一种lte解速率匹配与harq合并的装置与方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition