DE10000932A1 - Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms - Google Patents

Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms

Info

Publication number
DE10000932A1
DE10000932A1 DE2000100932 DE10000932A DE10000932A1 DE 10000932 A1 DE10000932 A1 DE 10000932A1 DE 2000100932 DE2000100932 DE 2000100932 DE 10000932 A DE10000932 A DE 10000932A DE 10000932 A1 DE10000932 A1 DE 10000932A1
Authority
DE
Germany
Prior art keywords
code word
branch
sequence
information
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.)
Granted
Application number
DE2000100932
Other languages
English (en)
Other versions
DE10000932C2 (de
Inventor
Rainer Bauer
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.)
Technische Universitaet Muenchen
Original Assignee
Technische Universitaet Muenchen
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 Technische Universitaet Muenchen filed Critical Technische Universitaet Muenchen
Priority to DE2000100932 priority Critical patent/DE10000932C2/de
Publication of DE10000932A1 publication Critical patent/DE10000932A1/de
Application granted granted Critical
Publication of DE10000932C2 publication Critical patent/DE10000932C2/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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
    • 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/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

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

Abstract

Bei einem Verfahren zum Decodieren einer Folge von Codewörtern variabler Länge, um die zugrunde liegende Folge von Informationssymbolen zu erhalten, wird zunächst die Anzahl der Codewörter der Folge und die Anzahl der Codewort-Einheiten der Folge bereitgestellt, um dann ein Trellis-Diagramm zu liefern, das Zweige und Knoten für Codewort-Übergänge bzw. Codewort-Zustände der Folge hat, und das darüber hinaus Unterzweige und Unterknoten für Codewort-Einheiten-Übergänge und Codewort-Einheiten-Zustände der Folge von Codewörtern aufweist. Unter Verwendung des Trellis-Diagramms, das in einem definierten Anfangszustand beginnt und in einem definierten Endzustand endet, der von der Anzahl von Codewörtern der Folge und von der Anzahl der Codewort-Einheiten der Folge abhängt, unter Verwendung von Soft-Input-Informationen für den Datenstrom kann in einem Schritt des Decodierens dann eine Sequenzschätzung mittels des Viterbi-Algorithmus oder eine symbolweise oder Codewort-Einheiten-weise Maximum-A-Posteriori-Schätzung unter Verwendung eines beliebigen Soft-Input-Soft-Algorithmus durchgeführt werden, um die Fehlertolernaz beim Decodieren von Codewörtern variabler Länge zu verbessern. Durch Einsatz dieses Verfahrens in einem verketteten Decodierschema mit einem äußeren und einem inneren Codierer kann unter Einsatz einer iterativen Decodierung bei gleichbleibender Sendeleistung die Symbolfehlerrate bzw. bei gleichbleibender Symbolfehlerrate die Sendeleistung reduziert werden.

Description

Die vorliegende Erfindung bezieht sich auf Codiertechniken und insbesondere auf Codier- und Decodiertechniken, die zur Datenreduktion eingesetzt werden, und die insbesondere in der digitalen Übertragungstechnik Anwendung finden können.
In fast allen modernen Datenkompressionsverfahren werden heutzutage Variable-Länge-Codes (VLCs) eingesetzt. VL-Codes zeichnen sich dadurch aus, daß nicht alle Codewörter eines Codes dieselbe Länge haben, sondern daß die Codewörter eines Codes unterschiedliche Längen haben können. Im Falle einer digitalen Applikation entspricht die Länge eines Codeworts der Anzahl der Bits, die ein Codewort hat. Allgemein gespro­ chen werden Codewörter variabler Länge aus unterschiedlichen Anzahlen von Codewort-Einheiten gebildet.
Die Huffman-Codierung ist die bekannteste Codierung auf die­ sem Gebiet. Wird eine Folge von Informationssymbolen Huffman-codiert, so wird üblicherweise zunächst festge­ stellt, welche Symbole wie oft in der Folge von Symbolen auftreten. Dem Nachrichtensymbol, das am häufigsten auf­ tritt, wird dann das kürzeste Wort einer Codetabelle, die auch als Codebook bezeichnet wird, gegeben. Dem Informa­ tionssymbol, das am seltensten auftritt, wird dagegen das längste Codewort gegeben. Die restlichen Codewörter werden entsprechend ihrer Länge vergeben. Damit wird erreicht, daß die Folge von Nachrichtensymbolen unter minimalem Aufwand an Codewort-Einheiten, bzw. Bits im binären Fall, übertragen oder gespeichert werden kann. Ein Beispiel für einen Code mit Codewörtern variabler Länge ist das allseits bekannte Morse-Alphabet.
Huffman-Codes sind präfixfrei. Dies bedeutet, daß die ein­ zelnen Codewörter nicht durch irgendeine Markierung oder ähnliches voneinander getrennt sind, sondern daß in einem Strom von Huffman-Codewörtern die Codewörter ohne irgend­ welche Trennzeichen einfach nacheinander übertragen werden, also eine Folge von Bits sind. Ein Decodierer steht nun vor der Aufgabe, zu erkennen, wann ein Codewort endet und wann das nächste Codewort anfängt. Dieses Erkennen wird dem Deco­ dierer durch die Konstruktion des VL-Codes ermöglicht.
Dies kann man sich anschaulich anhand eines Codebaums für binäre Codewörter vorstellen. Der Baum startet von einer Wurzel und hat von dort ausgehend zwei Zweige, nämlich einen zum Bit 0 und einen zum Bit 1. Wenn das Bit 0 ein gültiges Codewort ist, was oftmals der Fall ist, da das Codewort nur ein Bit, nämlich das Bit 0 hat, und das Informationssymbol darstellt, das am häufigsten auftritt, kann kein anderes Codewort mehr mit einem Bit 0 beginnen, sondern alle anderen Codewörter können nur noch mit einer 1 beginnen. Der Zweig, der von der Wurzel des Baumes zum Bit 0 geht, ist somit durch ein gültiges Codewort abgeschlossen. Ein Huffman-De­ codierer weiß dann, daß die 0 ein Codewort ist, da es an dem ihm bekannten Baum im Falle einer 0 einfach nicht mehr wei­ tergeht.
Entsprechend werden dann die Codewörter für einen typischer­ weise weit verzweigten Baum verglichen, wobei jedes Codewort einen Zweig abschließt, und der Decodierer dann, wenn er dort angelangt ist, weiß, daß er nun das ganze Codewort hat, und daß das nächste Bit im zu decodierenden Datenstrom, der im binären Fall ein Bitstrom ist, der Beginn eines neuen Codeworts ist.
Dieses Prozedere läuft gut, sicher und zuverlässig ab, wenn während der Übertragung oder Speicherung der zu decodieren­ den Folge von VL-Codewörtern kein Übertragungsfehler aufge­ treten ist. Ist jedoch lediglich ein Bit gestört worden, z. B. von einer 0 auf eine 1 "umgesprungen", so wird der Deco­ dierer beim Decodieren fehlgeleitet und gelangt zu einem anderen Codewort aufgrund der Störung, was dazu führt, daß er einen Fehler ausgibt, der jedoch nicht unmittelbar als Fehler erkannt werden kann.
Schlimmer ist jedoch die Tatsache, daß der Anfang des näch­ sten Codeworts ebenfalls nicht mehr richtig erkannt werden kann, da der Decodierer ein Bit für den Anfang eines näch­ sten Codeworts hält, das sehr wahrscheinlich nicht der An­ fang des gesendeten Codeworts ist. Der Decodierer erzeugt somit unaufhörlich Folgefehler, was dazu führen kann, daß er sämtliche VL-Codewörter nach dem einzigen fehlerhaften Bit falsch decodiert. Wenn die Bitstörung ganz am Anfang einer Sequenz von Codewörtern auftritt, wird dies aufgrund eines einzigen Bitfehlers von beispielsweise 1000 Bit zum völligen Verlust der 1000 Bit bzw. der Informationen, die durch die 1000 Bit repräsentiert werden, führen.
VL-Codes und insbesondere der Huffman-Code, der datenkom­ pressionsmäßig optimal ist, werden heutzutage z. B. in den modernen Datenkompressionsverfahren für Audiosignale und/oder Videosignale nach einem der MPEG-Standards einge­ setzt.
Im Falle einer Übertragung von derart komprimierten Audio­ signalen und/oder Videosignalen über einen fehlerbehafteten Kanal, wie z. B. einen Freiluftübertragungskanal, ist die Wahrscheinlichkeit groß, daß Übertragungsfehler zu Bitstö­ rungen führen werden. Um diesen Störungen entgegen zu wir­ ken, haben übliche Nachrichtensender ein Vorwärtsfehlerkor­ rektur-Modul (FEC-Modul), das auch als Kanalcodierer be­ zeichnet wird. Hierbei wird auf für Fachleute bekannte Art und Weise in den komprimierten Datenstrom eine Redundanz eingeführt, die durch die sogenannte Coderate des Kanalco­ dierers bestimmt ist. Wird ein Kanalcodierer mit einer Code­ rate von 1/2 verwendet, so bedeutet dies, daß aus einem zu codierenden Bit zwei Bits erzeugt werden, die dann nach weiteren bekannten Signalverarbeitungen übertragen werden. Typischerweise liefert ein digitaler Nachrichtenempfänger zunächst keine harten Bitentscheidungen, sondern beispiels­ weise am Ausgang eines Detektors z. B. einen Spannungswert, der erst in eine binäre Information transformiert werden muß. Dies sei anhand des folgenden einfachen Beispiels er­ läutert. Es sei angenommen, daß eine binäre Null durch einen Spannungspegel von 0 V dargestellt wird, während eine binäre Eins durch einen Spannungspegel von 1,0 V dargestellt wird. Nun liefert ein Detektor beispielsweise einen Ausgangsspan­ nungswert von 0,7 V. Im Falle einer sogenannten harten Ent­ scheidung wird dieser erhaltene Spannungswert von 0,7 V einer harten Schwellenentscheidung unterzogen, welche im Falle eines Spannungswerts, der beispielsweise größer als 0,5 V ist, anzeigt, daß eine binäre Eins vorliegt, und der im Falle eines Spannungswerts kleiner als 0,5 V angibt, daß eine binäre Null vorliegt. Derartige harte Entscheidungen werden für übliche Huffman-Decodierer benötigt, da dieselben als Eingangswerte lediglich die Folge von Bits aufnehmen können, um das einem Codewort zugeordneten Informationssym­ bol ausgeben zu können.
Wird eine sogenannte weiche Entscheidung durchgeführt, so wird im vorliegenden Falle bestimmt, daß eine binäre Eins zu 70% vorliegt und eine binäre Null zu 30% vorliegt. Diese beiden Informationen können über ein sogenanntes Log-Likeli­ hood-Ratio zusammengefaßt werden, welches aus dem Logarith­ mus des Verhältnisses der beiden Wahrscheinlichkeiten be­ stimmt wird. Im vorliegenden Falle würde das Log-Likeli­ hood-Verhältnis einen Wert von log(0,3/0,7) = -0,37 haben. Ein positives Log-Likelihood-Verhältnis bedeutet, daß die Wahrscheinlichkeit größer ist, daß eine binäre Null vor­ liegt, während ein negatives Log-Likelihood-Verhältnis, wie im vorliegenden Fall gegeben, bedeutet, daß mit größerer Wahrscheinlichkeit eine binäre Eins vorhanden ist.
Einfache Huffman-Codierer sind nicht in der Lage, solche sogenannten Soft-Input-Informationen zu verwenden, um die Symbol- bzw. Bitfehlerrate zu reduzieren.
In der Fachveröffentlichung "Improved Joint Source-Channel Decoding For Variable-Length Encoded Data Using Soft Decisions And MMSE Estimation" von M. Park und D. Miller, IEEE DCC 1999, Snowbird, UT, USA ist ein Verfahren beschrie­ ben, bei dem ein solcher "Soft-Input" verarbeitet werden kann, um die Decodierung von Variablen-Längen-Codes zuver­ lässiger zu machen, wobei generell nicht jedes Codewort für sich decodiert, sondern für die Codierung die gesamte Folge betrachtet wird, die sich aus einzelnen Codewörtern zusam­ mensetzt. Hierzu wird ein Trellis-Diagramm vorgeschlagen, welches eine Darstellung mittels eines gerichteten Graphens ist, um die Decodierung des VLC auf eine sogenannte MAP-Se­ quenzschätzung (MAP = Maximum A Posteriori) zurück zu füh­ ren. Die horizontale Achse entspricht dabei der Bitzeit, und die vertikale Achse gibt die entsprechenden Codewörter an. Das Trellis-Diagramm startet von einem definierten Anfangs­ zustand aus und endet in so vielen Endpunkten, wie Huffman- Codewörter vorhanden sind. Insbesondere ist jedem Decodie­ rer-Zustand, der einen Knoten symbolisiert, eine Zahl zuge­ ordnet, die die Länge in Bit angibt, die benötigt wird, um ausgehend von Anfangszustand diesen Zustand zu erreichen. Wenn dabei von zwei unterschiedlichen Zweigen aus ein Knoten erreicht wird, muß für diesen Knoten eine unterschiedlich lange Anzahl von Bitlängen gespeichert werden. Dies führt letztendlich dazu, daß sich ein sehr komplexes Trellis-Dia­ gramm ergibt, das zum einen nicht in einem einzigen Endpunkt endet, und das zum anderen in seiner Erzeugung, insbesondere wenn an längere Codes gedacht wird, sehr aufwendig ist.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept zum Decodieren einer Folge von Codewörtern variabler Länge zu schaffen, das in der Anwendung einfacher und über­ sichtlicher ist und weniger rechenzeitintensiv implementiert werden kann.
Diese Aufgabe wird durch ein Verfahren zum Decodieren nach Patentanspruch 1, durch eine Vorrichtung zum Decodieren nach Patentanspruch 11, durch eine Vorrichtung zum Erzeugen eines Datenstroms nach Patentanspruch 14, durch ein Verfahren zum Erzeugen eines Datenstroms nach Patentanspruch 18, durch ei­ ne Vorrichtung zum Decodieren eines Datenstroms nach Patent­ anspruch 19 und durch ein Verfahren zum Decodieren eines Da­ tenstroms nach Patentanspruch 21 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß für eine Folge von Codewörtern, die decodiert werden soll, ein Trellis-Diagramm gefunden und verwendet werden muß, das einerseits mit überschaubarem Aufwand erzeugt werden kann, und das sich andererseits dazu eignet, von bekannten Verfahren zur Sequenzschätzung, wie z. B. dem Viterbi-Algorithmus, oder von bekannten Verfahren zur sym­ bolweisen Schätzung, wie z. B. dem sogenannten BCJR-Algo­ rithmus, verwendet zu werden.
Ein solches Trellis-Diagramm kann dann mit den seit langem bekannten und daher mittlerweile relativ leistungsstark im­ plementierten Algorithmen kombiniert werden, wodurch sowohl der Entwicklungsaufwand als auch die Implementationsprobleme in einem vertretbaren Rahmen gehalten werden.
Erfindungsgemäß wird zum Decodieren einer Folge von Informa­ tionssymbolen ein Trellis-Diagramm bereitgestellt, das einen definierten Anfangszustand hat, und das einen definierten Endzustand hat. Der definierte Endzustand hängt von der An­ zahl der Codewörter und damit der Anzahl der codierten In­ formationssymbole und zugleich von der Anzahl der Codewort­ einheiten, d. h. Bits im binären Fall, ab. Dieses Trellis- Diagramm setzt sich aus Knoten und Zweigen zusammen, wobei ein Knoten einen Endzustand einer Teilfolge von Codewörtern darstellt, und wobei ein Zweig ein Codewort darstellt, durch das von einem Endzustand einer Teilfolge, von dem der Zweig ausgeht, zu einem Endzustand einer anderen Teilfolge überge­ gangen wird, zu dem der Zweig gerichtet ist, wobei die an­ dere Teilfolge das Codewort umfaßt, das durch den Zweig dargestellt ist.
Erfindungsgemäß besteht ferner jeder Zweig aus einer Anzahl von Unterzweigen, wobei die Anzahl von Unterzweigen gleich der Anzahl von Codewort-Einheiten, d. h. im binären Fall Bits, ist, wobei jeder Unterzweig eines Zweigs, dem ein Codewort mit zumindest zwei Codewort-Einheiten zugeordnet ist, über einen Unterknoten mit einem anderen Unterzweig verbunden ist, wobei jedoch keine Verbindung zwischen einem Unterknoten eines Zweigs mit einem Unterknoten eines anderen Zweiges existiert.
Diese gewissermaßen überlagerte Trellis-Diagrammdarstellung erlaubt die Anwendung eines Trellis-Diagramms auf Codewörter variabler Länge. Die eine "Ebene" des Trellis-Diagramms be­ faßt sich lediglich mit der Symbolstruktur der Folge von Codewörtern, so daß die Zweige Codewörter insgesamt darstel­ len und die Knoten Endzustände von Teilfolgen bezogen auf Codewörter darstellen. Die zweite Ebene befaßt sich dagegen mit der Codewort-Einheiten-Struktur, d. h. Bitstruktur im binären Fall, der Folge von Codewörtern und ist der ersten Ebene gewissermaßen überlagert, so daß ein Zweig, der einem Codewort zugeordnet ist, das z. B. zwei Codewort-Einheiten hat, zwei Unterzweige aufweist, wobei jeder Unterzweig für eine Codewort-Einheit steht. Die beiden Unterzweige sind durch einen Unterknoten verbunden, wobei der Unterknoten als Endzustand einer Unterfolge jedoch nicht auf Symbolebene sondern auf Codewort-Einheiten-Ebene betrachtet werden kann. Das Trellis-Diagramm gemäß der vorliegenden Erfindung be­ sitzt die Eigenschaft, daß es Verzweigungen nur zwischen Knoten gibt, jedoch nicht zwischen Unterknoten. Dies bedeu­ tet in anderen Worten, daß ein Codewort durch eine Folge von Codewort-Einheiten eindeutig festgelegt ist.
Das erfindungsgemäße Trellis-Diagramm stellt sämtliche mög­ lichen Teilfolgen dar, jedoch unter der wesentlichen Randbe­ dingung, daß die Gesamtanzahl der Codewörter einerseits und die Gesamtanzahl der Codewort-Einheiten der Folge von Codewörtern andererseits festgelegt ist. Dies schränkt die An­ zahl der möglichen Übergänge, d. h. Zweige, im Trellis-Dia­ gramm wesentlich ein. So sind beispielsweise am Anfang eines Trellis-Diagramms üblicherweise noch sämtliche Übergänge möglich, da die Gesamtanzahl der zur Verfügung stehenden Codewort-Einheiten noch kein Problem darstellt. Die Anzahl der möglichen Übergänge wird jedoch immer mehr eingeschränkt sein, da sonst die zur Verfügung stehenden Codewort-Einhei­ ten nicht mehr "ausreichen" werden, um einen vollständigen Weg im Trellis-Diagramm von Anfangspunkt zum Endpunkt auszu­ bilden.
Nachdem das erfindungsgemäße Trellis-Diagramm sowohl Knoten hat, die einen Endzustand einer Teilfolge darstellen, als auch Teilknoten hat, die einen Endzustand auf Bitebene einer Teilfolge darstellen, können je nach erwünschter Implementa­ tion sämtliche für Trellis-Diagramme mit einem festen An­ fangspunkt und einem festen Endpunkt geeignete Decodier-Al­ gorithmen eingesetzt werden, was es wiederum möglich macht, Wahrscheinlichkeitsinformationen als Soft-Input verwenden zu können, welche für jede Codewort-Einheit vorliegen. Es sei darauf hingewiesen, daß aufgrund der Tatsache, daß die Län­ gen der einzelnen Codewörter nicht bekannt sind, zunächst keine Wahrscheinlichkeitsinformationen pro Symbol vorliegen. Das erfindungsgemäße Trellis-Diagramm umfaßt jedoch die Codewort-Einheiten-Struktur der Codewortfolge und erlaubt somit die Verarbeitung von pro Codewort-Einheit vorliegenden Wahrscheinlichkeitsinformationen.
Je nach erwünschten Ausgangswerten können verschiedene Deco­ dier-Algorithmen eingesetzt werden, um mit dem erfindungsge­ mäßen Trellis-Diagramm zu arbeiten. Wenn lediglich eine Se­ quenzschätzung erwünscht ist, d. h. wenn eine harte Ent­ scheidung darüber gewünscht wird, welche empfangene Code­ wort- bzw. Informationssymbolsequenz der gesendeten Informa­ tionssymbolsequenz am wahrscheinlichsten entspricht, so kann der bekannte Viterbi-Algorithmus eingesetzt werden, welcher für jeden möglichen Endzustand einer Teilfolge zu einem Zeitpunkt den wahrscheinlichsten Weg durch ein Trellis-Dia­ gramm speichert, der zu diesem Zustand führt. Die weniger wahrscheinlichen Wege werden dagegen verworfen. Der Viter­ bi-Algorithmus wird eine Folge von Informationssymbolen aus­ geben, die am wahrscheinlichsten der gesendeten Folge von Informationssymbolen entspricht, es wird jedoch keine Ausga­ be darüber enthalten, wie wahrscheinlich denn eigentlich die ausgegebene Folge von Informationssymbolen ist.
Es sei darauf hingewiesen, daß es die erfindungsgemäße Kon­ zeption des Trellis-Diagramms ermöglicht, da für jeden Zweig die Anzahl der Unterzweige bekannt ist, die Soft-Input-In­ formation, die pro Codewort-Einheit vorliegen, bei der Be­ rechnung der Zweig-Metriken bzw. Übergangsmetriken zu ver­ wenden. Bei der Berechnung einer Zweigmetrik von einem Sym­ bolzustand zum nächsten Symbolzustand wird dazu nicht eine konstante Anzahl von Soft-Input-Informationen für einen einzigen Übergang verwendet. Statt dessen werden die Soft- Input-Informationen einer variablen Anzahl von Codewort-Ein­ heiten berücksichtigt, welche dem gerade betrachteten Zweig bzw. Übergang bzw. Codewort zugeordnet sind.
Werden dagegen auch Wahrscheinlichkeitsinformationen über die Ausgabe des Decodierers gewünscht, d. h. besteht der Be­ darf nicht einfach nach der Codewortsequenz, die der ge­ sendeten Sequenz von Informationssymbolen am ehesten ent­ spricht, so kann unter Verwendung desselben erfindungsge­ mäßen Trellis-Diagramms auch ein symbolweiser Maximum-A-Po­ steriori- (MAP-) Decodieralgorithmus eingesetzt werden. Ein Beispiel für einen solchen symbolweisen MAP-Decodieralgo­ rithmus ist der bekannte BCJR-Algorithmus, welcher für die vorliegende Erfindung bevorzugt wird. Der BCJR-Algorithmus in Verbindung mit dem erfindungsgemäßen Trellis-Diagramm er­ möglicht also nicht nur die Verwendung von Soft-Input-In­ formationen pro Codewort-Einheit sondern auch die Ausgabe von Soft-Output-Informationen pro Informationssymbol oder aber auch pro Codewort-Einheit, d. h. pro Bit im binären Fall, so daß ausgangsseitig auch untersucht werden kann, wie wahrscheinlich denn ein Informationssymbol bzw. ein Bit eines Codeworts, das ein Informationssymbol darstellt, dem gesendeten Informationssymbol bzw. Bit entspricht.
Die Erzeugung von Soft-Output-Informationen erlaubt darüber hinaus den Einsatz des erfindungsgemäßen VLC-Decodierers in einem digitalen Empfänger, wobei derselbe mit einem übli­ cherweise vorhandenen FECMAP-Decodierer verkettet werden kann, um in Verbindung mit demselben in einem iterativen Be­ triebsmodus die Symbolfehlerrate bezogen auf ein bestimmtes Signal/Rausch-Verhältnis des Kanals im Vergleich zu einer nicht-iterativen Betriebsart zu reduzieren.
Vorteilhaft an dem erfindungsgemäßen Decodierkonzept ist die Tatsache, daß das Trellis-Diagramm, das zwar für jede Folge von Codewörtern, welche eine unterschiedliche Anzahl von Codewörtern bzw. eine unterschiedliche Anzahl von Codewort­ einheiten hat, unterschiedlich ist, relativ einfach und übersichtlich gehalten ist, so daß es für beliebige Folgen von Codewörtern entweder "Off-Line" berechnet und abgespei­ chert werden kann, um im Bedarfsfalle von einem Speicher abgerufen zu werden, oder sogar erzeugt werden kann.
Ein weiterer Vorteil des erfindungsgemäßen Decodierkonzepts ist die hohe Flexibilität, die durch ein einziges Trellis- Diagramm ermöglicht wird, nämlich daß ausgangsseitig je nach verwendetem Algorithmus keine Soft-Output-Informationen, symbolweise Soft-Output-Informationen oder bitweise Soft- Output-Informationen erzeugt werden können, um entweder ein iteratives Decodierschema durchzuführen oder die Soft-Out­ put-Informationen für Fehlerverschleierungstechniken und ähnliches einzusetzen.
Ein weiterer Vorteil der vorliegenden Erfindung besteht dar­ in, daß aufgrund des neuartigen Trellis-Diagramms keine neu­ en Decodier-Algorithmen entwickelt werden müssen, sondern daß auf seit längerem bekannte Algorithmen zurückgegriffen werden kann, welche bereits in vielerlei Hinsicht analysiert worden sind, und für welche effiziente Implementationen so­ wohl in Software als auch in Hardware existieren.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen detailliert erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Vor­ richtung zum Decodieren;
Fig. 2 ein neuartiges Trellis-Diagramm für einen Beispiel­ code;
Fig. 3 ein Symbol-Trellis-Diagramm, das aus dem Trellis- Diagramm von Fig. 2 abgeleitet ist;
Fig. 4 ein Bit-Trellis-Diagramm, das aus dem Trellis-Dia­ gramm von Fig. 2 abgeleitet ist;
Fig. 5 ein Flußdiagramm zur Darstellung des BCJR-Algorith­ mus;
Fig. 6A-6D eine gleichungsmäßige Darstellung des BCJR-Al­ gorithmus bezogen auf das Flußdiagramm von Fig. 5;
Fig. 7 ein Blockdiagramm einer Übertragungsstrecke mit ei­ nem erfindungsgemäßen VLCMAP-Decodierer;
Fig. 8 ein Blockdiagramm einer erfindungsgemäßen Vorrich­ tung zum Erzeugen eines Datenstroms mit Seitenin­ formationen; und
Fig. 9 eine Darstellung zur Verdeutlichung der Bildung eines Datenstroms mittels eines Interleavers mit einer Tiefe von mehr als einer terminierten Folge von Dodewörtern.
Fig. 1 zeigt ein Blockdiagramm einer erfindungsgemäßen Vorrichtung zum Decodieren einer Folge von Codewörtern varia­ bler Länge. Die Folge von Codewörtern variabler Länge liegt an einem Eingang 10 der Vorrichtung an. An einem Ausgang 12 der Vorrichtung wird eine Folge von Informationssymbolen ausgegeben, die vorzugsweise am wahrscheinlichsten der Folge von Informationssymbolen entspricht, die in einem Sender in Codewörter codiert worden ist, um nach Übertragung über ei­ nen Kanal beispielsweise in Form einer Funkstrecke oder ei­ ner Übertragungsleitungsstruktur die an dem Eingang 10 an­ liegende Folge von Codewörtern zu bilden. Die erfindungsge­ mäße Vorrichtung zum Decodieren umfaßt als Herzstück eine Einrichtung 14 zum Decodieren der Folge von Codewörtern. Die Einrichtung 14 wird von einer Einrichtung 16 zum Bereitstel­ len von Wahrscheinlichkeitsinformationen für die am Eingang 10 anliegende Folge von Codewörtern gespeist. Je nach Imple­ mentation liegen die Wahrscheinlichkeitsinformationen, die die Einrichtung 16 bereitstellt, in Form von z. B. Log- Likelihood-Verhältnissen pro Codewort-Einheit vor und werden durch einen Kanaldetektor geliefert, oder aber, wie es be­ zugnehmend auf Fig. 7 erläutert wird, von einem vorgeschal­ teten Kanal-Decodierer.
Vorzugsweise hat die Folge von Codewörtern am Eingang 10 als Seiteninformationen die Anzahl der Codewörter in der Folge sowie die Anzahl der Codewort-Einheiten der Folge. Diese Seiteninformationen werden durch eine Einrichtung 18 zum Be­ reitstellen der Anzahl der Codewörter und Codewort-Einheiten der Folge extrahiert. Es ist jedoch auch der Fall denkbar, daß die Anzahl der Codewörter und die Anzahl der Codewort- Einheiten einer Folge nicht als Seiteninformationen im Da­ tenstrom übertragen werden, sondern auf andere Art und Weise von einem Sender zu einem Empfänger gebracht werden.
Die Einrichtung 18 ist mit einer Einrichtung 20 zum Bereit­ stellen eines Trellis-Diagramms, das Zweige und Knoten sowie Unterzweige und Unterknoten aufweist, gekoppelt. Das neuar­ tige Trellis-Diagramm, auf das bezugnehmend auf die Fig. 2 bis 4 näher eingegangen werden wird, hängt von der Anzahl der Codewörter der Folge von Codewörtern sowie von der An­ zahl der Codewort-Einheiten der Folge von Codewörtern ab, da diese beiden Parameter einen definierten Endzustand des Trellis-Diagramms festlegen, so daß das Trellis-Diagramm, das erfindungsgemäß verwendet wird, ein Trellis-Diagramm mit einem fest definierten Anfangspunkt und mit einem fest defi­ nierten Endpunkt ist, wobei sich zwischen dem Anfangspunkt und dem Endpunkt sämtliche möglichen Folgen erstrecken.
Die Einrichtung 14 zum Decodieren hat nun die Aufgabe, die wahrscheinlichste Folge dieser Folgen abhängig von den Wahrscheinlichkeitsinformationen, welche auch als Soft-In­ put-Informationen bezeichnet werden, herauszufinden und wahlweise mit oder ohne Wahrscheinlichkeitsinformationen, welche auch als Soft-Output-Informationen bezeichnet werden, an dem Ausgang 12 auszugeben.
Wie es bereits erwähnt worden ist, werden Codes mit Code­ wörtern variabler Länge mittlerweile bei fast allen modernen Datenkompressionsverfahren eingesetzt, wobei nachfolgend beispielhaft auf moderne Audiocodierverfahren gemäß bei­ spielsweise dem Standard MPEG Layer 3 oder MPEG2-AAC einge­ gangen wird. Hierbei wird in einem Audiocodierer ein Block von Audioabtastwerten gefenstert und in eine spektrale Dar­ stellung überführt, um ein Kurzzeitspektrum des Blocks von Audioabtastwerten zu erzeugen. Die spektrale Darstellung, d. h. ein Kurzzeitspektrum, setzt sich aus einer Anzahl von z. B. 1024 Spektralwerten zusammen, welche dann nach einer Quantisierung basierend auf einem psychoakustischen Modell als quantisierte Spektralwerte vorliegen, die dann mittels einer bzw. mehrerer Huffman-Codetabellen codiert werden, um eine Folge von Huffman-Codewörtern, d. h. Codewörtern varia­ bler Länge, zu erzeugen. Ein solcher Audiocodierer arbeitet blockweise, weshalb der ausgangsseitige Datenstrom des Audiocodierers immer aus Folgen von Codewörtern variabler Länge besteht, wobei eine Folge von Codewörtern variabler Länge einem Kurzzeitspektrum eines Blocks von Audioabtast­ werten entsprechen wird.
Eine solche Folge von Codewörtern wird beim Übertragen über einen wie auch immer gearteten Kanal am Eingang 10 der er­ findungsgemäßen Vorrichtung, die in Fig. 1 dargestellt ist, anliegen, um von der Einrichtung 14 decodiert zu werden. Am Ausgang der Einrichtung 14 werden dann, wenn das Beispiel der Audiocodierung weitergeführt wird, wieder quantisierte Spektralwerte anliegen, welche dann einer inversen Quanti­ sierung unterzogen werden, wonach die dort erhaltenen nun invers-quantisierten Spektralwerte z. B. mittels einer Syn­ these-Filterbank wieder in eine zeitliche Darstellung über­ führt werden, die dann nach Digital/Analog-Wandlung über ei­ nen Lautsprecher ausgegeben werden kann. Die in Fig. 1 dar­ gestellte erfindungsgemäße Vorrichtung kann somit als Teil eines Audio-Decodierers anstatt eines bisher vorgesehenen Huffman-Decodierers, welcher ohne Verwendung von Soft-In­ put-Informationen arbeitet, eingesetzt werden. Während ein derartiger einfacher Huffman-Decodierer keine Informationen über Anzahl der Codewörter und Anzahl der Codewort-Einheiten in einer Folge benötigt, werden diese Informationen von ei­ nem erfindungsgemäßen VLC-Decodierer verwendet, um das neu­ artige Trellis-Diagramm mit Zweigen und Unterzweigen zu kon­ struieren.
Im nachfolgenden wird auf Fig. 2 eingegangen, welche ein erfindungsgemäßes Trellis-Diagramm für einen in einer Tabel­ le 22 dargestellten Beispielcode sowie für eine Folge von Informationssymbolen 24 bzw. eine Folge von Codewörtern va­ riabler Länge 26 zeigt. Im einzelnen umfaßt der Beispielcode C drei verschiedene Codewörter c(u) für drei verschiedene Informationssymbole u, wobei die Wahrscheinlichkeit, wie oft ein Informationssymbol u in einer zu decodierenden Folge von Informationssymbolen auftritt, in der mittleren Spalte der Tabelle 22 dargestellt ist.
Die mit dem Bezugszeichen 24 gekennzeichnete Folge von In­ formationssymbolen lautet 1, 0, 0, 1 und führt zu der mit dem Bezugszeichen 26 bezeichneten Folge c von Codewörtern 11, 0, 0, 11. Die Folge c von Codewörtern variabler Länge umfaßt somit vier Codewörter und sechs Codewort-Einheiten, welche im vorliegenden Fall einzelne Bits sind.
Im nachfolgenden wird ohne Beschränkung der Allgemeinheit das erfindungsgemäße Trellis-Diagramm unter Bezugnahme auf Bits beschrieben, wobei im binären Fall ein Bit einer Code­ wort-Einheit entspricht. Eine Codewort-Einheit muß jedoch nicht notwendigerweise genau einem Bit entsprechen sondern kann je nach Implementation auch einer Gruppe von mehreren Bits etc. entsprechen.
Das in Fig. 2 gezeigte Trellis-Diagramm ist ein zweidimen­ sionales Trellis-Diagramm, bei dem entlang der Abszisse die Anzahl k von Codewörtern aufgetragen ist, während entlang der Ordinate die Anzahl n von Bits aufgetragen ist. Für die vorliegende Beispiel-Codewortfolge ist das in Fig. 2 ge­ zeigte Trellis-Diagramm vollständig, da vier Codewörter variabler Länge und sechs Bits in der Folge c vorhanden sind. Das Trellis-Diagramm geht von einem definierten An­ fangszustand 100, der der Koordinate (k = 0, n = 0) ent­ spricht, aus und endet an einem definierten Endzustand 102, der der Koordinate (k = 4; n = 6) entspricht. Zwischen dem Anfangspunkt 100 und dem Endpunkt 102 befindet sich eine Mehrzahl von Knoten 104, 106, 108, wobei aus Übersichtlich­ keitsgründen lediglich die Knoten bei k = 1 mit Bezugszei­ chen bezeichnet wurden. Allgemein sind alle Knoten durch weiß ausgefüllte Kreise in Fig. 2 gekennzeichnet. Daher sind auch der Anfangspunkt 100 und der Endpunkt 102 Knoten des Trellis-Diagramms. Das Trellis-Diagramm umfaßt ferner eine Mehrzahl von Zweigen 110, 112, 114, wobei ein Knoten immer über einen Zweig mit einem anderen Knoten verbunden ist.
Es sei angemerkt, daß, wenn mehrere unterschiedliche Code­ wörter mit gleicher Länge, d. h. mit einer gleichen Anzahl von Bits, vorhanden sind, parallele Übergänge auftreten. Dies bedeutet, daß zwei Knoten auch durch zwei oder mehrere Zweige miteinander verbunden sein können.
Durch die Knoten und Zweige ist die Symbol-Struktur der Fol­ ge von Codewörtern dargestellt. Das erfindungsgemäße Trel­ lis-Diagramm enthält jedoch ebenfalls die Bit-Struktur der Folge von Codewörtern, indem neben den Knoten und Zweigen auch Unterknoten 116-120 vorgesehen sind. Es sei darauf hingewiesen, daß lediglich drei Unterknoten mit Bezugszei­ chen bezeichnet sind, um die Übersichtlichkeit der Figuren nicht zu gefährden. Sämtliche Unterknoten sind in Unter­ scheidung zu den Knoten als schwarz ausgefüllte Kreise dar­ gestellt. Die Unterknoten teilen einen Zweig des Trellis- Diagramms in eine Anzahl von Unterzweigen 112a, 112b, wobei die Anzahl der Unterzweige, die ein Zweig hat, durch die Länge des Codeworts bestimmt ist, das diesem Zweig zugeord­ net ist. Am Beispiel des Zweigs 112 ist zu sehen, daß der­ selbe einem Codewort mit einer Länge von zwei Bits zugeord­ net ist, so daß der Zweig 112 ferner einen Unterknoten 113 aufweist, der die beiden Unterzweige 112a, 112b miteinander verbindet. Analog dazu umfaßt der Zweig 114, welcher einem Codewort mit einer Länge von drei Bits zugeordnet ist, drei Unterzweige und dementsprechend auch zwei Unterknoten. Der Zweig 110 dagegen, der einem Codewort zugeordnet ist, das lediglich eine Länge von einem Bit hat, enthält genau einen Unterzweig, oder, anders ausgedrückt, ist mit dem Unterzweig identisch und enthält ferner keinen Unterknoten.
Aus dem Trellis-Diagramm von Fig. 2 ist ersichtlich, daß Verzweigungen lediglich von Knoten 104, 106, 108 ausgehen können, jedoch nicht von Unterknoten 116, 118, 120, da jedes Codewort durch eine eindeutige Folge von Bits bzw. Code­ wort-Einheiten festgelegt ist.
Im Trellis-Diagramm von Fig. 2 steht jeder Knoten, d. h. jeder Zustand des Graphen, der durch einen weiß ausgefüllten Kreis dargestellt ist, für den Endzustand einer Teilfolge von Codewörtern der Länge k Symbole und n Bits. Verbindun­ gen, d. h. Zweige, zweier solcher Zustände stellen ein Sym­ bol bzw. ein Codewort des Variablen-Längen-Codes dar. Neben diesen Zuständen, d. h. Knoten, existieren auch die Unter­ knoten, die auch als Zwischenzustände bezeichnet werden, und die durch schwarz ausgefüllte Kreise dargestellt sind. Diese Unterknoten bzw. Zwischenzustände stellen die einzelnen Bit­ positionen innerhalb eines Codeworts dar. Alle möglichen Folgen der Länge k = 4 Symbole und n = 6 Bits können als Pfade durch den Graphen von Fig. 2 aufgefaßt werden. Die Beispielfolge 26 ist zur Veranschaulichung in Fig. 2 fett eingetragen.
Vom Anfangszustand 100 gelangt man über das Codewort 0 zum Zustand 108. Über das Codewort 11 gelangt man dagegen vom Anfangszustand 100 zum Zustand 106. Über das Codewort 101 wiederum gelangt man vom Anfangszustand 100 zum Zustand 104. Dieses Prozedere wird ausgehend von den Zuständen 104, 106, 108 fortgesetzt, wobei vom Zustand 108 aus wieder alle drei Codewörter 0, 11 und 101 möglich sind. Es ist jedoch bereits zu sehen, daß vom Zustand 106 aus lediglich Übergänge mög­ lich sind, die den Codewörtern 0 und 11 entsprechen, daß je­ doch ein Übergang, der dem Codewort 101 entspricht, nicht mehr möglich ist, da für diesen Fall die Gesamtanzahl der Bits nicht mehr ausreichen würde, da die Folge noch zwei weitere Codewörter enthalten muß. Vom Zustand 104 aus ist sogar nur noch ein einziger Übergang möglich, der dem Codewort 0 entspricht, das eine Länge von nur einem Bit hat. Ein Übergang, der dem Codewort 11 entspricht, d. h. der eine Länge von zwei Bits hat, ist nicht mehr möglich, da noch zwei weitere Codewörter in der Folge von Codewörtern enthal­ ten sein müssen. Man beachte, daß im mittleren Teil des Trellis-Diagramms eine reguläre, sich wiederholende Struktur vorhanden ist.
Das in Fig. 2 gezeigte Trellis-Diagramm kann nun einer ver­ tikalen Transformation unterzogen werden, derart, daß das Trellis-Diagramm mit vertikalen Linien, wie der Linie A-A "durchsetzt" wird und die Anzahl der möglichen Zustände über der Anzahl k der Symbole bzw. Codewörter aufgetragen wird. Dieser in Fig. 3 durch vertikale Transformation vom Trellis-Diagramm von Fig. 2 abgeleitete Graph enthält nun nur noch die "Symbolzustände", die das Ende bzw. den Anfang ei­ nes Codeworts des Variablen-Längen-Codes kennzeichnen. Jeder Abschnitt des Graphen in horizontaler Richtung ist somit ei­ ner bestimmten Symbolposition innerhalb der betrachteten Symbolfolge zugeordnet. Daher wird der Graph in Fig. 3 auch als Symbol-Trellis bezeichnet. Im Symbol-Trellis von Fig. 3 wurden ferner die Zweige k = 0 bis k = 2 mit einer Notation bezeichnet, die aus zwei Werten besteht, die durch einen Strich voneinander getrennt sind. Der erste Wert bezieht sich dabei auf das Symbol u, das diesem Zweig bzw. Übergang zugeordnet ist, während der zweite Wert das Codewort, das diesem Symbol zugeordnet ist, angibt.
Es wird darauf hingewiesen, daß das in Fig. 3 gezeigte Sym­ bol-Trellis-Diagramm z. B. über die Bezeichnung der Zweige nach wie vor Informationen darüber enthält, wie viele Bits einem Zweig zugeordnet sind, um zu wissen, wieviel Soft-In­ put-Informationen, die ja pro Codewort-Einheit vorliegen, berücksichtigt werden müssen, um die Zweigmetriken für die einzelnen Zweige zu berechnen. Dadurch, daß in dem Symbol- Trellis-Diagramm von Fig. 3 nur noch die Symbol-Zustände, d. h. Knoten eingezeichnet sind, soll jedoch verdeutlicht wer­ den, daß ein Decodieralgorithmus nur noch an den Symbolwer­ ten an sich bzw. an den A-Posteriori-Wahrscheinlichkeiten für die einzelnen Symbolwerte interessiert ist.
Wie es bereits ausgeführt worden ist, können die Symbolwerte an sich beispielsweise mittels eines Viterbi-Algorithmus erhalten werden, der jedoch in Abwandlung vom üblichen Vi­ terbi-Algorithmus für die Berechnung der Zweigmetriken bzw. der Übergangsmetriken ("Transition Metrics") nicht nur Soft-Input-Informationen für eine feste Anzahl von Codewort-Einheiten sondern Soft-Input-Informationen für eine variable Anzahl von Codewort-Einheiten berücksichtigt. So würde ein Viterbi-Algorithmus, der die Übergangsmetrik bzw. Zweigmetrik des Zweigs vom Anfangszustand 102 bis zum Zustand 104 berechnet, das Produkt aus den Wahrscheinlichkeitswerten der ersten drei Bits des Datenstroms bilden. Für den Zweig zwischen den Anfangszustand 100 und dem Zustand 106 würde ein Viterbi-Algorithmus das Produkt der Wahrscheinlichkeitsinformationen für die ersten zwei Bits des zu decodierenden Datenstroms verwenden, während für die Zweigmetrik des Zweigs zwischen dem Anfangszustand 100 und dem Zustand 108 lediglich die Wahrscheinlichkeitsinformation der ersten Codewort-Einheit herangezogen wird. Eine detaillierte Darstellung des Viterbi-Algorithmus findet sich in "The Viterbi Algorithm", G. D. Forney, Proc. IEEE, Bd. 61, S. 268-278, März 1973.
Wenn neben der Folge von Informationssymbolen am Ausgang des Decodierers auch Soft-Output-Informationen benötigt werden, kann das in Fig. 3 gezeigte Trellis-Diagramm dazu verwendet werden, um Soft-Output-Informationen pro ausgegebenem Infor­ mationssymbol zu liefern. Hierzu wird ein symbolweiser MAP- Decodieralgorithmus eingesetzt, wie z. B. der BCJR-Algorith­ mus, der in "Optimal Decoding Of Linear Codes For Minimizing Symbol Error Rate", L. R. Bahl, J. Cocke, F. Jelinek, J. Raviv, "IEEE Transactions on Information Theory, März 1974, S. 284-287, detailliert beschrieben wird.
Der BCJR-Algorithmus verwendet Wahrscheinlichkeiten. Aus numerischen Gründen wird es jedoch bevorzugt, logarithmische Wahrscheinlichkeiten zu verwenden.
Auch hier werden in Abkehr von einem üblichen Einsatz dieses Algorithmus für die Berechnung einer Zweigmetrik nicht nur immer Soft-Input-Informationen für eine feste Anzahl von Codewort-Einheiten, d. h. Bits, verwendet, sondern Soft-Input-Informationen für eine variable Anzahl von Codewort-Einheiten, die der Anzahl von Bits des Codeworts entspricht, das dem betrachteten Zweig zugeordnet ist. Aus­ gangsseitig erhält man dadurch die Folge von den wahr­ scheinlichsten Informationssymbolen sowie Informationen dar­ über, wie wahrscheinlich die Informationssymbole sind. Wenn an das oben bezeichnete Beispiel eines Audiocodierers gedacht wird, so können die Wahrscheinlichkeitsinformationen dazu verwendet werden, einzelne Spektralwerte, welche Wahr­ scheinlichkeitsinformationen haben, die unter einer bestimm­ ten Schwelle liegen, einfach auszublenden und durch Inter­ polation bzw. durch irgendeine andere Fehlerverschleierungs­ technik zu ersetzen.
Wenn hingegen als Ausgangswerte nicht die bereits decodier­ ten Informationssymbole an sich sondern die wahrschein­ lichste Folge von Codewort-Einheiten, d. h. Bits, benötigt wird, und wenn insbesondere bitweise, d. h. Codewort-Ein­ heiten-Weise, Soft-Output-Informationen benötigt werden, wie es beispielsweise für den Fall der verketteten Decodierer zutrifft, der anhand von Fig. 7 noch detailliert beschrieben wird, dann wird statt des Symbol-Trellis-Diagramms von Fig. 3 ein Bit-Trellis-Diagramm verwendet, das in Fig. 4 darge­ stellt ist. Das Bit-Trellis-Diagramm von Fig. 4 entsteht durch horizontale Transformation, indem das Trellis-Diagramm von Fig. 2 mit horizontalen Linien, wie der Linie B-B pro Bit, "durchsetzt" wird, so daß das Bit-Trellis-Diagramm von Fig. 4 entsteht. Bei dem Bit-Trellis-Diagramm wird nicht zu sehr Wert darauf gelegt, die Zustände des Datenstroms zu ermitteln, sondern die einzelnen Bits sowie bitweise Soft- Output-Informationen für dieselben zu ermitteln.
Dazu werden die Unterknoten 116, 118 gleichwertig zu den Knoten 104, 106, 108 behandelt, derart, daß sowohl ein Un­ terknoten als auch ein Knoten als Trellis-Knoten betrachtet werden, und auch jeder Unterzweig als "normaler" Trellis- Zweig betrachtet wird. Dadurch liegt ein Trellis-Diagrarnm vor, das wieder entweder mit einem Sequenz-Ermittlungs-Al­ gorithmus, wie z. B. dem Viterbi-Algorithmus, oder mittels eines symbolweisen MAP-Algorithmus, wie z. B. dem BCJR-Algo­ rithmus, verarbeitet werden kann, um die erwünschten Aus­ gangsinformationen zu erhalten. Werden neben den bitweisen Ausgangsinformationen, die durch das Trellis-Diagramm von Fig. 4 ermittelt werden, auch die Informationssymbole be­ nötigt, so kann der am Ausgang des Decodierers vorliegende Bitstrom in einen einfachen Huffman-Decodierer bzw. einen allgemeinen VL-Decodierer eingespeist werden, der beispiels­ weise durch Nachschlagen in einem Codebuch aus einem Code­ wort wieder ein Informationssymbol ermittelt.
Im nachfolgenden wird anhand von Fig. 5 auf den BCJR-Algo­ rithmus näher eingegangen, der in Verbindung mit dem neuar­ tigen Trellis-Diagramm eingesetzt wird, um entweder Soft- Output-Informationen symbolweise oder Soft-Output-Informa­ tionen bitweise zu liefern. Der BCJR-Algorithmus ist ein Algorithmus, der die A-Posteriori-Wahrscheinlichkeiten von Zuständen und Übergängen einer Markow-Informationsquelle berechnet, welche durch einen verrauschten diskreten Kanal ohne Speichereigenschaft betrachtet wird.
"A-Posteriori" bedeutet, daß die Wahrscheinlichkeiten nach Betrachtung der gesamten Folge von Codewörtern bzw. Code­ wort-Einheiten geliefert werden. Im Gegensatz dazu bedeutet "A-Priori", daß bereits Informationen vorhanden sind, bevor die Folge von Codewörtern untersucht wird.
Allgemein besteht der Wunsch, den wahrscheinlichsten Über­ gang von einer Teilfolge zur nächsten Teilfolge zu bestim­ men. Der Übergang entspricht damit dem Codewort, das der ersten Teilfolge hinzugefügt wird, um die zweite Teilfolge zu erhalten. Dazu werden nach einem Starten (50) des Algo­ rithmus zunächst die Übergangs-Wahrscheinlichkeiten bzw. Zweigmetriken berechnet. Diese werden als .0 für einen Über­ gang von einem Zustand zu einem anderen Zustand verbunden mit einem Bitwert 0 und als .1 für einen Übergang von einem Zustand zum nächsten verbunden mit einem Bitwert 1 bezeich­ net. Die Übergangswahrscheinlichkeiten bzw. Zweigmetriken werden somit in einem Schritt 52 für alle möglichen Zweige des Trellis-Diagramms berechnet. Anschließend wird in einem Schritt 54 eine Vorwärtsrekursion ausgeführt, um auf rekursive Art und Weise die sogenannten α-Werte her­ auszufinden. Der α-Wert zum Zeitpunkt k = 0 wird per Defi­ nition zu 1 gesetzt.
Anschließend wird in einem Schritt 56 eine Rückwärtsre­ kursion durchgeführt, um die sogenannten β-werte ausgehend von dem Ende der Folge, d. h. dem Endzustand 102 (Fig. 2) zu berechnen. Per Definition wird der β-Wert für den Endzustand 102, d. h. für den Zeitpunkt K, zu 1 gesetzt. Nun liegen die α-Werte sowie die β-Werte sowie die Übergangswahrscheinlich­ keiten vor. Nun können in einem Schritt 58 die A-Poste­ riori-Wahrscheinlichkeiten für alle Übergänge berechnet wer­ den, indem die α-Werte, die β-Werte und die Übergangswahr­ scheinlichkeiten, d. h. die Zweigmetriken, miteinander mul­ tipliziert und für die entsprechenden Ausgangszustände und Zielzustände aufsummiert werden, wie es detaillierter bezug­ nehmend auf Fig. 6 ausgeführt wird. Dann ist der BCJR-Algo­ rithmus beendet (60).
Fig. 6A zeigt eine Illustration für den Schritt 52 des Fluß­ diagramms von Fig. 5, um die Übergangswahrscheinlichkeiten vom Zeitpunkt (k - 1) zum Zeitpunkt k zu berechnen. Fig. 6B zeigt dann die Berechnung der Vorwärtsrekursion sowie die dafür benötigte Gleichung. Die Gleichung von Fig. 6B macht deutlich, daß, wenn die Übergangsmetriken bekannt sind, al­ lein aufgrund der Übergangsmetriken und der Initialisierung für αk(0) die α-Werte Schritt für Schritt berechnet werden können.
Dasselbe trifft für die Rückwärts-Rekursion zu, die in Fig. 6C beispielhaft und gleichungsmäßig dargestellt ist. In Fig. 6D sind zwei Doppelsummen gezeigt, die ausgeführt werden müssen, um die A-Posteriori-Wahrscheinlichkeiten (APP-Wahr­ scheinlichkeiten) zu erhalten. Die obere linke Gleichung in Fig. 6D gibt die Wahrscheinlichkeit dafür an, daß der Über­ gang zum Zeitpunkt (k - 1) zum Zeitpunkt k eine binäre 0 ist, während die darunterstehende Gleichung die Wahrscheinlich­ keit liefert, daß der Übergang vom Zeitpunkt (k - 1) zum Zeit­ punkt k eine binäre 1 darstellt. Die Soft-Output-Informa­ tion, die diesem Bit dann zugeordnet ist, wird durch die in Fig. 6D rechts gezeigte Gleichung berechnet.
Im nachfolgenden wird noch einmal auf Fig. 3 Bezug genommen, um die Vorgehensweise, die anhand der Fig. 5 und 6A-6D all­ gemein erläutert worden ist, zu veranschaulichen. Es besteht z. B. die Aufgabe, herauszufinden, welcher Übergang, d. h. welches Codewort, zwischen dem Zeitpunkt k = 1 und dem Zeit­ punkt k = 2 am wahrscheinlichsten ist. Hierzu wird zunächst die A-Posteriori-Wahrscheinlichkeit dafür berechnet, daß das Codewort eine 0 ist. Dazu wird zunächst der α-Wert für den Zustand 108 und dann der β-Wert für den Zustand 120 berech­ net, um dann das Produkt des α-Werts des Zustands 108, des β-Werts des Zustands 120 und der Übergangsmetrik des Zweigs 122 berechnet. Dann wird dasselbe für den Zweig 124 durch­ geführt. Dies bedeutet, daß wieder der α-Wert für den Zu­ stand 106, der β-Wert für den Zustand 126 und die Zweigme­ trik für den Zweig 124 miteinander multipliziert werden. Schließlich wird dasselbe für den Zweig 110 durchgeführt, indem wieder der α-Wert für den Zustand 104, der β-Wert für den Zustand 128 und die Zweigmetrik des Zweigs 110 mitein­ ander multipliziert werden.
Die drei Wahrscheinlichkeiten werden nun aufsummiert, um eine A-Posteriori-Wahrscheinlichkeit dafür zu erhalten, daß der Übergang von Zeitpunkt k = 1 zum Zeitpunkt k = 2 für das Codewort 0 steht.
Dann wird dasselbe wiederholt für den Zweig 112 und den Zweig 130, um die A-Posteriori-Wahrscheinlichkeit dafür zu erhalten, daß dem Übergang von Zeitpunkt k = 1 zum Zeitpunkt k = 2 das Codewort 11, d. h. das Informationssymbol mit der Nummer 1, zugrunde liegt.
Schließlich wird die A-Posteriori-Wahrscheinlichkeit für den Zweig 132 berechnet, indem der α-Wert des Zustands 108, der β-Wert des Zustands 128 und die Zweigmetrik des Zweigs 132 miteinander multipliziert werden.
Nun liegen drei A-Posteriori-Wahrscheinlichkeiten für die drei verschiedenen Codewörter vor, die dem Übergang vom Zu­ stand k = 1 zum Zustand k = 2 zugrunde liegen können. Nun wird die maximale A-Posteriori-Wahrscheinlichkeit der drei vorliegenden Wahrscheinlichkeiten ausgewählt, um ausgegeben zu werden. Das Codewort, dem die maximale A-Posteriori-Wahr­ scheinlichkeit zugeordnet ist, stellt nun das Informations­ symbol dar, das am wahrscheinlichsten von der Informations­ quelle erzeugt worden ist.
An dem gerade beschriebenen Beispiel ist zu sehen, daß selbstverständlich auch für sämtliche anderen, weniger wahrscheinlichen Codewörter die A-Posteriori-Wahrscheinlich­ keiten vorliegen. In den allermeisten Fällen wird jedoch lediglich die maximale A-Posteriori-Wahrscheinlichkeit benö­ tigt. Grundsätzlich könnten jedoch zu jedem Übergang die A-Posteriori-Wahrscheinlichkeiten für alle Codewörter, d. h. für alle Informationssymbole, ausgegeben werden.
Im nachfolgenden wird auf Fig. 7 eingegangen, welche eine Anwendung eines erfindungsgemäßen Decodierers zur iterativen Decodierung zeigt. Der erfindungsgemäße Decodierer, der für diese Anwendung geeignet ist, umfaßt als Decodier-Algorith­ mus einen MAP-Decodieralgorithmus mit Codewort-Einheiten­ weisen Soft-Input-Informationen und Soft-Output-Informatio­ nen. Dieser Decodierer ist in Fig. 7 als VLCMAP-Decodierer 200 (VLCMAP = Variable Length Code Maximum A Posteriori) be­ zeichnet. Allgemein wird das Übertragungssystem in Fig. 7 in einen Sender 202, einen Kanal 204 und einen Empfänger 206 aufteilen. An einem Eingang des Senders, der mit 208 be­ zeichnet ist, liegt eine Folge von Informationssymbolen (u) an. Diese wird in einen VLC-Codierer 210 eingespeist, der eine Folge von Codewörtern variabler Länge erzeugt, die mit b bezeichnet ist. Der VLC-Codierer 210 erzeugt darüberhinaus Seiteninformationen 212, die die Anzahl der Bits der Folge von Codewörtern b sowie die Zahl der Codewörter in der Folge von Codewörtern b enthalten müssen.
Wie es in der digitalen Übertragungstechnik üblich ist, kann ein Interleaver 212 eingesetzt werden, um eine verschach­ telte Folge b' von Codewörtern zu erzeugen. Grundsätzlich führt ein Interleaver 212 eine Permutation der Codewort-Ein­ heiten durch, um die Anfälligkeit gegenüber sogenannten Burst-Fehlern zu verringern. Die Folge b' wird schließlich in einen Kanalcodierer 214 eingespeist, der als FEC-Codierer (FEC = Forward Error Correction) ausgeführt sein wird. Der FEC-Codierer erzeugt somit aus der verschachtelten Folge b' mit einer ersten Anzahl von Bits eine Folge von Sendebits x, wobei die Anzahl der Bits der Folge x um einen Faktor größer als die Anzahl der Bits der Folge b' ist. Der inverse Wert dieses Faktors wird als Coderate des FEC-Codierers 214 be­ zeichnet. Der Übertragungskanal 204 kann allgemein durch multiplikative Kanalkoeffizienten a dargestellt werden, die einen Kanal mit Fading-Eigenschaften symbolisieren. Darüber­ hinaus wird einem Kanal ein weißes Rauschen additiv überlagert sein, was durch den Koeffizienten f dargestellt ist.
Als FEC-Codierer kann jeder bekannte FEC-Codierer verwendet werden, wie z. B. ein Codierer mit einem Block-Code, ein Co­ dierer mit einem Faltungscode oder ein Codierer mit einer Trellis-codierten Modulation.
Von den Rayleigh-Koeffizienten a können Schätzwerte abge­ leitet werden, welche als Kanalzustandsinformationen einem FECMAP-Decodierer (FECMAP = Forward Error Correction Maximum A Posteriori) 216 zugeführt werden können. Der FECMAP-Deco­ dierer 216 enthält ferner aus den Seiteninformationen die Anzahl der Bits einer Folge, um beispielsweise ebenfalls unter der Verwendung des BCJR-Algorithmus die Übergangsme­ triken von Bit zu Bit sowie die Vorwärtsrekursion und die Rückwärtsrekursion durchführen zu können.
Der FECMAP-Decodierer ist die erste Einrichtung zum Deco­ dieren des Datenstroms, um die durch den FEC-Codierer 214 eingeführte Kanalcodierung zu entfernen, wobei derselbe Wahrscheinlichkeitsinformationen für den Datenstrom verwendet, wobei der FECMAP-Decodierer 216 an seinem Ausgang Soft-Output-Informationen für jede ausgegebene Codewort-Ein­ heit liefert, welche auch als erster Wahrscheinlichkeitswert 250 pro Codewort-Einheit bezeichnet wird.
Der Empfänger 206 umfaßt ferner den VLCMAP-Decodierer 200 als zweite Einrichtung zum Decodieren einer Folge von Code­ wort-Einheiten unter Verwendung von Wahrscheinlichkeitswer­ ten für die Codewort-Einheiten, wobei der VCLMAP-Decodierer einen zweiten Wahrscheinlichkeitswert 252 pro Codewort-Ein­ heit ausgibt. Der Empfänger 206 umfaßt ferner einen ersten Subtrahierer 218, der als Addierer mit einem invertierten Eingang dargestellt ist, sowie einen zweiten Subtrahierer 220, der ebenfalls als Addierer mit einem invertierten Ein­ gang dargestellt ist. Der zweite Subtrahierer 220 bildet die Differenz zwischen dem ersten Wahrscheinlichkeitswert 250 und einem Ausgangswert des zweiten Addierers 218, um einen ersten Differenz-Wahrscheinlichkeitswert 254 zu liefern. Der erste Subtrahierer 218 wiederum bildet die Differenz zwi­ schen dem zweiten Wahrscheinlichkeitswert 252 und dem ersten Differenz-Wahrscheinlichkeitswert 254, um einen zweiten Dif­ ferenz-Wahrscheinlichkeitswert 256 zu erzeugen, der einer­ seits in den invertierten Eingang des zweiten Subtrahierers 220 eingespeist wird, wie es in Fig. 7 gezeigt ist, und der andererseits als A-Priori-Information für den FECMAP-Deco­ dierer 216 dient, um durch iterative Decodierung wesentliche Verbesserungen der Symbolfehlerrate zu erreichen, wie es nachfolgend beschrieben wird.
Nachdem der Code des FEC-Codierers 214 und der Code des VLC-Codierers 210 unabhängig voneinander sind, kann durch iterative Decodierung eine Verbesserung der Symbolfehlerrate bei gleichem Signal/Rausch-Verhältnis bzw. eine gleichblei­ bende Symbolfehlerrate bei schlechterem Signal/Rausch-Ver­ hältnis im Vergleich zum Fall der nicht-iterativen Decodie­ rung erreicht werden.
So ist es in der Kanalcodierung allgemein bekannt, seriell oder parallele verkettete Codes iterativ zu decodieren. In Nachrichtenübertragungssystemen, die zur Datenratenreduktion Variable-Längen-Codes einsetzen, werden solche Codes oft, wie es in Fig. 7 dargestellt ist, in Verbindung mit Codes zur Fehlerkorrektur verwendet. Dies muß besonders dann getan werden, wenn die Übertragung auf gestörten Übertragungska­ nälen erfolgen soll, da sich Fehler bei der Übertragung, wie es oben bereits erwähnt wurde, in einer schlechten Decodie­ rung des Variablen-Längen-Codes auswirken können.
Die Kombination eines Variablen-Längen-Codes zur Datenraten­ reduktion mit einem Kanalcode zur Fehlerkorrektur stellt somit ein seriell verkettetes System dar, wie es am Beispiel des Senders 202 in Fig. 7 dargestellt ist. Wenn zwischen die beiden Codierer ein Interleaver 212 geschaltet ist, wie es in Fig. 7 der Fall ist, muß zwischen den beiden Decodierern ein Deinterleaver 222 sowie in der Rückkopplung des Empfän­ gers 206 wieder ein Interleaver 224 eingesetzt werden, wobei der Interleaver 224 dem Interleaver 212 genau entspricht, damit die Zuordnung der Soft-Output-Informationen des VLCMAP-Decodierers 200 im FECMAP-Decodierer korrekt abläuft.
Im nachfolgenden wird als äußerer Code der VL-Code bezeich­ net. Als innerer Code wird dagegen der FEC-Code oder Kanal­ code bezeichnet. Nach der Übertragung der komprimierten und Kanalcodierten Daten über einen im allgemeinen Fall fehler­ behafteten Übertragungskanal wird zunächst der innere Code (Kanalcode) und anschließend der äußere Code (VL-Code) deco­ diert.
Im Fall einer iterativen Decodierung des verketteten Systems wird ein Teil der Zuverlässigkeitsinformationen des äußeren Decodierers 200 zum inneren Decodierer 216 als A-Priori-In­ formationen zurückübertragen, um in einem zweiten Decodier­ durchgang den inneren Decodierer 216 mit der im ersten Durchgang bereits gewonnenen Information zu unterstützen. Diese iterative Decodierung erfordert aber Decodierer-Modu­ le, die sowohl Eingangswerte mit Zuverlässigkeitsinformationen akzeptieren als auch selbst Ausgangwerte mit Zuverläs­ sigkeitsinformationen erzeugen, also Soft-Input/Soft-Out­ put-Module. So ist es in der Technik zwar generell bekannt, eine verkettete iterative Decodierung auszuführen, jedoch bisher nicht für VLC-Decodierer.
Im nachfolgenden wird auf die Funktionsweise des neuartigen verketteten Decodierschemas mit einem VLCMAP-Decodierer als äußerem Codierer beschrieben.
In einem ersten Schritt erhält der FECMAP-Decodierer von einem Kanal-Detektor Soft-Input-Informationen, um bitweise Soft-Output-Informationen zu erzeugen, welche als erster Wahrscheinlichkeitswert pro Bit erzeugt werden. Im ersten Schritt liegen noch keine A-Priori-Informationen vor. Daher wird der erste Differenz-Wahrscheinlichkeitswert in diesem ersten Schritt gleich dem ersten Wahrscheinlichkeitswert sein, da der zweite Differenz-Wahrscheinlichkeitswert 256, der dem Subtrahierer 220 zugeführt ist, in diesem ersten Schritt zu 0 initialisiert ist.
Diese Soft-Output-Informationen in Form des ersten Diffe­ renz-Wahrscheinlichkeitswerts werden dem VLCMAP-Decodierer 200 als Soft-Input-Informationen zugeführt, der dann seiner­ seits Soft-Output-Informationen erzeugt, die als zweiter Wahrscheinlichkeitswert pro Bit (252) bezeichnet worden sind.
Der erste Subtrahierer 218 bildet nun die Differenz zwischen dem zweiten Wahrscheinlichkeitswert und dem ersten Diffe­ renz-Wahrscheinlichkeitswert, um einen zweiten Differenz- Wahrscheinlichkeitswert 256 pro Bit zu erhalten. Die Diffe­ renzbildung mittels des ersten Subtrahierers 218 wird durch­ geführt, um den FECMAP-Decodierer 216 nicht mit seiner eige­ nen Ausgabe zu speisen, sondern lediglich mit der durch den VLCMAP-Decodierer 200 erzeugten zusätzlichen Information zu versorgen.
Der zweite Differenz-Wahrscheinlichkeitswert 256 pro Bit wird dann nach einer optionalen Interleaving-Operation dem FECMAP-Decodierer als A-Priori-Information zugeführt, um dann dieselbe Folge von Codewörtern in einem zweiten Schritt erneut zu verarbeiten.
Im zweiten Schritt liefert der FECMAP-Decodierer nun unter Berücksichtigung der A-Priori-Informationen 256 einen ersten Wahrscheinlichkeitswert für den zweiten Schritt, von dem nun jedoch der zweite Differenzwahrscheinlichkeitswert pro Bit im zweiten Subtrahierer 220 abgezogen wird, um den VLCMAP- Decodierer 200 nicht mit seiner eigenen Ausgabe wieder zu speisen, sondern nur durch den Teil, den der FECMAP-Decodie­ rer 216 im zweiten Schritt zusätzlich erzeugt hat. Der erste Differenz-Wahrscheinlichkeitswert 254 im zweiten Schritt entspricht nun - im Gegensatz zum ersten Schritt - nicht mehr dem ersten Wahrscheinlichkeitswert, da am negativen Eingang des Subtrahierers 220 definierte Werte ungleich 0 anliegen. Der erste Differenz-Wahrscheinlichkeitswert pro Bit wird nun wieder als Soft-Input-Information in den VLCMAP-Decodierer 200 eingespeist, damit derselbe wieder neue Soft-Output-Informationen als zweiten Wahrscheinlich­ keitswert 252 für den zweiten Iterationsschritt erzeugt, von dem wieder mittels des ersten Subtrahierers 218 der erste Differenz-Wahrscheinlichkeitswert 254 abgezogen wird, um wieder nur die durch den VLCMAP-Decodierer 200 im ersten Schritt neu erzeugten Wahrscheinlichkeitsinformationen in den FECMAP-Decodierer 216 einzuspeisen.
Dieses iterative Verfahren kann prizipiell eine beliebige Anzahl von Schritten wiederholt werden, wobei sich jedoch in den ersten Schritten die stärksten Verbesserungen bezüglich der Symbolfehlerrate ergeben werden, weshalb es sich emp­ fiehlt, die Iteration bereits nach einigen wenigen Schrit­ ten, wie z. B. neun Schritten, abzubrechen. Wenn ein Ab­ bruchkriterium der Iteration erreicht ist, das beispielswei­ se darin bestehen könnte, daß sich die Differenz-Wahrschein­ lichkeitswerte für die einzelnen Bits nicht mehr besonders stark von Schritt zu Schritt ändern, wird der VLCMAP-Deco­ dierer 200 angesteuert, um schließlich die wahrscheinlichste Folge von Informationssymbolen mit oder ohne Soft-Output-In­ formationen pro Bit oder pro Symbol auszugeben.
Bereits nach neun Iterationen können Gewinne bis zu 4 dB be­ züglich des Signal/Rausch-Verhältnisses im Vergleich zu ei­ nem Empfänger mit einem FEC-Decodierer und einem herkömmli­ chen Huffman-Decodierer erreicht werden. Dies bedeutet in anderen Worten, daß für ein um 4 dB niedrigeres Si­ gnal/Rausch-Verhältnis (Eb/N0), d. h. um eine um 4 B (um einen Faktor von 2,6) geringere Sendeleistung, dieselbe Symbolfehlerrate erhalten wird, wie sie durch den herkömmli­ chen Codierer erzielt werden kann.
Bei einer bevorzugten Ausführungsform wird der erste Wahr­ scheinlichkeitswert 250 als Soft-Output des Kanaldecodierers als A-Posteriori-L-Wert pro Bit in Form eines Log-Likeli­ hood-Verhältnisses verwendet, wie es weiter vorne definiert worden ist. Der zweite Wahrscheinlichkeitswert 252 kann auch als bitweiser Soft-Output des VLCMAP-Decodierers bezeichnet werden, welcher wieder als A-Posteriori-L-Wert verwendet werden kann. Der zweite Differenz-Wahrscheinlichkeitswert 256 kann auch als extrinsische Information des äußeren VLCMAP-Decodierers bezeichnet werden. Diese extrinsische Information ist die Differenz der Soft-Outputs der beiden Decodierer. Sie stellt also, wie es ausgeführt worden ist, die Information dar, die in einem Decodierer "neu" erzeugt wird. Diese Information wird, wie es in Fig. 7 gezeigt ist, als A-Priori-Information für den nächsten Iterationsschritt an den (inneren) FECMAP-Decodierer 216 zurückgeführt.
Es sei darauf hingewiesen, daß der erste und der zweite Sub­ trahierer in Fig. 7 deshalb als Subtrahierer ausgeführt sind, da als Wahrscheinlichkeitswerte Log-Likelihood-Ver­ hältnisse verwendet bzw. verarbeitet werden. Werden dagegen "normale" Wahrscheinlichkeiten verwendet, so wird statt der Differenzbildung für logarithmische Werte eine Division der normalen Wahrscheinlichkeiten durchgeführt. Allgemein kann gesagt werden, daß die Wahrscheinlichkeitswerte durch den ersten und zweiten Subtrahierer (Fig. 7 für Log-Likelihood- Verhältnisse) bzw. einen ersten und einen zweiten Dividierer (für Wahrscheinlichkeiten) als Kombinationseinrichtung kom­ biniert werden, um nur den "neuen" Beitrag eines Codierers zu dem anderen Codierer zu liefern. Dies stellt sicher, daß ein Codierer nicht mit den von ihm erzeugten Wahrscheinlich­ keiten in einem nächsten Iterationsschritt erneut gespeist wird. Die Subtrahierer sind also ein Beispiel für eine Kombinationseinrichtung. Differenz-Wahrscheinlichkeitswerte sind ein Beispiel für Kombinations-Wahrscheinlichkeitswerte und das Subtrahieren ist ein Beispiel für ein Kombinieren.
Im nachfolgenden wird anhand von Fig. 8 ein erfindungsge­ mäßer Codierer beschrieben. Derselbe umfaßt eine Einrichtung 80, die Informationssymbolen Codewörter variabler Länge zuweist, optional eine Einrichtung zum Bestimmen der Anzahl der Codewörter und der Codewort-Einheiten 82 der Folge von Codewörtern sowie eine Einrichtung 84 zum Eintragen der Seiteninformationen in den Datenstrom, um aus der Folge von Informationssymbolen einen Datenstrom mit Seiteninforma­ tionen zu erzeugen.
Da das erfindungsgemäße Decodierkonzept zur Erzeugung des Trellis-Diagramms die Anzahl der Codewörter einer Folge von Codewörtern und die Anzahl der Codewort-Einheiten der Folge von Codewörtern zur Konstruktion des Trellis-Diagramms bzw. zur Auswahl des geeigneten Trellis-Diagramms benötigt, müs­ sen diese Informationen als Seiteninformationen in den Da­ tenstrom eingebracht werden.
Es wird bevorzugt, diese zusätzlichen Informationen als hochgeschützte Seiteninformationen zu übertragen, da ein Verlust derselben fatal ist, da dann kein korrektes Trel­ lis-Diagramm mehr generiert bzw. aufgerufen werden kann. Für den Schutz der Seiteninformationen kann wieder ein FEC-Co­ dierer mit einer sehr niedrigen Coderate verwendet werden, wie z. B. einer Coderate kleiner als 1/2. Da bei modernen Datenkompressionsverfahren zur Video- und/oder Audiocodie­ rung im Falle einer Übertragung über fehlerbehaftete Kanäle immer sehr empfindliche Abschnitte hochgeschützt übertragen werden müssen, stellen diese zusätzlichen Seiteninforma­ tionen bzw. die Anforderung nach einem guten Schutz für diese Seiteninformationen keine großen Einschränkungen für ein Übertragungssystem dar.
Bei Anwendungsfällen, bei denen die Anzahl der Codewörter in einem Datenstrom immer festgelegt ist, kann dieselbe im Co­ dierer fest voreingestellt werden und muß nicht als Seiten­ informationen übertragen werden.
Zur Verbesserung der Fehlertoleranz wird eine Inter­ leavertiefe verwendet, die größer als eine Folge von Codewörtern ist. Dies wird nachfolgend beispielhaft anhand von Fig. 9 dargestellt. Betrachtet werden fünf aufeinan­ derfolgende "Segmente" von jeweils 32 Informationssymbolen u. Diese 5 Segmente werden jedes für sich dem VLC-Codierer 210 bzw. dem in Fig. 8 dargestellten Codierer zugeführt, um fünf Folgen von Codewörtern zu erhalten, die jeweils sehr wahrscheinlich eine unterschiedliche Anzahl von Bits N1 bis N5 haben. Die Seiteninformationen für jede Folge von Codewörtern werden beim gezeigten Beispiel vor die Folgen nacheinander in einen Datenstrom eingetragen, der dann dem Interleaver 212 (Fig. 7) zugeführt wird. Es entsteht ein verschachtelter Datenstrom b', der die Seiteninformationen der fünf Folgen sowie die fünf Folgen nun jedoch in ver­ schachtelter Form aufweist, wobei sich jedoch die insgesamte Anzahl von Bits durch die Verschachtelung nicht geändert hat. Die höhere Interleavertiefe hat den Vorteil, daß Burst-Fehler im Übertragungskanal über einen größeren Zeit­ raum verteilt werden, so daß aus einem Burst-Fehler, also aus einer Störung über eine gewisse Zeit, eine Vielzahl von Einzelfehlern wird, die insbesondere von dem verketteten Iterationsschema sogar idealerweise vollständig korrigiert werden können.
In Abweichung von dem beschriebenen Ausführungsbeispiel kann als Decodieralgorithmus auch ein suboptimaler Soft-Input- Soft-Output-Algorithmus eingesetzt werden. Beispielhafte Al­ gorithmen, die statt des BCJR-Algorithmus eingesetzt werden können, sind der SOVA-Algorithmus (SOVA = Soft Output Viterbi Algorithm) oder der MAX-LOG-MAP-Algorithmus.
Das erfindungsgemäße Konzept zum Decodieren von Codewörtern variabler Länge kann in allen Systemen eingesetzt werden, die zur Datenreduktion solche Codes verwenden. Insbesondere bieten sich Einsatzmöglichkeiten für Audio-Decodierer gemäß MP3 oder MPEG2-AAC an. Darüberhinaus kann das erfindungsge­ mäße Konzept auch bei der Komprimierung bzw. Dekomprimierung von Bild- und Videodaten gemäß JPEG oder MPEG eingesetzt werden. Schließlich werden auch Codes mit Codewörtern varia­ bler Länge zur Datenreduktion im Fax-Standard verwendet. Auch hier kann das erfindungsgemäße Konzept vorteilhaft ein­ gesetzt werden.
Wird das erfindungsgemäße Konzept anstelle von herkömmlichen Verfahren zur Decodierung bzw. Codierung von Codes variabler Länge eingesetzt, kann die Fehlerrate insbesondere bei Ver­ wendung der iterativen Decodierung erheblich gesenkt werden, bzw. bei gleicher Fehlerrate kann die aufzuwendende Sende­ leistung deutlich gesenkt werden.

Claims (21)

1. Verfahren zum Decodieren einer Folge von Codewörtern variabler Länge, wobei ein Codewort aus einer variablen Anzahl von Codewort-Einheiten zusammengesetzt ist und über eine Codiervorschrift einem Informationssymbol zu­ geordnet ist, mit folgenden Schritten:
Bereitstellen (18) der Anzahl von Codewörtern der Folge sowie der Anzahl von Codewort-Einheiten der Folge;
Bereitstellen (20) eines Trellis-Diagramms abhängig von der Anzahl von Codewörtern und der Anzahl von Code­ wort-Einheiten,
wobei das Trellis-Diagramm von einem einzigen de­ finierten Ausgangszustand (100) startet und an ei­ nem einzigen definierten Endzustand (102) endet, der durch die Anzahl von Codewörtern und die An­ zahl von Codewort-Einheiten festgelegt ist,
wobei das Trellis-Diagramm Knoten (104, 106, 108) und Zweige (110, 112, 114) aufweist, wobei ein Knoten einen Endzustand einer Teilfolge von Code­ wörtern darstellt, und wobei ein Zweig ein Code­ wort darstellt, durch das von einem Endzustand ei­ ner Teilfolge, von dem der Zweig ausgeht, zu einem Endzustand einer anderen Teilfolge übergegangen wird, zu dem der Zweig gerichtet ist, wobei die andere Teilfolge das Codewort umfaßt, das durch den Zweig dargestellt wird; und
wobei jeder Zweig aus einer Anzahl von Unterzwei­ gen (112a, 112b) besteht, die gleich der Anzahl von Codewort-Einheiten des diesem Zweig zugeord­ neten Codeworts ist, so daß jedem Unterzweig (112a, 112b) eine Codewort-Einheit zugeordnet ist, wobei jeder Unterzweig eines Zweigs, dem ein Codewort mit zumindest zwei Codewort-Einheiten zuge­ ordnet ist, über einen Unterknoten (113) mit einem anderen Unterzweig dieses Zweigs verbunden ist, wobei keine Verbindung zwischen einem Unterknoten eines Zweigs mit einem Unterknoten eines anderen Zweigs existiert;
Bereitstellen (16) von Wahrscheinlichkeitsinformationen für jede Codewort-Einheit der Folge von Codewörtern va­ riabler Länge; und
Decodieren (14) der Folge von Codewörtern unter Verwen­ dung des Trellis-Diagramms und der Wahrscheinlichkeits­ informationen für die Codewort-Einheiten, um die Infor­ mationssymbole zu erhalten, die der Folge von Codewör­ tern zugeordnet sind.
2. Verfahren nach Anspruch 1, bei dem im Schritt des Be­ reitstellens (20) eines Trellis-Diagranuns ein zweidi­ mensionales Trellis-Diagramm bereitgestellt wird, bei dem eine Dimension die Anzahl k der Symbole einer Teil­ folge von Codewörtern umfaßt, und die andere Dimension die Anzahl n der Codewort-Einheiten für eine Teilfolge von Codewörtern umfaßt.
3. Verfahren nach Anspruch 1, bei dem im Schritt des Be­ reitstellens (20) eines Trellis-Diagramms ein zweidi­ mensionales Trellis-Diagramm bereitgestellt wird, bei dem eine Dimension die Anzahl k der Symbole einer Teil­ folge umfaßt, und die andere Dimension einen Index für mögliche Knoten einer Teilfolge mit k Symbolen umfaßt.
4. Verfahren nach Anspruch 1, bei dem im Schritt das Be­ reitstellens (20) eines Trellis-Diagramms ein zweidi­ mensionales Trellis-Diagramm bereitgestellt wird, bei dem die eine Dimension die Anzahl der Codewort-Ein­ heiten einer Codewort-Einheiten-Teilfolge umfaßt, und die andere Dimension einen Index für mögliche Codewort-Einheiten-Positionen der Teilfolge umfaßt, wobei die Endknoten der Codewort-Einheiten-Teilfolge Knoten oder Unterknoten sein können.
5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem im Schritt des Decodierens (14) eine Sequenzschät­ zung unter Verwendung des Viterbi-Algorithmus durchge­ führt wird.
6. Verfahren nach Anspruch 5, bei dem die Sequenzschätzung durchgeführt wird, indem für jeden zu einem Knoten des Trellis-Diagramms führenden Zweig unter Verwendung ei­ ner Pfadmetrik aus einem vorausgehenden Berechnungs­ schritt für den Knoten, von dem der Zweig ausgeht, und unter Verwendung einer Übergangsmetrik, die aus den Wahrscheinlichkeitsinformationen der Codewort-Einheiten abgeleitet ist, die diesem Zweig zugeordnet sind, eine Zustandsmetrik für den Zustand ermittelt wird, worauf­ hin der Zweig gespeichert wird, der die günstigste Zu­ standsmetrik liefert, so daß nach einer Mehrzahl von Berechnungsschritten eine Folge von decodierten Infor­ mationssymbolen erhalten wird, die den Informations­ symbolen am wahrscheinlichsten entspricht, die durch die Codewörter codiert worden sind.
7. Verfahren nach Anspruch 1 oder 2, bei dem im Schritt des Decodierens (14) eine Codewort-weise Maximum-A-Po­ steriori-Schätzung durchgeführt wird.
8. Verfahren nach Anspruch 7, bei dem die Maximum-A-Po­ steriori-Schätzung derart durchgeführt wird, daß für jedes Informationssymbol ein A-Posteriori-Wahrschein­ lichkeitswert erhalten wird, indem folgende Schritte ausgeführt werden:
Berechnen (52) einer Zweigmetrik für jeden Zweig unter Verwendung der Wahrscheinlichkeitsinformationen für die dem jeweiligen Zweig zugeordneten Codewort-Einheiten;
Durchführen (54) einer Vorwärtsrekursion, um Vorwärts- Wahrscheinlichkeitsinformationen (α) für jeden Symbol­ zustand zu erhalten, von dem ein Zweig ausgeht, unter Verwendung von Zweigmetriken für Zweige, die diesem Symbolzustand vorausgehen;
Durchführen (56) einer Rückwärtsrekursion, um Rück­ wärts-Wahrscheinlichkeitsinformationen (β) für jeden Symbolzustand zu erhalten, in den ein Zweig mündet, un­ ter Verwendung von Zweigmetriken aus den Zweigen, die dem Symbolzustand folgen;
Berechnen (58) eines Wahrscheinlichkeitswerts für ein Informationssymbol durch Ermitteln eines Wahrschein­ lichkeitswerts für jeden Zweig, der diesem Informa­ tionssymbol zugeordnet ist, durch Multiplikation der Vorwärts-Wahrscheinlichkeitsinformationen (a) für den Symbolzustand, von dem der Zweig ausgeht, mit der Zweigmetrik des Zweigs und mit den Rückwärts-Informa­ tionen (β) des Zustands, zu dem der Zweig gerichtet ist;
Summieren der für die einem Informationssymbol zugeord­ neten Zweige erhaltenen Wahrscheinlichkeitswerte, um einen Gesamt-Wahrscheinlichkeitswert für das Informati­ onssymbol zu erhalten, das den Zweigen zugeordnet ist; und
Ausführen des Schritts des Berechnens für sämtliche an­ deren Informationssymbole und Auswählen des Informa­ tionssymbols als Ausgabe, das den höchsten Gesamt-Wahr­ scheinlichkeitswert hat und Ausgeben des ausgewählten Informationssymbols samt seinem Wahrscheinlichkeits­ wert.
9. Verfahren nach Anspruch 1, 2 oder 4, bei dem im Schritt des Decodierens eine Codewort-Einheiten-weise Maximum- A-Posteriori-Schätzung durchgeführt wird.
10. Verfahren nach einem der Ansprüche 7 bis 9, bei dem die Codewort-Einheiten binär sind, und bei dem die Wahr­ scheinlichkeitswerte für eine Codewort-Einheit als Log-Likelihood-Verhältnis berechnet werden, wobei das Log-Likelihood-Verhältnis als Logarithmus des Verhält­ nisses der Wahrscheinlichkeit, daß die Codewort-Einheit eine binäre 0 darstellt, zu der Wahrscheinlichkeit, daß die Codewort-Einheit eine binäre 1 darstellt, definiert ist.
11. Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, wobei ein Codewort aus einer variablen Anzahl von Codewort-Einheiten zusammengesetzt ist und über eine Codiervorschrift einem Informationssymbol zu­ geordnet ist, mit folgenden Merkmalen:
einer Einrichtung zum Bereitstellen (18) der Anzahl von Codewörtern der Folge sowie der Anzahl von Codewort- Einheiten der Folge;
einer Einrichtung zum Bereitstellen (20) eines Trel­ lis-Diagramms abhängig von der Anzahl von Codewörtern und der Anzahl von Codewort-Einheiten,
wobei das Trellis-Diagramm von einem einzigen de­ finierten Ausgangszustand (100) startet und an ei­ nem einzigen definierten Endzustand (102) endet, der durch die Anzahl von Codewörtern und die An­ zahl von Codewort-Einheiten festgelegt ist,
wobei das Trellis-Diagramm Knoten (104, 106, 108) und Zweige (110, 112, 114) aufweist, wobei ein Knoten einen Endzustand einer Teilfolge von Code­ wörtern darstellt, und wobei ein Zweig ein Code­ wort darstellt, durch das von einem Endzustand ei­ ner Teilfolge, von dem der Zweig ausgeht, zu einem Endzustand einer anderen Teilfolge übergegangen wird, zu dem der Zweig gerichtet ist, wobei die andere Teilfolge das Codewort umfaßt, das durch den Zweig dargestellt wird; und
wobei jeder Zweig aus einer Anzahl von Unterzwei­ gen (112a, 112b) besteht, die gleich der Anzahl von Codewort-Einheiten des diesem Zweig zugeord­ neten Codeworts ist, so daß jedem Unterzweig (112a, 112b) eine Codewort-Einheit zugeordnet ist, wobei jeder Unterzweig eines Zweigs, dem ein Code­ wort mit zumindest zwei Codewort-Einheiten zuge­ ordnet ist, über einen Unterknoten 113 mit einem anderen Unterzweig dieses Zweigs verbunden ist, wobei keine Verbindung zwischen einem Unterknoten eines Zweigs mit einem Unterknoten eines anderen Zweigs existiert;
einer Einrichtung zum Bereitstellen (16) von Wahr­ scheinlichkeitsinformationen für jede Codewort-Einheit der Folge von Codewörtern variabler Länge; und
einer Einrichtung zum Decodieren (14) der Folge von Codewörtern unter Verwendung des Trellis-Diagramms und der Wahrscheinlichkeitsinformationen für die Codewort- Einheiten, um die Informationssymbole zu erhalten, die der Folge von Codewörtern zugeordnet sind.
12. Vorrichtung nach Anspruch 11, bei der die Einrichtung (20) zum Bereitstellen eines Trellis-Diagramms ein Nur-Lese-Speicher ist, der eine Vielzahl von Trellis- Diagrammen für verschiedene Anzahlen von Codewörtern und Codewort-Einheiten umfaßt und durch eine bestimmte Codewort-Anzahl und eine bestimmte Codewort-Einheiten- Anzahl adressierbar ist.
13. Vorrichtung nach Anspruch 11, bei der die Einrichtung (20) zum Bereitstellen ein Rechner ist, der abhängig von der bereitgestellten Anzahl von Codewörtern der Folge und der bereitgestellten Anzahl von Codewort- Einheiten der Folge ein entsprechendes Trellis-Diagramm erzeugt.
14. Vorrichtung zum Erzeugen eines Datenstroms mit einer Folge von Codewörtern variabler Länge, die aus einer variablen Anzahl von Codewort-Einheiten zusammengesetzt ist, aus einer Folge von Informationssymbolen, mit fol­ genden Merkmalen:
einer Einrichtung (80) zum Codieren eines Informations­ symbols mit einem Codewort variabler Länge, um nachein­ ander eine Folge von Codewörtern variabler Länge zu er­ halten;
einer Einrichtung (82) zum Bestimmen der Anzahl der Codewort-Einheiten der Folge von Codewörtern; und
einer Einrichtung zum Eintragen der Anzahl der Code­ wort-Einheiten als Seiteninformationen in den Daten­ strom.
15. Vorrichtung nach Anspruch 14,
bei der die Einrichtung (82) zum Bestimmen angeordnet ist, um ferner die Anzahl der Codewörter der Folge zu erfassen, und
bei der die Einrichtung zum Eintragen angeordnet ist, um ferner die Anzahl der Codewörter als Seiteninforma­ tionen in den Datenstrom einzutragen.
16. Vorrichtung nach Anspruch 14 oder 15, die ferner fol­ gendes Merkmal aufweist: eine Einrichtung zum Redundanz-Codieren der Seitenin­ formationen, um die Seiteninformationen gegen Übertragungsfehler zu schützen.
17. Vorrichtung nach einem der Ansprüche 14 bis 16, die ferner einen Interleaver (212) aufweist, wobei die Vorrichtung angeordnet ist, um dem Interleaver (212) als Eingangsdaten eine Mehrzahl von terminierten Folgen von Codewörtern zu liefern, um eine Interleavertiefe zu schaffen, die zumindest zwei terminierte Folgen von Codewörtern umfaßt.
18. Verfahren zum Erzeugen eines Datenstroms mit einer Fol­ ge von Codewörtern variabler Länge, die aus einer va­ riablen Anzahl von Codewort-Einheiten zusammengesetzt ist, aus einer Folge von Informationssymbolen, mit fol­ genden Schritten:
Zuweisen (80) eines Codeworts variabler Länge zu einem Informationssignal, um nacheinander eine Folge von Codewörtern variabler Länge zu erhalten;
Bestimmen (82) der Anzahl der Codewörter und der Anzahl der Codewort-Einheiten der Folge von Codewörtern; und
Eintragen der Anzahl der Codewörter und der Anzahl der Codewort-Einheiten als Seiteninformationen in den Da­ tenstrom.
19. Vorrichtung zum Decodieren eines Datenstroms (y), der durch Entropie-Codieren (210) einer Folge (u) von In­ formationssymbolen mittels Codewörter variabler Länge, die aus einer variablen Anzahl von Codewort-Einheiten zusammengesetzt sind, und durch Kanalcodieren (214) zur Fehlerkorrektur erzeugt worden ist, mit folgenden Merk­ malen:
einer Einrichtung zum Bereitstellen von Wahrscheinlich­ keitsinformationen für den Datenstrom (y);
einer ersten Einrichtung (216) zum Decodieren des Da­ tenstroms, um die Kanalcodierung zu entfernen, unter Verwendung der Wahrscheinlichkeitsinformationen für den Datenstrom, wobei die erste Einrichtung (216) zum Deco­ dieren angeordnet ist, um eine Soft-Input-Soft-Output- Decodierung durchzuführen, so daß jeder Codewort-Ein­ heit an einem Ausgang der ersten Einrichtung (216) zum Decodieren ein erster Wahrscheinlichkeitswert (250) zugeordnet ist;
einer zweiten Einrichtung (200) zum Decodieren einer Folge von Codewort-Einheiten, die aus den Codewort-Ein­ heiten an dem Ausgang der ersten Einrichtung (216) zum Decodieren besteht, mit folgenden Merkmalen:
einer ersten Einrichtung zum Bereitstellen einer Anzahl der Codewörter in der Folge von Codewörtern und der Anzahl von Codewort-Einheiten der Folge von Codewörtern;
einer zweiten Einrichtung (20) zum Bereitstellen eines Trellis-Diagramms abhängig von der Anzahl von Codewörtern und der Anzahl von Codewort-Ein­ heiten,
wobei das Trellis-Diagramm von einem einzigen de­ finierten Ausgangszustand (100) startet und an ei­ nem einzigen definierten Endzustand (102) endet, der durch die Anzahl von Codewörtern und die An­ zahl von Codewort-Einheiten festgelegt ist,
wobei das Trellis-Diagramm Knoten (104, 106, 108) und Zweige (110, 112, 114) aufweist, wobei ein Knoten einen Endzustand einer Teilfolge von Code­ wörtern darstellt, und wobei ein Zweig ein Code­ wort darstellt, durch das von einem Endzustand ei­ ner Teilfolge, von dem der Zweig ausgeht, zu einem Endzustand einer anderen Teilfolge übergegangen wird, zu dem der Zweig gerichtet ist, wobei die andere Teilfolge das Codewort umfaßt, das durch den Zweig dargestellt wird; und
wobei jeder Zweig aus einer Anzahl von Unterzwei­ gen (112a, 112b) besteht, die gleich der Anzahl von Codewort-Einheiten des diesem Zweig zugeord­ neten Codeworts ist, so daß jedem Unterzweig (112a, 112b) eine Codewort-Einheit zugeordnet ist, wobei jeder Unterzweig eines Zweigs, dem ein Code­ wort mit zumindest zwei Codewort-Einheiten zuge­ ordnet ist, über einen Unterknoten (113) mit einem anderen Unterzweig dieses Zweigs verbunden ist, wobei keine Verbindung zwischen einem Unterknoten eines Zweigs mit einem Unterknoten eines anderen Zweigs existiert; und
einer Einrichtung (14) zum Ermitteln der Folge von Informationssymbolen unter Verwendung des Trel­ lis-Diagramms und von Wahrscheinlichkeitswerten für die Codewort-Einheiten, wobei die Einrichtung (14) zum Ermitteln angeordnet ist, um eine Code­ wort-Weise Soft-Input-Soft-Output-Decodierung durchzuführen, um für jede Codewort-Einheit einen zweiten Wahrscheinlichkeitswert (252) zu erzeugen;
einem ersten Kombinierer (218) zum Codewort-Einheiten­ weisen Kombinieren eines ersten Kombinations-Wahr­ scheinlichkeitswerts (254) mit dem zweiten Wahrschein­ lichkeitswert (252), um einen zweiten Kombinations- Wahrscheinlichkeitswert (256) für jede Codewort-Einheit zu erzeugen, wobei der zweite Kombinations-Wahrschein­ lichkeitswert (256) für jede Codewort-Einheit der er­ sten Einrichtung (216) zum Decodieren als A-Priori- Wahrscheinlichkeitsinformation bereitgestellt wird, um neben den für den Datenstrom bereitgestellten Wahr­ scheinlichkeitsinformationen verwendet zu werden, und wobei der zweite Kombinations-Wahrscheinlichkeitswert im wesentlichen den Beitrag der zweiten Einrichtung (200) zum Decodieren betrifft; und
einem zweiten Kombinierer (220) zum Codewort-Einhei­ ten-weisen Kombinieren des zweiten Kombinations-Wahr­ scheinlichkeitswerts (256) mit dem ersten Wahrschein­ lichkeitswert (250), um den ersten Kombinations-Wahr­ scheinlichkeitswert (254) für jede Codewort-Einheit zu liefern, wobei der erste Kombinations-Wahrscheinlich­ keitswert im wesentlichen den Beitrag der ersten Ein­ richtung (216) zum Decodieren betrifft;
wobei die Vorrichtung zum Decodieren angeordnet ist, um einen iterativen Betrieb auszuführen,
indem in einem ersten Schritt die erste Einrichtung (216) zum Decodieren keine A-Priori-Wahrscheinlich­ keitsinformationen verwendet, der erste Kombinations- Wahrscheinlichkeitswert (254) gleich dem ersten Wahr­ scheinlichkeitswert (250) ist, und die Wahrscheinlich­ keitsinformationen, die die zweite Einrichtung (200) zum Decodieren verwendet, gleich dem ersten Wahrschein­ lichkeitswert (250) sind; und
indem in einem zweiten und jedem optionalen weiteren Schritt die erste Einrichtung (216) zum Decodieren A- Priori-Wahrscheinlichkeitsinformationen verwendet werden, die gleich dem zweiten Kombinations-Wahrschein­ lichkeitswert (256) der entsprechenden Ergebnisse des vorausgehenden Schritts sind, und die zweite Einrich­ tung (200) zum Decodieren als Wahrscheinlichkeitswerte den ersten Kombinations-Wahrscheinlichkeitswert (254) der entsprechenden Ergebnisse des vorausgehenden Schritts verwendet, und
wobei die zweite Einrichtung (200) zum Decodieren fer­ ner angeordnet ist, um im Falle eines Endes des iterativen Betriebs die wahrscheinlichste Folge von Informa­ tionssymbolen und/oder symbolweise Wahrscheinlichkeits­ informationen für die wahrscheinlichste Folge von In­ formationssymbolen auszugeben.
20. Vorrichtung nach Anspruch 19, bei der der Datenstrom (b) vor dem Kanalcodieren (214) einer Interleaving-Ope­ ration (212) unterzogen wurde, wobei die Vorrichtung ferner folgende Merkmale aufweist:
einen Deinterleaver (222) zum Rückgängigmachen der In­ terleaving-Operation, der zwischen den zweiten Kombi­ nierer (220) und die zweite Einrichtung (200) zum Deco­ dieren geschaltet ist; und
einen Interleaver (224), der zwischen dem ersten Kom­ binierer (218) und dem zweiten Kombinierer (220) an­ geordnet ist, um mit den Codewort-Einheiten-weisen zweiten Kombinations-Wahrscheinlichkeitswerten (256) eine Interleaving-Operation durchzuführen, die der Interleaving-Operation entspricht, mit der der Datenstrom vor dem Kanalcodieren unterzogen worden ist.
21. Verfahren zum Decodieren eines Datenstroms (y), der durch Entropie-Codieren (210) einer Folge (u) von In­ formationssymbolen mittels Codewörter variabler Länge, die aus einer variablen Anzahl von Codewort-Einheiten zusammengesetzt sind, und durch Kanalcodieren (214) zur Fehlerkorrektur erzeugt worden ist, mit folgenden Schritten:
Bereitstellen von Wahrscheinlichkeitsinformationen für den Datenstrom (y);
Decodieren (216) des Datenstroms, um die Kanalcodierung zu entfernen, unter Verwendung der Wahrscheinlichkeits­ informationen für den Datenstrom, um eine Soft-Input- Soft-Output-Decodierung durchzuführen, so daß jeder Codewort-Einheit ein erster Wahrscheinlichkeitswert (250) zugeordnet wird;
Decodieren (200) einer Folge von Codewort-Einheiten, die aus den Codewort-Einheiten, denen der erste Wahr­ scheinlichkeitswert (250) zugeordnet ist, besteht, durch folgende Teilschritte:
Bereitstellen (18) einer Anzahl der Codewörter in der Folge von Codewörtern und der Anzahl von Code­ wort-Einheiten der Folge von Codewörtern;
Bereitstellen (20) eines Trellis-Diagramms abhän­ gig von der Anzahl von Codewörtern und der Anzahl von Codewort-Einheiten;
wobei das Trellis-Diagramm von einem einzigen de­ finierten Ausgangszustand (100) startet und an ei­ nem einzigen definierten Endzustand (102) endet, der durch die Anzahl von Codewörtern und die An­ zahl von Codewort-Einheiten festgelegt ist,
wobei das Trellis-Diagramm Knoten (104, 106, 108) und Zweige (110, 112, 114) aufweist, wobei ein Knoten einen Endzustand einer Teilfolge von Code­ wörtern darstellt, und wobei ein Zweig ein Code­ wort darstellt, durch das von einem Endzustand ei­ ner Teilfolge, von dem der Zweig ausgeht, zu einem Endzustand einer anderen Teilfolge übergegangen wird, zu dem der Zweig gerichtet ist, wobei die andere Teilfolge das Codewort umfaßt, das durch den Zweig dargestellt wird; und
wobei jeder Zweig aus einer Anzahl von Unterzwei­ gen (112a, 112b) besteht, die gleich der Anzahl von Codewort-Einheiten des diesem Zweig zugeord­ neten Codeworts ist, so daß jedem Unterzweig (112a, 112b) eine Codewort-Einheit zugeordnet ist, wobei jeder Unterzweig eines Zweigs, dem ein Code­ wort mit zumindest zwei Codewort-Einheiten zuge­ ordnet ist, über einen Unterknoten (113) mit einem anderen Unterzweig dieses Zweigs verbunden ist, wobei keine Verbindung zwischen einem Unterknoten eines Zweigs mit einem Unterknoten eines anderen Zweigs existiert; und
Ermitteln (14) der Folge von Informationssymbolen unter Verwendung des Trellis-Diagramms und von Wahrscheinlichkeitswerten für die Codewort-Einhei­ ten, um eine Codewort-Weise Soft-Input-Soft-Out­ put-Decodierung durchzuführen, um für jede Code­ wort-Einheit einen zweiten Wahrscheinlichkeitswert (252) zu erzeugen;
Codewort-Einheiten-weises Kombinieren (218) eines er­ sten Kombinations-Wahrscheinlichkeitswerts (254) mit dem zweiten Wahrscheinlichkeitswert (252), um einen zweiten Kombinations-Wahrscheinlichkeitswert (256) für jede Codewort-Einheit zu erzeugen, wobei der zweite Kombinations-Wahrscheinlichkeitswert (256) für jede Codewort-Einheit beim Decodieren (216) des Datenstroms als A-Priori-Wahrscheinlichkeitsinformation bereitge­ stellt wird, um neben den für den Datenstrom bereitge­ stellten Wahrscheinlichkeitsinformationen verwendet zu werden, und wobei der zweite Kombinations-Wahrschein­ lichkeitswert im wesentlichen den Beitrag des Decodie­ rens der Folge (200) betrifft; und
Codewort-Einheiten-weises Kombinieren (220) des zweiten Kombinations-Wahrscheinlichkeitswerts (256) mit dem er­ sten Wahrscheinlichkeitswert (250), um den ersten Kom­ binations-Wahrscheinlichkeitswert (254) für jede Code­ wort-Einheit zu liefern, wobei der erste Kombinations- Wahrscheinlichkeitswert im wesentlichen den Beitrag des Decodierens (216) des Datenstroms betrifft;
wobei das Verfahren zum Decodieren iterativ ausgeführt wird,
wobei in einem ersten Iterationsschritt keine A-Pri­ ori-Wahrscheinlichkeitsinformationen verwendet werden, der erste Kombinations-Wahrscheinlichkeitswert (254) gleich dem ersten Wahrscheinlichkeitswert (250) ist, und die Wahrscheinlichkeitsinformationen, die beim De­ codieren (200) der Folge verwendet, gleich dem ersten Wahrscheinlichkeitswert (250) sind; und
wobei in einem zweiten und jedem optionalen weiteren Iterationschritt beim Decodieren (216) des Datenstroms A-Priori-Wahrscheinlichkeitsinformationen verwendet werden, die gleich dem zweiten Kombinations-Wahrschein­ lichkeitswert (256) der entsprechenden Ergebnisse des vorausgehenden Schritts sind, und beim Decodieren (200) der Folge als Wahrscheinlichkeitswert der erste Kombi­ nations-Wahrscheinlichkeitswert (254) der entsprechen­ den Ergebnisse des vorausgehenden Sehritts verwendet wird, und
wobei der Schritt des Decodierens (200) der Folge im Falle eines Endes der Iteration den Schritt des Ausge­ bens der wahrscheinlichsten Folge von Informationssym­ bolen und/oder symbolweise Wahrscheinlichkeitsinforma­ tionen für die wahrscheinlichste Folge von Informati­ onssymbolen umfaßt.
DE2000100932 2000-01-12 2000-01-12 Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms Expired - Fee Related DE10000932C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2000100932 DE10000932C2 (de) 2000-01-12 2000-01-12 Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2000100932 DE10000932C2 (de) 2000-01-12 2000-01-12 Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms

Publications (2)

Publication Number Publication Date
DE10000932A1 true DE10000932A1 (de) 2001-08-30
DE10000932C2 DE10000932C2 (de) 2002-01-10

Family

ID=7627255

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000100932 Expired - Fee Related DE10000932C2 (de) 2000-01-12 2000-01-12 Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms

Country Status (1)

Country Link
DE (1) DE10000932C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236128A1 (en) * 2022-06-09 2023-12-14 Huawei Technologies Co., Ltd. Apparatus and methods for source coding and channel coding of low entropy signals

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
HAGENAUER J., OFFER E., PAPKE L.: Improving the standard coding system for deep space misions, in:Conference Record, :ICC '93 Geneve, IEEE International Conference on Communications, p. 1092-7, Vol. 2 of 3, Geneva, Schwitzerland, *
MURAD A.H., FUJA T.E.: Robust transmission of variable-length encoded sources, in: Proceedings of Conference: WCNC 1999 Wireless Communication and Networking Conferences, p. 968-72, Vol. 2 of 3New Orleans, LA, USA, 21-24 September 1999 *
PARK MOONSEO, MILLER D.: Improved joint source-channel decoding for variable-length encoded data using soft decission and MMSE estimation, in: IEEE DOC 1999, Snowbird, UT, USA *
WEN J., VILLASENOR J.: Utilizing soft information in Decoding of variable length codes, in: Proceedings of Conference: DCC'99 Data Compression Conference, p. 131-9, Snowbird, UT, USA, 29-31 März 1999 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236128A1 (en) * 2022-06-09 2023-12-14 Huawei Technologies Co., Ltd. Apparatus and methods for source coding and channel coding of low entropy signals

Also Published As

Publication number Publication date
DE10000932C2 (de) 2002-01-10

Similar Documents

Publication Publication Date Title
DE60113053T2 (de) Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes
DE3910739C2 (de)
DE60001988T2 (de) Turbo Dekodierung mit variabler Anzahl von Iterationen
DE69936908T2 (de) Iterative dekodierung von produktkoden
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
DE60003071T2 (de) Verfahren zur dekodierung von mit einem entropie-code kodierten daten, entsprechende dekodierungsvorrichtung und übertragungssystem
WO1996013105A1 (de) Übertragungssystem mit soft-output-dekodierung bei reduziertem speicherbedarf
DE60111974T2 (de) Abbruchkriterium für einen Turbodekoder
DE19937506A1 (de) ACS-Einheit für einen Viterbi-Decodierer
DE10310812B4 (de) Dekodiervorrichtung, Trellis-Prozessor und Verfahren
DE19934646C2 (de) Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes
WO2000044100A1 (de) Verfahren und vorrichtung zur decodierung von faltungscodes
WO2002060071A2 (de) Viterbi-decoder
WO2001069789A2 (de) Optimierter turbo-decodierer
EP1249074B1 (de) Verfahren zur decodierung eines datensignals
DE10000932C2 (de) Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms
DE19725275C2 (de) Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen
DE60118716T2 (de) Log-MAP Dekodierung
DE19647653A1 (de) Digitales Übertragungssystem mit trellisbasiertem, zustandsreduziertem Schätzverfahren
DE60026109T2 (de) Kombinierte Kanal - und Entropiedekodierung
WO2001069788A2 (de) Turbo-decodierer und turbo-decodierverfahren
DE10120155B4 (de) Modulation mit paralleler Turbotrelliscodierung
EP0912021A2 (de) Verfahren und Einrichtung zur Datenübertragung
DE102014215015B3 (de) Verfahren zum Wiederherstellen verlorengegangener und /oder beschädigter Daten
DE19732122C2 (de) Verfahren und Einrichtung zur Datenübertragung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee