DE69722331T2 - Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür - Google Patents

Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür Download PDF

Info

Publication number
DE69722331T2
DE69722331T2 DE69722331T DE69722331T DE69722331T2 DE 69722331 T2 DE69722331 T2 DE 69722331T2 DE 69722331 T DE69722331 T DE 69722331T DE 69722331 T DE69722331 T DE 69722331T DE 69722331 T2 DE69722331 T2 DE 69722331T2
Authority
DE
Germany
Prior art keywords
matrix
binary
code
bits
decoding
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
DE69722331T
Other languages
English (en)
Other versions
DE69722331D1 (de
Inventor
Ramesh Pyndiah
Patrick Adde
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.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Publication of DE69722331D1 publication Critical patent/DE69722331D1/de
Application granted granted Critical
Publication of DE69722331T2 publication Critical patent/DE69722331T2/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Übermitteln von Informationsbits, wobei ein Sender die folgenden Schritte ausführt:
    • – Bildung einer ersten binären Matrix aus den zu übermittelnden Informationsbits;
    • – Umwandlung der ersten binären Matrix in eine zweite binäre Matrix unter Verwendung eines systematischen Blockcodes, der dem Produkt von Codes aus systematischen Elementarblockcodes entspricht; und
    • – Senden von aus der zweiten binären Matrix extrahierten Bits in Richtung eines Kanals,

    und wobei ein Empfänger die folgenden Schritte ausführt:
    • – Bildung einer Eingangsmatrix aus einem Signal, das über den besagten Kanal empfangen wurde, wobei die Eingangsmatrix dieselbe Größe hat wie die zweite binäre Matrix und sich aus numerischen Stichproben zusammensetzt, deren Zeichen die jeweiligen Anfangsschätzungen der Bits der zweiten binären Matrix darstellen und deren Absolutwerte jeweils Vertrauenswerte messen, die mit den besagten Anfangsschätzungen in Bezug stehen; und
    • – iterative Decodierung der Eingangsmatrix, die eine Anzahl m Decodierzyklen umfasst, wobei jeder Decodierzyklus aufeinander folgende Schritte zur Codewörtersuche für jeden Elementarblockcode enthält, der im Produktcode benutzt wurde, wobei man bei jedem Schritt zur Codewörtersuche eine Wertematrix und eine Entscheidungsmatrix mit binären Komponenten erhält, welche vor dem ersten Suchschritt der iterativen Decodierung jeweils durch die Eingangsmatrix und eine Matrix gebildet wird, deren binäre Komponenten den Zeichen der Stichproben der Eingangsmatrix entsprechen, und wobei man für den nachfolgenden Suchschritt eine neue Entscheidungsmatrix bildet, deren binäre Komponenten jeweils neue Schätzungen der Bits der zweiten binären Matrix und der neuen Wertematrix darstellen, deren Stichproben Absolutwerte haben, die jeweils Vertrauenswerte messen, welche mit den besagten neuen Schätzungen in Bezug stehen,

    wobei die decodierten Informationsbits aus der Entscheidungsmatrix extrahiert werden, die beim letzten Schritt zur Codewörtersuche erzeugt wurde,
    und wobei jeder Schritt zur Codewörtersuche eine Aufteilung der empfangenen Wertematrix in Wertevektoren umfasst, wobei jeder einem Codewort des Elementarcodes entspricht, und eine entsprechende Aufteilung der empfangenen Entscheidungsmatrix in Entscheidungsvektoren und elementare Decodierungen mit weichen Entscheidungen, um jeweils mindestens einige Wertevektor/Entscheidungsvektor-Paare zu verarbeiten.
  • Hinsichtlich der digitalen Informationsübertragung (Text, Bild, Daten, ...) unterscheidet man üblicherweise zwischen der Quellencodierung und der Kanalcodierung. Die Quellencodierung bildet die binäre Darstellung des zu übertragenden Signals. Sie wird normalerweise als Funktion von der Natur des zu übermittelnden Signals verstanden. Große Anstrengungen wurden in den letzten Jahren hinsichtlich der Quellencodierung unternommen, um die Ziffernfolgefrequenz zu verringern, wobei eine gute Übertragungsqualität beibehalten wird. Diese neuen Techniken der Quellencodierung benötigen aber einen besseren Schutz der Bits gegenüber den Störungen bei der Übermittlung.
  • Andererseits begrenzen die physikalischen und wirtschaftlichen Grenzen der hochfrequenten Komponenten (Rauschfaktor, Leistungssättigung) sowie die Vorschrift über das zulässige Sendeleistungsniveau die Reichweite des digitalen Übermittlungssystems.
  • Deshalb wurde viel Arbeit hinsichtlich der Kanalcodierung aufgewendet, insbesondere hinsichtlich der Codierung in Blöcken. Diese Art der Codierfehlerkorrektur besteht daraus, zu k von der Quellencodierung abgeleiteten Informationsbits n – k Redundanzbits hinzufügen und daraus, diese Redundanzbits beim Empfang dazu zu verwenden, bestimmte Übertragungsfehler zu korrigieren. Man nennt das Verhältnis R = k/n Codewirkungsgrad, und man definiert die Codierverstärkung G als Verhältnis, ausgedrückt in Dezibel, zwischen den Energien pro Informationsbit Eb, die beim Eingang des Empfängers ohne Codierung und mit Codierung nötig sind, um eine bestimmte binäre Fehlerrate (TEB) zu erreichen. Ein typisches Ziel ist es, Codierer zu verwirklichen und vor allem die Decodierer, die derart assoziiert sind, dass: (i) die Codierverstärkung G am größten ist (G > 5 dB für TEB = 10–5), (ii) der Wirkungsgrad des Codes am größten ist (R > 0,6), und (iii) die Komplexität der Decodierung am geringsten ist.
  • Man versteht dann, dass im allgemeinen die Begriffe Kanalcodierung und assoziierte Decodierung in der gleichen Art und Weise auf den Bereich der Informationsspeicherung wie auf die Übermittlung anwendbar sind, wobei die zu korrigierenden Fehler dann diejenigen sind, die auf das Schreiben und Lesen im Speicher, auf die Veränderung des Speicherinhalts oder auch auf die Verbindungen (mit oder ohne Entfernung) mit den Vorrichtungen zum Lesen und Schreiben im Speicher zurückzuführen sind.
  • Die Leistungsfähigkeit der Fehlerkorrekturcodes kann bekanntermaßen durch Anwenden von Verkettungstechniken verbessert werden. Insbesondere erlaubt die Technik der Produktcodes, die durch die vorliegende Erfindung genauer betroffen ist, von zwei einfachen Blockcodes (das heißt, dass sie einen geringen minimalen Hamming-Abstand d haben), einen Code zu erhalten, dessen minimaler Hamming- Abstand gleich dem Produkt der Hamming-Abstände der verwendeten Elementarcodes ist (siehe S. M. Reddy: "On decoding iterated codes", IEEE Trans. On Information Theory, Vol. IT-16, Nr. 5, September 1970, Seite 624–627).
  • Wenn man einen Blockcode mit Parameter (n1, k1, d1) mit C1 bezeichnet und einen Blockcode mit Parametern (n2, k2, d2) mit C2, besteht die Anwendung des Produktcodes aus C1 mit C2 daraus die k1 × k2 Informationsbits aufeinander folgend in einer Matrix anzuordnen, und die k1 Zeilen der Matrix durch den Code C2 zu codieren, wobei sich dann die n2 Spalten der Matrix durch den Code C1 ergeben. Die Parameter des Produktcodes P sind dann gegeben durch (n = n1 × n2; k = k1 × k2; d = d1 × d2). Der Wirkungsgrad R des Codes P ist gleich R1 × R2. Die Decodierung nach der maximalen a posteriori Wahrscheinlichkeit (MVP) erlaubt es, die optimalen Leistungsfähigkeiten zu erlangen. Die maximale asymptotische Codierverstärkung kann dann durch die Beziehung G < 10log10 (R.d.) angenähert werden.
  • Der Produktcode ist dann sehr interessant, aber die Decodierung nach der MVP ist im allgemeinen sehr komplex, außer im Fall der kurzen Blockcodes.
  • In ihrem Artikel „Separable MAP filters for the decoding of product and concatenated codes", Proc. ICC'93, Genf, Seite 1740–1745, Mai 1993, haben J. Lodge et al. einen iterativen Algorithmus zur Decodierung vorgeschlagen vom Typ, wie in der Einleitung angegeben, bei dem die aus der Wertematrix extrahierten Vektor-Zeilen und Vektor-Spalten durch Benutzung des Algorithmus von Bahl (siehe L. R. Bahl et al., „Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. On Information Theory, Vol. IT-20, Seite 248–287, März 1974) decodiert werden, der die logarithmischen Verhältnisse der Wahrscheinlichkeiten (LLR für „Log-Likelihood-Ratio") der Bits schätzt. Der Algorithmus von Bahl liefert sanfte Entscheidungen, die durch die LLR ausgedrückt werden, die es erlauben, Leistungsfähigkeiten nahe der MVP zu erreichen. Aber man muss sich auf ein Netz von Decodierungen berufen, deren Anzahl an Zuständen exponentiell mit n – k anwächst. Wenn der Algorithmus von Lodge et al. sich auch gut für kurze Codes, wie beispielsweise der Code nach Hamming (16, 11, 3), eignet, so erweist er sich folglich in der Praxis für Codes mit erhöhtem Wirkungsgrad, wie beispielsweise der Code BCH (63, 51, 5), als unbrauchbar.
  • Ein anderes Verfahren des am Anfang aufgezeigten Typs wurde in der Europäischen Patentanmeldung 0 654 910 dargestellt, deren Inhalt in die vorliegenden Beschreibung eingearbeitet ist.
  • Dieses letzte Verfahren erlaubt es, alle Produktcodes zu decodieren, die von linearen Blockcodes gebildet sind und für die man einen algebraischen Decodierer vorsieht. Die mit diesem Verfahren erhaltenen Leistungsmerkmale sind quasi-optimal (siehe R. Pyndiah et al.: „Near optimum decoding of product codes", Proc. IEEE GLOBECOM'94 Conference, Vol. 1/3, Vov.-Dez. 1994, San Franzisko, Seite 339–343). In der Tat erlaubt es, für einen gegebenen Produktcode und mit vier Iterationen, eine TEB gleich 10–5 für ein Signal-Rausch-Verhältnis zu erhalten, das sich ungefähr 2,5 dB über dem theoretischen Limit nach Shannon für den betrachteten Produktcode ansiedelt. Andererseits ist die Komplexität dieses Verfahren viel geringer als die der von Lodge et al. vorgeschlagenen Lösung. Man ist so in der Lage Produktcodes sehr großer Dimension zu decodieren, wobei die Längen n1, n2 der Elementarcodes 256 erreichen können.
  • Wenn man sich die Verwirklichung eines Kreislaufs überlegt, der geignet ist eine iterative Decodierung vom in der Einleitung erwähnten Typ zu verwirklichen, nachfolgend Turbo-Blockcode-Kreislauf und TCB Kreislauf genannt (siehe O. Raoul et al., „Architecture et Conception d'un circuit turbodecodeur de codes produits" Proc. GRETSI'95 Conference, Vol. 2, September 1995, Seite 981–984), erscheint es, dass man die Kreislauffläche beträchtlich reduzieren kann, indem man den selben elementaren Decodierer benutzt, um mehrere Iterationen durchzuführen, anstatt mehrere elementare Decodierer in Reihe zu schalten. Entsprechend der geplanten Anwendung, wird die Anzahl der Iterationen eine Funktion der Komplexität des elementaren Decodierers sein. Die Anzahl der Iterationen wird so groß sein, wie die Komplexität des elementaren Decodierers klein sein wird, daher das Interesse die Komplexität des elementaren Decodierers zu reduzieren.
  • Aus wirtschaftlichen Gründen ist es wünschenswert eine programmierbaren Kreislauf TCB aufzustellen, der es zulässt Datenblöcke unterschiedlicher Größe mit einer variablen Anzahl von Redundanzbits zu verarbeiten. So kann man beabsichtigen, den gleichen Kreislauf TCB für verschiedene Anwendungen zu benutzen, was eine beachtliche Einsparung in Bezug auf die Entwicklungskosten zulässt.
  • Die Erfindung schlägt folglich bei einem Verfahren vom in der Einleitung erwähnten Typ vor, dass eine Menge von Y Bits, die jeweils in der zweiten binären Matrix bestimmte Y Positionen haben, nicht in Richtung des Kanals gesendet werden, und, dass der Empfänger in der Eingangsmatrix an den Stellen, die den besagten bestimmten Y Positionen in der zweiten binären Matrix entsprechen, Stichproben einsetzt, deren Absolutwerte repräsentativ für einen minimalen Vertrauenswert sind.
  • Die Erfindung nutzt eine Technik aus, die den Techniken der Punktierung ähnelt, die im Bereich der Faltungscodes häufig benutzt werden. Die Punktierung vergrößert den Wirkungsgrad des Codes. Im Fall der Faltungscodes ist es im allgemeinen sein Ziel die Wirkungsgrade größer als 1/2 zu erreichen, indem man binäre Codes gebraucht, das heißt, die Netze der Decodierung sind die weniger komplexen. Im allgemeinen hat ein punktierter Faltungscode die Abstandseigenschaften ähnlich den Zellen eines nicht punktierten Codes mit dem gleichem Wirkungsgrad.
  • Die Punktierung wird jedoch normalerweise nicht bei Blockcodes angewendet. In der Tat gibt es zahlreiche Blockcodes mit erhöhtem Wirkungsgrad, deren Abstandseigenschaften optimal sind. Man rechnet daher damit, dass die Punktierung die Abstandseigenschaften ebenso beachtlich wie im Fall der Faltungscodes erniedrigt, ohne eine Verstärkung in der Komplexität zu erhalten. Die Erfinder haben auf erstaunliche Art und Weise festgestellt, dass im Fall eines Produktcodes, die Punktierung, die wie oben beschrieben angewendet und mit Abläufen der iterativen Decodierung mit sanften Entscheidungen kombiniert wurde, die Leistungsfähigkeiten des Codier-Decodier-Bausteins nicht wesentlich verringert.
  • Der Artikel von S. D. Bate et al. „Error control techniques applicable to HF channels" (IEEE Proc., Vol. 136, PT.I, Nr. 1, Februar 1989, Seite 57–62) beschreibt die Punktierung der Produktcodes, die von Codes nach Reed-Solomon gebildet sind, wobei präzisiert wird, dass der Decodierer die punktierten Positionen wie Löschungen behandelt (siehe auch die japanische Patentkurzfassung entsprechend JP 06 045955 ).
  • Seien n, k und d die Parameter des Produktcodes der Form:
    Figure 00070001
    wobei L die Anzahl der Elementarcodes der jeweilige Parameter (nj, kj, dj) ist (in der Folge betrachtet man den Fall L = 2 ohne Begrenzung der Allgemeingültigkeit). k und n sind die jeweiligen Anzahlen der Bits der „ersten" und „zweiten" binären Matrix.
  • Die Erfindung erlaubt es die Anzahl der in der Matrix enthaltenen Redundanzbits auf irgendeine Zahl unter n – k – Y oder gleich n – k einzustellen, wobei der Kreislauf zum Decodieren des Empfängers der selbe ist, ungeachtet der Anzahl Y der punktierten Bits.
  • In Übereinstimmung mit der Erfindung sind die Positionen dieser Y Bits in einer eindeutig einheitlichen Art und Weise in jeder Dimension der zweiten Matrix verteilt, was erlaubt das beste Leistungsmerkmal aus dem iterativen Decodierverfahren zu ziehen. In dieser Hinsicht stellt man fest, dass eine Punktierung von einem oder mehreren elementaren Blockcodes weniger interessant wäre, weil es weniger Wahl im Wert Y lassen würde und besonders würde es dazu führen, dass einige der elementaren Decodierungen keinen Gewinn in der TEB bringen.
  • Die Parameter (n', k', d') des punktierten Produktcodes sind schließlich n' = n –Y, k' = k und d' = d. Sein Wirkungsgrad R' = k/(n – Y) ≥ k/n.
  • In einer vorteilhaften Ausführung enthält die binäre erste Matrix zusätzlich zu Informationsbits eine Menge von X Bits mit dem Empfänger a priori bekannten Werten, die auf eindeutig einheitliche Art und Weise in jeder Dimension der ersten binären Matrix verteilt sind, die sich jeweils nach dem systematischen Codieren an bestimmten X Stellen der besagten zweiten binären Matrix wiederfinden, welche sich von den besagten bestimmten Y Positionen unterscheiden, und die nicht in Richtung des Kanals gesendet werden, wobei der Empfänger in die Eingangsmatrix Stichproben an Stellen einsetzt, die den besagten bestimmten X Stellen der zweiten binären Matrix entsprechen, wobei die Zeichen der Stichproben jeweils den a priori bekannten Werten der Menge der Bits entsprechen und die Absolutwerte der Stichproben repräsentativ für einen maximalen Vertrauenswert sind.
  • Der Parameter X erlaubt dann die Anzahl der Informationsbits pro zu codierenden Block und den globalen Codierwirkungsgrad zu programmieren. Die Parameter (n'', k'', d'') des verkürzten und punktierten Produktcodes sind schließlich n'' = n – X – Y, k'' = k – X, und d'' = d. Sein Wirkungsgrad R'' ist R'' = (k – X)/(n – X – Y).
  • Die elementare Decodierung mit weichen Entscheidungen für die Verarbeitung eines Wertevektor/entscheidungsvektor-Paares kann insbesondere vom in EP-A-0 654 910 beschriebenen Typ sein. Sie umfasst dann die folgenden Schritte:
    • – Bestimmung einer Anzahl p von Indizes, für die die Komponenten des Wertevektors am wenigsten verlässlich sind;
    • – Bildung einer Anzahl q von binären Decodierwörtern aus den besagten p Indizes und dem Entscheidungsvektor;
    • – Erlangung von q' Codewörtern anhand einer algebraischen Decodierung des Entscheidungsvektors und der q binären Codierwörter;
    • – Auswahl desjenigen aus den q' erhaltenen Codewörtern, das den geringsten euklidische Abstand zum Wertevektor hat;
    • – Berechnung eines Korrekturvektors, wobei jede Komponente Wj des Korrekturvektors berechnet wird, indem ein mögliches konkurrierendes Wort bestimmt wird, dessen j-te Komponente sich von jener des ausgewählten Codewortes unterscheidet, und indem die Formel:
      Figure 00090001
      angewendet wird, wenn ein konkurrierendes Wort bestimmt worden ist, wobei Md und Mc hinsichtlich des Wertevektors jeweils die euklidischen Abstände des ausgewählten Codewortes und des konkurrierenden Wortes bezeichnen, und wobei Cj d und R'j jeweils die j-ten Komponenten des ausgewählten Codewortes und des Wertevektors bezeichnen;
    • – Erlangen eines neuen Entscheidungsvektors, welcher aus dem gleichen ausgewählten Codewort entnommen wurde; und
    • – Berechnung des neuen Wertevektors, indem der Korrekturvektor hinzugefügt wird, der mit einem ersten Vertrauenskoeffizienten am entsprechenden aus der Eingangsmatrix extrahierten Eingangsvektor multipliziert wird.
  • In einer bevorzugten Ausführung umfasst die Bestimmung eines möglichen konkurrierenden Worts bezüglich der j-ten Komponente des ausgewählten Codeworts im Berechnungsschritt eines Korrekturvektors einen Vergleich zwischen der j-ten Komponente des ausgewählten Codeworts und derjenigen eines Codewortkandidaten, welcher unter den erhaltenen q' Codewörtern, außer dem ausgewählten Codewort, den schwächsten euklidischen Abstand mit dem Wertevektor hat, wobei der besagte Codewortkandidat als konkurrierendes Wort aufgefasst wird, wenn seine j-te Komponente sich von derjenigen des ausgewählten Codeworts unterscheidet, und im gegenteiligen Fall kein konkurrierendes Wort bestimmt wird.
  • Ein zweiter Aspekt der Erfindung bezieht sich auf einen programmierbaren Redundanzcodierer, wie er im Anspruch 7 zum Ausdruck gebracht ist.
  • Ein dritter Aspekt der Erfindung bezieht sich auf einen programmierbaren Fehlerkorrekturdecodierer, wie es im Anspruch 9 zum Ausdruck gebracht ist.
  • Weitere Besonderheiten und Vorteile der vorliegenden Erfindung werden in der nachfolgenden Beschreibung von nicht limitierenden Realisationsbeispielen sichtbar, gemeinsam gelesen mit den beigefügten Zeichnungen, bei denen:
  • 1 ein Funktionsschema einer digitalen Übermittlungskette darstellt, die brauchbar ist, um ein erfindungsgemäßes Verfahren zu verwirklichen;
  • 2 ein Flussdiagramm darstellt, das die Anwendung eines Produktcodes abbildet;
  • 3 ein allgemeines Flussdiagramm einer Phase einer brauchbaren iterativen Decodierung gemäß der Erfindung darstellt;
  • 4 ein Flussdiagramm darstellt, das einen elementaren Decodierschritt von Linien oder Spalten detailliert beschreibt;
  • 5 eine Grafik darstellt, die die Leistungsmerkmale der iterativen Decodierung nach 3 und 4 zeigt;
  • 6 und 7 Funktionsschemen bezüglich eines Kreislaufs zur Kanaldecodierung und eines Kreislaufs zur Kanalcodierung gemäß der Erfindung darstellen;
  • 8 ein Flussdiagramm eines Zuordnungsverfahrens darstellt, das brauchbar für die Verkürzung eines Produktcodes ist;
  • 9 ein Diagramm darstellt, das die Ergebnisse des Verfahrens von 8 zeigt;
  • 10 ein Flussdiagramm eines Zuordnungsverfahrens darstellt, das brauchbar zur Punktierung eines Produktcodes ist;
  • 11 und 12 Diagramme darstellen, die die Ergebnisse des Verfahrens von 10 zeigen; und
  • 13 und 14 Graphiken darstellen, die die Leistungsmerkmale der iterativen Decodierung angewendet auf einen verkürzten Produktcode und einen punktierten Produktcode zeigt.
  • Die Erfinder haben eine vorteilhafte Variante des Verfahrens zur iterativen Decodierung von in EP-A-0 654 910 beschriebenen Produktcoden entwickelt, wobei ein guter Kompromiss Leistungsfähigkeiten/Komplexität gewährleistet ist. Diese Variante ist nachstehend mit Bezug auf 1 bis 5 beschrieben, vor der spezifischeren Beschreibung der Struktur eines erfindungsgemäßen Produktcodes. Man kann einerseits beobachten, dass die besagte Variante für iterative Decodierung aller Arten von Produktcodes gilt, andererseits ist das erfindungsgemäße Verfahren zum Übermitteln kompatibel mit anderen iterativen Decodiermethoden, wie beispielsweise diejenigen, die in EP-A-0 654 910 oder auch in dem vorher erwähnten Artikel von Lodge et al. dargestellt sind.
  • In der Übermittlungskette, die in 1 dargestellt ist, sind die zu übermittelnden Informationsbits aj in einem Signal
    Figure 00110001
    enthalten, das an den Eingang des Kanalcodierers 12 des Senders 10 gerichtet ist. Dieses Signal X(t) wird durch den Quellencodierer 11 aus einem analogen Signal S(t) gebildet. Der Quellencodierer 11 ist klassischerweise so, dass die aj unabhängig sind und mit gleicher Wahrscheinlichkeit den Wert 0 oder 1 annehmen. h(t) bezeichnet ein Zeitfenster der Dauer T, das ein Zeitintervall ist, das zwei aufeinander folgende Bits trennt. Der Kanalcodierer 12 wendet eine Codierung auf Blöcke an, um ein Signal
    Figure 00120001
    zu erzeugen, wobei cj die codierten Bits sind und T' das Zeitintervall ist, das zwei codierte Bits (T' < T) trennt. Der Modulator 13 transformiert die Folge Y(t) in Signalfolgen, die mit dem Ausbreitungskanal verträglich sind. Im Fall einer Phasenmodulation bei zwei assoziierten Zuständen bei einem Hertz'schen Kanal, ist ein Beispiel des gesendeten Signals gegeben durch:
    Figure 00120002
    wobei f0 die Frequenz der Trägerwelle ist und ej = 2cj – 1. Das auf dem Niveau der Antenne des Empfängers 15 empfangene Signal ist durch einen Koeffizienten α gedämpft. Der Demodulator 16 arbeitet das Wahrscheinlichkeitsverhältnis jedes Bits aus, was beschrieben werden kann durch: Rj = ej + Bj wobei die Stichproben Bj die Stichproben des durch den Ausbreitungskanal induzierten Rauschens sind, die unabhängig von den Bits cj sind, und untereinander nicht korreliert sind, vom Mittelwert Null und vom Abweichungstyp σ, einer Funktion des Verhältnisses Signal zu Rauschen. Das Signal am Ausgang des Demodulators 16 ist dann gleich:
  • Figure 00120003
  • Der Kanaldecodierer 17 trifft dann die Entscheidung bezüglich der gesendeten Bits durch Auswerten der Kanalcodierung, die zum Senden angewendet wurde, um die Fehler zu minimieren. Sein Ausgangssignal ist gegeben durch:
    Figure 00120004
    wobei die Bits aj die Entscheidungen sind, die durch den Kanalcodierer getroffen wurde. Der Quellencodierer 18 rekonstruiert dann das analoge Signal S(t) aus vom Kanaldecodierer 17 gelieferten Bits.
  • Die Erfindung besteht hauptsächlich aus dem Kanalcodierer 12 und dem Kanaldecodierer 17. Man wird dann verstehen, dass sie mit verschiedenen Typen der Quellen-Codierung/Decodierung, der Modulation/Demodulation und der Ausbreitungskanäle kompatibel ist. Insbesondere kann die Erfindung beim digitale Fernsehen angewendet werden. Der Codierer 11 und der Decodierer 18 können dann beispielsweise gemäß einer Norm MPEG (moving picture expert group) verwirklicht werden und der Modulator 13 und der Demodulator 16 sind an den verwendeten Ausbreitungskanal (Hertz'scher, Faser ...). Ein weiteres Anwendungsbeispiel ist die Übermittlung der Telefaxe.
  • Der Blockcode, der von dem Kanalcodierer 12 verwendet wird, ist ein Produktcode, der aus systematischen Elementarcodes erhalten wird. In den oben beschriebenen Realisationsmethoden ist dies das Produkt zweier linearer Blockcodes C1, C2 mit Parametern (n1, k1, d1) und (n2, k2, d2).
  • Das Codierungsverfahren, das mit klassischen Codierkreisläufen verwirklicht ist, ist in 2 dargestellt. Die Bits aj, die nacheinander von dem Quellencodierer 11 empfangen werden, werden anfangs eingeordnet, in Gruppen von k1 × k2 Bits, gemäß einer Matrix {a} mit k1 Zeilen und k2 Spalten (Schritt 21). Der Blockcode C2 wird dann auf jede der k, Zeilen der Matrix {a} angewendet, was eine Matrix {b} liefert mit k1 Zeilen und n2 Spalten (Schritt 22). Da der Code C2 systematisch ist, sind k2 der n2 Spalten der Matrix {b} identisch mit denen der Matrix {a}, beispielsweise die k2 ersten Spalten. Danach (Schritt 23) wird der Blockcode C1 auf jede der n2 Spalten der Matrix {b} angewendet, was eine Matrix {c} mit n1 Zeilen und n2 Spalten liefert, deren Komponenten c1 die nacheinander in Form des Signals Y(t) an den Modulator 13 übertragenen Bits sind (Schritt 24). Da der Code C1 systematisch ist, sind k1 der n1 Zeilen der Matrix {c} identisch mit denen der Matrix {b}, beispielsweise den k1 ersten Zeilen. So ist der obere linke Teil, mit k1 Zeilen und k2 Spalten, der Matrix {c} identisch mit dem der Matrix {a}, wobei die anderen Komponenten der Matrix {c} Redundanzbits sind. Alle Spalten der Matrix {c} sind Codewörter des Codes C1. Ebenso sind alle Zeile der Matrix {c} Codewörter des Codes C2, wobei gegeben ist, dass die Elementarcodes linear sind.
  • Der Kanaldecoder 17 wendet ein iteratives Decodierverfahren an, dessen generelles Flussdiagramm in 3 dargestellt ist. Nach Empfang eines Blockes mit n1 × n2 Stichproben Rj1,j2 (1 ≤ j1 ≤ n1, 1 ≤ j2 ≤ n2) des vom Demodulator 16 empfangenen Signals R(t), das dem senden eines durch den Codierer 12 gebildeten Blockcodes entspricht, werden diese Stichproben in eine Eingangsmatrix {R} mit n1 Zeilen und n2 Spalten eingeordnet (Schritt 30).
  • Die Decodierung dieses Blocks mit n1 × n2 Stichproben wird ausgelöst (Schritt 31) durch Initialisieren der Zählvariablen i bei 0, indem eine Wertematrix {R'} mit n1 Zeilen und n2 Spalten gebildet wird, deren Komponenten anfänglich die gleichen wie die der Eingangsmatrix {R} sind, und indem eine Entscheidungsmatrix {D} mit n1 Zeilen und n2 Spalten gebildet wird, deren Komponenten binär (–1 oder +1) sind und, anfänglich jede das Vorzeichen der entsprechenden Komponente der Eingangsmatrix {R}: Dj1,j2 = sign(Rj1,j2) = ±1 hat.
  • Nach dieser Initialisierung enthält die iterative Decodierung eine Anzahl m an Decodierzyklen. Jeder Decodierzyklus enthält nacheinander einen Schritt 32 zur Suche nach Worten des Codes C1 in den Spalten der Wertematrix und einen Schritt 33 zur Suche nach Worten des Codes C2 in den Zeilen der Wertematrix.
  • Bei jedem Suchschritt 32 oder 33 berechnet man neue Werte der Komponenten der Entscheidungsmatrix {D} und der Wertematrix {R'}, die für den folgenden Suchschritt verwendet werden. Jeder Suchschritt 32 oder 33 kann als eine auf die Wertematrix {R'} angewendete Filterung angesehen werden, um den Rauscheinfluss der Stichproben Bj1,j2 auf die Komponenten R'j1,j2 dieser Matrix zu reduzieren.
  • Die Schritte 32 und 33 sind im wesentlichen identisch, wenn man die Rolle der Zeilen und Spalten der Matrizen vertauscht. Bei der Initialisierung 36 des Suchschritts 32 wird die Zählvariable i um eine Einheit erhöht und der Index der Spalte j2 wird bei 1 initialisiert. Man führt eine Decodierung gemäß dem Code C1 des Werteworts durch, das der j2-ten Spalte der Matrix {R'} entspricht (Schritt 37), was neue Werte für die Komponenten Dj,j2 und R'j,j2 der Matrizen {D} und {R'} (1 ≤ j ≤ n1) liefert. Dem Decodierschritt 37 folgt ein Vergleich 38 zwischen dem Spaltenindex j2 und der Spaltenanzahl n2. Wenn j2 kleiner als n2 bleibt, wird der Index j2 um eine Einheit inkrementiert (Schritt 39), danach wird der Decodierschritt 37 wiederholt. Wenn j2 gleich n2 wird, wobei alle Spalten verarbeitet waren, beginnt man mit dem weiteren Schritt 33 zur Suche nach Wörtern des Codes C1 im Laufe eines Decodierzyklus. Bei der Initialisierung 41 des Suchschritts 33 wird die Zählvariable i um eine Einheit erhöht und der Index der Zeile j1 wird bei 1 initialisiert. Man führt eine Decodierung nach dem Code C2 des Werteworts durch, das der j1-ten Zeile der Matrix {R'} entspricht (Schritt 42), was neue Werte für die Komponenten Dj1,j und R'j1,j der Matrizen {D} und {R'} liefert. Dem Decodierschritt 42 folgt ein Vergleich 43 zwischen dem Zeilenindex j1 und dem Parameter n1 des Codes C1. Wenn j1 kleiner als n1 bleibt, wird der Index j1 um eine Einheit inkrementiert (Schritt 44), danach wird der Decodierschritt 42 wiederholt. Wenn j1 gleich n1 wird, ist der Schritt 33 zur Suche nach Codewörtern beendet, und die Zählvariable i wird mit 2m verglichen (Test 45). Wenn i kleiner bleibt als 2m, kehrt man zum Suchschritt 32 zurück, um den nächsten Decodierzyklus zu beginnen. Wenn i gleich 2m wird, wenn die m Decodierzyklen abgeschlossen sind, extrahiert man (Schritt 46) die k1 × k2 decodierten Informationsbits aa ^ j1,j2 der Entscheidungsmatrix {D}, die bei dem letzten Codewörtersuchschritt 33 erzeugt wurde. Mit den systematischen Codes C1, C2, die so angewendet werden, wie weiter oben unter Bezug auf 2 beschrieben wurde, können die aa ^ j1,j2 einfach in den k1 ersten Linien und k2 ersten Spalten der Matrix {D} zurückgewonnen werden: aa ^ j1,j2 = Dj1,j2(1 ≤ j1 ≤ k1, 1 ≤ j2 ≤ k2.). Diese aa ^ j1,j2 haben den Wert –1 oder +1; sie können leicht konvertiert werden, um den Wert 0 oder 1 anzunehmen.
  • Der Schritt 37 zur Decodierung eines Wertewortes, das einer Spalte der Wertematrix entspricht, ist in einer ersten Ausführungsform der Erfindung im Flussdiagramm der 4 detailliert beschrieben. Bei diesem Schritt 37 verarbeitet man einen Wertevektor [R'] und einen Entscheidungsvektor [D] der Länge n1, die jeweils aus Aufteilungen der Wertematrix {R'} und der Entscheidungsmatrix {D} bestehen: R'j = R'j,j2 und Dj = Dj,j2 (1 ≤ j ≤ n1). Man findet zunächst (Schritt 51) die am wenigsten zuverlässigen p Komponenten des Vektors [R'], das heißt die Komponenten von [R'], die am nächsten an der binären Entscheidungsgrenze (Null) sind. Die Indizes, die den p am wenigsten zuverlässigen Komponenten entsprechen, werden als r1, r2, ..., rp bezeichnet, mit |R'r1| < |R'j| ∀j ≠ r1 |R'r2| < |R'j| ∀j ≠ r1, r2 etc...
  • Hat man diese p Indizes identifiziert, bildet man q binäre Testsequenzen [T1], ..., [Tq] der Länge n1, dann q binäre zu decodierende Wörter [U1], ..., [Uq] der Länge n1, indem jede der q Testsequenzen mit dem Entscheidungsvektor [D] kombiniert werden (Schritt 52). Man bildet jedes Wort (Us] derart, dass alle seine Komponenten außer denjenigen, die den p Indizes r1, r2, ..., rp entsprechen, gleich den entsprechenden Komponenten des Entscheidungsvektors [D] sind: Uj s = Dj für j ≠ j1, ... jp. Im allgemeinen genügt es, die Wörter [Us] zu berechnen, die nur ein oder zwei zu den entsprechenden Komponenten des Vektors [D] verschiedene Komponenten haben. All diese Wörter sind berechnet, wenn q = p(p + 1)/2. Als Beispiel kann man, wenn p = 6 und q = 21 ist, die Sequenzen [Ts] und [Us] (1 ≤ s ≤ q) folgendermaßen bilden:
    • – die p = 6 ersten Testsequenzen [Ts] haben ein Bit gleich à + 1 an der Stelle rs und Bits gleich à – 1 an den anderen Stellen: Trs s = +1 und Tj s = –1 für 1 ≤ s ≤ 6 und j ≠ rs
    • – [T7] = [T1] ⊕ [T2] [T8] = [T1] ⊕ [T3] [T9] = [T1] ⊕ [T4] [T10] = [T1] ⊕ [T5] [T11] = [T1] ⊕ [T6] [T12] = [T2] ⊕ [T3] [T13] = [T2] ⊕ [T4] [T14] = [T2] ⊕ [T5] [T15] = [T2] ⊕ [T6] [T16] = [T3] ⊕ [T4] [T17] = [T3] ⊕ [T5] [T18] = [T3] ⊕ [T6] [T19] = [T4] ⊕ [T5] [T20] = [T4] ⊕ [T6] [T21] = [T5] ⊕ [T6] wobei ⊕ den ausschließenden Operator ODER, komponentenweise zwischen zwei Vektoren, bezeichnet;
    • [Us] = [Ts] ⊕ [D] für 1 ≤ s ≤ q
  • In nächsten Schritt 53 führt man eine algebraische Decodierung des Entscheidungsvektors [D] und der q Wörter [US] durch. Für diese algebraische Decodierung benutzt man beispielsweise im Fall der BHC Codes einen Decodierer nach Berlekamp, der auf dem Gebiet der Blockcodierung gut bekannt ist (siehe E. R. Berlekamp, „Algebraic Coding Theory", Mc Graw-Hill, New York, 1968). Die q + 1 Elementardecodierungen liefern q' Codewörter [C1], ..., [Cq] des Codes C1. Im allgemeinen Fall ist q' ≤ q + 1, denn einerseits können bestimmte Codewörter mehrmals in den Ergebnissen der Decodierung erscheinen, und andererseits kann der algebraische Decodierer bestimmte Codewörter nicht finden, wenn das Signal sehr gestört ist. Die als Resultate der Decodierung gelieferten Wörter müssen dann überprüft werden, um festzustellen, ob sie Wörter des Codes C1 darstellen. Diese Prüfung kann einfach durchgeführt werden, indem sie jedes erhaltene Wort mit der Matrix zur Prüfung der Parität bezüglich des Codes C1 multipliziert und das Wort eliminiert, wenn das Ergebnis der Multiplikation nicht Null ist. Dennoch ist in dem Fall, in dem der Code C1 perfekt ist (das heißt, dass kein Wort mit n1 Bits von allen möglichen Codewörtern weiter entfernt ist als (d1 – 1)/2, wie es insbesondere für die Codes nach Hammig der Fall ist) der Schritt zur Prüfung der Ergebnisse des algebraischen Decodierers nutzlos.
  • Unter den q' gefundenen Codewörtern wählt man (Schritt 54) dasjenige [Cd] aus, das den geringsten Euklid'schen Abstand Md = ∥[Cd] – [R']∥2 mit dem Wertevektor R' hat. Dieses Wort [Cd] wird den nächsten Entscheidungsvektor bilden. Gleichermaßen wählt man als Codewortkandidat [Cc] dasjenige aus, das unter den q gefundenen Codewörtern mit Ausnahme des Worts [Cd] den geringsten Euklid'schen Abstand Mc = ∥[Cc] – [R']∥2 mit dem Wertevektor R' hat.
  • Schließlich führt man eine Schleife zur Berechnung der Komponenten Wj eines Korrekturvektors [W] (1 ≤ j ≤ n1) durch. Am Anfang dieser Schleife (Schritt 55) wird der Index der Komponente j bei 1 initialisiert. Bei jeder Iteration in dieser Schleife führt man einen Testschritt 56 durch, um festzustellen, ob die j-te Komponente des Wortkandidaten [Cc] verschieden ist zu der des ausgewählten Codeworts [Cd] (Cj c ≠ Cj d). Wenn ja ist das Wort des Codekandidaten [Cc] ein bezüglich der j-ten Komponente konkurrierendes Wort. Die Komponente Wj wird dann in Schritt 58 nach der Formel berechnet:
  • Figure 00180001
  • Man wird beobachten, dass die Größe Mc – Md, die in dieser Formel vorkommt, immer positiv ist, so dass |Mc – Md| = Mc – Md. Wenn der Testschritt 56 erkennen läßt, dass Cj c = Cj d, das heißt, wenn kein konkurrierendes Wort bestimmt werden kann, wird die Komponente Wj in Schritt 59 nach der Formel berechnet: Wj = βj – Cj d·R'j)·Cj d (2)wobei βj einen positiven Vertrauenskoeffizienten darstellt. Nach Berechnung der Korrekturkomponente Wj wird der Index der Komponente j mit der Länge n1 des Vektors [R'] verglichen (Schritt 60). Wenn j kleiner als n1 bleibt, wird der Index j um eine Einheit inkrementiert (Schritt 61), und die nächste Iteration wird beginnend beim Test 56 ausgeführt.
  • Wenn j gleich n1 wird, ist die Schleife beendet, und der Decodierschritt 37 schließt mit dem Hervorbringen 62 des Wertevektors [R'] und des Entscheidungsvektors [D]. Der neue Vektor [R'] wird gleich der Summe des Eingangsvektors [R] genommen (dessen jede Komponente Rj aus der Eingangsmatrix extrahiert ist {R}: Rj = Rj,j2), und des Korrekturvektors [W] multipliziert mit einem weiteren positiven Vertrauenskoeffizienten αj: [R'] = [R] + αj[W]. Der neue Entscheidungsvektor wird gleich dem in Schritt 54 ausgewählten Codewort [Cd] genommen.
  • In einer Ausführungsvariante wird die Formel (2) im Schritt 59 gegebenenfalls ersetzt durch: Wj = βjCj d (2') die eine Korrektur Wj beschafft, die direkt proportional zum Vorzeichen der neuen Entscheidung Cj d ist. Andere Formeln, die einen Vertrauenskoeffizienten berücksichtigen, könnten noch benutzt werden, wenn kein konkurrierendes Wort identifiziert ist.
  • Die Schritte 42 der Decodierung der Werteworte, die Zeilen der Wertematrix entsprechen, sind fast gleich zu den Schritten 37, die hier unten unter Bezug auf 4 detailliert beschrieben sind, wobei der Code C1 durch den Code C2 ersetzt ist, und die Länge n1 durch die Länge n2 und indem man die Matrizen {R'}, {D}, {R} nicht in Spaltenvektoren [R'], [D], [R] teilt, sondern in Zeilenvektoren.
  • Die Vertrauenskoeffizienten αj und βj sind einem Index zugewiesen, der der Zählvariablen i des Flussdiagramms in 3 entspricht. In der Tat können die Koeffizienten αj , βj von einem Suchschritt 32, 33 zum anderen variieren. Vorzugsweise wachsen αj und βj in dem Maße der Codewörtersuchschritte 32, 33, um die wachsenden Zuverlässigkeit der Decodierung zu berücksichtigen.
  • Zur Veranschaulichung der Leistungsfähigkeiten des oben beschriebenen Decodierverfahrens zeigt die 5 Kurven der TEB als Funktion des Verhältnisse Signal zu Rauschen Eb/N0, die durch Simulation im Fall des Produkts von zwei identischen Elementarcodes BCH (64, 57, 4) erhaltenen wurden. In diesem Fall benötigt der elementare Decodierer, der zum Decodieren der Zeilen und Spalten verwendet wird (Schritte 37, 42), ungefähr 43000 logische Gatter, wenn die Decodierung mit der optimalen Version, wie in EP-A-0 654 919 beschrieben, übereinstimmt. Unter diesen 43000 Gattern dienen 25000 zur Berechnung des Korrekturvektors [W], das heißt 59% des Kreislaufs. Mit der in der 4 dargestellten elementaren Decodierung, ist die zur Berechnung von [W] benutzte Anzahl der Gatter durch 10 geteilt. Der elementare Decodierer ist also mit 25000 Gattern anstelle von 43000 realisierbar. Die Ergebnisse der 5 sind im Fall einer Modulation durch Phasenverschiebung in 4 Zuständen (QPSK) erhalten worden und eines Kanals mit weißem additiven Gauss'schem Rauschen, wobei die Werfe in 4 Bits quantifiziert werden. Man verwendet m = 4 Decodierzyklen mit q = 16 Testsequenzen, die aus den p = 4 am wenigsten geringen Wertevektoren [R'] gebildet sind. Bei 2m = 8 Codewörtersuchschritten sind die aufeinander folgenden Werte des Koeffizienten αj 0.4, 0.4, 0.5, 0.5, 0.6, 0.6, 0.65, 0.65, solange der Koeffizient βj durchgehend: βj = 7 bleibt. Die Kurve II zeigt die Ergebnisse, die erhalten werden, wenn man die optimale Version des Decodierverfahrens nach EP-A-0 654 910 verwendet. Die Kurve III Zeigt die Ergebnisse im Fall der elementaren Decodierung nach 4. Zum Vergleich zeigt die Kurve 1 die beobachteten Leistungsfähigkeiten beim Fehlen der Kanalcodierung. Man beobachtet, dass die Abnahme der Leistungsfähigkeiten, die die Vereinfachung der elementaren Decodierung mit sich bringt, für eine TEB von 10–5 unter 0.15 dB bleibt. Diese Abnahme ist schwach, wenn man sie gegen den Gewinn von 50% bezüglich der Komplexität des Kreislaufs abwägt. Man kann beabsichtigen eine größere Anzahl an Iterationen mit dem gleichen elementaren Kreislauf zu verwirklichen und daher eine zusätzliche Abnahme der globalen Komplexität des Kreislaufes zu bringen.
  • Die 6 zeigt eine Architektur eines TCB 17 Kreislaufs, der geeignet ist die Decodierung des Produktcodes nach einem, wie dem oben beschriebenen, Algorithmus in dem speziellen Fall, bei dem die verwendeten Elementarcodes identisch sind, durchzuführen. Jeder der elementaren Decodierschritte wird nach 4 durch einen arithmetischen Kreislauf und eine dedizierte Logik 65, die durch einen Kontrollprozessor 66 des TCB Kreislaufs gesteuert wird, durchgeführt (es wäre gleichfalls möglich, dass mehrere Kreisläufe 65 verwendet werden, um mehrere elementare Decodierungen parallel durchzuführen). Ein Speicher RAM 67 wird verwendet, um die Stichproben der Matrizen {R}, {R'} und {D} zu speichern.
  • Der Prozessor 66 überwacht die Decodierung nach dem generellen Flussdiagramm der 3. Beim Empfang der Stichproben des Signals R(t) befiehlt der Prozessor 66 das Schreiben in den Speicher 67, um die Eingangsmatrix {R} (Schritt 30) zu bilden und diese in zweckmäßige Adressen zu speichern, und um die Matrizen {R'} und {D} (Schritt 31) zu bilden und diese in zweckmäßige Adressen zu speichern. Bei jeder elementaren Decodierung 37 oder 42, befiehlt der Prozessor Lesungen in dem Speicher 67, um die zweckmäßigen Stichproben der Vektoren [R], [R'] und [D] im elementaren Decodierer 65 nach dem Schreiben, um die neuen Werte der Vektoren [R'] und [D] aufzuzeichnen, zu bilden. Am Ende der m Zyklen führt der Prozessor 66 den Schritt 46 aus, indem er die Lesungen in zweckmäßigen Adressen des Speichers 67 (Matrix {D}) befiehlt, um das Ausgangssignal Z(t) des Decodierers 17 zu liefern.
  • Die Erfindung erlaubt es verschiedene Parameter des Produktcodes variieren zu lassen, indem der selbe Kreislauf TCB 17 für die Decodierung verwendet wird: es genügt einfach zweckmäßige Parameter an den Teil des Programms des Prozessors 66 zu liefern, der die Bildung der Eingangsmatrix {R} bei Schritt 30 betrifft, und gegebenenfalls an diejenigen, die das Extrahieren der Informationsbits bei Schritt 46 betreffen.
  • Eine Programmierung geschieht gleichermaßen auf dem Niveau des Codierers 12, wovon 7 ein Funktionsschema für den speziellen Fall zeigt, dass die verwendeten Elementarcodes identisch sind. Ein herkömmlicher arithmetischer Kreislauf 68 wird für die aufeinander folgenden elementaren Codierungen der Zeilen und Spalten der Matrix verwendet, um Bits zu übermitteln (Schritte 22 und 23 der 2). Dieser elementare Codierer 68 wird durch einen Kontrollprozessor 69 des Codierers gesteuert. Ein Speicher RAM 70 wird zum Abspeichern der Stichproben der Matrix {c} verwendet.
  • Beim Empfangen eines Blocks von binären Stichproben des Signals X(t) (hier au genannt für u = 1, 2, ..., k – X wobei k = k1.k2) steuert der Prozessor das Schreiben in den Speicher 70, um die Matrix {a} mit k1 Zeilen und k2 Spalten zu bilden, die wegen der systematischen Codierung (Schritt 21) eine Untermatrix der Matrix {c} ist. Bei jeder elementaren Codierung steuert der Prozessor 69 das Lesen im Speicher 70, um die zweckmäßigen Stichproben der zu codierenden Zeile oder Spalte an den Codierer 68 zu liefern, dann das Schreiben, um die Werte der erhaltenen Redundanzbits aufzuzeichnen. Nach den n1 + n2 elementaren Codierungen sind die Bits der endgültigen Matrix {c} im Speicher 70 verfügbar, und der Prozessor 69 steuert das Lesen an zweckmäßigen Adressen in diesem Speicher, um das Signal Y(t) an den Modulator zu liefern. Die binären Stichproben des Signal Y(t) sind hier cv genannt für v = 1, 2, ..., n – X – Y wobei n = n1.n2.
  • Die Programmierung des Codierers und des Decodierers lässt die Anwendung einer Technik der Verkürzung und/oder einer Technik der Punktierung auf den Produktcode zu.
  • Im Fall der Verkürzung besteht die Programmierung daraus, die Anzahl X an den Codierer und den Decodierer zu liefern, die die Differenz zwischen der Anzahl der Bits k der Matrix {a} auf die der Produktcode angewendet wird, und der Anzahl k – X der Bits au pro zu codierendem Block darstellt. Aus dieser Anzahl X bestimmt der Codierer X Positionen in der Matrix {a} für die Bits des bestimmten Werts (der bestimmten Werte) (beispielsweise 0), die sich bei der Verarbeitung jedes Blocks in den der Matrix {c} entsprechenden Positionen wiederfinden, und die von den übermittelten Bits cv ausgeschlossen werden. Er bestimmt gleichfalls eine Ordnung, in der die Bits au jedes Blocks an anderen Stellen der Matrix {a} sortiert werden.
  • Um diese Stellen zu bestimmen, verwenden die Prozessoren 69, 66 des Codierers und des Decodierers ein vordefiniertes Verfahren, wie beispielsweise das, dessen Flussdiagramm in der 8 dargestellt ist. In diesem Beispiel kennzeichnet eine Matrix {h} mit k1 Zeilen und k2 Spalten durch hi,j = 1 die Positionen i,j der bekannten Bits. Anfänglich sind alle Komponenten der Matrix {h} bei 0, ebenso wie die Indizes i,j und nx (Schritt 80). Der Index nx wird in Schritt 81 mit X verglichen, und wenn nx < X ist, werden die Indizes i,j in Schritt 82 um 1 Modulo k, beziehungsweise 1 Modulo k2 inkrementiert (bei der hier verwendeten Schreibweise liegen die Indizes i und j jeweils zwischen 1 und k1 und zwischen 1 und k2 derart, dass die Inkrementierung nach den im Kasten 82 in 8 angegebenen Formeln ausgeführt wird). Wenn hi,j ≠ 0 ist, nach dem Schritt 82 (Test 83), wird der Index der Spalte j im Schritt 84 um 1 Modulo k2 inkrementiert bevor der Test 83 neu ausgeführt wird. Wenn der Test 83 zeigt, dass hi,j = 0 ist, wird der Wert 1 in Schritt 85 dieser Komponente hi,j zugewiesen, und der Index nx wird um 1 inkrementiert, bevor zum Vergleich 81 zurückgekehrt wird. Alle Positionen sind zugeordnet, wenn der Vergleich 81 zeigt, dass nx = X ist.
  • Das obige Verfahren erlaubt es die Stellen der bekannten Bits gleichmäßig über die Zeilen und Spalten der Matrix {a} zu verteilen. Die Gleichmäßigkeit ist perfekt, das heißt, alle Zeilen, sowie Spalten, zählen die selbe Anzahl an Stellen hi,j = 1, wenn X ein Vielfaches von k1 und k2 ist; wenn nicht, werden die Abweichungen von der Gleichmäßigkeit minimiert. Die 9 stellt eine Form der Matrix {h} in dem speziellen Fall dar, bei dem k1 = k2 = 10 und X = 30 ist (die unbesetzten Felder entsprechen hi,j = 0).
  • Bevor man die X Stellen, an denen hi,j = 1 ist, bestimmt hat, berechnen die Prozessoren 69, 66 jeder zwei Tafeln x(u), y(u) (1 ≤ u ≤ k – X), wobei die Zeilenindizes und Spaltenindizes jeweils die Positionen in der Matrix {a} angeben, in der die aufeinander folgenden Bits au jedes zu codierenden Blocks sortiert werden. Diese Tafeln werden in Schritt 86 erhalten, wobei die Positionen i,j der Matrix {a} in einer bestimmten Reihenfolge zugeordnet werden, so dass hi,j ≠ 1, beispielsweise Zeile nach Zeile (i = 1, 2, ..., k1) und in jeder Zeile in ansteigender Reihenfolge der Spaltenindizes (j = 1, 2, ..., k2).
  • Das Verfahren der 8 wird ein Mal ausgeführt zur Zeit der Programmierung am Codierer oder des Decodierers, wobei die Tafeln x(u) und y(u) und die Matrix {h} sofort im Speicher aufbewahrt werden. Für jeden Block der Bits au wird in Schritt 21 der Prozessor 69 des Codierers 12 die Matrix {a} konstruieren nach: ai,j = 0 wenn hi,j = 1 ax(u),y(u), fur = 0 für 1 ≤ u ≤ k – X
  • Der Codierer 12 schließt die Bits ci,j in seinem Ausgangssignal, das einem Block entspricht, nicht ein, so dass hi,j = 1 (Schritt 24). Beim Konstruieren der Matrix {R} in Schritt 30 stellt der Prozessor 66 des Decodierers 17 an diese Stellen Stichproben Ri,j, deren Vorzeichen dem bekannten Wert des Bits ai,j entspricht (beispielsweise –1 für ai,j = 0), und deren Absolutwert M ein maximales Vertrauen darstellt (üblicherweise der größte der Werte der Quantisierung des Decodierers).
  • Am Ende der Decodierung des Blocks (Schritt 46) extrahiert der Prozessor 66 die Schätzungen a ^ u (= ±1) der Bits au, gemäß a ^ u = Dx(u) ,Y (u).
  • Was die Punktierung angeht, so beruht die Programmierung darauf, die Anzahl Y an den Codierer und an den Decodierer zu liefern, die die Differenz zwischen der aus der Verwendung des Produktcodes (X = 0, wenn er nicht durch die Verkürzung des Codes bewirkt ist) resultierenden Anzahl n – X der unbekannten Bits der Matrix {c} und der Anzahl der durch den Codierer für jeden Informationsblock übermittelten Bits n – X – Y repräsentiert.
  • Von dieser Anzahl Y bestimmt der Codierer Y Stellen in der Matrix {c} für die Bits, die von übermittelten Bits cv ausgeschlossen werden.
  • Um diese Stellen zu bestimmen wenden die Prozessoren 69, 66 des Codierers und Decodierers ein vordefiniertes Verfahren, so wie beispielsweise das, dessen Flussdiagramm in 10 dargestellt ist, das dem von 8 ähnlich ist. In diesem Beispiel hat man die Dimensionen der Matrix {h} auf n1 Zeilen und n2 Spalten ausgedehnt, und man bezeichnet durch hi,j = 2 die Y Stellen i,j der punktierten Bits. Anfangs sind alle Komponenten der Matrix {h} 0, außer diejenigen, die von dem Verfahren der 8 auf 1 gesetzt wurden, wenn X ≠ 0, ebenso wie die Indizes i,j und ny (Schritt 100). Der Index ny wird in Schritt 101 mit Y verglichen, und wenn ny < Y, werden die Indizes i und j bei Schritt 102 um jeweils 1 Modulo n1, beziehungsweise 1 Modulo n2, inkrementiert (in der hier verwendeten Schreibweise liegen die Indizes i und j jeweils zwischen 1 und n1, beziehungsweise 1 und n2 derart, dass die Inkrementierung nach den im Kasten 102 in 10 angegebenen Formeln ausgeführt wird). Wenn hi,j ≠ 0 ist, nach dem Schritt 102 (Test 103), wird der Index der Spalte j im Schritt 104 um 1 Modulo k2 inkrementiert bevor der Test 103 neu ausgeführt wird. Wenn der Test 103 zeigt, dass hi,j = 0 ist, wird der Wert 2 in Schritt 105 dieser Komponente hi,j zugewiesen, und der Index ny wird um 1 inkrementiert, bevor zum Vergleich 101 zurückgekehrt wird. Alle Positionen sind zugeordnet, wenn der Vergleich 101 zeigt, dass ny = Y ist.
  • Das obige Verfahren erlaubt es die Y Stellen der punktierten Bits gleichmäßig über die Zeilen und Spalten der Matrix {c} zu verteilen. Bei Abwesenheit der Verkürzung ist die Gleichmäßigkeit perfekt, wenn Y ein Vielfaches von n1 und n2 ist; wenn nicht, werden die Abweichungen von der Gleichmäßigkeit minimiert. Die 11 stellt eine Form der Matrix {h} ohne Verkürzung in dem Fall dar, bei dem n1 = n2 = 12 und Y = 24 ist (die unbesetzten Felder entsprechen hi,j = 0).
  • Wenn eine Verkürzung zusammen mit einer Punktierung angewendet wird (X ≠ 0, Y ≠ 0), ist die Gleichmäßigkeit der Y Stellen in den Zeilen und den spalten der Matrix {c} im Fall der quadratischen Matrizen (k1 = k2 und n1 = n2) perfekt, wenn Y ein Vielfaches von n, ist; wenn nicht, bleiben die Abweichungen von der Gleichmäßigkeit sehr gering. Die 12 stellt eine Form der Matrix {h} in dem Fall dar, bei dem k1 = k2 = 10, n1 = n2 = 12, X = 30 und Y = 24 ist. Nur die n – X – Y = 90 Bits ci,j, die in die leeren Felder in 12 gesetzt sind, werden durch den Codierer übermittelt.
  • Die Übermittlung der n – X – Y Bits cv erfolgt in einer bestimmten Reihenfolge, beispielsweise Zeile nach Zeile, wobei der Schritt 24 dann für den Codierer bedingt folgendes zu machen: cv = cx'(v),v'(v) für 1 ≤ v ≤ n – X – Ywobei in Schritt 106 (10) die Indizes der Zeile und der Spalte x'(v), y'(v) im Moment der Programmierung des Codierers und Decodierers bestimmt und abgespeichert werden. Entsprechend setzt der Prozessor 66 des Decodierers 17 die n – X – Y Stichproben Rv des Blocks des empfangenen Signals bei Schritt 30 auf zweckmäßige Stellen der Matrix {R}: Rx'(v),y'(v)= Rv für 1 ≤ v ≤ n – X – Y
  • An anderen Stellen setzt der Prozessor 66:
    • – Ri,j = –M, wenn hi,j = 1 wie vorangehend angegeben,
    • – Ri,j = ±ε, wenn hi,j = 2
  • Die Anzahl ε repräsentiert ein minimales Vertrauen in die Schätzungen von Y (typischerweise der kleinste der Werte der Quantisierung des Decodierers).
  • Im Laufe der iterativen Decodierung bleiben die Schätzungen Di,j der Bits so wie hi,j = 1 sehr zuverlässig. Die punktierten Bits (hi,j = 2) wollen ihre Zuverlässigkeit nach und nach mit elementaren Decodierungen erhöhen.
  • Die Leistungsfähigkeiten der Techniken der Verkürzung und der Punktierung, die auf einen Produktcode gemäß der Erfindung angewendet werden, sind jeweils durch die 13 und 14 dargestellt, und zwar im Fall des Produkts von zwei identischen Elementarcodes BCH (32, 26, 4) und einer Modulation durch Phasenverschiebung bei 4 Zuständen (QPSK). Die Parameter des Produktcodes sind dann:
    • – k = 676
    • – n = 1024
    • – d = 16
    • – anfänglicher Wirkungsgrad 0,660.
  • Die Kurve I in den 13 und 14 zeigt die Entwicklung der Fehlerhäufigkeit (TEB) als Funktion des Signal/Rausch-Verhältnisse Eb/N0 ohne Kanalcodierung, und die Kurve IV mit dem verwendeten Produktcode ohne Verkürzung oder Punktierung (X = Y = 0) und mit einer iterativen Decodierung mit m = 4 Zyklen.
  • Die 13 entspricht dem Fall, bei dem X = 312, Y = 0, das heißt, dass jeder zu codierende Block sich aus k – X = 364 Informationsbits zusammensetzt, und dass der Wirkungsgrad der Codierung (k – X)/(n – X) = 0,511 ist, wobei die theoretische Shannon-Grenze dann 0,04 dB ist. Die Kurven V.1 bis V.4 zeigen die Leistungsfähigkeiten, die nach jeweils m = 1, m = 2, m = 3 und m = 4 Decodierzyklen erhalten werden. Man stellt fest, dass die Neigung der Kurve nach 4 Zyklen praktisch unverändert ist hinsichtlich des Falls, bei dem man k Informationsbits pro Block übermittelt (Kurve IV). Das Verhältnis Signal zu Rauschen, das benötigt wird, um eine TEB = 10–5 nach 4 Zyklen zu erreichen, ist gleich 2,91 dB, was ungefähr 2,9 dB über der Shannon-Grenze entspricht. Diese Lösung erlaubt es einen TCB Kreislauf vorzusehen, wobei Datenblöcke irgendeiner Größe kleiner oder gleich k ohne wesentliche Abnahme der Leistungsfähigkeit des Codier-Decodier-Bausteins hinsichtlich der theoretischen Shannon-Grenze übermittelt werden können.
  • Die 14 entspricht dem Fall, in dem der selbe TCB Kreislauf mit X = 0, Y = 104 programmiert ist, das heißt, dass jeder codierte Block n – k – Y = 244 anstelle von 348 Redundanzbits enthält, und dass der Wirkungsgrad der Codierung k/(n – Y) = 0,735 ist, wobei die theoretische Shannon Grenze dann 0,81 dB ist. Die Kurven VI.1 bis VI.4 zeigen die Leistungsfähigkeiten, die nach jeweils m = 1, m = 2, m = 3 und m = 4 Decodierzyklen erhalten werden, in dem Fall, in dem die punktierten Bits unter den durch den systematischen Produktcode hinzugefügten Redundanzbits ausgewählt wurden. Man stellt fest, dass die Neigung der Kurve nach 4 Zyklen praktisch unverändert ist hinsichtlich des Falls, in dem man die n Bits der Matrix übermittelt (Kurve IV). Das benötigte Verhältnis von Signal zu Rauschen, um eine TEB = 10–5 nach 4 Zyklen zu erreichen, ist gleich 3,71 dB, was ungefähr 2,9 dB über der Shannon-Grenze entspricht. Diese Lösung erlaubt es einen TCB Kreislauf vorzusehen, wobei die Anzahl der verwendeten Redundanzbits ohne wesentliche Abnahme der Leistungsfähigkeiten des Codier-Decodier-Bausteins hinsichtlich der theoretischen Shannon-Grenze irgendeine Anzahl kleiner oder gleich n – k ist.

Claims (10)

  1. Verfahren zum Übermitteln von Informationsbits, wobei ein Sender (10) die folgenden Schritte ausführt: – Bildung einer ersten binären Matrix ({a}) aus den zu übermittelnden Informationsbits (au); – Umwandlung der ersten binären Matrix in eine zweite, binäre Matrix ({c}) unter Verwendung eines systematischen Codeblocks, der dem Codeprodukt aus systematischen Elementarcodeblöcken (C1, C2) entspricht; und – Senden von aus der zweiten binären Matrix extrahierten Bits in Richtung eines Kanals (cv), und ein Empfänger (15) die folgenden Schritte ausführt: – Bildung einer Eingangsmatrix ({R}) aus einem Signal (R(t)), das über den Kanal empfangen wurde, wobei die Eingangsmatrix die selbe Größe hat wie die zweite binäre Matrix und sich aus numerischen Stichproben zusammensetzt, deren Zeichen die Anfangsschätzungen der Bits der zweiten binären Matrix darstellen und deren Absolutwerte Vertrauenswerte messen, die mit den besagten Anfangsschätzungen in Bezug stehen; und – iterative Decodierung der Eingangsmatrix, die eine Anzahl m Decodierzyklen umfasst, wobei jeder Decodierzyklus aufeinanderfolgende Schritte (32, 33) zur Codewörtersuche für jeden Elementarcodeblock enthält, der im Codeprodukt benutzt wurde, wobei sich bei jedem Schritt (32, 33) zur Codewörtersuche eine Wertematrix ({R'}) und eine Entscheidungsmatrix ({D}) mit binären Komponenten ergibt, welche vor dem ersten Suchschritt der iterativen Decodierung durch die Eingangsmatrix {{R}} und durch eine Matrix gebildet wird, deren binäre Komponenten den Zeichen der Stichproben der Eingangsmatrix entsprechen und für den nachfolgenden Suchschritt eine neue Entscheidungsmatrix ({D}) gebildet wird, deren binäre Komponenten jeweils neue Schätzungen der Bits der zweiten binären Matrix und der neuen Wertenmatrix ({R'}) darstellen, deren Stichproben absolute Werte haben, die Vertrauenswerte messen, welche mit den besagten neuen Schätzungen in Bezug stehen, wobei die dekodierten Informationsbits (au) aus der Entscheidungsmatrix extrahiert werden, die beim letzten Schritt zur Codewörtersuche erzeugt wurde, wobei jeder Schritt (32, 33) zur Codewörtersuche eine Aufteilung der empfangenen Wertematrix in Wertevektoren ([R']) umfasst, wobei jeder einem Codewort des Elementarcodes entspricht, und eine entsprechende Aufteilung der empfangenen Entscheidungsmatrix in Entscheidungsvektoren ([D]) und elementare Decodierungen mit weichen Entscheidungen (37, 42), um mindestens einige Wertevektor/Entscheidungsvektor-Paare zu verarbeiten, wobei eine Menge aus Y Bits, die sich auf Y bestimmte Stellen in der zweiten binären Matrix ({c} beziehen, nicht in Richtung des Kanals gesendet werden, und der Empfänger (15) in die Eingangsmatrix ({R}) Stichproben an den Stellen einsetzt, die den besagten Y bestimmten Stellen der zweiten binären Matrix entsprechen, wobei die Absolutwerte der Stichproben repräsentativ für einen minimalen Vertrauenswert sind, und wobei die besagten bestimmten Y Stellen auf eindeutig einheitliche Art und Weise in jeder Dimension der zweiten binären Matrix ({c}) verteilt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die erste binäre Matrix ({a}) zusätzlich zu den Informationsbits (au) eine Menge aus X Bits mit Werten enthält, die dem Empfänger a priori bekannt sind, wobei diese auf eindeutige einheitliche Art und Weise in jeder Dimension der ersten binären Matrix verteilt sind, und welche sich nach dem systematischen Kodieren, an X bestimmten Stellen der besagten zweiten binä- ren Matrix ({c}) wiederfinden, welche sich von den besagten bestimmten Y Stellen unterscheiden, und welche nicht in Richtung des Kanals gesendet wer- den, und dass der Empfänger (15) in die Eingangsmatrix ({r}) Stichproben an Stellen einsetzt, die den besagten X bestimmten Stellen der zweiten binären Matrix entsprechen, wobei die Zeichen der Stichproben den a priori bekannten Werten der Menge der Bits entsprechen, und die Absolutwerte der Stichproben repräsentativ für einen maximalen Vertrauenswert sind.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die elementare Decodierung mit weichen Entscheidungen (37, 42) für die Verarbeitung eines Wertevektor/Entscheidungsvektor-Paares die folgenden Schritte umfasst: – Bestimmung einer Anzahl p von Indizes (r1, ... rp) für die die Komponenten des Wertevektors ([R']) am wenigsten verlässlich sind; – Bildung einer Anzahl q von binären Decodierwörtern ([Us]) aus den besagten p Indizes und dem Entscheidungsvektor ([D]); – Erlangung von q' Codewörtern ([Cs]) anhand einer algebraischen Decodierung des Entscheidungsvektors und der q binären Decodierwörter; – Auswahl desjenigen ([Cd]) aus den q' erhaltenen Codewörtern, das die schwächste euklidische Distanz mit dem Wertevektor ([R']) hat; – Berechnung eines Korrekturvektors ([W]), wobei jede Komponente Wj des Korrekturvektors berechnet wird, indem ein mögliches konkurrierendes Wort ([Cc]) bestimmt wird, dessen j-te Komponente sich von jener des ausgewählten Codewortes ([Cd] unterscheidet, und indem die Formel:
    Figure 00310001
    angewendet wird, wenn ein konkurrierendes Wort hinsichtlich des Wertevektors ([R']) des ausgewählten Codewortes ((Cd]) und des konkurrierenden Wortes ([Cc]) bestimmt worden ist, wobei Md beziehungsweise Mc die euklidischen Distanzen bezeichnen, und Cj d und R'j die j-ten Komponenten des ausgewählten Codewortes beziehungsweise des Wertevektors bezeichnen; – Erlangung des neuen Entscheidungsvektors ([D]), welcher aus dem gleichen ausgewählten Codewort ([Cd]) entnommen wurde; und – Berechnung des neuen Wertevektors ([R']) indem der Korrekturvektor ([W]) hinzufügt wird, der mit einem ersten Vertrauenskoeffizienten (i) am entsprechenden Eingangsvektor ([R]), der aus der Eingangsmatrix ({R) extrahiert wurde, multipliziert wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Schritt zur Berechnung eines Korrekturvektors ([W]) die Bestimmung eines möglichen konkurrierenden Wortes ([Cc]) bezüglich der j-ten Komponente des ausgewählten Codeworts ([Cd]) einen Vergleich zwischen der j-ten Komponente des ausgewählten Codeworts ([Cd]) und derjenigen eines Codewortkandidaten beinhaltet, welcher unter den erhalten q' Codeworten, außer dem ausgewählten Codewort, die schwächste euklidische Distanz mit dem Wertevektor ([R']) hat, wobei der besagte Codewortkandidat als konkurrierendes Wort aufgefasst wird, wenn seine j-te Komponente sich von derjenigen des ausgewählten Codeworts unterscheidet, und im gegenteiligen Fall kein konkurrierendes Wort bestimmt wird.
  5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass die Berechnung jeder Komponente W; des Korrekturvektors ((W]) bei fehlender Bestimmung eines konkurrierenden Wortes bezüglich dieser Komponente nach der Formel: Wj = iCj d durchgeführt wird, wobei i einen zweiten Vertrauenskoeffizienten bezeichnet.
  6. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass die Berechnung jeder Komponente Wj des Korrekturvektors ([W]) bei fehlender Bestimmung eines konkurrierenden Wortes bezüglich dieser Komponente nach der Formel: Wj = ☐i – Cj dR'j☐Cj d durchgeführt wird, wobei r einen zweiten Vertrauenskoeffizienten bezeichnet.
  7. Redundanzkodierer (12) mit – Mitteln (69), um aus zu übermittelnden Informationsbits (au) eine erste binäre Matrix ({a}) zu bilden; – elementaren Kodiersteuermitteln (68), um unter Verwendung eines systematischen Codeblocks, der dem Codeprodukt aus systematischen Elementarblöcken (C1, C2) entspricht, die erste binäre Matrix in einer zweite binäre Matrix ({c}) umzuwandeln; und mit – Mitteln, um über einen Kanal aus der zweiten binären Matrix extrahierte Bits (Cv) zu senden; und mit – Programmiermitteln (69), um Y Stellen in der zweiten Matrix ({c}) aus einer gelieferten Anzahl Y zu bestimmen, um die Anzahl der in Richtung des Kanals zu sendenden Bits der zweiten Matrix zu programmieren, wobei die Bits der zweiten Matrix, die sich an den besagten Y Stellen befinden, nicht in Richtung des Kanals gesendet werden, – und die besagten Y Stellen auf eindeutig einheitliche Art und Weise in jeder Dimension der zweiten binären Matrix ({c}) verteilt sind.
  8. Kodierer nach Anspruch 7, dadurch gekennzeichnet, dass die Programmiermittel (69) angeordnet sind, um X Stellen zu bestimmen, und um aus einer gelieferten Anzahl X in jeder ers ten Matrix die einzuschließenden Informationsbits zu programmieren, wobei die X Stellen gleichmäßig in jeder Dimension der ersten Matrix verteilt werden, und dass die Mittel zur Bildung der ersten Matrix angeordnet sind, um die bekannten Bitwerte an den besagten X Stellen zu setzen, wobei die besagten bekannten Bitwerte sich nach dem systematischen Kodieren an bestimmten Stellen der zweiten binären Matrix wiederfinden und nicht in Richtung des Kanals gesendet werden.
  9. Decoder zur Fehlerkorrektur (17) mit: – Mitteln (66), um aus einem über einen Übertragungskanal empfangenen Signal (R(t)) eine Eingangsmatrix ({R}) zu bil- den, wobei die Eingangsmatrix sich aus numerischen Stichproben zusammensetzt, deren Zeichen die Anfangsschätzungen der Bits einer binären Matrix darstellen, die durch einen Redundanzkodierer (12) gebildet wird, der einen systematischen Codeblock verwendet, welcher dem Produkt aus systematischen Elementarcodeblöcken (C1, C2) entspricht, und dessen Absolutwerte Vertrauenswerte messen, die mit den besagten Anfangsschätzungen in Bezug stehen; und – Steuermitteln (65) zur iterativen Decodierung, um die Eingangsmatrix mit aufeinanderfolgenden Decodierzyklen zu dekodieren, wobei jeder Decodierzyklus aufeinanderfolgende Schritte (32, 33) zur Codewörtersuche für jeden Elementarcodeblock umfasst, der im Codeprodukt benutzt wurde, wobei bei jedem Schritt (32, 33) zur Codewörtersuche die Decodiermittel (65) eine Wertmatrix ({R'}) und eine Entscheidungsmatrix ({D}) mit binären Komponenten erhalten, die vor dem ersten Such schritt durch die Eingangsmatrix ({R}) beziehungsweise durch eine Matrix, deren binäre Komponenten den Zeichen der Stichproben aus der Eingangsmatrix ({R}) entsprechen, gebildet werden und die Decodiermittel (65) für den folgenden Suchschritt eine neue Entscheidungsmatrix ({D}) und eine neue Wertematrix ({R'}) erzeugen, wobei die binären Komponenten der neuen Entscheidungsmatrix ({D}) neue Schätzungen der Bits der zweiten binären Matrix darstellen, und wobei die Stichproben der neuen Wertematrix ({R'}) Absolutwerte haben, welche Vertrauenswerte in Bezug auf die be- sagten neuen Schätzungen messen, wobei dekodierte Informationsbits (a ^ u) aus der Entscheidungsmatrix extrahiert werden, die beim letzten Schritt der Codewörtersuche erzeugt wurde, und wobei jeder Schritt (32, 33) der Codewörtersuche eine Aufteilung der empfangenen Wertematrix in Wertevektoren ([R']) enthält, wobei jeder einem Codewort des Elementarcodes entspricht, und eine entsprechende Aufteilung der empfangenen Entscheidungsmatrix in Entscheidungsvektoren ([D]) enthält und eine elementare Decodierung mit weichen Entscheidungen (37, 42) enthält, um wenigstens einige der Wertevektor/Entscheidungsvektor-Paare zu verarbeiten, der Decoder beinhaltet neben dem Programmiermittel (66), um Y Stellen in der Eingangsmatrix ({R}) zu bestimmen, und um aus einer gelieferten Anzahl Y die Anzahl der aus dem empfangenen Signal erhaltenen Stichproben der Eingangsmatrix zu programmieren, zusätzlich Eingangsmatrix-Bildungsmittel, die angeordnet sind, um an die besagten Y Stellen die numerischen Stichproben zu setzen, wobei deren Absolutwerte repräsentativ für einen minimalen Vertrauenswert sind, wobei die Programmiermittel (66) die besagten Y Stellen auf eindeutige einheitliche Art und Weise in jeder Dimension der Eingangsmatrix ({R}) verteilen.
  10. Decoder nach Anspruch 9, dadurch gekennzeichnet, dass die Programmiermittel (66) angeordnet sind, um X Stellen zu bestimmen, und um aus einer gelieferten Anzahl X die Anzahl der aus der Entscheidungsmatrix extrahieren dekodierten Informationsbits zu programmieren, und wo- bei die X Stellen gleichmäßig in jeder Dimension einer nicht redundanten Untermatrix ({a}) der besagten binären Matrix verteilt sind, und dass die Eingangsmatrix-Bildungsmittel ({R}) angeordnet sind, um an den Stellen, die den besagten X Stellen entsprechen, numerische Stichproben mit bestimmten Zeichen einzusetzen, wobei die Absolutwerte der Stichproben repräsentativ für einen maximalen Vertrauenswert sind.
DE69722331T 1996-08-28 1997-08-26 Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür Expired - Lifetime DE69722331T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9610521A FR2753025B1 (fr) 1996-08-28 1996-08-28 Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede
FR9610521 1996-08-28

Publications (2)

Publication Number Publication Date
DE69722331D1 DE69722331D1 (de) 2003-07-03
DE69722331T2 true DE69722331T2 (de) 2004-04-29

Family

ID=9495254

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69722331T Expired - Lifetime DE69722331T2 (de) 1996-08-28 1997-08-26 Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür

Country Status (5)

Country Link
US (1) US6065147A (de)
EP (1) EP0827284B1 (de)
JP (1) JP3923618B2 (de)
DE (1) DE69722331T2 (de)
FR (1) FR2753025B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005021321A1 (de) * 2005-05-04 2006-11-09 Siemens Ag Verfahren und Vorrichtung zum Übertragen von Korrektursymbolen bei Verwendung eines systematischen Blockcodes

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000019616A2 (en) 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder
US6678843B2 (en) 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
EP1030457B1 (de) * 1999-02-18 2012-08-08 Imec Verfahren und Systemarchitekturen für Turbodekodierung
EP1160988B1 (de) * 1999-02-26 2006-12-27 Fujitsu Limited Turbodekoder und verschachtel-/endschachtelapparat
EP1919087A1 (de) * 1999-03-01 2008-05-07 Fujitsu Limited Turbodekodierer
FR2801744A1 (fr) * 1999-11-26 2001-06-01 Mathieu Arnaud Amelioration du decodage iteratif des codes produits par adjonction d'informations a priori
US6400290B1 (en) 1999-11-29 2002-06-04 Altera Corporation Normalization implementation for a logmap decoder
US6693566B2 (en) 1999-12-03 2004-02-17 Broadcom Corporation Interspersed training for turbo coded modulation
US7499507B2 (en) * 1999-12-03 2009-03-03 Broadcom Corporation Synchronization module using a Viterbi slicer for a turbo decoder
US6421804B1 (en) * 1999-12-20 2002-07-16 Agere Systems Guardian Corp. Generating reliability values for iterative decoding of block codes
JP3923743B2 (ja) * 2000-03-29 2007-06-06 株式会社東芝 復号装置及び復号方法
US6591390B1 (en) * 2000-04-11 2003-07-08 Texas Instruments Incorporated CRC-based adaptive halting turbo decoder and method of use
EP1329025A1 (de) * 2000-09-05 2003-07-23 Broadcom Corporation Quasi-fehlerfreie kommunikation unter verwendung von turbokoden
US7117418B2 (en) * 2000-09-11 2006-10-03 Comtech Aha Corporation Soft input-soft output forward error correction decoding for turbo codes
US7360146B1 (en) 2002-08-15 2008-04-15 Broadcom Corporation Inverse function of min*:min*- (inverse function of max*:max*-)
US7242726B2 (en) * 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US7383485B2 (en) * 2000-09-12 2008-06-03 Broadcom Corporation Fast min*- or max*-circuit in LDPC (low density parity check) decoder
US6518892B2 (en) * 2000-11-06 2003-02-11 Broadcom Corporation Stopping criteria for iterative decoding
FR2816773B1 (fr) 2000-11-10 2004-11-26 France Telecom Module, dispositif et procede de decodage a haut debit, d'un code concatene
FR2817091B1 (fr) * 2000-11-22 2003-03-21 St Microelectronics Sa Codeur a turbocodes a synchronisation facilitee
US7389463B2 (en) * 2001-05-29 2008-06-17 Thomson Licensing Hierarchical block coding for a packet-based communications system
EP1425859A4 (de) * 2001-08-09 2009-01-07 Adaptive Networks Inc Fehlerkorrekturprozess und -mechanismus
AU2002334863A1 (en) * 2001-10-04 2003-04-14 Comtech Aha Corporation Method of decoding a turbo product code utilizing a scalable and hardware efficient forward error correction decoder
US6847760B2 (en) * 2001-10-23 2005-01-25 Georgia Tech Research Corporation Spatially resolved equalization and forward error correction for multimode fiber links
US20030093741A1 (en) * 2001-11-14 2003-05-15 Cenk Argon Parallel decoder for product codes
JP3889286B2 (ja) * 2002-01-31 2007-03-07 三菱電機株式会社 復号方法、復号装置及びディジタル伝送システム
US20030202563A1 (en) * 2002-04-26 2003-10-30 Arnab Das Rate adaptation and antenna selection in a wireless communication system
US7137059B2 (en) * 2002-11-20 2006-11-14 Broadcom Corporation Single stage implementation of min*, max*, min and /or max to perform state metric calculation in SISO decoder
US7085985B2 (en) * 2002-05-31 2006-08-01 Broadcom Corporation Close two constituent trellis of a turbo encoder within the interleave block
US7107512B2 (en) * 2002-05-31 2006-09-12 Broadcom Corporation TTCM decoder design
US7210092B1 (en) 2002-05-31 2007-04-24 Broadcom Corporation Symbol by symbol variable constellation type and/or mapping capable communication device
US7321633B1 (en) 2002-05-31 2008-01-22 Broadcom Corporation Determination of variable code rates for a rate control sequence
US7032164B2 (en) * 2002-05-31 2006-04-18 Broadcom Corporation Efficient design to calculate extrinsic information for soft-in-soft-out (SISO) decoder
US7062700B2 (en) * 2002-05-31 2006-06-13 Broadcom Corporation 16 QAM and 16 APSK TTCM (Turbo Trellis Coded Modulation) with minimum bandwidth efficiency of 3 bit/s/Hz using a rate 2/4 constituent encoder
US7657822B2 (en) * 2002-05-31 2010-02-02 Broadcom Corporation True bit level decoding of TTCM (turbo trellis code modulation) of variable rates and signal constellations
US6954832B2 (en) * 2002-05-31 2005-10-11 Broadcom Corporation Interleaver for iterative decoder
US7472335B1 (en) 2002-05-31 2008-12-30 Broadcom Corporation Symbol by symbol variable code rate capable communication device
US7111226B1 (en) 2002-05-31 2006-09-19 Broadcom Corporation Communication decoder employing single trellis to support multiple code rates and/or multiple modulations
US7093187B2 (en) * 2002-05-31 2006-08-15 Broadcom Corporation Variable code rate and signal constellation turbo trellis coded modulation codec
US7065695B2 (en) * 2002-05-31 2006-06-20 Broadcom Corporation Metric calculation design for variable code rate decoding of broadband trellis, TCM, or TTCM
US7188301B1 (en) 2002-05-31 2007-03-06 Broadcom Corporation Parallel concatenated turbo code modulation encoder
CN100514866C (zh) * 2002-06-21 2009-07-15 汤姆森特许公司 前向纠错的方法
US7266749B1 (en) * 2002-06-27 2007-09-04 Legend Silicon Corporation Trellis construction based on parity check matrix for BCH code
US7729373B2 (en) * 2002-07-02 2010-06-01 Broadcom Corporation Modified range requests enabling bandwidth requests and state of health reporting
US20040019842A1 (en) * 2002-07-24 2004-01-29 Cenk Argon Efficient decoding of product codes
US7694210B2 (en) * 2002-07-31 2010-04-06 Broadcom Corporation Turbo-coding DOCSIS information for satellite communication
US7395487B2 (en) * 2002-08-15 2008-07-01 Broadcom Corporation Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US7447985B2 (en) * 2002-08-15 2008-11-04 Broadcom Corporation Efficient design to implement min**/min**- or max**/max**- functions in LDPC (low density parity check) decoders
US7409628B2 (en) * 2002-08-15 2008-08-05 Broadcom Corporation Efficient design to implement LDPC (Low Density Parity Check) decoder
US7738596B2 (en) * 2002-09-13 2010-06-15 Broadcom Corporation High speed data service via satellite modem termination system and satellite modems
US7100101B1 (en) * 2002-11-08 2006-08-29 Xilinx, Inc. Method and apparatus for concatenated and interleaved turbo product code encoding and decoding
US7296212B1 (en) * 2002-11-15 2007-11-13 Broadwing Corporation Multi-dimensional irregular array codes and methods for forward error correction, and apparatuses and systems employing such codes and methods
US7765577B2 (en) 2002-12-27 2010-07-27 Broadcom Corporation Turbo coding for upstream and downstream transmission in cable systems
US20040163030A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Iterative error correcting system
KR100461544B1 (ko) 2003-02-27 2004-12-18 한국전자통신연구원 고차원의 곱부호를 이용한 레이트 호환가능 부호 구성 방법
US7239667B2 (en) * 2003-03-18 2007-07-03 Broadcom Corporation 8 PSK rotationally invariant turbo trellis coded modulation without parallel transitions
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
US7221714B2 (en) 2003-05-12 2007-05-22 Broadcom Corporation Non-systematic and non-linear PC-TCM (Parallel Concatenate Trellis Coded Modulation)
IL157885A0 (en) * 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
US8374284B2 (en) * 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
CN100337479C (zh) * 2004-03-22 2007-09-12 上海奇普科技有限公司 一种针对tpc码与nr码级联编码的迭代译码方法
FR2871631B1 (fr) * 2004-06-10 2006-09-22 Centre Nat Rech Scient Cnrse Procede de decodage iteractif de codes blocs et dispositif decodeur correspondant
US7260762B2 (en) * 2004-07-26 2007-08-21 Motorola, Inc. Decoder performance for block product codes
US7310767B2 (en) * 2004-07-26 2007-12-18 Motorola, Inc. Decoding block codes
US7447981B2 (en) * 2005-04-01 2008-11-04 Broadcom Corporation System correcting random and/or burst errors using RS (Reed-Solomon) code, turbo/LDPC (Low Density Parity Check) code and convolutional interleave
US7447984B2 (en) 2005-04-01 2008-11-04 Broadcom Corporation System correcting random and/or burst errors using RS (Reed-Solomon) code, turbo/LDPC (Low Density Parity Check) code and convolutional interleave
FR2888062A1 (fr) * 2005-07-04 2007-01-05 Groupe Ecoles Telecomm Codeur et turbo decodeur de code produit
US8091009B2 (en) * 2006-03-23 2012-01-03 Broadcom Corporation Symbol by symbol map detection for signals corrupted by colored and/or signal dependent noise
FR2899357B1 (fr) 2006-03-29 2008-06-20 Sagem Defense Securite Traitement de donnees biometriques dans un referentiel multi dimensionnel.
US7689896B2 (en) * 2006-06-21 2010-03-30 Broadcom Corporation Minimal hardware implementation of non-parity and parity trellis
US8074155B2 (en) * 2006-09-28 2011-12-06 Broadcom Corporation Tail-biting turbo coding to accommodate any information and/or interleaver block size
US20080092018A1 (en) * 2006-09-28 2008-04-17 Broadcom Corporation, A California Corporation Tail-biting turbo code for arbitrary number of information bits
US8065587B2 (en) * 2006-10-10 2011-11-22 Broadcom Corporation Reduced complexity ARP (almost regular permutation) interleaves providing flexible granularity and parallelism adaptable to any possible turbo code block size
US7831894B2 (en) 2006-10-10 2010-11-09 Broadcom Corporation Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves
US7827473B2 (en) 2006-10-10 2010-11-02 Broadcom Corporation Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors
US7882416B2 (en) * 2006-10-10 2011-02-01 Broadcom Corporation General and algebraic-constructed contention-free memory mapping for parallel turbo decoding with algebraic interleave ARP (almost regular permutation) of all possible sizes
US20080133997A1 (en) * 2006-12-01 2008-06-05 Broadcom Corporation, A California Corporation Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave
US8065588B2 (en) 2007-01-17 2011-11-22 Broadcom Corporation Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave
US7975203B2 (en) 2007-01-17 2011-07-05 Broadcom Corporation Quadratic polynomial permutation (QPP) interleaver providing hardware savings and flexible granularity adaptable to any possible turbo code block size
US20080256424A1 (en) * 2007-04-13 2008-10-16 Broadcom Corporation Information bit puncturing for turbo coding with parameter selectable rate matching tailored to lower eb/no without degrading bler (block error rate) performance
US8904265B2 (en) * 2007-05-02 2014-12-02 Broadcom Corporation Optimal period rate matching for turbo coding
US8069387B2 (en) * 2007-07-16 2011-11-29 Broadcom Corporation Turbo coding having combined turbo de-padding and rate matching de-padding
US8069400B2 (en) * 2007-08-13 2011-11-29 Broadcom Corporation Optimal circular buffer rate matching for turbo code
CN101471672B (zh) * 2007-12-27 2011-04-13 华为技术有限公司 低密度奇偶校验码的编码方法和编码器
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
CN118074728B (zh) * 2024-04-18 2024-06-21 北京邮电大学 一种Turbo码删余模式的识别方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57155857A (en) * 1981-03-23 1982-09-27 Kokusai Denshin Denwa Co Ltd <Kdd> Maximum likelihood method and apparatus for error
US4633470A (en) * 1983-09-27 1986-12-30 Cyclotomics, Inc. Error correction for algebraic block codes
JPS61154227A (ja) * 1984-12-26 1986-07-12 Mitsubishi Electric Corp 2段符号化方法
CA1264091A (en) * 1986-01-10 1989-12-27 Yoichiro Sako Generator for error correcting code and decoder for the code
US4821268A (en) * 1987-10-26 1989-04-11 Cyclotomics, Inc. Soft decision Reed-Solomon decoder
US5181207A (en) * 1988-04-14 1993-01-19 Harris Corp. Error correction mechanism using pattern predictive error correction codes
JPH04154222A (ja) * 1990-10-17 1992-05-27 Canon Inc 符号化及び復号化装置
JPH0645955A (ja) * 1992-07-24 1994-02-18 Mitsubishi Electric Corp エラー訂正方式
FR2712760B1 (fr) * 1993-11-19 1996-01-26 France Telecom Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005021321A1 (de) * 2005-05-04 2006-11-09 Siemens Ag Verfahren und Vorrichtung zum Übertragen von Korrektursymbolen bei Verwendung eines systematischen Blockcodes

Also Published As

Publication number Publication date
DE69722331D1 (de) 2003-07-03
FR2753025B1 (fr) 1998-11-13
JP3923618B2 (ja) 2007-06-06
EP0827284A1 (de) 1998-03-04
EP0827284B1 (de) 2003-05-28
FR2753025A1 (fr) 1998-03-06
JPH10135850A (ja) 1998-05-22
US6065147A (en) 2000-05-16

Similar Documents

Publication Publication Date Title
DE69722331T2 (de) Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür
DE3910739C2 (de)
DE69215743T2 (de) Fehlerkorrekturkodierungsverfahren mit mindestens zwei parallellen, systematischen Faltungsenkodern, iterativem Dekodierungsverfahren, Dekodierungsmodul und Dekoder dafür
DE69936908T2 (de) Iterative dekodierung von produktkoden
DE69838451T2 (de) Verfahren und schaltung zur adaptiven kanalkodierung
DE69532949T2 (de) Verfahren und gerät zur dekoderoptimierung
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
DE60122200T2 (de) Stopkriterien für interative dekodierung
DE69936683T2 (de) Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt
DE602005003767T2 (de) Verfahren zum komprimieren einer menge korrelierter signale
DE60113053T2 (de) Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes
DE602004001548T2 (de) Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem
EP0755122A2 (de) Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Information
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
DE69722571T2 (de) System und Verfahren zur digitalen Übertragung mit einem Produktkode kombiniert mit multidimensionaler Modulation
DE69837077T2 (de) Verschachteler für Turbo-Kodierer
DE60108892T2 (de) Modul, vorrichtung und verfahren zum hochbitratigen dekodieren eines verketteten codes
DE69936067T2 (de) Verfahren und Vorrichtung zur Maximum-a-Posteriori Warscheinlichkeits-Dekodierung
EP0737389B1 (de) Übertragungssystem mit soft-output-dekodierung bei reduziertem speicherbedarf
DE69914767T2 (de) Verfahren und vorrichtung zur fehlerkorrektur- codierung und decodierung
DE112005003706T5 (de) Modifizierter turbo-decodierender Nachrichtenweiterleitungsalgorithmus für Paritätsprüfcodes mit geringer Dichte
DE69305371T2 (de) Verfahren zur Maximalwahrscheinlichkeitsdekodierung mit unterabgetastetem Dekodierungstrellis und entsprechende Dekodierungsvorrichtung
DE60104338T2 (de) Vorrichtung und verfahren zur turbo decodierung mit signaturdatenvergleich als abbruchkriterium
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE69823307T2 (de) Digitales Übertragungssystem, Dekoder und Dekodierungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition