DE60206419T2 - Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes - Google Patents

Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes Download PDF

Info

Publication number
DE60206419T2
DE60206419T2 DE60206419T DE60206419T DE60206419T2 DE 60206419 T2 DE60206419 T2 DE 60206419T2 DE 60206419 T DE60206419 T DE 60206419T DE 60206419 T DE60206419 T DE 60206419T DE 60206419 T2 DE60206419 T2 DE 60206419T2
Authority
DE
Germany
Prior art keywords
block
line
received
decoding
lines
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
DE60206419T
Other languages
English (en)
Other versions
DE60206419D1 (de
Inventor
K. Brian BUTLER
K. Jack WOLF
Ryan Milne
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of DE60206419D1 publication Critical patent/DE60206419D1/de
Publication of DE60206419T2 publication Critical patent/DE60206419T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35

Description

  • HINTERGRUND
  • Bereich
  • Die vorliegende Erfindung betrifft grundsätzlich Datenkommunikation und insbesondere Techniken zum effizienten Durchführen von Löschung- und Einzelfehler-Korrekturdekodieren für lineare Blockkodes.
  • Hintergrund
  • Mit dem Aufkommen von digitaler Kommunikation und dem Bedürfnis, große Mengen an Daten durch einen beeinträchtigten und bandlimitierten Kanal zu übermitteln, ist das Bedürfnis nach Kodierung von Daten um zutreffenden Empfang zu ermöglichen von großer Bedeutung. Eine Datenübertragung ist typischerweise verschlechtert durch Beeinträchtigungen in einem Kommunikationskanal, wie thermisches Rauschen, Interferenz, störende Signale mit der Übertragungsbandbreite usw.. Die empfangenen Daten sind deshalb typischerweise eine verzerrte Version von den übertragenen Daten.
  • Kodieren kann verwendet werden um dem Empfänger zu ermöglichen, Fehler in den empfangenen Daten zu erkennen und/oder zu korrigieren. Verschiedene Fehlerkorrekturkodes sind verfügbar und können in mehrere Klassen, solche wie Blockkodes und Faltungskodes, kategorisiert werden. Faltungskodes liefern gute Fehlerkorrektureigenschaften, aber produzieren typischerweise korrelierte Häufungen von Fehlern. Blockkodes haben eingebaute Häufungsfehler-Handhabungseigenschaften, wenn sie mit einem geeigneten Level an Verschränkung kombiniert werden. Zum Beispiel ein Reed-Solomon-Kode kann jede Häufung von Fehlern in einem Symbol handhaben, welches definiert werden kann als eine bestimmte Anzahl von Bits aufweisend. „One-Shot Reed-Solomon Decoding for High-Performance to Dependable Systems" von Yasunao Katayama und Sumio Morioka beschreibt ein Verfahren zum Dekodieren eines Produktkodes aufweisend einen Reed-Solomon-Kode in der einen Richtung und einen gestreiften Paritätskontrollkode in der anderen Richtung. EP 0 407 101 A2 von Weng beschreibt ein Fehlererkennungs- und -korrektursystem welches für die Fehlererkennung eine zyklische Redundanzprüfung (CRC) und für die Fehlerkorrektur einen Reed-Solomon-Fehlerkorrekturkode verwendet.
  • Theoretisch ist ein Blockkode fähig, eine bestimmte Anzahl von Löschungen und/oder eine bestimmte Anzahl von Fehlern zu korrigieren wobei die exakte Anzahl jeweils durch die Distanz von dem Kode bestimmt wird. Eine Löschung kann angezeigt werden für ein Symbol, das im Vorhinein als potentiell schlecht bekannt ist, und ein Fehler ist ein Symbol, das fehlerhaft empfangen ist, aber als solches nicht im Vorhinein bekannt ist. Löschungen sind typischerweise bekannt oder können bestimmt werden durch den Empfänger und können entsprechend ausgewiesen werden in dem Dekodierungsprozess. Fehler sind unerkannte Symbolfehler, welches Symbole sein können, die irrtümlicherweise als zutreffend empfangen erkannt wurden, wenn sie dies tatsächlich nicht waren.
  • Konventionelle Löschung- und Fehler-Korrekturblockdekoder (solche wie Berlekamp Massey oder Euklidischer Dekoder) sind komplex und benötigen typischerweise eine Implementierung in einer zugehörigen Hardware. Diese Blockdekoder sind typischerweise zu rechenintensiv für eine softwarebasierte Implementierung, die auf einem Mikroprozessor ausgeführt wird. Hardwarebasierte Dekoder können Parallelitäten in dem Dekodierungsalgorythmus ausnutzen und verwenden einen geleiteten Datenweg, wobei beides auf einem traditionellen Mikroprozessor nicht möglich ist. Effizientere Blockdekoderalgorythmen sind verfügbar, die für softwarebasierte Implementierungen mehr geeignet sein können. Aber, diese Dekoderalgorythmen haben typischerweise begrenzte Eigenschaften und mögen geeignet sein, Löschungen zu korrigieren, aber nicht Fehler.
  • Da ist deshalb ein Bedarf in dem Bereich für einen effizienten Löschung- und Fehler-Korrekturdekoder für lineare Blockkodes und welcher geeignet sein kann für softwarebasierende Implementierung.
  • ZUSAMMENFASSUNG
  • Aspekte von der Erfindung liefern Techniken zum effizienten Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung von einem empfangenen Block von Symbolen, der vorher mit einem (N, K) linearen Blockkode spaltenweise kodiert wurde und mit einem Fehlererkennungskode zeilenweise kodiert wurde. Wenn der Fehlererkennungskode (zum Beispiel ein CRC-Kode) auf den Zeilen eine relativ gute Fehlererkennungseigenschaft aufweist, dann ist die Wahrscheinlichkeit von mehr als einer unerkannten Fehlerzeile in einem empfangenen Datenblock sehr gering. Daher ist die Einzelfehlerkorrektur typischerweise in den meisten Anwendungen ausreichend.
  • Zunächst wird jede Zeile von dem empfangenen Block entweder als gelöschte Zeile oder als ungelöschte Zeile markiert bis mindestens (K + 1) ungelöschte Zeilen gefunden wurden. Typischerweise sind alle N Zeilen von dem empfangenen Block markiert, aber dies ist nicht absolut notwendig. Die Zeilen können markiert werden, basierend auf den zyklischen Redundanzprüfungs (CRC) bits, die in jeder Zeile beinhaltet sind, oder mit anderen Mitteln. Nur-Löschung- oder Löschung- und Fehler-Korrekturblockdekodierung kann dann auf dem empfangenen Block durchgeführt werden in Abhängigkeit von der Anzahl von gelöschten Zeilen, d.h. wie es durch die Distanz von dem (N, K) Blockkode unterstützt wird.
  • Um Löschung- und Einzelfehler-Korrekturblockdekodierung auf dem empfangenen Block durchzuführen, wird zunächst ein Kodewort entsprechend zu einer Spalte von den empfangenen Block enthaltend einen unerkannten Symbolfehler erkannt. Der unerkannte Symbolfehler kann einer sein, der nicht bei dem CRC-Test, der vorher auf jeder Zeile von dem empfangenen Block durchgeführt wurde, erkannt wurde. Das Kodewort kann erkannt werden durch (1) Herleiten einer Abschätzung von einer ungelöschten, systematischen Zeile von dem empfangenen Block, (2) Vergleichen der ungelöschten, systematischen Zeile mit ihrer Abschätzung, und (3) Erkennen eines unpassenden Symbols zwischen der ungelöschten, systematischen Zeile und ihrer Abschätzung. Das Kodewort entspricht dann der Spalte, die das unpassende Symbol enthält.
  • Der Ort von dem (vorher unerkannten) Symbolfehler in dem Kodewort wird dann bestimmt, basierend auf einem bestimmten Blockdekodierungsschema (zum Beispiel eins, das in dem Bereich bekannt ist und dem ausgewählten linearen Blockkode entspricht). Die Zeile von dem empfangenen Block, die den georteten Symbolfehler enthält, wird dann als eine gelöschte Zeile markiert. Blockdekodierung kann dann in der normalen Art für den empfangenen Block durchgeführt werden mit der markierten, gelöschten Zeile, die den Symbolfehler enthält. In dieser Art kann eine nur-Löschung-Korrekturblockdekodierungstechnik verwendet werden, um eine Löschung- und Einzelfehler-Korrekturblockdekodierung auf dem empfangen Block zu erzielen. Die Löschung- und Einzelfehler-Korrekturblockdekodierungstechnik, die hierin beschrieben ist, ist bezüglich des Rechenaufwands effizient (relativ zu den konventionellen Techniken) und kann in einer Hardware, einer Software oder in einer Kombination davon implementiert werden.
  • Weitere Aspekte und Ausführungsformen der Erfindung sind unten in weiterem Detail beschrieben. Außerdem liefert die Erfindung Verfahren, Computerprogrammprodukte, Dekoder, Empfängereinheiten und andere Vorrichtungen und Elemente, die verschiedene Aspekte, Ausführungsformen und Merkmale von der Erfindung implementieren, wie im weiteren Detail unten beschrieben wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale, Beschaffenheit und Vorteile der vorliegenden Erfindung werden von der detaillierten Beschreibung, die unten ausgeführt ist, deutlicher, wenn sie in Zusammenhang genommen werden mit den Zeichnungen, in welchen Bezugszeichen durchweg entsprechend identifiziert sind und wobei:
  • 1 ein Blockschaltbild von einer Übertragungseinheit und einer Empfängereinheit zeigt, geeignet zum Implementieren verschiedener Aspekte und Ausführungsformen der Erfindung;
  • 2 ein Diagramm zeigt, das die verschiedenen Schritte zum Durchführen von nur-Löschung-Korrekturblockdekodierung für einen linearen Blockkode graphisch illustriert;
  • 3A und B verschiedene Schritte zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung für einen linearen Blockkode graphisch illustriert;
  • 4 ein vereinfachtes Flussdiagramm von einer Ausführungsform von einem Prozess zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung für einen linearen Blockkode zeigt; und
  • 5A und B ein detailliertes Flussdiagramm von einer Ausführungsform von einem Prozess zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung für ein (N, K) linearen Blockkode zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Die erfinderischen Blockdekodierungstechniken, die hierin beschrieben sind, können für verschiedene Kodierungsschema verwendet werden. Zur Klarheit, diese Techniken sind für ein spezielles zweidimensionales Produktkodierungsschema beschrieben, welches einen zyklischen Redundanzprüfungs-(CRC)Zeilenkode und einen linearen Blockspaltenkode beinhaltet. Ein beispielhaftes Kommunikationssystem, in dem die erfinderischen Blockdekodierungstechniken verwendet werden können, ist unten beschrieben.
  • 1 ist ein Blockdiagramm von einer Übertragungseinheit 110 und einer Empfängereinheit 150 geeignet zur Implementierung verschiedener Aspekte und Ausführungsformen von der Erfindung. In der Übertragungseinheit 110 liefert eine Datenquelle 112 Daten (zum Beispiel im Rahmen von einer bestimmten Länge) an einen äußeren Kodierer 120, der einen Blockkodierer 122 und einen CRC-Kodierer 124 beinhaltet. Der Blockkodierer 122 empfängt und kodiert jeden Block von einer bestimmten Anzahl von Datenrahmen, um einen entsprechenden blockkodierten Datenblock zu liefern. In einer Ausführungsform werden die Bits in einem Datenblock erst kopiert, um Symbole zu bilden (wobei jedes Symbol NB Bits enthält) und jede Spalte von K Symbolen in dem Datenblock mit einem bestimmten (N, K) linearen Blockkode kodiert ist, um ein entsprechendes Kodewort mit N Symbolen zu liefern. Ein blockkodierter Datenblock enthält deshalb N Zeilen von Symbolen. Für einen systematischen Blockkode sind die ersten K Zeilen die Datenzeilen und die verbleibenden (N – K) Zeilen die Paritätszeilen.
  • Für jeden von den N Rahmen in dem blockkodierten Datenblock, generiert der CRC-Kodierer 124 einen Satz von CRC-Bits basierend auf den Datenbits in dem Rahmen und hängt die CRC-Bits an das Ende von dem Rahmen. Die in jedem Rahmen enthaltenen CRC-Bits werden für die Fehlererkennung von dem Rahmen an der Empfängereinheit verwendet. Der CRC-Kodierer 124 liefert kodierte Blöcke, wobei jeder von denen in einer (horizontalen) Richtung CRC-kodiert ist und in der anderen (vertikalen) Richtung blockkodiert ist.
  • Ein Blockkodierer 122 kann jeden linearen Blockkode implementieren so wie einen Reed-Solomon-Kode (der normalerweise für Datenübertragung verwendet wird), einen Hammingkode, einen BCH (Bose, Chaudhuri und Hocquenghem) kode oder einige andere Kodes. Die erfinderischen Blockdekodierungstechniken, die hierin beschrieben werden, können für jeden linearen Blockkode verwendet werden und können vorteilhafterweise für systematische Blockkodes verwendet werden.
  • In der in 1 gezeigten Ausführungsform werden die kodierten Blöcke zu einem inneren Kodierer 130 geliefert, der einen Verschachteler 132 und einen Faltungskodierer 134 beinhaltet. Der Verschachteler 132 mischt (d.h. ändert die Reihenfolge) der Bits in jedem der kodierten Blöcke und liefert verschachtelte Bits an einen Faltungskodierer 134, der dann die Bits in Übereinstimmung mit einem bestimmten Faltungskode kodiert. Die Verschachtelung liefert Zeitvielfalt und verteilt Fehler, die in Haufen auftreten können von einem Faltungsdekoder.
  • Obwohl der innere Kodierer 130 verwendet werden kann, um zusätzliche Fehlerkorrekturfähigkeiten zu liefern, können die erfinderischen Blockdekodierungstechniken, die hierin beschrieben werden, für ein Kodierungsschema verwendet werden, dass das innere Kodieren geliefert von dem Kodierer 130 nicht beeinhaltet. Der innere Kodierer 130 ist also optional, was durch den gestrichelten Kasten dargestellt wird. Also die Daten, die an den äußeren Kodierer 120 geliefert werden, können Daten repräsentieren, die vorher mit einem bestimmten Kode (d.h. anstelle von „Rohdaten" oder Informationsbits) kodiert wurden.
  • Die kodierten Daten von dem inneren Kodierer 130 werden dann an einen Modulator/Transmitter (Mod/TMTR) 140 geliefert, der die kodierten Daten moduliert (zum Beispiel bedeckt und spreizt) um modulierte Daten zu liefern und weiter die modulierten Daten aufbereitet (zum Beispiel zu einem oder mehreren analogen Signalen konvertiert, filtert, verstärkt, hochkonvertiert und quadraturmoduliert), um ein moduliertes Signal geeignet für die Übertragung über einen (zum Beispiel drahtlosen) Kommunikationskanal zu liefern.
  • An der Empfängereinheit 150 wird das übermittelte modulierte Signal von einer Antenne 152 empfangen und an einen Empfänger/Demodulator (RCVR/Demod) 154 geliefert. Der Empfänger/Demodulator 154 bereitet (zum Beispiel filtert, verstärkt und runterkonvertiert) das empfangene Signal auf und digitalisiert das aufbearbeitete Signal, um Datenproben zu liefern. Der Empfänger/Demodulator 154 kann weiter die Datenproben verarbeiten (zum Beispiel entspreizen und entbedecken) um demodulierte Daten zu liefern.
  • In der in 1 gezeigten Ausführungsform werden die demodulierten Daten einem inneren Dekoder 160 bereitgestellt, der einen Viterbi-Dekoder 162 und einen Ent-Verschachteler 164 beinhaltet. Der Viterbi-Dekoder 162 führt Dekodierung für den gefaltenen Kode durch, der in der Übertragungseinheit 110 verwendet wird und der Ent-Verschachteler 164 ordnet die dekodierten Bits in einer Art abgestimmt zu der die von dem Verschachteler 132 durchgeführt wurde. Die entverschachtelten Daten werden dann einem äußeren Dekoder 170 bereitgestellt.
  • Der äußere Dekoder 170 beinhaltet einen CRC-Tester 172 und einen Blockdekoder 174. Für jeden empfangenen Block, der einem kodierten Block übertragen von der Übertragungseinheit entspricht, testet der CRC-Tester 172 jede Zeile von dem empfangenen Block und stellt einen Hinweis bereit, ob die Zeile zutreffend oder fehlerhaft (d.h. gelöscht) empfangen wurde. Der CRC-getestete Block wird dann dem Blockdekodierer 174 bereitgestellt, der dann eine Löschung- und Einzelfehler- oder nur-Löschung-Korrekturblockdekodierung auf dem Block durchführt, wie es im Detail später beschrieben wird. Die dekodierten Daten von dem Blockdekoder 174 werden dann einer Datensenke 176 bereitgestellt.
  • Ein Controller 180 kann verwendet werden, um verschiedene Dekodierungsschritte an der Empfängereinheit 150 zu regeln. Controller 180 kann auch verwendet werden, um einiges oder alles von dem äußerem Dekoder 170 zu implementieren. In diesem Fall können die Programmkodes und die notwendigen Daten in einem Speicher 182 gespeichert werden, der an den Controller 180 operativ gekoppelt ist.
  • 1 zeigt eine spezifische Ausführungsform von den Übertragungs- und Empfangseinheiten geeignet zur Implementierung verschiedener Aspekte und Ausführungsformen der Erfindung. Andere Übertrager- und Empfängerformen können auch verwendet werden und sind innerhalb des Schutzbereichs der Erfindung. Beispielsweise kann eine Empfangseinheit geformt sein um den CRC-Tester 172 und den Blockdekoder 174 zu beinhalten, aber nicht den inneren Dekoder 160.
  • 2 ist ein Diagramm, das die verschiedenen Schritte zum Durchführen von nur-Löschung-Korrekturblockdekodierung für einen linearen Blockkode graphisch illustriert. Ein (N, K) linearer Blockkodierer kodiert jeden „Block" von K Datensymbolen (in Übereinstimmung mit einem bestimmten Satz von Polynomen, wenn es ein zyklischer Kode ist) um ein entsprechendes Kodewort mit N Kodesymbolen bereitzustellen. Die Mindestdistanz D von dem Kode bestimmt die Löschung- und Fehlerkorrektureignung von dem Blockkode und die Kodeparameter (N, K) bestimmen die Speicheranforderung. Es ist bekannt, dass ein (N, K) Blockkode simultan T Symbolfehler und F Löschungen in einem vorgegebenen Kodewort korrigieren kann, wobei T und F der folgenden Bedingung entsprechen: (2T + F) ≤ (D – 1) Gleichung (1)
  • Die erfinderischen Blockdekodierungstechniken, die hierin beschrieben werden, können für jede Kodierungsrate verwendet werden. Der Einfachheit halber wird ein kleiner Kode mit einer Rate (8, 4) und einer Mindestdistanz D = 5 für das spezifische Beispiel verwendet, das in 2 gezeigt wird.
  • An der Übertragungseinheit wird jede Gruppe von einer bestimmten Anzahl von Datenrahmen repräsentiert durch einen K × L Informtionsblock iK×L. In einer Ausführungsform entspricht jede Zeile von dem Informationsblock einem entsprechenden Datenrahmen und beinhaltet L Symbole für alle Bits in dem Rahmen. Jedes Symbol (welches durch einen kleinen quadratischen Kasten im Informationsblock iK×L repräsentiert wird) beinhaltet NB Bits, wobei der spezifische Wert für NB abhängig ist von dem bestimmten Blockkode, der für die Verwendung ausgewählt wurde.
  • Das Blockkodieren wird durch Vormultiplizieren des Informationsblocks iK×L mit einer N×K Generatormatrix GN×K durchgeführt (Schritt 1). Die Generatormatrix kann abgeleitet sein, basierend auf dem Satz von Polynomen, der für den ausgewählten linearen Blockkode bestimmt ist. Techniken für das Bestimmen der Polynome und für das Ableiten der Generatormatrix sind bekannt und werden hier nicht beschrieben. Da jedes Symbol in dem Informationsblock und in der Generatormatrix ein mehrere-Bits Wert sein kann, werden die Elemente per Elemente Multiplikationen und Additionen für die Matrixmultiplikation über das Galois-Feld GF (2NB) durchgeführt, wobei NB die Anzahl von Bits für jedes Symbol ist. Die Multiplikation der Generatormatrix mit dem Informationsblock ergibt einen N × L-kodierten Block cN×L.
  • Für einen systematischen (N, K) Blockkode beinhaltet jedes Kodewort K Datensymbole und (N – K) Paritätssymbole, die durch lineare Kombinationen von den K Datensymbolen gebildet werden. Deshalb beinhaltet in dem in 2 gezeigten Beispiel der kodierte Block cN×L K systematische Zeilen für die K Datenzeilen in dem Informationsblock iK×L und (N – K) Paritätszeilen, die basierend auf den K Datenzeilen und der Generatormatrix generiert wurden. Jede von den L Spalten in dem kodierten Block cN×L entspricht einem entsprechenden Kodewort.
  • Wie in 1 gezeigt, wird der kodierte Block cN×L an der Übertragungseinheit weiterverarbeitet und zu der Empfangseinheit übertragen, welche dann das komplementäre Verarbeiten durchführt, um einen empfangenen Block rN×L bereitzustellen. Jedes Symbol in dem empfangenen Block rN×L entspricht einem Symbol in dem kodierten Block cN×L, aber kann fehlerhaft empfangen werden aufgrund einer Verschlechterung verursacht durch den Kommunikationskanal.
  • An der Empfangseinheit kann jede Zeile (zum Beispiel jeder Datenrahmen) in dem empfangenen Block durch einen CRC-Tester 172 getestet werden, um zu bestimmen, ob oder ob nicht die Zeile zutreffend oder fehlerhaft empfangen wurde (Schritt 2). Wenn der CRC für eine bestimmte Zeile nicht zutrifft, dann wird die ganze Zeile als unzutreffend empfangen erachtet, auch wenn der Fehler nur in einem Symbol in der Zeile liegen kann, in mehreren Symbolen oder in allen Symbolen. In dem in 2 gezeigten Beispiel sind die Zeilen 2 und 4 von dem empfangenen Block rN×L als gelöscht markiert, da der CRC für diese Zeilen nicht zutraf. Die gelöschten Zeilen sind durch Zeilen mit schattierten, quadratischen Kästchen angezeigt.
  • Unter bestimmten Umständen kann eine Zeile den CRC-Test passieren, selbst wenn sie mehrere Fehler beinhaltet. Dies kann passieren, wenn die Anzahl von Fehlern in der Zeile die Fehlererkennungseignung von dem ausgewählten CRC-Kode übersteigt und die spezifischen Werte für die Fehler derart sind, dass der CRC (zufälligerweise) zutrifft. In so einem Fall würde die Zeile (irrtümlicherweise) als zutreffend empfangen angezeigt, wenn sie tatsächlich mehrere unerkannte Symbolfehler beinhaltet. Ein Beispiel für eine derartige fehlerhafte Zeile wird durch Zeile 6 in dem empfangenen Block rN×L gezeigt, wo die drei unerkannten Symbolfehler durch drei schwarze, quadratische Kästchen angezeigt werden.
  • Eine Blockdekodierungstechnik, die nur Löschungen korrigiert (aber nicht Fehler) kann wie folgt durchgeführt werden. Zuerst werden die Zeilen von der Generatormatrix GN×K die den gelöschten Zeilen von dem empfangenen Block rN×L entsprechen auch als gelöscht markiert (Schritt 2). In dem in 2 gezeigten Beispiel sind die Zeilen 2 und 4 von der Generatormatrix GN×K als gelöscht markiert, wie durch die schattierten, quadratischen Kästchen in GN×K angezeigt.
  • Für den nächsten Schritt in der nur-Löschung-Korrekturblockdekodierung werden jegliche K ungelöschten Zeilen von dem empfangenen Block rN×L ausgewählt, um einen reduzierten empfangenen Block r'K×L zu bilden und die entsprechenden K Zeilen von der Generatormatrix GN×K werden auch ausgewählt um eine reduzierte Generatormatrix G'K×K zu bilden (Schritt 3). In dem in 2 gezeigten Beispiel werden die ersten vier ungelöschten Zeilen (d.h. Zeilen 1, 3, 5 und 6) von dem empfangenen Block rN×L ausgewählt, um den reduzierten empfangenen Block r'K×L zu bilden, und die entsprechenden Zeilen 1, 3, 5 und 6 von der Generatormatrix GN×K werden ausgewählt, um die reduzierte Generatormatrix G'K×K zu bilden. In diesem Beispiel passiert es auch einer von den ausgewählten Zeilen (d.h. Zeile 6), dass sie unerkannte Symbolfehler beinhaltet.
  • Die reduzierte Generatormatrix G'K×K wird dann invertiert, um eine invertierte (oder inverse) Generatormatrix G' –1 / K×K abzuleiten (Schritt 4). Die Matrixinversion kann in einer Art durchgeführt werden, wie sie bekannt ist. Die invertierte Generatormatrix G' –1 / K×K wird dann mit dem reduzierten empfangenen Block r'K×L multipliziert, um eine anfängliche Abschätzung von dem Informationsblock i'K×L abzuleiten (Schritt 4). Eine Abschätzung von dem Informationsblock îK×L kann dann abgeleitet werden, durch Austauschen der gelöschten, systematischen Zeilen (d.h. Zeilen 2 und 4) von dem empfangenen Block rN×L mit den entsprechenden Zeilen von dem anfänglich abgeschätzten Informationsblock i'K×L (Schritt 5).
  • Wenn die Symbole in allen von den Zeilen in dem reduzierten empfangenen Block r'K×L den zutreffenden Wert aufweisen, dann würde der abgeschätzte Informationsblock îK×L gleich dem übertragenen Informationsblock iK×L sein (d.h. îK×L = iK×L). Auf diese Art und Weise ist das Blockdekodieren geeignet, Löschungen in dem empfangenen Block rN×L zu korrigieren unter Verwendung der redundanden Paritätszeilen (d.h. Zeilen 5 und 6), um die gelöschten, systematischen Zeilen (d.h. Zeilen 2 und 4) wiederherzustellen.
  • Aber wie in dem in 2 gezeigten Beispiel, verursachen die unerkannten Symbolfehler in der letzten Zeile von dem reduziert empfangenen Block r'K×L Fehler in den entsprechenden Spalten von dem anfänglich abgeschätzten Informationsblock i'K×L. Diese Fehler werden durch die schwarzen quadratischen Kästchen in den Spalten 4, 7 und 12 von dem anfänglich abgeschätzten Informationsblock i'K×L dargestellt. Da die Zeilen 2 und 4 von dem empfangenen Block rN×L gelöscht sind, werden diese Zeilen durch die entsprechenden Zeilen 2 und 4 von dem anfänglich abgeschätzten Informationsblock i'K×L ersetzt. Wie in 2 gezeigt, wird jede von den ersetzten Zeilen so viele Symbolfehler enthalten, wie die in den fehlerhaften Zeilen. Diese Fehler würden dann dem nächsten Verarbeitungsschritt bereitgestellt.
  • Die 3A und B illustrieren graphisch die verschiedenen Schritte zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung für einen linearen Blockkode. Der Einfachheit halber verwendet die Ausführungsform in den 3A und B das selbe Beispiel, das für die 2 verwendet wurde, wobei der empfangene Block rN×L zwei gelöschte Zeilen 2 und 4 beinhaltet und eine fehlerhafte Zeile 6 (die mehrere unerkannte Symbolfehler beinhaltet).
  • Eine Blockdekodierungstechnik, die Löschungen und Einzelfehler korrigiert, kann wie folgt durchgeführt werden. Anfänglich kann jede Zeile von dem empfangenen Block rN×L durch einen CRC-Tester 172 getestet werden, um zu bestimmen, ob die Zeile zutreffend empfangen wurde, oder fehlerhaft und die Zeile wird als gelöscht markiert, wenn der CRC nicht zutrifft (Schritt 2 in 2). Eine ungelöschte systematische Zeile (zum Beispiel die erste derartige Zeile) von dem empfangenen Block rN×L wird dann als Pseudolöschungszeile markiert (Schritt 3 in 3A) und wird wie eine gelöschte Zeile für einige von den nachfolgenden Dekodierungsschritten (d.h. Schritte 4 und 5) behandelt. Anschließend werden die Zeilen von der Generatormatrix GN×K, die den gelöschten Zeilen von dem empfangenen Block rN×L entsprechen auch als gelöscht markiert (Schritt 3). In dem in den 3A und 3B gezeigten Beispiel, werden die Zeilen 1, 2 und 4 von der Generatormatrix GN×K als gelöscht markiert, wie durch die schattierten, quadratischen Kästchen angezeigt.
  • Für den nächsten Schritt der Löschung- und Einzelfehler-Korrekturblockdekodierung werden jegliche K ungelöschten Zeilen von dem empfangenen Blocke rN×L ausgewählt, um den reduzierten empfangenen Block r'K×L zu bilden und die entsprechenden K Zeilen von der Generatormatrix GN×K werden auch ausgewählt, um die reduzierte Generatormatrix G'K×K zu bilden (Schritt 4). Für die beispielhafte Ausführungsform, die in den 3A und 3B gezeigt wird, werden die ersten vier ungelöschten Zeilen (d.h. Zeilen 3, 5, 6 und 7) von dem empfangenen Block rN×L ausgewählt, um den reduzierten empfangenen Block r'K×L auszuwählen und die entsprechenden Zeilen 3, 5, 6 und 7 von der Generatormatrix GN×K werden ausgewählt, um die reduzierte Generatormatrix G'K×K zu bilden. Für dieses Beispiel passiert es erneut, dass eine von den ausgewählten Zeilen (d.h. Zeile 6) unerkannte Symbolfehler beinhaltet.
  • Die reduzierte Generatormatrix G'K×K wird dann invertiert, um eine invertierte Generatormatrix G' –1 / K×K abzuleiten (Schritt 5). Anschließend wird die invertierte Generatormatrix G' –1 / K×K mit dem reduzierten empfangenen Block r'K×L multipliziert, um den anfänglich abgeschätzten Informationsblock i'K×L abzuleiten (Schritt 5).
  • Für den nächsten Schritt in der Blockdekodierung wird die Pseudolöschungszeile (d.h. Zeile 1) mit ihrer entsprechenden Zeile in dem anfänglich abgeschätzten Informationsblock i'K×Lverglichen (Schritt 6). Aufgrund der Matrixmultiplikation ergibt jeder Symbolfehler im reduzierten empfangenen Block r'K×L eine komplette Spalte von Symbolfehlern in dem anfänglich abgeschätzten Informationsblock i'K×L. Deshalb, wenn die Pseudolöschungszeile Symbol per Symbol mit der entsprechenden Zeile in dem anfänglich abgeschätzten Informationsblock i'K×L verglichen wird, werden Fehler (d.h. unpassende Symbole) in den Spalten 4, 7 und 12 erkannt, da die Symbole an diesen Orten nicht passen.
  • Ein Kodewort entsprechend zu einer Spalte, die ein unpassendes Symbol enthält wird dann ausgewählt (Schritt 6). Für die beispielhafte Ausführungsform die in den 3A und 3B gezeigt wird, wird das Kodewort entsprechend zu der Spalte, die das erste unpassende Symbol enthält (d.h. Spalte 4) ausgewählt. Die Berechnung wird dann durchgeführt, um den Symbolfehler in dem ausgewählten Kodewort örtlich zu bestimmen. Die Fehlerortsbestimmung kann bestimmt werden basierend auf verschiedenen bekannten Blockdekodierungstechniken. Zum Beispiel für einen Reed-Solomon-Kode werden anfänglich von den N Symbolen Syndrome in dem Kodewort berechnet, Koeffizienten von einem Fehlerortsbestimmungspolynom σ (×) werden dann von den Syndromen berechnet und Fehlerortsbestimmer können dann von diesen Koeffizienten berechnet werden. Für die beispielhafte Ausführungsform die in den 3A und 3B gezeigt wird, ist der Symbolfehler an der sechsten Symbolposition in dem Kodewort angeordnet.
  • In dem nächsten Schritt wird die gesamte Zeile, wo der Symbolfehler angeordnet ist (d.h. Zeile 6) als eine gelöschte Zeile markiert und die Pseudolöschungszeile (d.h. Zeile 1) wird als eine ungelöschte Zeile markiert (Schritt 7). Die nachfolgende Blockdekodierung kann dann durchgeführt werden, wie es oben in 2 beschrieben ist. Besonders jegliche K ungelöschten Zeilen von dem empfangenen Block rN×L (d.h. Zeilen 1, 3, 5 und 7) können ausgewählt werden, um einen neuen reduzierten empfangenen Block r''K×L zu bilden und die entsprechenden K Zeilen von der Generatormatrix GN×K werden auch ausgewählt, um eine neue reduzierte Generatormatrix G''K×K zu bilden. Wie in 3 gezeigt ist, wird die Zeile mit den (vorher unerkannten) Symbolfehlern (d.h. Zeile 6) als eine gelöschte Zeile markiert und wird nicht für die Verwendung ausgewählt.
  • Die neue reduzierte Generatormatrix G''K×K wird dann invertiert, um eine invertierte Generatormatrix G'' –1 / K×K abzuleiten (Schritt 8). Die invertierte Generatormatrix G'' –1 / K×K wird dann mit dem reduzierten empfangenen Block r''K×L multipliziert, um eine neue anfängliche Abschätzung von dem Informationsblock i''K×L abzuleiten. Die Abschätzung von dem Informationsblock îK×L kann dann abgeleitet werden durch Ersetzen der gelöschten systematischen Zeilen (d.h. Zeilen 2 und 4) von dem empfangenen Block rN×L mit den entsprechenden Zeilen von dem neuen anfänglich abgeschätzten Informationsblock i''K×L (Schritt 9).
  • Da die Symbole in allen von den Zeilen von dem neuen reduzierten empfangenen Block r''K×L zutreffende Werte sind, ist der abgeschätzte Informationsblock îK×L gleich dem übertragenen Informationsblock iK×L (d.h. îK×L = iK×L). In diesem Beispiel ist das Löschung- und Einzelfehler-Korrekturblockdekodieren geeignet, zwei gelöschte Zeilen und eine Einzelfehlerzeile in dem empfangenen Block rN×L zu korrigieren durch Verwendung der redundanten Paritätszeilen (d.h. Zeilen 5 und 7) um die gelöschten systematischen Zeilen (d.h. Zeilen 2 und 4) wiederherzustellen.
  • Grundsätzlich wird das Löschung- und Einzelfehler-Korrekturblockdekodieren erzielt durch (1) die Verwendung von redundanten Paritätszeilen, um eine Abschätzung für eine ungelöschte systematische Zeile abzuleiten, (2) Vergleichen der ungelöschten systematischen Zeile mit ihrer Abschätzung um den Ort von jeglichen unpassenden Symbolen (oder Fehlern) zu bestimmen, (3) örtliches Bestimmen von einem Symbolfehler in einem Kodewort (oder Spalte) das ein unpassendes Symbol beinhaltet, (4) Markieren der gesamten Zeile, die den Symbolfehler als gelöscht enthält und (5) Durchführen von Blockdekodieren für die systematische Zeilen, basierend auf den ungelöschten Zeilen von dem empfangenen Blockkode.
  • Die Löschung- und Einzelfehler-Korrekturblockdekodierungstechnik der vorliegenden Erfindung ist weniger rechenintensiv als konventionelle Dekodierungstechniken (teilweise weil die Fehlerortsbestimmung für nur ein Kodewort durchgeführt wird, wenn ein unerkannter Symbolfehler nachfolgend erkannt wird mit der Pseudolöschungszeile). Die Pseudolöschungszeile kann deshalb verwendet werden, um das exakte Kodewort (oder die exakte Spalte in einem zweidimensionalen Block) genau festzulegen, wo ein unerkannter Symbolfehler örtlich bestimmt wurde und der exakte Ort von dem Symbolfehler dem Kodewort (oder die exakte Zeile von dem zweidimensionalen Block) kann bestimmt werden durch Durchführen von Blockfehlerortsbestimmung auf dem Kodewort. Die Zeile, die den (vorher unerkannten) Symbolfehler beinhaltet, wird dann als gelöscht markiert und nur-Löschung-Korrekturblockdekodierung kann auf dem empfangenen Block durchgeführt werden.
  • Die Schritte 3 bis 6 in 3A bestimmen wirksam die bestimmte Spalte, wo ein unbestimmter Symbolfehler gefunden werden kann. Andere Schema können auch verwendet werden, um die Fehlerspalte zu bestimmen und dies ist innerhalb des Schutzbereichs der Erfindung.
  • Außerdem muss in Schritt 6 die Pseudolöschung nicht für alle auf einmal (d.h. für die gesamte Zeile) abgeleitet werden. Stattdessen kann die Pseudolöschung jeweils für ein Symbol nach dem anderen abgeleitet werden und mit dem entsprechenden Symbol in der empfangenen Pseudolöschungszeile verglichen werden. Auf diese Weise, falls ein Fehler in einer von den ersten Spalten geortet ist, müssen die übrig gebliebenen Pseudolöschungen in der Zeile nicht mehr abgeleitet werden.
  • Die Ableitung von einer anfänglichen Abschätzung von dem Informationsblock i'K×L und die Bildung von einem abgeschätzten Informationsblock ÎK×L sind konzeptionelle Schritte. Diese Schritte sind für die Beispiele in den 3A und 3B gezeigt, um ein besseres Verständnis von der Blockdekodierungstechnik bereitzustellen. Aber in der Praxis werden nur die Zeilen von i'K×L abgeleitet, die in dem original empfangenen Block gelöscht sind.
  • Da nur (K + 1) gute Zeilen (oder CRC-getestete Rahmen) in einem empfangenen Block benötigt werden, um Löschung- und Einzelfehler-Dekodierung durchzuführen, ist es möglich, die Forderseite von der Empfangseinheit (zum Beispiel Empfänger/Demodulator 154, Viterbi-Dekoder 162, Ent-Verschachteler 164 und CRC-Tester 172 in 1) auszuschalten, sobald (K + 1) gute Zeilen empfangen wurden. Dies spart Energie in der Empfangseinheit.
  • 4 ist ein vereinfachtes Flussdiagramm von einem Prozess 400 zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodieren für einen linearen Blockkode gemäß einer Ausführungsform der vorliegenden Erfindung. Ein Blockkode der eine Anzahl von Kodewörtern aufweist wird anfänglich empfangen und gelöschte Zeilen in dem empfangenen Block werden bestimmt, in Schritt 412. Die gelöschten Zeilen können durch Durchführung des CRC-Tests für jede Zeile von dem empfangenen Block bestimmt werden, oder durch einige andere Techniken.
  • Ein Kodewort, das einer Spalte von dem empfangenen Block entspricht, das einen unerkannten Symbolfehler enthält, wird dann identifiziert, in Schritt 414. Dieser unerkannte Symbolfehler ist einer der nicht in einer gelöschten Zeile von dem empfangenen Block enthalten ist. Die Spalte kann unter Verwendung der Pseudolöschungszeile identifiziert werden, wie es oben beschrieben ist, oder durch einige andere Mittel. Der Ort von dem Symbolfehler in dem Kodewort wird dann bestimmt (zum Beispiel unter Verwendung jeglicher bekannten Technik), in Schritt 416. Die Zeile von dem empfangenen Block, die den Symbolfehler enthält, wird dann als gelöschte Zeile markiert, in Schritt 418. Das Blockdekodieren kann dann für den empfangenen Block mit der neu markierten gelöschten Zeile die den Symbolfehler enthält, durchgeführt werden, in Schritt 420.
  • Die 5A und 5B zeigen ein detailliertes Flussdiagramm von einem Prozess 500 zum Durchführen von Löschung- und Einzelfehler-Korrekturblockdekodierung für einen (N, K) linearen Blockkode gemäß einer Ausführungsform der vorliegenden Erfindung. Ein Blockkode, der eine Anzahl von (L) Kodewörtern enthält, wird anfänglich empfangen und gelöschte Zeilen in dem empfangenen Block werden bestimmt, in Schritt 512.
  • Eine Bestimmung wird dann durchgeführt, ob die Anzahl von gelöschten Zeilen in dem empfangenen Block größer ist als (D – 1), in Schritt 514. Wie oben in Gleichung (1) gezeigt wurde, kann ein richtig gebildeter Blockkode geeignet sein, bis zu (D – 1) gelöschte Symbole in einem Kodewort zu korrigieren. Deshalb, falls die Anzahl der gelöschten Zeilen (D – 1) überschreitet, dann ist eine Korrektur für alle der gelöschten Zeilen nicht möglich, da die Kodedistanz überschritten wird, wie dies in Schritt 516 angezeigt ist. Dann wird der Prozess beendet.
  • Andernfalls, wenn die Anzahl der gelöschten Zeilen gleich oder kleiner als (D – 1) ist, dann wird eine Bestimmung durchgeführt, ob die Anzahl der gelöschten Zeilen in dem empfangenen Block größer ist als (D – 3), in Schritt 518. Wie oben im Zusammenhang mit Gleichung (1) erläutert, kann ein richtig gebildeter Blockkode geeignet sein, bis zu (D – 3) gelöschte Symbole und ein Fehlersymbol in einem Kodewort zu korrigieren. Deshalb, falls die Anzahl der gelöschten Zeilen gleich (D – 2) oder (D – 1) ist, dann ist nur-Löschungkorrektur für all die gelöschten Zeilen möglich und kann durch Starten mit Schritt 522 durchgeführt werden.
  • Andernfalls, falls die Anzahl von gelöschten Zeilen gleich oder weniger als (D – 3) ist, dann wird eine Bestimmung durchgeführt, ob die Anzahl von gelöschten systematischen Zeilen in dem empfangenen Block größer ist als (K – 1), in Schritt 520. Wenn eine von den systematischen Zeilen als Pseudolöschungszeile verwendet werden soll, um die Spalte von einem unerkannten Symbolfehler örtlich zu bestimmen und falls keine ungelöschte systematische Zeile verfügbar ist zur Verwendung als Pseudolöschungszeile, dann ist die nur-Löschungkorrektur für all die gelöschten Zeilen immer noch möglich und kann erneut durchgeführt werden durch Starten mit Schritt 522.
  • Andernfalls, wenn die Anzahl der gelöschten Zeilen gleich ist oder kleiner als (D – 3) und mindestens eine ungelöschte systematische Zeile verfügbar ist, dann kann das Löschung- und Einzelfehler-Korrekturblockdekodieren auf dem empfangenen Block durchgeführt werden, startend ab Schritt 532. Grundsätzlich kann Löschung- und Einzelfehler-Korrekturblockdekodieren durchgeführt werden, wenn immer möglich und nur-Löschung-Korrekturblockdekodieren kann durchgeführt werden, wenn möglich und wenn Löschung- und Einzelfehler-Korrekturblockdekodierung nicht durchgeführt werden kann.
  • Um nur-Löschung-Korrekturblockdekodierung durchzuführen wird eine reduzierte Generatormatrix G'K×K anfänglich gebildet, durch Auswählen von K Zeilen von der Generatormatrix GN×K entsprechend zu jeglichen K ungelöschten Zeilen von dem empfangenen Block rN×L, in Schritt 522. Die reduzierte Generatormatrix wird dann invertiert, in Schritt 524. Die gelöschten systematischen Zeilen von dem empfangenen Block werden dann von den entsprechenden Zeilen von einer anfänglichen Abschätzung von dem Informationsblock i'K×L abgeleitet, welcher abgeleitet ist durch Multiplizieren der inversen Generatormatrix G' –1 / K×K mit einem reduzierten empfangenen Block r'K×L gebildet durch K entsprechende ungelöschte Zeilen von dem empfangenen Block rN×L, in Schritt 526. Wenn dort keine unerkannten Symbolfehler in den Zeilen in dem reduzierten empfangenen Block r'K×L sind, dann würde der anfänglich abgeschätzte Informationsblock i'K×L Korrekturen für all die gelöschten systematischen Zeilen in dem empfangenen Block beinhalten. Das nur-Löschung-Korrekturblockdekodieren endet dann.
  • Um Löschung- und Einzelfehler-Korrekturblockdekodieren durchzuführen, wird der Zeilenort von einem unbestimmten Symbolfehler in dem empfangenen Block anfänglich bestimmt. Dies kann wie folgt erzielt werden. Zuerst wird eine ungelöschte systematische Zeile (zum Beispiel die erste derartige Zeile in dem empfangenen Block) als Pseudolöschungszeile ausgewählt, in Schritt 532. Diese Zeile wird in den folgenden Schritten wie eine gelöschte Zeile behandelt, um den unerkannten Symbolfehlerort zu bestimmen. Eine reduzierte Generatormatrix G'K×K wird dann gebildet durch auswählen von K Zeilen von der Generatormatrix GN×K entsprechend zu jeglichen K ungelöschten Zeilen von dem empfangenen Block rN×L, in Schritt 534. Die reduzierte Generatormatrix wird dann invertiert, in Schritt 536. Eine Abschätzung von der Pseudolöschungszeile wird dann abgeleitet durch Multiplizieren der inversen Generatormatrix G' –1 / K×K mit einem reduzierten empfangenen Block r'K×L, gebildet durch K entsprechende ungelöschte Zeilen von dem empfangenen Block rN×L, in Schritt 538. Da nur die Abschätzung von der Pseudolöschungszeile benötigt wird, kann die Matrixmultiplikation von G' –1 / K×K mit r'K×L durchgeführt werden für nur eine Zeile von G' –1 / K×K (und nicht die gesamte Matrix) gegenüber allen Spalten von r'K×L.
  • Die Pseudolöschungszeile wird dann mit ihrer Abschätzung verglichen, in Schritt 540. Der Vergleich kann Symbol per Symbol durchgeführt werden bis ein erstes unpassendes Symbol erkannt wird. Eine Bestimmung wird dann durchgeführt ob oder ob nicht unpassende Symbole der Pseudolöschungszeile vorhanden sind, in Schritt 542. Falls dort keine unpassenden Symbole sind, dann sind da auch keine unbestimmten Symbolfehler in dem empfangenen Block (oder da ist mehr als ein Symbolfehler in einer einzigen Spalte) und das Verfahren geht weiter mit Schritt 526, um die gelöschten systematischen Zeilen abzuleiten.
  • Andernfalls, falls da mindestens ein unpassendes Symbol in der Pseudolöschungszeile ist, wie in Schritt 542 bestimmt, dann sind da unerkannte Symbolfehler vorhanden in dem empfangenen Block, und der Zeilenort von diesen Fehlern wird als nächstes bestimmt in Schritt 544. Dies kann erzielt werden durch Identifizierung des Ortes von einem unpassenden Symbol (zum Beispiel das erste unpassende Symbol) in der Pseudolöschungszeile, Wiederherstellen des Kodeworts (oder der Spalte von dem empfangenen Block) das das unpassende Symbol enthält und Durchführen von Fehlerortsbestimmung an diesem Kodewort, basierend auf einer beliebigen bekannten Technik. Der Symbolfehler in dem Kodewort ist deshalb ortsbestimmt und die gesamte Zeile von dem empfangenen Block, die diesen Symbolfehler beinhaltet, wird markiert als gelöschte Zeile, in Schritt 546.
  • Eine Bestimmung wird dann durchgeführt ob oder ob nicht die Pseudolöschungszeile die ist, mit dem Symbolfehler, in Schritt 548. Falls die Antwort ja ist, wurde die Fehlerzeile bereits als Pseudolöschung ausgeschlossen, wenn der reduzierte empfangene Block und die reduzierte Generatormatrix gebildet wurden. Deshalb ist G' –1 / K×K zutreffend und r'K×L beinhaltet keine unerkannten Fehler. Das Verfahren geht dann weiter mit Schritt 526, wo die gelöschten systematischen Zeilen abgeleitet werden. Andernfalls wird dann eine neue reduzierte Generatormatrix G''K×K gebildet durch Auswählen von K Zeilen von der Generatormatrix GN×K entsprechend zu jeglichen K Zeilen von dem empfangenen Block rN×L die noch ungelöscht sind, in Schritt 550. Die neue reduzierte Generatormatrix wird dann invertiert, in Schritt 552.
  • Das Verfahren geht dann weiter mit Schritt 526, wo die gelöschten systematischen Zeilen von dem empfangenen Block abgeleitet werden von den entsprechenden Zeilen von der neuen anfänglichen Abschätzung von dem Informationsblock i''K×L, welcher abgeleitet ist durch Multiplizieren der neuen inversen Generatormatrix G'' –1 / K×K mit einem neuen reduzierten empfangenen Block r''K×L gebildet durch K entsprechende ungelöschte Zeilen von dem empfangenen Block rN×L.
  • Verschiedene Modifizierung von dem Verfahren welches in 5 gezeigt wird, können gemacht werden. Zum Beispiel ist es möglich, die Schritte 532 bis 546 mehrere Male zu wiederholen, um mehrere Fehlerzeilen zu bestimmen.
  • Die Blockdekodierungstechnik von der Erfindung kann vorteilhafterweise verwendet werden für einen verketteten Kode, bestehend aus einem Fehlererkennungskode und einem Blockkode. Die Fehlererkennungskodierung kann durchgeführt werden in einer (zum Beispiel horizontalen) Dimension von einem Informationsblock und die Blockkodierung kann durchgeführt werden in der anderen (zum Beispiel vertikalen) Dimension von dem Informationsblock. Die erfinderische Blockdekodierungstechnik kann verwendet werden, um Fehler zu identifizieren und Orte von Fehlern zu bestimmen, bei denen die Fehlerbestimmungsdekodierung fehlschlägt diese zu fassen und die Symbolfehler von dem Blockdekodierungsverfahren zu entfernen. Deshalb kann die erfinderische Blockdekodierungstechnik Probleme verbessern, die durch die Fehler verursacht werden, Fehler zu bestimmen, die nicht durch konventionelle Blockdekodierungstechnik gelöst werden können, die nur-Löschung und nicht Fehler korrigieren können.
  • Das erfinderische Blockdekodieren, wie es hierin beschrieben ist, ist bezüglich der Rechenzeit effizient und kann gut geeignet sein für eine softwarebasierte Implementierung, die auf einem Mikroprozessor ausgeführt wird. Um die rechenmäßige Effizienz größenmäßig zu bestimmen, wird die Anzahl von Multiplizieranhäufungsvorgängen durchgeführt von einigen von den Schritten in den Flussdiagrammen in 5A und 5B unten bereitgestellt:
    Schritte Anzahl der Multiplizieranhäufungsvorgänge
    524, 536, 552, K P 2 / sys (für jeden Schritt)
    538 K L
    544 (P + 2)(N – 1) + P(P + 1) + 1 (für Reed-Solomon-Kode)
    526 K L Psys
    wobei
    N die Kodewortlänge ist;
    K die Anzahl von Informationssymbolen in einem Kodewort ist;
    R die Anzahl von Paritätssymbolen ist (d.h. R = N – K);
    L die Anzahl der Kodewörter pro kodiertem Block ist;
    P die Anzahl der gelöschten Zeilen in dem empfangenen Block ist; und
    Psys die Anzahl der gelöschten systematischen Zeilen in dem empfangenen Block ist.
  • Die erfinderische Blockdekodierungstechnik, die hierin beschrieben wird, kann verwendet werden für verschiedene Kommunikations- und Datenübertragungssysteme. Diese Technik kann beispielsweise vorteilhaft verwendet werden für drahtlose Kommunikationssysteme wie zum Beispiel CDMA, FDMA und TDMA-Systeme. Darüber hinaus können die Kodierungstechniken, die hierin beschrieben werden, implementiert werden in einem Terminal (zum Beispiel einer drahtlosen Einrichtung wie beispielsweise ein cellulares Telefon) für die Abwärtsverbindung (d.h. die Vorwärtsverbindung) oder an einer Basisstation oder an einem Zugangspunkt für die Aufwärtsverbindung (d.h. die Rückwärtsverbindung) in einem drahtlosen Kommunikationssystem.
  • Wie oben beschrieben, können die erfinderischen Blockdekodierungstechniken, die hierin beschrieben sind, mit Hilfe von verschiedenen Mitteln implementiert werden. Beispielsweise können diese Techniken in Hardware, Software oder in einer Kombination hiervon implementiert werden. Für eine Hardwareimplementierung können die Elemente, die verwendet werden um einiges oder alles von dem Blockdekodieren zu implementieren implementiert werden in eine oder mehrere anwendungsspezifische integrierte Schaltung (ASICs), digitale Signalprozessoren (DSPs), digitale Signalprozessoreinheiten (DSPDs), programmierbare Logikeinheiten (PLDs), Feldprogrammierbare Gatteranordnungen (FPGAs), Prozessoren, Controller, Mikrocontroller, Mikroprozessoren, anderen elektronischen Einheiten bestimmt die hierin beschriebenen Funktionen durchzuführen oder eine Kombination davon. Die Hardware (zum Beispiel ein ASIC oder ein DSP) kann eine oder mehrere funktionale Einheiten beinhalten, die gemeinsam die oben beschriebene Verarbeitung durchführen, um das erfinderische Blockdekodieren zu implementieren. Zum Beispiel eine Einheit kann bereitgestellt werden, um die teilweise Fehlererkennung (zum Beispiel CRC-Tester 172) durchzuführen, eine andere Einheit kann bereitgestellt werden, um die spaltenweise Blockdekodierung (zum Beispiel Blockdekoder 174) durchzuführen usw..
  • Für eine Softwareimplementierung können die erfinderischen Blockdekodierungstechniken mit Modulen (zum Beispiel Verfahren, Funktionen usw.) implementiert werden, die die hierin beschriebenen Funktionen durchführen. Die Softwarekodes können in einer Speichereinheit (zum Beispiel Speicher 182 in 1) gespeichert werden und ausgeführt durch einen Prozessor (zum Beispiel Controller 180). Die Speichereinheit kann implementiert werden in den Prozessor oder außerhalb des Prozessors, wobei in dem Fall der Speicher kommunikativ an den Prozessor gekoppelt sein kann über verschiedene Mittel, wie sie bekannt sind.
  • Die vorgehende Beschreibung von den offenbarten Ausführungsformen ist bereitgestellt um dem Fachmann zu ermöglichen, die Erfindung zu machen oder zu verwenden. Verschiedene Modifizierungen von diesen Ausführungsformen sind dem Fachmann leicht ersichtlich und die allgemeinen Prinzipien die hierin beschrieben werden können auch an anderen Ausführungsformen angewendet werden ohne den Schutzbereich der Erfindung zu verlassen. Deshalb ist es nicht beabsichtigt, die vorliegende Erfindung auf die hierin gezeigten Ausführungsformen zu beschränken, aber es wird der Schutzbereich bewilligt, der konsistent ist mit den angehängten Ansprüchen.

Claims (24)

  1. Ein Verfahren zum Durchführen von Blockdekodierung an einem empfangenen Block von Symbolen, der vorher mit einem (N, K) linearen Blockkode spaltenweise kodiert wurde und mit einem Fehlererkennungskode zeilenweise kodiert wurde, aufweisend: Erkennen eines Kodeworts entsprechend einer Spalte von dem empfangenen Block, wo ein Symbolfehler unerkannt von dem Fehlererkennungskode angeordnet ist; Bestimmen eines Ortes von dem unerkannten Symbolfehler in dem Kodewort; Markieren einer Zeile von dem empfangenen Block enthaltend den unerkannten Symbolfehler als eine gelöschte Zeile; und Durchführen von Blockdekodierung für den empfangenen Block mit der markierten, gelöschten Zeile.
  2. Das Verfahren von Anspruch 1, weiter aufweisend: Herleiten einer Abschätzung von einer ungelöschten, systematischen Zeile von dem empfangenen Block; Vergleichen der ungelöschten, systematischen Zeile mit ihrer Abschätzung; und Erkennen eines Ortes von einem unpassenden Symbol zwischen der ungelöschten, systematischen Zeile und ihrer Abschätzung und wobei das Kodewort identifiziert wird als entsprechend zu der Spalte, die das unpassende Symbol enthält.
  3. Das Verfahren von Anspruch 2, wobei die Abschätzung von der ungelöschten, systematischen Zeile hergeleitet wird durch Markieren der ungelöschten, systematischen Zeile als eine gelöschte Zeile; Bilden eines reduzierten empfangenen Blocks aufweisend K ungelöschte Zeilen von dem empfangenen Block; und Multiplizieren einer invertierten Generatormatrix für die K ungelöschten Zeilen mit dem reduzierten empfangenen Block.
  4. Das Verfahren von Anspruch 1, wobei der Ort von dem unerkannten Symbolfehler in dem Kodewort bestimmt ist durch Durchführen von Fehlerortsbestimmung an dem Kodewort basierend auf einem bestimmten Blockdekodierungsschema.
  5. Das Verfahren von Anspruch 1, wobei das Durchführen der Blockdekodierung beinhaltet Bilden eines reduzierten empfangenen Blocks aufweisend K ungelöschte Zeilen von dem empfangenen Block; Bilden einer reduzierten Generatormatrix aufweisend K Zeilen von einer Generatormatrix entsprechend den K ungelöschten Zeilen; Invertieren der reduzierten Generatormatrix; und Multiplizieren der invertierten Generatormatrix mit dem reduzierten empfangenen Block.
  6. Das Verfahren von Anspruch 1 oder 2, weiter aufweisend: Markieren jeder Zeile von dem empfangenen Block als entweder eine gelöschte Zeile oder als eine ungelöschte Zeile bis mindestens (K + 1) ungelöschte Zeilen gefunden wurden.
  7. Das Verfahren von Anspruch 6, wobei jede Zeile als eine gelöschte Zeile oder als eine ungelöschte Zeile markiert wird, basierend auf einem Ergebnis eines zyklischen Redundanzprüfungs-(Cyclic Redundancy Check, CRC)Tests.
  8. Das Verfahren von Anspruch 1, weiter aufweisend: Bestimmen der Anzahl der gelöschten Zeilen in dem empfangenen Block.
  9. Das Verfahren von Anspruch 8, weiter aufweisend: Durchführen einer nur-Löschung-Korrektur-Blockdekodierung wenn die Anzahl der gelöschten Zeilen gleich (D – 2) oder (D – 1) ist.
  10. Das Verfahren nach Anspruch 8, weiter aufweisend: Durchführen von Löschung- und Fehler-Korrektur-Blockdekodierung, wenn die Anzahl der gelöschten Zeilen kleiner oder gleich (D – 3) ist.
  11. Das Verfahren nach Anspruch 10, weiter aufweisend: Bestimmen der Anzahl der gelöschten systematischen Zeilen in dem empfangenen Block; und Durchführen von Löschung- und Fehler-Korrektur-Blockdekodierung wenn die Anzahl von den gelöschten systematischen Zeilen kleiner oder gleich (K – 1) ist.
  12. Das Verfahren von Anspruch 8, weiter aufweisend: Verkünden eines Fehlers, wenn die Anzahl der gelöschten Zeilen (D – 1) überschreitet.
  13. Das Verfahren von Anspruch 1, wobei der (N, K) lineare Blockkode ein Reed-Solomon-Kode ist.
  14. Ein Computerprogrammprodukt verkörpert auf einem computerlesbaren Medium zum Speichern des Kodes von dem Programm, zum Durchführen von Blockdekodierung an einem empfangenen Block von Symbolen, die vorher mit einem (N, K) linearen Blockkode spaltenweise kodiert wurden und mit einem Fehlererkennungskode zeilenweise kodiert wurden, aufweisend Kodes zum Ausführen der Verfahrensschritte gemäß einem der Ansprüche 1, 2, 3 oder 5, wenn das Programm auf einem Computer betrieben wird.
  15. Eine Dekodierungsvorrichtung aufweisend: Mittel zum Markieren jeder Zeile von einem empfangenen Block, der vorher mit einem (N, K) linearen Blockkode spaltenweise kodiert wurde und mit einem Fehlererkennungskode zeilenweise kodiert wurde, entweder als gelöschte Zeile oder als ungelöschte Zeile bis mindestens (K + 1) ungelöschte Zeilen gefunden wurden; Mittel zum Erkennen eines Kodeworts entsprechend einer Spalte von dem empfangenen Block wo ein Symbolfehler unerkannt von dem Fehlererkennungskode angeordnet ist; Mittel zum Bestimmen eines Ortes, von dem unerkannten Symbolfehler in dem Kodewort; Mittel zum Markieren einer Zeile von dem empfangenen Block enthaltend den unerkannten Symbolfehler als eine gelöschte Zeile; und Mittel zum Durchführen von Blockdekodierung für den empfangenen Block mit der markierten, gelöschten Zeile.
  16. Die Dekodierungsvorrichtung von Anspruch 15, weiter aufweisend: Mittel zum Herleiten einer Abschätzung von einer ungelöschten, systematischen Zeile von dem empfangenen Block; Mittel zum Vergleichen der ungelöschten, systematischen Zeile mit ihrer Abschätzung; und Mittel zum Erkennen eines Ortes von einem unpassenden Symbol zwischen der ungelöschten, systematischen Zeile und ihrer Abschätzung, und wobei das Kodewort mit dem unerkannten Symbolfehler als entsprechend zu der Spalte die das unpassende Symbol enthält erkannt wird.
  17. Die Dekodierungsvorrichtung von Anspruch 16, wobei die Mittel zum Durchführen von Blockdekodierung umfassen: Mittel zum Markieren der ungelöschten, systematischen Zeile als eine gelöschte Zeile; Mittel zum Bilden eines reduzierten empfangenen Blocks, aufweisend K ungelöschte Zeilen von dem empfangenen Block; und Mittel zum Multiplizieren einer invertierten Generatormatrix für die K ungelöschten Zeilen mit dem reduzierten empfangenen Block.
  18. Die Dekodierungsvorrichtung von Anspruch 15, wobei die Mittel zum Durchführen von Blockdekodierung beinhalten: Mittel zum Bilden eines reduzierten empfangenen Blocks, aufweisend enthaltend K ungelöschte Zeilen von dem empfangenen Block; Mittel zum Bilden einer reduzierten Generatormatrix aufweisend K Zeilen von einer Generatormatrix entsprechend den K ungelöschten Zeilen; Mittel zum Invertieren der reduzierten Generatormatrix; und Mittel zum Multiplizieren der invertierten Generatormatrix mit dem reduzierten empfangenen Block.
  19. Die Dekodierungsvorrichtung von Anspruch 15, wobei das Mittel zum Markieren jeder Zeile geeignet ist, jede Zeile als eine gelöschte Zeile oder als eine ungelöschte Zeile zu markieren, basierend auf einem Ergebnis eines zylindrischen Redundanzprüfungs-(Cyclic Redundancy Check, CRC)tests.
  20. Die Dekodierungsvorrichtung von Anspruch 15, wobei der (N, K) lineare Blockkode ein Reed-Solomon-Kode ist.
  21. Die Dekodierungsvorrichtung von Anspruch 15, aufweisend eine digitale Signalprozessoreinheit (Digital Signal Processor Device, DSPD), wobei das Mittel zum Markieren jeder Zeile in einer ersten Einheit angeordnet ist und das Mittel zum Erkennen, das Mittel zum Bestimmen, das Mittel zum Markieren einer Zeile und das Mittel zum Durchführen in einer zweiten Einheit angeordnet sind.
  22. Die Dekodierungsvorrichtung von Anspruch 15, aufweisend eine digitale Signalprozessoreinheit (Digital Signal Processor Device, DSPD) und einen Speicher kommunikativ gekoppelt mit der digitalen Signalprozessoreinheit.
  23. Eine Empfangseinheit in einem drahtlosen Kommunikationssystem, aufweisend: einen Empfänger geeignet ein empfangenes Signal zu verarbeiten und Datenproben bereitzustellen; einen Demodulator geeignet zum Verarbeiten der Datenproben, um einen empfangenen Block von Symbolen bereitzustellen; und eine Dekodiervorrichtung von Anspruch 15.
  24. Die Empfangseinheit von Anspruch 23, weiter aufweisend: einen Dekodierer geeignet zum Empfangen und zum Dekodieren demodulierter Daten von dem Demodulator in Übereinstimmung mit einem be stimmten Faltungsdekodierungsschema, um den empfangenen Block von Symbolen bereitzustellen.
DE60206419T 2001-12-04 2002-12-03 Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes Expired - Lifetime DE60206419T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/010,199 US6986092B2 (en) 2001-12-04 2001-12-04 Erasure-and-single-error correction decoder for linear block codes
US10199 2001-12-04
PCT/US2002/038667 WO2003049294A2 (en) 2001-12-04 2002-12-03 Erasure and single error correction decoder for linear product codes

Publications (2)

Publication Number Publication Date
DE60206419D1 DE60206419D1 (de) 2006-02-09
DE60206419T2 true DE60206419T2 (de) 2006-07-06

Family

ID=21744452

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60206419T Expired - Lifetime DE60206419T2 (de) 2001-12-04 2002-12-03 Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes

Country Status (9)

Country Link
US (1) US6986092B2 (de)
EP (1) EP1464121B1 (de)
JP (1) JP4152887B2 (de)
CN (1) CN100438346C (de)
AT (1) ATE305668T1 (de)
AU (1) AU2002359587A1 (de)
DE (1) DE60206419T2 (de)
ES (1) ES2248631T3 (de)
WO (1) WO2003049294A2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7260764B2 (en) 2002-11-26 2007-08-21 Qualcomm Incorporated Multi-channel transmission and reception with block coding in a communication system
US20050009523A1 (en) * 2003-07-07 2005-01-13 Nokia Corporation Protocol using forward error correction to improve handover
US7318187B2 (en) * 2003-08-21 2008-01-08 Qualcomm Incorporated Outer coding methods for broadcast/multicast content and related apparatus
US8804761B2 (en) * 2003-08-21 2014-08-12 Qualcomm Incorporated Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
US7472334B1 (en) * 2003-10-15 2008-12-30 Scott Thomas P Efficient method for the reconstruction of digital information
GB2407946A (en) * 2003-11-05 2005-05-11 Nokia Corp Forward Error Correction decoder suitable for use with data comprising variable padding
US20050204258A1 (en) * 2004-02-13 2005-09-15 Broadcom Corporation Encoding system and method for a transmitter in wireless communications
US7424040B2 (en) * 2004-05-07 2008-09-09 Ltas Holdings, Llc Communication systems and methods for transmitting data in parallel over multiple channels
KR20050114162A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 리드-솔로몬 부호를 사용하는 이동통신 시스템에서 내부및 외부 부호 복호 방법 및 그 장치
GB2415873A (en) * 2004-06-30 2006-01-04 Nokia Corp Erasure information generation in Forward Error Correction decoding
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US8457584B2 (en) 2005-05-31 2013-06-04 Broadcom Corporation Systems and methods to attenuate intermodulation interference
US20070198901A1 (en) * 2005-07-12 2007-08-23 Amit Ramchandran Configurable interface for connecting various chipsets for wireless communication to a programmable (multi-)processor
KR100740209B1 (ko) * 2005-10-21 2007-07-18 삼성전자주식회사 디지털 방송 수신 시스템 및 그 신호 처리 방법
WO2007073033A1 (en) * 2005-12-22 2007-06-28 Samsung Electronics Co., Ltd. Digital broadcasting transmitter, turbo stream processing method thereof, and digital broadcasting system having the same
US7958426B2 (en) * 2006-08-25 2011-06-07 Innovation Specialists, Llc Distributed block coding (DBC)
US7681110B2 (en) * 2006-08-30 2010-03-16 Microsoft Corporation Decoding technique for linear block codes
WO2008041309A1 (fr) * 2006-09-29 2008-04-10 Fujitsu Limited Système de communication sans fil et émetteur et récepteur associés
US8108759B2 (en) * 2006-12-14 2012-01-31 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US7933372B2 (en) * 2007-03-08 2011-04-26 Freescale Semiconductor, Inc. Successive interference cancellation based on the number of retransmissions
KR101480383B1 (ko) * 2007-07-25 2015-01-09 삼성전자주식회사 코드 인코딩 장치
US8095856B2 (en) * 2007-09-14 2012-01-10 Industrial Technology Research Institute Method and apparatus for mitigating memory requirements of erasure decoding processing
WO2010076835A1 (en) * 2008-12-31 2010-07-08 Christophe Laurent Error correction code for unidirectional memory
US8276042B2 (en) 2009-02-03 2012-09-25 Micron Technology, Inc. Determining sector status in a memory device
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
US8472505B2 (en) * 2009-06-17 2013-06-25 Electronics And Telecommunications Research Institute Constant amplitude encoding apparatus and method for code division multiplexing communication system
KR101407944B1 (ko) * 2009-06-17 2014-06-17 한국전자통신연구원 코드 분할 다중화 통신 시스템에서 전송 신호의 정진폭 부호화 장치 및 방법
US8443255B2 (en) * 2010-08-26 2013-05-14 Qualcomm Incorporated Parity check matrix optimization and selection for iterative decoding
US9294133B1 (en) * 2013-01-29 2016-03-22 Marvell International Ltd. Method and apparatus for error correction
KR101550762B1 (ko) * 2013-11-29 2015-09-08 한국과학기술원 연접 오류 정정 장치
CN106411476B (zh) * 2016-11-02 2019-08-06 上海华为技术有限公司 重传请求的处理方法、发送端、接收端和系统
US11375578B2 (en) * 2018-09-17 2022-06-28 Qualcomm Incorporated Bluetooth connectionless slave broadcast burst mode

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5446759A (en) * 1992-03-12 1995-08-29 Ntp Incorporated Information transmission system and method of operation
DE69426762T2 (de) * 1994-04-14 2001-10-18 Alcatel Sa Verfahren zur Auslöschungserkennung in einem Mehrträgerdatenübertragungssystem
US6292918B1 (en) * 1998-11-05 2001-09-18 Qualcomm Incorporated Efficient iterative decoding
EP1085661B1 (de) * 1999-09-14 2005-03-02 Lucent Technologies Inc. Kanaldekoder und Verfahren zur Kanaldekodierung
US7016296B2 (en) * 2000-10-16 2006-03-21 Broadcom Corporation Adaptive modulation for fixed wireless link in cable transmission system
US7027708B2 (en) * 2000-12-29 2006-04-11 Etalk Corporation System and method for reproducing a video session using accelerated frame playback

Also Published As

Publication number Publication date
CN100438346C (zh) 2008-11-26
AU2002359587A1 (en) 2003-06-17
ATE305668T1 (de) 2005-10-15
US6986092B2 (en) 2006-01-10
JP2006501696A (ja) 2006-01-12
WO2003049294A3 (en) 2004-01-29
CN1618174A (zh) 2005-05-18
ES2248631T3 (es) 2006-03-16
EP1464121A2 (de) 2004-10-06
WO2003049294A2 (en) 2003-06-12
AU2002359587A8 (en) 2003-06-17
US20030106008A1 (en) 2003-06-05
EP1464121B1 (de) 2005-09-28
DE60206419D1 (de) 2006-02-09
JP4152887B2 (ja) 2008-09-17

Similar Documents

Publication Publication Date Title
DE60206419T2 (de) Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes
DE69829847T2 (de) Fehlerschutzverfahren und vorrichtung für über-funk-dateiübertragung
DE69925875T2 (de) Elektronisches Identifizierungssystem mit Übertragungsfehlerkorrektursystem
DE69735360T2 (de) Verfahren, system, sender und empfänger zur übertragung von daten
DE69532949T2 (de) Verfahren und gerät zur dekoderoptimierung
DE10139116B4 (de) Kombination aus Reed-Solomon- und Turbo-Codierung
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE10238841B4 (de) Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE1964358C3 (de) Fehlerkorrekturanordnung für ein Datenübertragungssystem
DE102018218729B3 (de) Interleaving mit zirkularer Zeilen-Rotation für die Übertragung bei Telegramm-Splitting
DE19539343C2 (de) Verfahren zur Fehlererkennung eines digitalen Bitdatenstroms, der von einem Sender zu einem Empfänger übertragen wird
DE10037525B4 (de) Verfahren zum Codieren und Decodieren eines Bildsignals
DE102014204828B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
EP0073979B1 (de) System zur Übertragung digitaler Informationssignale
DE102017107431B4 (de) Verfahren und Vorrichtungen zur Fehlerkorrekturcodierung beruhend auf hochratigen verallgemeinerten verketteten Codes
EP1016236B1 (de) Schnelle decodierung von partiell empfangenen faltungscodierten daten
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE1524891C3 (de) Schaltungsanordnung zur Korrektur von Fehlerbündeln
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102013213778B3 (de) Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunkationsmedium mittels Packet-Level-Kodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition