DE69836119T2 - Tail-biting Faltungskode-Dekodierverfahren und -system - Google Patents

Tail-biting Faltungskode-Dekodierverfahren und -system Download PDF

Info

Publication number
DE69836119T2
DE69836119T2 DE69836119T DE69836119T DE69836119T2 DE 69836119 T2 DE69836119 T2 DE 69836119T2 DE 69836119 T DE69836119 T DE 69836119T DE 69836119 T DE69836119 T DE 69836119T DE 69836119 T2 DE69836119 T2 DE 69836119T2
Authority
DE
Germany
Prior art keywords
coding
state
decoding
tailbiting
subset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69836119T
Other languages
English (en)
Other versions
DE69836119D1 (de
Inventor
Isa Bisher Plano Atallah
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.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
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 Nortel Networks Ltd filed Critical Nortel Networks Ltd
Application granted granted Critical
Publication of DE69836119D1 publication Critical patent/DE69836119D1/de
Publication of DE69836119T2 publication Critical patent/DE69836119T2/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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding

Landscapes

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

Description

  • Hintergrund der Erfindung
  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und System für Fehler korrigierende Codes allgemein und insbesondere auf ein Verfahren und System zum Dekodieren von Faltungs-Codes. Besonders bezieht sich die vorliegende Erfindung auf ein Verfahren und System zum Dekodieren von Tailbiting-Faltungs-Codes.
  • Beschreibung des Standes der Technik
  • Informations-Signale, die zwischen einem Sender und einem Empfänger über einen Kommunikationskanal übertragen werden, können durch verschiedene Störungen verfälscht werden, die dem Kanal zugeordnet sind. Daher wird eine Technik, die als Fehlerkorrektur-Kodierung bekannt ist, typischerweise dazu verwendet, die Auswirkungen von Kanal-Störungen in einem Kommunikationskanal zu mildern. Durch die Einführung einer Redundanz in die zu übertragenden Informations-Signale kann die Kanalcodierung die Wahrscheinlichkeit verringern, dass Kanal-Störungen die Informations-Signale verfälschen. In den meisten Fällen hat sich die Technik der Kanalcodierung als ziemlich erfolgreich verwiesen, selbst für Langstrecken-Kommunikationen, wie zum Beispiel zwischen einer Basisstation auf der Erde und einem Raumfahrzeug, das sich einem entfernten Planeten nähert.
  • Faltungs-Codes sind eine Klasse von Fehler korrigierenden Codes, die in der Technik zur Milderung der Auswirkungen von Kanal-Störungen gut bekannt sind. Ein Beispiel derartiger Faltungs-Codes, das als eine Norm für nordamerikanische digitale Zellularfunk-Kommunikationen übernommen wurde, ist als IS-130 der internationalen Telekommunikations Union bekannt. IS-130 verwendet eine Art von Faltungs-Code, der in der Technik auch als Tailbiting-Faltungs-Code bekannt ist, bei dem ein Rahmen oder Block an Information codiert und in einer blockweisen Art übertragen wird. Der Ausdruck „Tailbiting" bezieht sich auf die Tatsache, dass der Faltungscodierer in dem gleichen Codierungszustand beginnt und endet. Obwohl der Decodierer weiß, dass der Kodierer in dem gleichen Codierungszustand beginnt und endet, kennt der Decodierer den Wert dieses Zustandes nicht. Dies heißt mit anderen Worten, dass der anfängliche Codierungszustand des Codierers den Decodierer unbekannt ist; und dass tatsächlich für willkürliche Daten der Codierer mit angenähert der gleichen Wahrscheinlichkeit in irgendeinem der möglichen Zustände begonnen haben kann. Damit besteht die grundlegende Schwierigkeit, die bei der Konstruktion eines Decodierers für Tailbiting-Faltungs-Codes auftritt, darin, dass der Decodierer in der Lage sein muss, den anfänglichen Codierungszustand des Codierers in sehr kurzer Zeit zu bestimmen.
  • In dem Stand der Technik kann ein Decodierer maximaler Wahrscheinlichkeit, der besser als ein Viterbi-Decodierer bekannt ist, zur Decodierung von Tailbiting-Faltungs-Codes verwendet werden. Ein Viterbi-Decodierer dekodiert eine aktuelle verfälschte Folge von empfangenen Signalen dadurch, dass die wahrscheinlichste Folge von nicht verfälschten Signale aufgefunden wird. Ähnlich wie andere Arten von Decodierern kennt ein Viterbi-Decodierer ebenfalls nicht den Startzustand eines Codierers, sodass der Viterbi-Decodierer eine Viterbi-Decodierung in erschöpfender Weise für alle möglichen Startzustände ausführen muss. Obwohl das Ergebnis immer richtig ist, ist dieses Verfahren für viele Anwendungen unannehmbar langsam. Wenn beispielsweise die Anzahl der Speicherelemente in dem Codierer gleich K ist, so ist die zum Dekodieren erforderliche Zeit immer 2K länger als bei einem Codierer ohne Tailbiting. Als Ergebnis stellt ein Viterbi-Decodierer große Anforderungen an Rechenleistungs-Ressourcen. Es ist daher selbstverständlich, dass es wünschenswert sein würde, eine verbesserte Technik zur Decodierung von Tailbiting-Faltungs-Codes zu schaffen, die gute Grade des Fehlerschutzes mit einer geringeren Rechenlast ergeben würde.
  • Die PH.D. DISSERTATION von HOWARD H. MA, mit dem Titel „Generalized tailbiting convolutional codes", 1985, University of Massachusetts, Amherst, beschreibt ein zweistufiges Verfahren, bei dem Kandidaten-Startzustände zunächst durch einen Kettenbruch-Algorithmus identifiziert werden. Eine Viterbi-Decodierung wird dann für jeden Kandidaten-Startzustand ausgeführt.
  • Zusammenfassung der Erfindung
  • Im Hinblick auf das Vorstehende ist es daher ein Ziel der vorliegenden Erfindung, ein verbessertes Verfahren und System zur Dekodierung von Fehler korrigierenden Codes zu schaffen.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, ein verbessertes Verfahren und System zur Decodierung von Faltungs-Codes zu schaffen.
  • Es ist ein zusätzliches Ziel der vorliegenden Erfindung, ein verbessertes Verfahren und System zur Decodierung von Tailbiting-Faltungs-Codes zu schaffen.
  • Gemäß dem Verfahren und System der vorliegenden Erfindung wird ein Tailbiting-Faltungs-Code durch einen Faltungs-Codierer mit einer Vielzahl von Codierungs-Zuständen codiert. Ein erster Anfangs-Wert wird jedem der Codierungs-Zustände zugeordnet. Ein Viterbi-Algorithmus wird dann einmal an einem Tailbiting-Faltungs-Code ausgeführt, um einen End-Wert zu jedem der Codierungs-Zustände zuzuordnen. Nachfolgend wird eine Teilmenge dieser Codierungs-Zustände ausgewählt, innerhalb derer der End-Wert jedes Codierungs-Zustandes ein bestimmtes Kriterium erfüllt. Der Viterbi-Algorithmus wird erneut an dem Tailbiting-Faltungs-Code für jeden Codierungs-Zustand innerhalb der Teilmenge ausgeführt, um den besten Codierungs-Zustand als den wahrscheinlichsten Anfangs-Codierungs-Zustand für den Tailbiting-Faltungs-Code zu bestimmen. Ein Trellis-Pfad dieses wahrscheinlichsten Anfangs-Codierungs-Zustandes wird zur Decodierung des Tailbiting-Faltungs-Codes verwendet.
  • Gemäß einem weiteren Gesichtspunkt der Erfindung wird ein Computer-Programm-Produkt zum Decodieren von Tailbiting-Faltungs-Codes geschaffen, bei dem der Satz von Tailbiting-Faltungs-Codes durch einen Faltungscodierer mit einer Vielzahl von Codierungs-Zuständen codiert wird, wobei das Computer-Programm-Produkt folgendes umfasst: Programmcode-Einrichtungen zur Zuordnung eines identischen Anfangs-Wertes zu jedem der Codierungs-Zustände; Programmcode-Einrichtungen zur Durchführung eines Viterbi-Algorithmus einmal an einem Tailbiting-Faltungs-Code zur Zuordnung eines End-Wertes zu jedem der Codierungs-Zustände; Programmcode-Einrichtungen zur Auswahl einer Teilmenge der Codierungs-Zustände, wobei der End-Wert für jeden Codierungs-Zustand innerhalb der Teilmenge ein bestimmtes Kriterium erfüllt; Programmcode-Einrichtungen zur Bestimmung eines besten Codierungs-Zustandes aus der Teilmenge als einen Anfangs-Codierungs-Zustand für den Tailbiting-Faltungs-Code; und Programmcode-Einrichtungen zur Decodierung des Tailbiting-Faltungs-Codes unter Verwendung eines Trellis-Pfades, der dem besten Codierungs-Zustand zugeordnet ist.
  • Alle Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen schriftlichen Beschreibung verständlich.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung selbst sowie ihre bevorzugte Ausführungsform, weitere Ziele und Vorteile hiervon werden am besten unter Bezugnahme auf die folgende ausführliche Beschreibung eines erläuternden Ausführungsbeispiels verständlich, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, in denen:
  • 1 ein Blockschaltbild eines Faltungs-Codierers nach dem Stand der Technik ist;
  • 2 ein Trellis-Diagramm ist, das die Betriebsweise des Faltungs-Codierers nach 1 zeigt;
  • 3 ein Blockschaltbild eines eine hohe Rate aufweisenden Faltungs-Codierers mit Punktierung ist, der in Verbindung mit einer bevorzugten Ausführungsform der vorliegenden Erfindung zu verwenden ist;
  • 4 ein Logik-Ablaufdiagramm hoher Ebene ist, das ein Verfahren zur Decodierung von Tailbiting-Faltungs-Codes gemäß einer bevorzugten Ausführungsform der Erfindung zeigt; und
  • 5 ein Blockschaltbild eines Funksignal-Empfangssystems ist, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung gemäß 5 enthalten sein kann.
  • Ausführliche Beschreibung einer bevorzugten Ausführungsform
  • Die vorliegende Erfindung kann in irgendeinem Zellular-Telefon-Kommunikationsnetzwerk implementiert werden. Wie dies für den Fachmann verständlich ist, ist die vorliegende Erfindung auf Zellular-Basisstationen, Zellular-Teilnehmereinheiten und allgemein auf irgendwelche Kommunikationssysteme anwendbar, die Tailbiting-Faltungs-Codes decodieren müssen.
  • Wenn nunmehr auf die Zeichnungen und insbesondere auf 1 Bezug genommen wird, so ist dort ein Blockschaltbild eines Faltungs-Codierers nach dem Stand der Technik gezeigt. Wie dies gezeigt ist, schließt der Faltungs-Codierer 10 zwei Einzelbit-Speicherzellen 11, 12 und zwei Addierschaltungen 13, 14 ein. Die Speicherzelle 11 und die Addierschaltungen 13, 14 empfangen zunächst eine Folge von Informations-Signalen I (n) die zu codieren sind. Die Speicherzelle 11 liefert dann bei jedem neuen Informations-Signal, das die Speicherzelle 11 empfängt, ihren Inhalt an die Speicherzelle 12.
  • Der Faltungs-Codierer 10 umfasst zwei Pfade, wobei jeder Pfad eine Addierschaltung und Verbindungen zu dem Informations-Signal-Strom und einer oder beiden Speicherzellen 11, 12 einschließt. Der Ausgang N(n) des ersten Pfades, der die Addierschaltung 13 einschließt, wird durch Addieren des aktuellen Signal-Bits und der zwei vorhergehenden Signal-Bits erzeugt. Wenn die resultierende Summe ungeradzahlig ist, gibt der Addierer 13 eine logische Eins aus, während, wenn die resultierende Summe genadzahlig ist, der Addierer 13 eine logische Null abgibt. Der Ausgang N(n) des zweiten Pfades, der die Addierschaltung 14 einschließt, wird durch Addieren des aktuellen Signal-Bits und des Signal-Bits erzeugt, das zwei Bits früher liegt, als das aktuelle Signal-Bit. Auch hier gibt, wenn die resultierende Summe ungeradzahlig ist, der Addierer 14 eine logische Eins ab; während, wenn die resultierende Summe geradzahlig ist, der Addierer 14 eine logische Null abgibt. Weil lediglich drei Bits zur Bestimmung eines Zwei-Bit-Ausganges verwendet werden, wird gesagt, dass der Faltungs-Codierer 10, der zwei Speicher hat, eine „Beschränkungslänge" von drei hat. Zusätzlich ist der Faltungs-Codierer 10 auch als ein „Raten-1/2"-Faltungs-Codierer bekannt, weil er für jedes zu codierende Informations-Signal-Bit zwei Bits eines Ausgangssignals erzeugt.
  • Unter Bezugnahme auf 2 wird ein Tnellis-Diagramm erläutert, das die Betriebsweise des in 1 gezeigten Faltungs-Codierens zeigt. Das Trellis-Diagramm beschreibt, wie die Zustände des Faltungs-Codierers („Codierer") sich von einer Informations-Signal-Bitzeit zur der nächsten ändern können. Ein Zustand des Codierers ist einfach der Inhalt der Codierer-Speicherzellen zu irgendeiner Zeit, gelesen als ein Zustands-"Wort". Sowohl auf der linken als auf der rechten Seite des Trellis-Diagramms befinden sich die zulässigen Zustände des Codierers – 00, 01, 10 und 11. Die auf der linken Seite des Trellis-Diagramms gezeigten Zustände stellen den aktuellen Zustand des Codierers dar, während die Zustände auf der rechten Seite des Trellis-Diagramm den nächsten Zustand des Codierers darstellen.
  • Beginnend an der oberen linken Seite des Trellis-Diagramms befindet sich der Codierer in seinem Zustand 00, bei dem die zwei vorhergehenden Signal-Bits beide Null sind (das heißt die Inhalte der Speicher-Zellen 11 und 12 in 1 sind beide 0). Wenn das aktuelle Signal-Bit eine Eins ist, so bewegt die Ankunft eines nächsten nachfolgenden Signal-Bits den Codierer zum Zustand 10. Dies heißt mit anderen Worten, dass mit der Ankunft des nächsten nachfolgenden Signal-Bits das Bit in der Speicher-Zelle 12 durch das Bit von der Speicher-Zelle 11 (eine Null) ersetzt wird, und dass das Bit in der Speicher-Zelle 11 durch das aktuelle Bit (eine Eins) ersetzt wird. Dieser Übergang ist durch die diagonale Linie dargestellt, die an dem aktuellen Zustand 00 auf der oberen linken Seite des Trellis-Diagramm beginnt und sich nach unten und quer zum nächsten Zustand 10 erstreckt, dem zweiten Zustand von unten auf der rechten Seite des Trellis-Diagramms. Bei diesem Zustands-Übergang ist der Ausgang des Codierers eine 11, wie dies in Klammern auf der diagonalen Linie angezeigt ist. Wenn jedoch das aktuelle Signal-Bit eine Null anstelle einer Eins ist, so bewegt die Ankunft des nächsten nachfolgenden Signal-Bits den Codierer auf den gleichen Zustand, 00 (die horizontale Linie von der oberen linken Seite zur oberen rechten Seite des Trellis-Diagramms). Bei diesem Zustands-Übergang ist der Ausgang des Codierers eine 00, wie dies in Klammern über der diagonalen Linie gezeigt ist.
  • Das Trellis-Diagramm in 2 zeigt alle zulässigen Zustands-Übergänge des Codierers mit einer durchgezogenen Linie an, die die jeweiligen Zustände verbindet. Wie dies gezeigt ist, sind einige Zustands-Übergänge nicht zulässig. Beispielsweise kann sich der Codierer nicht von dem Zustand 00 zu dem Zustand 11 bewegen (es sei auf das Fehlen einer Linie hingewiesen, die den Zustand 00 auf der linken Seite mit dem Zustand 11 auf der rechten Seite verbindet). Dies beruht auf der Tatsache, dass die Bits in den Speicher-Zellen (Zustände) lediglich um ein Bit zu einer Zeit geändert werden können.
  • In 3 ist ein Blockschaltbild eines eine hohe Rate aufweisenden Faltungs-Codierers mit Punktierung gezeigt, der in Verbindung mit einer bevorzugten Ausführungsform der vorliegenden Erfindung zu verwenden ist. Wie dies gezeigt ist, schließt der Faltungs-Codierer 30 fünf Einzelbit-Speicherzellen 3135, zwei Addierschaltungen 36, 37, ein Punktierungs-Element 38 und einen Multiplexer 39 ein. Datenrahmen werden über Speicherzellen 31 eingegeben und über den Multiplexer 39 abgegeben. Durch die Verwendung eines Punktierungs-Elementes 38 wird lediglich ein M(n) als P(n) für jeweils fünf N(n) ausgegeben, sodass der Daten-Durchsatz des Faltungs-Codierers 30 beträchtlich höher als der des traditionellen Faltungs-Codierers ist, der in 1 gezeigt ist.
  • Es ist für den Fachmann verständlich, dass das Trellis-Diagramm für den Faltungs-Codierer 30 ähnlich dem in 2 gezeigten ist. Der Hauptunterschied besteht darin, dass der Faltungs-Codierer 30 fünf Speicher-Zellen hat, sodass ein Trellis-Diagramm 25 = 32 Codierungs-Zustände hat. Beim Betrieb an Nicht-Tailbiting-Codes hat ein Faltungs-Codierer den Luxus, anzunehmen, dass sich der Faltungs-Codierer 30 in dem Codierungs-Zustand 00000 befand, wenn ein erstes Signal-Bit ausgesandt wurde. Dies ist jedoch bei Tailbiting-Codes nicht mehr länger der Fall. Tatsächlich kann für willkürliche Daten der Faltungs-Codierer in einem der 32 möglichen Codierungs-Zustände mit angenähert der gleichen Wahrscheinlichkeit begonnen haben.
  • Beim Stand der Technik gibt es einfaches jedoch sehr zeitraubendes Verfahren, um den Anfangs-Zustand eines Faltungs-Codierers zu entziffern, der Tailbiting-Codes verwendet. Wenn der Faltungs-Codierer nach 1 als Beispiel betrachtet wird, so würde, wenn Tailbiting-Codes verwendet würden, der Decodierungs-Prozess damit beginnen, dass als erstes angenommen würde, dass der Anfangs-Zustand des Faltungs-Codierers 00 ist. Dann wird der Viterbi-Algorithmus ausgeführt, wie dies in der Technik gut bekannt ist. Eine ausführlichere Diskussion des Viterbi-Algorithmus findet sich in der Veröffentlichung von Lin et al mit dem Titel „Error Control Coding: Fundamentals and Applications", Prentice Hall 1983 und diese Veröffentlichung wird durch diese Bezugnahme hier mit eingefügt. Das Ergebnis des besten Trellis-Pfades und dessen Wertigkeit oder Wert wird dann aufgezeichnet. Dann wird angenommen, dass der Anfangs-Zustand des Faltungs-Codierers 01 ist, und der Viterbi-Algorithmus wird erneut ausgeführt. Als nächstes wird der Viterbi-Algorithmus getrennt mit der Annahme von Anfangs-Zuständen als 10 und 11 ausgeführt. Von den vier Pfaden und Werten, die von allen den vorstehenden Durchläufen gesammelt wurden, wird ein Pfad mit dem niedrigsten Wert als der Eingangs-Pfad mit größter Wahrscheinlichkeit ausgewählt. Dieser Algorithmus ist immer richtig, jedoch für einen größeren Faltungs-Codierer, wie dem Faltungs-Codierer 30, der 32 Zustände aufweist, unannehmbar langsam.
  • Es wird nunmehr auf 4 Bezug genommen, in der ein Logik-Ablaufdiagramm höherer Ebene gezeigt ist, das ein Verfahren zur Decodierung von Tailbiting-Faltungscodes gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt. Die Tailbiting-Faltungscodes können durch einen eine hohe Rate aufweisenden Tailbiting-Faltungscodierer mit Punktierung codiert werden, der beispielsweise 32 Codierungs-Zustände hat, wie dies für den in 3 gezeigten Codierer gilt. Eine Konstante K für den Faltungs-Codierer wird so zugeteilt, dass sie ⌊1/R⌋ ist, worin R die Codierungs-Rate des Faltungs-Codierers ist, und in diesem Beispiel dann K = ⌊5/4⌋ = 1 ist. Jedem der 32 möglichen Codier-Zustände des Faltungs-Codierers wird ein identischer Anfangs-Wert zugeordnet. Der Anfangs-Wert kann irgendeine Zahl sein, solange sie für alle Codierungs-Zustände die gleiche ist. Dies heißt mit anderen Worten, dass angenommen wird, dass alle 32 Codierungs-Zustände des Faltungs-Codierers eine gleiche Wahrscheinlichkeit haben, dass sie der Anfangs-Zustand sind. In diesem Beispiel ist der Anfangs-Wert gleich 0, wie dies in Block 41 gezeigt ist. Ein modifizierter Viterbi-Algorithmus wird dann einmal an dem Satz von Faltungs-Codes ausgeführt, um einen End-Wert für jeden der 32 Codierungs-Zustände zu liefern, wie dies im Block 42 gezeigt ist.
  • Der modifizierte Viterbi-Algorithmus wird wie folgt ausgeführt: (1) Setzen einer Zeit-Variable, t, auf 1; (2) für jeden Codierungs-Zustand Si, worin i = 1 bis 32 ist, Bestimmen eines Teil-Wertes, der jedem der zwei Trellis-Bögen in diesen Zustand hinein zugeordnet ist; (3) Berechnen des Absolutwertes der zwei Trellis-Bögen durch Addieren, zu ihren Teil-Werten, des Wertes des Codierungs-Zustandes, von dem sie zu dem Zeitpunkt t-1 ausgingen; (4) Aufnehmen des Bogen-Eintritts-Zustandes Si mit dem kleinsten Absolut-Wert, Z; (5) Aufzeichnen von Z als den neuen Wert von S; für die Zeit t und Anhängen des gewählten Trellis-Bogens an seinen zugehörigen Trellis-Pfad; (6) Vergrößern von t um Eins; und (7), wenn t kleiner als L-1 ist worin L die Länge der Informations-Folge ist, aus der der Tailbiting-Faltungscode erzeugt wird, Wiederholen der Schritte (2) bis (7), anderenfalls Stoppen des Durchlaufs.
  • Nachfolgend wird der Codierungs-Zustand mit den niedrigsten End-Wert bestimmt, wie dies im Block 43 gezeigt ist, und dieser kann als Smin bezeichnet werden. Alle Codierungs-Zustände mit einem End-Wert, der die Bedingung Si – Smin < K erfüllt, werden unter einem Satz von Codierungs-Zuständen gruppiert, der als β-Satz bezeichnet wird, wie dies im Block 44 gezeigt ist. Alle die Codierungs-Zustände in β werden dann als „ungetestet" markiert, wie dies im Block 45 gezeigt ist.
  • Eine Feststellung wird dann getroffen, ob alle Codierungs-Zustände Si innerhalb von βgetestet wurden, wie dies im Block 46 gezeigt ist. Wenn alle Codierungs-Zustände innerhalb von β noch nicht geprüft sind, so wird der Wert eines Codierungs-Zustandes-im-Test auf Null gesetzt, und der Wert aller anderen Codierungs-Zustände wird auf unendlich gesetzt, wie dies im Block 47 gezeigt ist. Der klassische Viterbi-Algorithmus wird dann ausgeführt, um einen End-Wert und einen Trellis-Pfad für jeden Codierungs-Zustand zu liefern, wie dies im Block 48 gezeigt ist. Der beste End-Wert und der zugehörige Trellis-Pfad für den Codierungs-Zustand-im-Test werden aufgezeichnet, wie dies im Block 49 gezeigt ist. Der Codierungs-Zustand-im-Test wird dann als „getestet" markiert, wie dies im Block 50 gezeigt ist. Die im Block 47 bis zum Block 50 gezeigten Schritte werden für alle „ungetesteten" Codierungs-Zustände innerhalb von β ausgeführt.
  • Nachdem alle Codierungs-Zustände innerhalb von β getestet wurden, wird der Codierungs-Zustand Si, der den niedrigsten Wert von allen Codierungs-Zuständen innerhalb von β hat, lokalisiert, wie dies im Block 51 gezeigt ist. Es sei bemerkt, dass j gleich der Anzahl von entsprechenden Codierungs-Zuständen-im-Test ist. Schließlich wird die Informationsfolge, die von dem Trellis-Pfad für diesen Codierungs-Zustand mit dem niedrigsten Wert abgeleitet wird, gewonnen (aus dem Block 49), wie dies im Block 52 gezeigt ist, und der Prozess tritt am Block 99 aus.
  • Es wird nunmehr auf 5 Bezug genommen, in der ein Blockschaltbild eines Funksignal-Empfangssystems gezeigt ist, in das eine bevorzugte Ausführungsform der vorliegenden Erfindung gemäß 4 eingefügt werden kann. Wie dies gezeigt ist, schließt das Funksignal-Empfangssystem 60 einen Festwert-Speicher (ROM) 61, einen digitalen Signalprozessor (DSP) 62, einen Speicher mit wahlfreiem Zugriff (RAM) 63 und eine Signal-Empfangsschaltung 64 ein. Zusätzlich ist das Funkempfänger-System 60 auch mit einer Antenne 65 gekoppelt, die Analog- Funksignale x(t) empfängt. Die Analog-Funksignale x(t) werden dann in digitale Signale x(n) durch die Signal-Empfangsschaltung 64 umgewandelt, die zwischen der Antenne 65 und dem DSP 62 eingeschaltet ist. Der ROM 61 speichert unter anderem Software, die zur Steuerung des Betriebs des DSP 62 und zum Decodieren der Tailbiting-Faltungscodes verwendet werden. Andererseits speichert der RAM 63 unter anderem einen Puffer von Ausgangsrahmen, die von der oben erwähnten Software zu verarbeiten sind.
  • Wie dies beschrieben wurde, ergibt die vorliegende Erfindung ein genaues effizientes Verfahren, das ein Tailbiting-Faltungs-Decodierer verwenden kann, um Tailbiting-Faltungscodes zu decodieren. Der Decodierer der vorliegenden Erfindung ordnet zunächst einen Anfangs-Wert jedem der 2M möglichen Anfangs-Zustände des Codierers zu. Der Decodierer führt dann einmal einen Viterbi-Algorithmus aus, um einen neuen Satz von 2M End-Werten zu bestimmen. Es sei bemerkt, dass dieser Satz von Werten eine Wahrscheinlichkeits-Dichtefunktion umreißt, die die wahrscheinlichsten Anfangs-Zustände des Codierers anzeigt. Insbesondere ist, wenn Sx der End-Wert für den Zustand X ist, die Wahrscheinlichkeit, dass der Codierer im Zustand X gestartet wurde, durch die folgende Gleichung gegeben:
    Figure 00100001
  • Mit dieser Kenntnis kann der Decodierer eine kleinere Teilmenge, β, der 2M Zustände auswählen, deren Sx Werte minimal sind (das heißt deren p(x) Werte maximal sind). Schließlich wird wie beim Stand der Technik der Viterbi-Algorithmus erschöpfend an jedem der Anfangs-Zustände in β ausgeführt. Weil die Anzahl der Zustände in β wesentlich kleiner als 2M ist, wird die Gesamt-Ausführungzeit verglichen mit dem Stand der Technik dramatisch verringert, während die Genauigkeit im Wesentlichen unbeeinflusst ist. Als Ergebnis ist das Verfahren der vorliegenden Erfindung in der Lage, mit einer sehr hohen Wahrscheinlichkeit den Pfad maximaler Wahrscheinlichkeit eines Codierers zu finden. Das Verfahren der vorliegenden Erfindung arbeitet in gleicher Weise gut mit eine niedrige Rate aufweisenden (beispielsweise eine Rate von 1/2) und eine eine hohe Rate aufweisenden (beispielsweise eine Rate von 4/5) Faltungscodes, bei denen eine harte Entscheidung verwendende Decodierungs-Techniken verwendet werden. Es arbeitet genauso gut, wenn weiche Entscheidungs-Techniken verwendet werden.
  • Es ist weiterhin wichtig, festzustellen, dass die Mechanismen der vorliegenden Erfindung als ein Programm-Produkt in einer Vielzahl von Formen verteilt werden können, und dass die vorliegende Erfindung in gleicher Weise unabhängig von der speziellen Art von Signale tragenden Medien anwendbar ist, die tatsächlich zur Durchführung der Verteilung verwendet werden. Beispiele von Signale tragenden Medien schließen ohne Beschränkung Medien vom beschreibbaren Typ, wie zum Beispiel Floppydisks oder CD-ROMs und Medien vom Übertragungstyp ein, wie zum Beispiel Analog- oder Digital-Kommunikations-Verbindungsstrecken.
  • Obwohl die Erfindung unter Bezugnahme auf eine bevorzugte Ausführungsform speziell gezeigt und beschrieben wurde, ist es für den Fachmann verständlich, dass verschiedene Änderungen hinsichtlich der Form und Einzelheiten ausgeführt werden können, ohne von dem Grundgedanken und Schutzumfang der Erfindung abzuweichen.

Claims (14)

  1. Verfahren zum Decodieren von Tailbiting-Faltungscodes, wobei die Tailbiting-Faltungscodes durch einen Faltungs-Codierer mit einer Vielzahl von Codierungs-Zuständen codiert werden, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Zuordnen eines identischen Anfangs-Wertes zu jedem der Codier-Zustände; einmaliges Ausführen eines Viterbi-Algorithmus an einem Tailbiting-Faltungscode zur Zuordnung eines End-Wertes zu jedem der Codierungs-Zustände; Auswählen einer Teilmenge der Codierungs-Zustände, wobei der End-Wert jedes Codierungs-Zustandes innerhalb der Teilmenge ein bestimmtes Kriterium erfüllt; Bestimmen eines besten Codierungs-Zustandes aus der Teilmenge als ein Anfangs-Codierungs-Zustand für den Tailbiting-Faltungscode; und Decodieren des Tailbiting-Faltungscodes unter Verwendung eines Trellis-Pfades, der dem besten Codierungs-Zustand zugeordnet ist.
  2. Verfahren zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 1, bei dem der Schritt des Bestimmens weiterhin folgendes einschließt: Ausführen eines Viterbi-Algorithmus an dem Tailbiting-Faltungscode für jeden Codierungs-Zustand innerhalb der Teilmenge durch Zuordnen einer ersten Zahl als einen zweiten Anfangs-Wert für einen Codierungs-Zustand innerhalb der Teilmenge und Zuordnen einer zweiten Zahl als einen zweiten Anfangs-Wert für die verbleibenden Codierungs-Zustände; Aufzeichnen eines zweiten End-Wertes und eines Trellis-Pfades für jeden Codierungs-Zustand in der Teilmenge; und Auswählen des besten Codierungs-Zustandes entsprechend der zweiten End-Werte.
  3. Verfahren zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 2, bei dem die erste Zahl gleich Null ist und die zweite Zahl unendlich ist.
  4. Verfahren zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 1, bei dem der identische Ausgangs-Wert eine Null ist.
  5. Verfahren zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 1, bei dem das Kriterium gleich Si – Smin < K ist, worin Si ein erster End-Wert für jeden Codierungs-Zustand, Smin der niedrigste erste End-Wert und K eine Konstante ist.
  6. Verfahren zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 5, bei dem die Konstante eine Ganzzahl-Funktion eines Reziprokwertes der Codierungsrate des Faltungs-Codierers ist.
  7. System für Decodierung von Tailbiting-Faltungscodes, bei dem der Satz von Tailbiting-Faltungscodes durch einen Faltungs-Codierer codiert wird, der eine Vielzahl von Codierungs-Zuständen aufweist, wobei das Computersystem gekennzeichnet ist durch: Einrichtungen zum Zuordnen eines identischen Anfangs-Wertes zu jedem der Codierungs-Zustände; Einrichtungen zur einmaligen Ausführung eines Viterbi-Algorithmus an einem Tailbiting-Faltungscode zur Zuordnung eines End-Wertes zu jedem der Codierungs-Zustände; Einrichtungen zur Auswahl einer Teilmenge der Codierungs-Zustände, wobei der End-Wert jedes Codierungs-Zustande innerhalb der Teilmenge ein bestimmtes Kriterium erfüllt; Einrichtungen zur Bestimmung eines besten Codierungs-Zustandes aus der Teilmenge als ein Anfangs-Codierungs-Zustand für den Tailbiting-Faltungscode; und Einrichtungen zum Decodieren des Tailbiting-Faltungscode unter Verwendung eines Trellis-Pfades, der dem besten Codierungs-Zustand zugeordnet ist.
  8. System zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 7, bei dem die Bestimmungseinrichtung weiterhin folgendes einschließt: Einrichtungen zur Ausführung eines Viterbi-Algorithmus an dem Tailbiting-Faltungscode für jeden Codierungszustand innerhalb der Teilmenge durch Zuordnen einer ersten Zahl als einen zweiten Anfangs-Wert für einen Codierungs-Zustand innerhalb der Teilmenge und Zuordnen einer zweiten Zahl als einen zweiten Anfangs-Wert für die verbleibenden Codierungs-Zustände; Einrichtungen zur Aufzeichnung eines zweiten End-Wertes und eines Trellis-Pfades jedes Codierungs-Zustandes in der Teilmenge; und Einrichtungen zur Auswahl des besten Codierungs-Zustandes entsprechend der zweiten End-Werte.
  9. System zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 8, bei dem die erste Zahl eine Null ist und die zweite Zahl unendlich ist.
  10. System zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 7, wobei der identische Anfangs-Wert gleich Null ist.
  11. System zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 7, bei dem das Kriterium Si – Smin < K ist, worin Si ein erster End-Wert jedes Codierungs-Zustandes, Smin der niedrigste erste End-Wert und K eine Konstante ist.
  12. System zum Decodieren von Tailbiting-Faltungscodes nach Anspruch 11, bei dem die Konstante eine Ganzzahl-Funktion eines Reziprokwertes der Codierungsrate des Faltungs-Codierers ist.
  13. Ein Decodierer, der nach dem Verfahren nach einem der Ansprüche 1 bis 6 arbeitet oder das System nach einem der Ansprüche 7 bis 12 beinhaltet.
  14. Ein Modul eines Funksignal-Empfangssystems, das einen Decodierer beinhaltet, wie er im Anspruch 13 beansprucht ist.
DE69836119T 1997-11-26 1998-11-24 Tail-biting Faltungskode-Dekodierverfahren und -system Expired - Fee Related DE69836119T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/979,414 US6256764B1 (en) 1997-11-26 1997-11-26 Method and system for decoding tailbiting convolution codes
US979414 1997-11-26

Publications (2)

Publication Number Publication Date
DE69836119D1 DE69836119D1 (de) 2006-11-23
DE69836119T2 true DE69836119T2 (de) 2007-03-01

Family

ID=25526881

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69836119T Expired - Fee Related DE69836119T2 (de) 1997-11-26 1998-11-24 Tail-biting Faltungskode-Dekodierverfahren und -system

Country Status (4)

Country Link
US (1) US6256764B1 (de)
EP (1) EP0920138B1 (de)
CA (1) CA2250602A1 (de)
DE (1) DE69836119T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6114756A (en) * 1998-04-01 2000-09-05 Micron Technology, Inc. Interdigitated capacitor design for integrated circuit leadframes
US7224702B2 (en) * 2000-08-30 2007-05-29 The Chinese University Of Hong Kong System and method for error-control for multicast video distribution
ITBG20050009A1 (it) * 2005-02-23 2006-08-24 Milano Politecnico Sistema e metodo di trasmissione e ricezione a divisione di codice
CN101047472B (zh) 2006-03-31 2013-02-06 世意法(北京)半导体研发有限责任公司 使用搜索深度维特比算法对咬尾卷积码的解码方法
US8375280B2 (en) * 2007-11-02 2013-02-12 Telefonaktiebolaget L M Ericsson (Publ) Optimum distance spectrum feedforward tail-biting convolutional codes
US8726138B2 (en) * 2008-10-13 2014-05-13 Qualcomm Incorporated Methods and systems for modified maximum-likelihood based TBCC decoding
CN101635611B (zh) * 2009-09-02 2013-06-05 中兴通讯股份有限公司 一种信道译码方法和装置
CN101667840B (zh) * 2009-09-08 2012-12-12 华为技术有限公司 一种咬尾译码方法及装置
WO2011063568A1 (en) * 2009-11-27 2011-06-03 Qualcomm Incorporated Increasing capacity in wireless communications
US8543895B2 (en) * 2010-02-10 2013-09-24 Qualcomm Incorporated List Viterbi decoding of tail biting convolutional codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159610A (en) * 1989-05-12 1992-10-27 Codex Corporation Trellis precoding for modulation systems
US5208816A (en) * 1989-08-18 1993-05-04 At&T Bell Laboratories Generalized viterbi decoding algorithms
US5349589A (en) * 1991-07-01 1994-09-20 Ericsson Ge Mobile Communications Inc. Generalized viterbi algorithm with tail-biting
US5287374A (en) * 1992-04-30 1994-02-15 Hughes Aircraft Company Identification of encoder type through observation of data received
US5475388A (en) * 1992-08-17 1995-12-12 Ricoh Corporation Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding
US5355376A (en) 1993-02-11 1994-10-11 At&T Bell Laboratories Circular viterbi decoder
US5530707A (en) * 1994-03-09 1996-06-25 At&T Corp. Area-efficient decoders for rate-k/n convolutional codes and other high rate trellis codes
US5615286A (en) * 1995-05-05 1997-03-25 Bell Communications Research, Inc. Method for determining a most likely sequence of states
US5721746A (en) * 1996-04-19 1998-02-24 General Electric Company Optimal soft-output decoder for tail-biting trellis codes
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor

Also Published As

Publication number Publication date
EP0920138A2 (de) 1999-06-02
EP0920138A3 (de) 2001-10-10
DE69836119D1 (de) 2006-11-23
EP0920138B1 (de) 2006-10-11
US6256764B1 (en) 2001-07-03
CA2250602A1 (en) 1999-05-26

Similar Documents

Publication Publication Date Title
DE69634155T2 (de) Erfassung einer Konfidenz und eines Rahmen-Qualitäts-Signals in einem &#34;soft decision&#34;-Faltungs-Dekoder
DE3910739C2 (de)
DE69515684T2 (de) Digitale datendekodierungsanordnung unter verwendung einer variablen entscheidungstiefe
DE69721076T2 (de) Verfahren und vorrichtung zur korrektur von mehrpegel-speicherzellenanordungen unter verwendung von verschachtelung
DE69532949T2 (de) Verfahren und gerät zur dekoderoptimierung
DE69717472T2 (de) Verfahren zur fehlererkennung für system mit automatischer wiederholungsaufforderung
EP0392603B1 (de) Übertragungssystem
DE69227010T2 (de) Viterbi-Dekodierungsgerät mit Mehrheitsentscheidung
DE102009017540B4 (de) Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten
DE4224214C2 (de) Verfahren zur quellengesteuerten Kanaldecodierung durch Erweiterung des Viterbi-Algorithmus
DE69929652T2 (de) Datenfehlerkorrektursystem
DE69722571T2 (de) System und Verfahren zur digitalen Übertragung mit einem Produktkode kombiniert mit multidimensionaler Modulation
EP1198913B1 (de) Verfahren zum fehlerschutz eines datenbitstromes
DE69803179T2 (de) Metriksiebung bei in der breite begonnener dekodierung von faltungskodierten daten
DE4429585C1 (de) Verfahren zur arithmetischen Decodierung
DE69836119T2 (de) Tail-biting Faltungskode-Dekodierverfahren und -system
EP0488456B1 (de) Maximalwahrscheinlichkeitsempfänger
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE69305371T2 (de) Verfahren zur Maximalwahrscheinlichkeitsdekodierung mit unterabgetastetem Dekodierungstrellis und entsprechende Dekodierungsvorrichtung
EP0880836B1 (de) Verfahren zur aufbereitung von daten, insbesondere für die übertragung mit veränderlicher kanalbitrate
DE10010238C2 (de) Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
DE69421306T2 (de) Verfahren und Gerät für Kodage zur Fehlerkontrolle in einem digitalen Datenkommunikationssystem
DE69327212T2 (de) System für Übertragung von Informationsbitfolgen
DE60035099T2 (de) Verfahren zur bestimmung der rahmenfrequenz eines datenrahmens in einem kommunikationssystem
DE69328636T2 (de) Bitfehler zählverfahren und zähler

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee