DE19725275A1 - Verfahren und Einrichtung zur analogen Detektion und Decodierung - Google Patents

Verfahren und Einrichtung zur analogen Detektion und Decodierung

Info

Publication number
DE19725275A1
DE19725275A1 DE1997125275 DE19725275A DE19725275A1 DE 19725275 A1 DE19725275 A1 DE 19725275A1 DE 1997125275 DE1997125275 DE 1997125275 DE 19725275 A DE19725275 A DE 19725275A DE 19725275 A1 DE19725275 A1 DE 19725275A1
Authority
DE
Germany
Prior art keywords
code
network
bits
decoding
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE1997125275
Other languages
English (en)
Other versions
DE19725275C2 (de
Inventor
Joachim Hagenauer
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.)
Hagenauer Joachim Prof Dr-Ing 80333 Muenchen De
Original Assignee
Hagenauer Joachim Prof Dr-Ing 80333 Muenchen De
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 Hagenauer Joachim Prof Dr-Ing 80333 Muenchen De filed Critical Hagenauer Joachim Prof Dr-Ing 80333 Muenchen De
Priority to DE1997125275 priority Critical patent/DE19725275C2/de
Priority to DE1998115825 priority patent/DE19815825A1/de
Publication of DE19725275A1 publication Critical patent/DE19725275A1/de
Application granted granted Critical
Publication of DE19725275C2 publication Critical patent/DE19725275C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/136Reed-Muller [RM] 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/6597Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03171Arrangements involving maximum a posteriori probability [MAP] detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Error Detection And Correction (AREA)

Description

Seit der Frühzeit der Informations- und Codierungstheorie war es immer das Ziel, bei tolerierbarer Komplexität nahe an die von Shannon 1948 vorgege­ benen Grenze zu kommen. Kanäle, für welche die Shannon Grenze leicht ermittelbar ist, sind: a) der Gaußsche Kanal (AWGN), näherungsweise rea­ lisiert bei Satellitenkanälen, b) der Rayleigh Kanal, näherungsweise reali­ siert bei der Schmalbandübertragung im Mobilfunk. Um den entsprechen­ den Shannongrenzen nahezukommen sollten praktische Codierverfahren wei­ che ("soft") Werte und Kanalzustandsinformation (CSI) verwenden. In letz­ ter Zeit sind iterative Decodiermethoden [HOP96] entwickelt worden, die es erlauben, sich der Shannongrenze relativ leicht zu nähern. Dabei wer­ den sogenannte "Soft-in/Soft-out" Decoder [Hag92] verwendet, die nicht nur "Soft" Werte als Eingangswerte verwenden, sondern auch solche produzie­ ren. Diese Verfahren arbeiten bisher algorithmisch und sequentiell in digi­ talen Prozessoren und verwenden z. B. den Viterbi-, den SOVA oder den Bahl-Algorithmus und daraus durch Vereinfachungen abgeleitete Algorith­ men [HOP96].
Die vorliegende Erfindung geht noch eine Schritt weiter, es werden bei den Empfängern auch zur internen Signalverarbeitung "Soft"-Werte heran­ gezogen, d. h. es werden durchwegs analoge (reelle) Signalwerte verwendet, die in einer Schaltung durch Strom- und Spannungswerte dargestellt sind. Dies stellt einen Schritt dar, der von der digitalen (binären) Welt zurück zu der analogen Welt führt. Der Empfänger wird realisiert als analoges, paral­ leles, nichtlineares Netzwerk, das mit den empfangenen Werten geladen wird und nach einem Einschwingvorgang die Ergebniswerte in analoger Form vor­ legt. Das Vorzeichen dieser Ergebniswerte ist dann die Binärentscheidung, der Betrag ist dann die Zuverlässigkeit dieser Entscheidung.
Die Vorteile dieser neuen Methode liegen darin das praktisch ohne Verzöge­ rung ("no latency") entschieden wird, keine Information verschwendet wird, hochparallel und integriert verarbeitet wird und "Soft"-Werte, d. h. Bits mit Zuverlässigkeit am Ausgang vorliegen. Natürlich können diese Netzwerke auch auf bisherigen sequentiellen Rechnern nachgebildet werden.
Grundlage der Erfindung L-Werte und "Soft"-Bits
(K, N) Codes zur Fehlerkorrektur mit der Rate R = K/N werden entweder durch die Generatormatrix G oder durch die Paritätsprüfmatrix H beschrie­ ben [Fri95]. Die N-K Zeilen der Paritätsprüfmatrix geben die Prüfgleichun­ gen, also z. B. für die m-te Zeile
oder nach χk aufgelöst
Addition ⊕ und Multiplikation ⊙ sind im jeweiligen Galoisfeld auszuführen, also bei GF(2) in der bekannten modulo 2 Rechnung.
Die Bits kann man als abstrakte Elemente beliebig bezeichnen, also wie meist üblich mit 0,1 oder - wie hier verwendet - mit +1, -1. Man führt dann noch die Wahrscheinlichkeiten ein und die Loglikelihood-Verhältnisse
L(χ) ist eine reelle Zahl und die binäre (harte) Entscheidung ist
χ = sign(L(χ)) (3)
und
|L(χ)| (4)
bedeutet die Zuverlässigkeit von x.
Mit
λ(χ) = tanh(L(χ)/2) (5)
bezeichnet man das sog. "Soft"-Bit, dessen Werte im Bereich von -1 bis +1 liegen.
Addition von Bits
Addiert man zwei statistisch unabhängige Bits (im GF(2) bzw. modulo 2)
χ3 = χ1 ⊕ u2 (6)
so gilt für die "soft" Bits [HOP96]
λ(χ3) = λ(χ1).λ(χ2), (7)
wobei die Muliplikation, die der reellen Zahlen ist. Für die L-Werte gilt dann die Beziehung
L(χ3) = 2.atanh(tanh(L(χ1)/2).tanh(L(χ2)/2)), (8)
die wir mit dem "Boxplus"-Symbol abkürzen:
L(χ3) = L(χ1) L(χ2) (9).
Diese Netzwerkelemente können wie in den Bildern 1, 2, 3 und 4 ausgeführt, auch als Bauteil realisiert werden.
Für die "Boxplus" Operation gilt die Näherung [HOP96]:
L(χ3) ≈ signL(x1).signL(x2).min(|L(χ1)|,|L(χ2)|) (10).
Das Element bildet ein wesentliches Bauteil in den nachfolgenden Reali­ sierungen der Erfindung. Interessiert man sich beispielsweise für den L-Wert von χk in Gl. (1), so ergibt sich
wobei die Summe im Boxplus- Sinne über alle x zu nehmen ist bei denen hm,n von Null verschieden ist und der Index von k abweicht.
Falls man bei einer Implementierung die Multiplikation scheut, kann man auch in den Log-λ-Bereich Λ gehen:
Λ(χ) = - ln|λ| = - ln tanh|L(χ)/2|. (12).
Umgekehrt erhält man
|λ| = e-Λ(χ), (13)
|L(χ)| = 2atanh(e-Λ(χ)). (14).
Damit hat man die durch einfache Addition reeller positiver Zahlen aus­ zuführende Betragsbeziehung
Λ(χ3) = Λ(χ1) + Λ(χ2), (15)
während für das Vorzeichen χi = ± 1 gilt
χ3 = χ1 ⊕ χ2.
Man beachte, daß beide Transformationen |L| nach Λ und Λ nach |L| nach der gleichen Funktion f(w)
verlaufen. Als nichtlineare Bauteile sind sie im Bild 2 dargestellt.
Übertragung von Bits
Nach der Übertragung des Bits χ über einen BSC oder einen Gaußschen/Fading Kanal, hat man den Empfangswert y und
und mit den L-Werten
Dabei ist Lc = 4a.Es/No für einen Fading Kanal mit der Amplitude a. Für den Gaußschen Kanal ist a = 1 und für den BSC ist Lc gleich
Lc = log((1 - Po)/Po).
Deshalb wird Lc die Zuverlässigkeit oder Kanalzustandsinformation (CSI) des Kanals genannt.
Das Netzwerk wird gemäß der Erfindung mit den Werten L(χ|y) geladen, wobei die CSI und die a priori Information bekannt sein müssen und, wie im Bild 5 gezeigt, gewichtet werden. Ist L(χ) nicht bekannt, so wird es zu Null gesetzt.
Bausteine und Aufbau des Decodiernetzwerkes
Codes können auch durch Graphen beschrieben werden [TAN81], [FOR96]. Ausgehend von den Paritäts- oder Codegleichungen enthält das erfindungs­ gemaße Decodiernetzwerk verschiedene Elemente die in den Abbildungen dargestellt sind:
  • (a) Element Kanalgewichtung
  • (b) Element L nach λ und Element λ nach L
  • (c) Element L nach Λ und Element Λ nach L
  • (d) Element binäre Addition und entsprechende Elemente in λ (Mul­ tiplikation), L (Boxplus) und Λ (Addition)
  • (e) Ausführungsbeispiel Boxplus
  • (f) Element Λ-Addition und Näherung der Boxplus-Operation ge­ trennt nach Vorzeichen und Betrag.
Ein "Kreis"- oder "Boxplus"-Element ohne gepfeilte Linien bedeutet, daß jede Linie doppelt ist, also aus dem bidirektionalem Element Signale heraus- und hereingehen.
Ausführungsbeispiele mit zwei Linien sind in den Abb. 7 und 6 gezeigt. Jedes Bit des Codes wird durch einen Kreis, jede Prüfgleichung durch ein "Boxplus"-Element dargestellt. Auf diese Weise wird das Netzwerk konstruiert und mit den gewichteten empfangenen Kanalwerten geladen. Es läuft dann ein eventuell durch das Eigenrauschen getriggerter Ausgleichs­ vorgang ab. Nach einer frei wählbaren Zeit werden die "Soft Outputs" der gewünschten Bits abgegriffen.
Die Operationen des Netzwerkes können im L-, λ- oder Λ-Bereich durch­ geführt werden. Dabei ist darauf zu achten, daß so wenig nichtlineare Opera­ tionen wie möglich durchgeführt werden. Die nichtlinearen Transformatio­ nen können auch durch Tafeln realisiert werden. Die Implementierung des Netzwerkes kann auf verschiedene Art erfolgen:
  • - Realisierung mit diskreten Bauelementen
  • - Integration analoger Bausteine und ihrer Verknüpfungen
  • - Realisierung durch programmierbare Prozessoren und durch integrier­ te digitale Schaltungen
Ausführungsbeispiele für Decodiernetzwerke für binäre Codes Blockcodes Wiederholungscode (N, 1, N)
Bei einem Wiederholungscode der Länge N ist der extrinsische Ergebniswert:
und der "Soft-Output"
L(χ1|y1) + Le
Paritätsprüfcode SCPC (N,N-1,2)
Bei einem SPC-Code der Länge N ist der extrinsische Ergebniswert:
und der "Soft-Output"
L(χi|yi) + Lei
Ein Beispiel für einen (3, 2, 2) SPC Code ist in der Abb. 7 gezeigt.
Hammingcode (7, 4, 3)
Der Hammingcode hat die im Abb. 8 angegebene Prüfmatrix H. Die drei Prüfgleichungen sind durch die 3 "Boxplus"-Elemente repräsentiert, an denen die entsprechenden Informationsbits u und Prüfbits p inzident sind. Für diese Bits werden in das Netzwerk die entsprechenden Kanalwerte L(χ|y) geladen und nach der Einschwingzeit werden die Ausgangswerte u abgelesen. Die Boxpluselemente haben, wie oben, beschrieben 4 Eingänge und 3 Ausgänge, letzteres an den ungepfeilten Linien.
Eingebettete Codes: Reed-Muller-Codes
Eingebettete Codes, die zum Beispiel durch Summenkonstruktionen [Fri95] erzeugt werden, können auch durch eingebettete Netzwerke decodiert wer­ den. Eine solche Codefamilie sind die Reed-Muller RM(r, m) Codes mit
Sie können rekursiv folgendermaßen erzeugt werden: Mit u ∈ RM(r + 1, m) und ν ∈ RM(r, m) ist
{u|u ⊕ ν} ∈ RM(r + 1, m + 1).
Weiterhin ist RM(O, m) ein Wiederholungscode und RM(m-1, m) ein Parity-Check-Code.
Wie in Abb. 9 gezeigt, läßt sich der RM-Code rekursiv aufbauen. Entsprechend läßt sich das Decodiernetzwerk rekursiv aufbauen und sukkze­ sive auf die bekannten Netzwerke des Wiederholungscodes (Kreis-Element) und des SCPC-Codes ("Boxplus"-Element) zurückführen. Über die Verbin­ dungslinien der einzelnen Teilnetzwerke wird wieder extrinsische Information ausgetauscht.
Faltungscodes Einfachstes Beispiel
Das einfachste Decodiernetzwerk wird in Abb. 10 durch einen syste­ matischen Faltungscode vom Gedächtnis 1 und Rate 1/2 generiert. Der Fal­ tungscode ist terminiert, entweder dadurch, daß das Startbit und das Schluß­ bit u5 zu 0 gesetzt werden, oder das letzte Bit u5 als Startbit verwendet wird ("Tailbiting"). Im ersten Fall entsteht ein (10,4)-Code, im zweiten Fall der höherratige und quasizyklische (10,5)-Code. Das zyklische Decodiernetzwerk zeigt Abb. 10. Im ersten Fall wird u5 durch +∞ geladen. Im zweiten Fall wird bei der Codierung der Speicher durch u5 vorbelegt. Bei der De­ codierung werden dann die L-Werte aller 10 Bits in Form der Kanalwerte L(χ|y) an das Netzwerk gelegt.
Faltungscodes in nichtsystematischer Form
Die Abb. 11 zeigt einen Faltungscode mit Gedächtnis 2 in "Tailbiting Form" und das zugehörige Decodiernetzwerk. Geladen wird das Netzwerk an den "Boxplus" Elementen, ausgelesen wird an den Kreis-Elementen. Das Netzwerk kann, wie es Abb. 12 zeigt, im Prinzip beliebig weit aus­ gedehnt werden, mit ∞-Werten abgeschlossen oder zyklisch terminiert wer­ den. Das Decodiernetzwerk ist zyklisch zu schließen, wenn der Code in "Tailbiting"- Form ist. Die ersten und letzten u-Werte sind ±∞ zu setzen, wenn der Coder durch bekannte Bits initiert und terminiert ist verwendet man Codes mit höherem Gedächtnis, so erhöhen sich im Gegensatz zur Trellisdarstellung die Zahl der Knoten nicht, lediglich die Zahl der Verbindungen steigt. Die Zahl der an den beiden "Boxplus"-Elementen anliegenden Verbindungen ist eins mehr als die Zahl der Einsen in den Zeilen der Generatormatrix, also in obigem Beispiel wegen
4 bzw. 3 Verbindungen. Beim Gedächtnis 4 Code
sind es 4 bzw. 5 Verbindungen.
Auch eine Punktierung [Fri95] zur Erzielung hochratiger Codes ist leicht möglich, indem die entsprechenden "Boxplus"- Elemente weggelassen wer­ den. Für eine Punktierung mit der Matrix (), die aus dem Rate 1/2 einen 2/3-Code erzeugt wird jedes 2. "Boxplus"-Element wegelassen.
Rückgekoppelte Faltungscodes in systematischer Form
Für rückgekoppelt erzeugte systematische Faltungscodes sieht, wie in Abb. 13 gezeigt, das Decodiernetzwerk etwas anders aus. Die Zustands­ variablen ai werden neu eingeführt und das Ergebnis liegt an den äußeren Kreis-Elementen an, welche die 2. Parity Elemente ersetzt haben.
Auch hier läßt sich, wie in Abb. 14, ein ausgedehntes Netzwerk erzeugen.
Realisierung des Netzwerkes durch einen Prozessor
Obwohl das Hauptanliegen der Erfindung die Realisierung durch ananlo­ ge Schaltungen ist, kann auch eine mehr konventionelle prozessororientierte Implementierung durchgeführt werden. Dazu werden die Operationen takt­ weise ausgeführt und die Ausgänge über einen Zwischenspeicher und die nächste Verknüpfungsoperation weitergegeben. Beispielsweise würden dann in Abb. 12 die nichtbepfeilten Linien, die ja bidirektional sind, ihre Ausgangswerte an ein Zwischenspeicherelement weitergeben. Wird beispiels­ weise von rechts ein neues Codebitpaar angelegt, werden alle Ausgänge über diese Speicher um einen Takt nach links weitergereicht. Auch die Codebits in Abb. 14 würden dann über einen Zwischenspeicher um einen Takt weitergereicht. Mit dieser Anordnung lassen sich neue einlaufende Bits und ihre L-Werte sequentiell verarbeiten.
Parallel- und seriell verketteter Codes
Die parallele Verkettung wurde bei den sog. "Turbo"-Codes wurde in [BGT93] durch iterative sequentielle Verfahren decodiert.
Die Abb. 15 zeigt eine solche Verkettung, bei der die einzelnen Teilcodes über den Interleaver II(l) die Informationsbits nochmals verwürfelt erhalten und die Paritätsbits p(l) erzeugen. Auf der Decodierseite wird erfin­ dungsgemäß der Teilcode durch sein Netzwerk dargestellt und diese Netz­ werkteile durch die Verbindungen V verbunden (Die benötigten Deinterlea­ ver sind der Einfachheit halber in der Zeichnung weggelassen). Über diese Verbindungen V werden die extrinsischen Informationen der einzelnen De­ codiernetzwerke ausgetauscht.
Entsprechendes gilt für eine serielle Verkettung der Codes wie unten im Abb. 15 dargestellt. Der Decoder des innere Code Ci gibt seine ex­ trinsische Information an den äußeren Decoder DECo, der wiederum seine Information an DECi zurückführt. Auch in diesen verketteten nichtlinearen Netzwerken laufen Einschwingvorgänge ab, deren Zeitkonstante nur durch die parasitären Widerstände und Kondensatoren bestimmt sind, da die oben beschrieben Netzwerkbauelemente verzögerungsfrei sind.
Parallelverkettete Blockcodes
Die Abb. 16 zeigt ein Beispiel eines parallel verketteten (8,4,4)-Codes, der aus (3,2,2)-SCPC-Teilkodes besteht. Gezeigt ist auch das Ergebnis der ersten Iteration, die durch horizontales Auftrennen des verketteten Netz­ werkes entstehen würde. Erfindungsgemäß wird jedoch das Netzwerk nicht aufgetrennt, sondern mit den 8 Kanalwerten (4 an "Boxplus"- 4 an "Kreis"- Elementen) geladen. Nach Abklingen des Ausgleichsvorganges werden an den 4 "Kreis"-Elementen die Ergebniswerte abgelesen.
Parallelverkettete Faltungscodes
Die Abb. 17 zeigt ein Ausführungsbeispiel eines parallelverketteten Fal­ tungscodes. Jeder der 2 Teildecoder ist ein Netzwerkes eine systematischen Decoders. Die extrinsischen Teilinformationen werden über die Verbindungs­ matrix V mit den durch die Interleavermatrix und die Permutationen II festgelegten Verbindungen ausgetauscht. Bei der Decodierung werden die L-Werte die zu {ui}, zu {Pi (1)}, sowie zu {pi (2)}
Faltungscode, der seriell mit Blockcodes verkettet ist
Abb. 18 zeigt als Beispiel einen (2,1) "Tailbiting"-Faltungscode mit Gedächtnis 1, der seriell mit zwei (3,2,2)-SCPC- Blockcodes verkettet ist. Über den Verbindungsring werden innerer Code Ci und die äußeren Codes Co so vernetzt, daß die darüber ausgetauschten inneren und äußeren extrin­ sischen Informationen möglichst statistisch unabhängig sind.
Ausführungsbeispiele zu Decodiernetzwerke für mehrstufige codierte Modulation
Mehrstufige codierte Modulation nach Imai und Hirakawa kann auch mehr­ stufig decodiert werden. Dabei werden vorteilhaft Soft-Werte und eine itera­ tive Rückführung verwendet [WH93]. Erfindungsgemäß wird nun auch die­ se Decodierung durch ein Netzwerk durchgeführt, wobei die Teilnetzwer­ ke der Codes der einzelnen Stufen ihre Ergebnisse zur Metrikberechnung aus den empfangenen QAM-(MPSK)-Werten zurückkoppeln. Das Verfahren wird hier durch eine 8-PSK- Modulation mit M=3 Stufen erklärt, jedoch ist das Verfahren für jede stufen-codierte Modulation anwendbar.
Die 8-PSK Signalmenge wird wie in der Abb. 19 gezeigt durch sog. "Setpartioning" in Teilmengen aufspaltet, wobei jede Teilmengenpartitionie­ rung i = 1, 2, 3 durch einen Code geschützt wird mit der gleichen Länge N und den Bits b(1), b(2), b(3).
Die Decodierung erfolgt nach Abb. 20 durch einen Mehrstufendecoder DECi, bei dem der Code jeder Stufe durch ein Decodiernetzwerk decodiert wird. Es kann aber auch jeder andere zu den Codes passender Soft-in/Soft- out-Decoder verwendet werden. Das Ergebnis jeder Decodierstufe wird rück­ gekoppelt und in der Metrikberechnung als a priori Information verwendet. Die Metrikberechnung erfolgt für die i-te Stufe nach folgender Formel
Dabei sind
  • - d0 Die euklidische Distanz von y zum Signalpunkt mit χ(i) = 0(+1)
  • - d1 Die euklidische Distanz von y zum Signalpunkt mit χ(i) = 1(-1)
  • - L(χ(j)) Die rückgekoppelte a priori Information über das Bit χ(j)
Es kann folgende Näherung für die Metrik verwendet werden:
Diese Näherung läßt sich für 8-PSK. wie in Abb. 21 gezeigt, im Metriknetzwerk ausführen.
Für 4-PSK ist die entsprechende Näherung und das Metriknetzwerk in Abb. 22 gezeigt. Es lassen sich aber auch - wie oben angegeben - Reali­ sierungen im A-Bereich angeben, bei der Log-L Werte und demzufolge Sum­ mationen verwendet werden können.
Das Decodiernetzwerk wird dann mit den M.N, im Beispiel mit 3.M empfangen und gewichteten Werten geladen und über das Metrik-Netzwerk den Decodern zugeführt.
Das einfachste Beispiel verwendet zu 8-PSK die Codes WH (8, 1, 8), SPC (8, 7, 2) und uncodiert (8, 8, 1) und erzielt 3 dB asymptotischen Gewinn (Fri95].
Der erste Decoder ist durch ein "Kreis"-Element, der zweite durch ein "Boxplus"- Element verwirklicht, der 3. Decoder entfällt.
Die M = 3 Code-Decodiernetzwerke liefern dann ohne Verzögerung die Apriori-Werte, die wiederum über das Metrik-Netzwerk rückgekoppelt in die M Decodiernetzwerke einfließen. Nach dem Einschwingvorgang werden am Ausgang der Decodiernetzwerke die "Soft-Output" Werte der Informations­ bits abgegriffen.
Abbildungsverzeichnis
1 Nichtlineares Element zur Transformation von L nach λ und λnach L
2 Nichtlineares Element L nach Λ und Element Λ nach L
3 Element binäre Addition (mod 2 bzw. XOR-Addition) und die entsprechenden Elemente in λ (Multiplikation), L (Box­ plus) und Λ (Addition)
4 Ausführungsbeispiel Boxplus-Addition
5 Element Kanalgewichtung: Erzeugung der Eingangswerte des Netzwerkes aus den empfangenen Werten y, der Kanalzu­ standsinformation Lc
und der a priori Information L(x)
6 GF(2) bzw. mod 2 Verknüpfung dreier Bits und die zugehöri­ ge bidirektionale "Boxplus"-Operation. Linien ohne Pfeile be­ deuten bidirektionale Operation. Beispiel: L(u1
) = L(u2) + L(p) = +1.0 - 1.5 ≈ -1.0
7 Detailliertes Ausführungsbeispiel bidirektionaler Bauteile
8 Aus der Paritätsprüfmatrix H entwickeltes Decodiernetzwerk eines Hamming Codes (N, K, d) = (7, 4, 3)
9 Beispiel zur Kombination von Untercode- Netzwerken: Kon­ struktion von Reed-Muller Codes
10 Einfacher Faltungscode mit Rate 1/2, Gedächtnis 1, mit 5 Informationsbits und sein Decodiernetzwerk. Der Code ist in "Tailbiting"-Form
11 Nichtsystematischer Faltungscode mit Rate 1/2, Gedächtnis 2, mit 5 Informationsbits und sein Decodiernetzwerk. Der Co­ de ist in "Tailbiting"-Form
12 Nichtsystematischer Faltungscode mit Rate 1/2, Gedächtnis 2, mit beliebig vielen Informationsbits
13 Beispiel eines rückgekoppelten systematischen Faltungscodes in "tailbiting" Form mit 6 Informationsbits
14 Systematischer Faltungscode mit Rate 1/2, Gedächtnis 2, in rückgekoppelter Form mit beliebig vielen Informationsbits.
Das Decodiernetzwerk ist zyklisch zu schließen,wenn der Code in "Tailbiting"-Form ist
15 Serielle und Parallele Verkettung von Netzwerken
16 Parallel verketteter Code und sein Decodiernetzwerk
17 Beispiel parallel verketteter Faltungscodes mit systematischem Komponentencode nach
Bild
8 und sein Decodiernetzwerk. Die Teilnetzwerke sind durch eine Permutationsverbindungs­ brücke miteinander verbunden, über welche die extrinsischen Ausgangswerte der "Kreis"-Bauteile ausgetauscht werden
18 Beispiel seriell verketteter Codes mit innerem (12,6)-Gedächt­ nis 1-Komponentencode, wie in
Bild
4, aber mit 6 Infor­ mationsbits. Der äußere Code besteht aus 2 äußeren SCPC Codes mit den Parametern (3,2,1). Der Gesamtcode ist ein (12,4)-Code. Das Decodiernetzwerk besteht hier aus einem inneren und zwei äußeren Teilnetzwerken. Innere und äuße­ ren Teilnetzwerke sind durch eine Permutationsverbindungs­ brücke miteinander verbunden, über die die extrinsischen Aus­ gangswerte ausgetauscht werden. Die Permutation soll die höchstmögliche statistische Unabhängigkeit der zu einem äuße­ ren Codewort gehörenden Bits sicherstellen
19 "Set Partioning" bei einem 8-PSK-Signal
20 Decodiernetzwerk zur Decodierung von codierter 8-PSK Mo­ dulation
21 Metrik Netzwerk bei 8-PSK codierter Modulation
22 Metrik Netzwerk bei 4-PSK codierter Modulation
Literatur
[Fri95] B. Friedrichs, "Kanalcodierung", Springer Verlag, Berlin. 1995.
[HOP96] J. Hagenauer, E. Offer, L. Papke, "Iterative decoding of binary block and convolutional codes", IEEE Trans. on Inf. Theory, vol. IT- 42, pp 429-425, March 1996.
[Hag92] J. Hagenauer, Soft-In/Soft-Out: The benefits of using soft deci­ sions in all stages of digital receivers", in Proc. Uni Int. Workshop on DSP Techniques applied to Space Communications, ESTEC Noordwijk, The Netherlands, Sept. 1992.
[BGT93] C. Berrou et al., "Near Shannon limit error-correcting and deco­ ding: Turbo-Codes (1)", Proc. IEEE International Conference on Com­ munication (ICC), Geneva, Switzerland,, pp. 1064-1070, May 1993.
[LOD93] J. Lodge et al., "Separable MAP "filters" for the decoding of pro­ duct and concatenated codes," Proc. IEEE International Conference on Communication (ICC), Geneva, Switzerland, pp. 1740-1745, May 1993.
[WH93] Th. Woerz, J. Hagenauer, "Decoding of M-PSK-Multilevel Codes," European Transactions on Telecommunications ETT, Vol 4, No. 3, pp 299-308, 1993.
[TAN81] R.M. Tanner, "A recursive approach to low complexity codes," IEEE Transactions on Information Theory, vol. IT-27, pp 533-547, Sep. 1981.
[FOR96] G. D. Forney, "The forward-backward algorithm", Proc. of the 1996 Allerton Conference, Allerton, Illinois, Sep. 1996.

Claims (7)

1. Verfahren zur Decodierung von Block- und Faltungscodes, dadurch gekenn­ zeichnet, daß der Decoder aus einem nichtlinearen Netzwerk besteht, das aus den Code- oder Paritätsgleichungen abgeleitet wird, indem alle in einer Glei­ chung inzidenten Bits oder Symbole durch ihre Loglikelihood-Werte als reelle Größen dargestellt werden. Weiterhin werden in dem Netzwerk alle durch die Code- oder Paritätsgleichungen verbundenen Symbole durch die das oben beschriebene sog. "Boxplus" Element verbunden, während alle Symbole durch das oben beschriebene Speicher "Kreis"- Element gespeichert und dar­ gestellt werden. Diese Größen können als Ströme, Ladungen oder Spannun­ gen, aber auch als reelle Fest- oder Fließkommavariablen, z. B. in einem Pro­ zessor oder einem Schaltkreis dargestellt werden. Neben diesen Bausteinen sind im Decodiernetzwerk oder im Prozessor Speicher, Umsetzungstabellen, und Nichtlinearitäten vorhanden. Die Nichtlinearitäten sind typischerwei­ se Tangenshyperbolicus- und inverse Tangenshyperbolicus- Funktionen. Das Netzwerk wird durch die Kanal-Loglikelihood-Werte L(χ|y) = Lcy + L(χ) geladen, wobei Lc die Kanalzustandsinformation, y den empfangenen Kanal­ wert z. B. den matched Filter Ausgang , Lc die Kanalzustandsinformation CSI und L(χ) eine mögliche a priori Information über das Symbol χ dar­ stellen. Das Netzwerk kann im Rückkopplungszweig durch Filter beliebiger Ordnung in seinem Einschwingverhalten beeinflußt werden. Nach Abklin­ gen des Einschwingvorganges werden die codierten oder die Informationsbits ausgelesen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Tanh- Nichtlinearität, bzw. ihre Inverse, im "Boxplus" Element durch eine andere Sigmoid- Funktion angenähert wird, insbesonders durch die Näherung
L(χ3) ≈ signL(x1).signL(x2).min(|L(χ1)|, |L(χ2)|)
oder dadurch gekennzeichnet, daß die "Boxplus" Operation im Log-Bereich durchgeführt wird und dadurch als addives Element realisiert wird:
Λ(χ) = - ln |λ| = - ln tanh |L(χ)/2|.
Die Umkehroperation ist
L(χ)| = 2atanh(e-Λ(χ)).
Die Addition wird durch die Betragsbeziehung
Λ(χ3) = Λ(χ1) + Λ(χ2),
realisiert, das Vorzeichen χi = ± 1 durch die XOR-Verknüpfung
χ3 = χ1 ⊕ χ2.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der De­ coder auf einen Faltungscode mit Abschluß oder auf einen Faltungscode mit zyklischem Abschluß angewandt wird, derart daß die bekannten (Tail)-Bits mit ±∞, bzw. dem höchstmöglichen Wert im Schaltkreis oder Prozessor be­ wertet werden oder beim zyklischen Abschluß der Decoder eine Ringstruktur hat. Bei einem zyklischen Faltungscode ("tail- biting") werden in bekannter Weise die letzten M Bits des Blockes in das Gedächtnis M des Encoders geladen.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der De­ coder auf zwei oder mehr parallel verkettete Codes angewandt wird, welche dieselbe Information, die jedoch umgeordnet ("interleaved") ist, mehrfach co­ dieren. Dementsprechend sind zwei oder mehr Basisnetzwerke als Decoder zu verwenden. Erfindungsgemäß wird nun zwischen den beiden Decoder­ netzwerken die verschachtelte ("interleavte") extrinsische Information ausge­ tauscht, wie im Bild 17 beschrieben.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Deco­ diernetzwerk auf seriell verkettete Codes angewandt wird. Dementsprechend sind zwei oder mehr Basisnetzwerke als Decoder zu verwenden. Erfindungs­ gemäß wird nun zwischen den inneren und äußeren Decodernetzwerke die "interleavte" extrinsische Information der codierten Bits ausgetauscht, wie in den Abb. 15 und 18 beschrieben.
6. Verfahren und Decodernetzwerk nach Anspruch 1 , dadurch gekennzeichnet, daß das Decodiernetzwerk auf eine mehrstufige codierte Modulation (QAM) angewandt wird. Als Codierverfahren kann jedes codierte Modulationsver­ fahren verwendet werden, das in bekannter Weise die QAM Signalmenge durch sog. "Setpartioning" in Teilmengen aufspaltet, wobei jede Teilmengen­ partitionierung durch einen Code geschützt wird. Erfindungsgemäß erfolgt nun die Decodierung durch einen Mehrstufendecoder, bei dem der Code je­ der Stufe durch ein Decodiernetzwerk nach Anspruch 1-6 decodiert decodiert wird. Es kann aber auch jeder andere zu den Codes passender Soft-in/Soft- out Decoder verwendet werden. Erfindungsgemäß wird nun weiterhin das Ergebnis jeder Decodierstufe rückgekoppelt und in der Metrikberechnung als a priori Information verwendet. Die Metrikberechnung erfolgt für die i-te Stufe nach folgender Formel
Dabei sind
  • - d0 Die euklidische Distanz von y zum Signalpunkt mit χ(i) = 0(+1)
  • - d1 Die euklidische Distanz von y zum Signalpunkt mit χ(i) = 1(-1)
  • - L(χ(j)) Die rückgekoppelte a priori Information über das Bit χ(j)
Fernerhin kann erfindungsgemäß die folgende Näherung für die Metrik ver­ wendet werden:
Erfindungsgemäß können die Berechnungen auch in einem Metriknetzwerk durchgeführt werden oder in vorab adressierbaren (ROM)-Tafeln gespeichert werden.
7. Verfahren nach den Ansprüchen 1 bis 6, dadurch gekennzeich­ net, daß das Decodiernetzwerk durch Prozessoren oder digitale sequentielle Schaltkreise realisiert wird. In diesem Fall werden die Operationen taktweise ausgeführt und die Ausgänge über Zwischenspeicher and die nächste Ver­ knüpfungsoperation weitergegeben. Auch die einlaufenden Codebits werden dann über einen Zwischenspeicher um einen Takt weitergereicht. Mit die­ ser varierten Anordnung lassen sich neue einlaufende Bits und ihre L-Werte sequentiell verarbeiten.
DE1997125275 1997-06-14 1997-06-14 Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen Expired - Fee Related DE19725275C2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE1997125275 DE19725275C2 (de) 1997-06-14 1997-06-14 Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen
DE1998115825 DE19815825A1 (de) 1997-06-14 1998-04-08 Analoge Entzerrer und Decoder für verzerrende Nachrichtenübertragungskanäle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1997125275 DE19725275C2 (de) 1997-06-14 1997-06-14 Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen

Publications (2)

Publication Number Publication Date
DE19725275A1 true DE19725275A1 (de) 1998-12-24
DE19725275C2 DE19725275C2 (de) 2003-07-03

Family

ID=7832542

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997125275 Expired - Fee Related DE19725275C2 (de) 1997-06-14 1997-06-14 Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen

Country Status (1)

Country Link
DE (1) DE19725275C2 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282559B1 (en) 1998-02-17 2001-08-28 Anadec Gmbh Method and electronic circuit for signal processing, in particular for the computation of probability distributions
US6584486B1 (en) 1999-08-06 2003-06-24 Anadec Gmbh Method for mathematically processing two quantities in an electronic circuit
US7071846B2 (en) 2004-02-24 2006-07-04 Lucent Technologies Inc. Analog decoding method and decoder
US7451174B2 (en) 2005-03-16 2008-11-11 Anadec Gmbh Multi-level soft detector-quantizer

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10304858B4 (de) * 2003-02-06 2005-08-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Vorrichtung zum Decodieren eines Empfangssignals

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
B.Friedrichs:"Kanalcodierung", Springer Verlag Berlin, 1995 *
C. Berrou et al:"Near Shannon limit error-correc- ting and decoding: Turbo-Codes(1)", Proc. IEEE International Conference on Communication (ICC), Geneva, Switzerland, S.1064-1070, Mai 1993 *
J. Hagenauer, E. Offer, L. Papke: "Iterative decoding of binary block and convolutional codes",IEEE Trans. on Inf. Theory, Vol.IT-42, S. 429-445,March 1996 *
J. Hagenauer:"Soft-In/Soft-Out: The benefits of using soft decisions in all stages of digital receivers", in: Proc. 3rd Int. Workshop on DSP Techniques applied to Space Communications, ESTEC Noordwijk, The Netherlands, Sept. 1992 *
J. Lodge et al:"Separable MAP filters for the de- coding of product and concatenated codes", Proc. IEEE International Conference on Communication (ICC), Geneva, Switzerland, S.1740-1745, Mai1993 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282559B1 (en) 1998-02-17 2001-08-28 Anadec Gmbh Method and electronic circuit for signal processing, in particular for the computation of probability distributions
US6584486B1 (en) 1999-08-06 2003-06-24 Anadec Gmbh Method for mathematically processing two quantities in an electronic circuit
US7071846B2 (en) 2004-02-24 2006-07-04 Lucent Technologies Inc. Analog decoding method and decoder
US7451174B2 (en) 2005-03-16 2008-11-11 Anadec Gmbh Multi-level soft detector-quantizer

Also Published As

Publication number Publication date
DE19725275C2 (de) 2003-07-03

Similar Documents

Publication Publication Date Title
DE3910739C2 (de)
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
Hagenauer et al. The analog decoder
DE69923970T2 (de) Kanaldecodiereinrichtung und Verfahren zum Kanaldecodieren
DE60037963T2 (de) Turbo-Dekodierung mit Soft-Output Viterbi Dekoder
DE102005010006B4 (de) Verfahren und Vorrichtung zum Terminieren einer iterativen Turbo-Dekodierung
DE2816913A1 (de) Decoder fuer konvolutinal codierte daten
EP0755122A2 (de) Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Information
DE69914767T2 (de) Verfahren und vorrichtung zur fehlerkorrektur- codierung und decodierung
DE60003071T2 (de) Verfahren zur dekodierung von mit einem entropie-code kodierten daten, entsprechende dekodierungsvorrichtung und übertragungssystem
DE112004002008T5 (de) Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE19934646C2 (de) Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes
DE19725275A1 (de) Verfahren und Einrichtung zur analogen Detektion und Decodierung
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
DE10012873A1 (de) Optimierter Turbo-Decodierer
EP1249074B1 (de) Verfahren zur decodierung eines datensignals
DE10214393A1 (de) Verfahren zur iterativen Decodierung von verketteten Codes
DE19815825A1 (de) Analoge Entzerrer und Decoder für verzerrende Nachrichtenübertragungskanäle
DE60118716T2 (de) Log-MAP Dekodierung
EP1269632B1 (de) Turbo-decodierer und turbo-decodierverfahren
DE19520987A1 (de) Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes
Ďurček et al. Impact of trellis termination on performance of turbo codes
EP1593201B1 (de) Verfahren und schaltung zur adressgenerierung von pseudo-zufalls-interleavern oder -deinterleavern
DE102010054228A1 (de) Verfahren zum Übertragen von Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
AG Has addition no.

Ref country code: DE

Ref document number: 19815825

Format of ref document f/p: P

8304 Grant after examination procedure
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee