-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf Kommunikationen
und im Besonderen auf ein Verfahren und eine Vorrichtung zur Ratenbestimmung
in einem Kommunikationssystem.
-
Hintergrund
der Erfindung
-
In
bestimmten Kommunikationssystemen, wie zum Beispiel zellularen CDMA-Systemen,
wie durch die Interimspezifikation (IS) IS-95 definiert, bestimmt
ein Empfänger
in dem Kommunikationssystem eine abgeschätzte Codierrate für jeden
empfangenen Rahmen.
-
Bernard
Shung C et al.: "VLSI
Architectures for Metric Normalization in the Viterbi Algorithm", International Conference
on Communications, Including Supercomm Technical Sessions, Atlanta, 15.–19. April
1990, New York, IEEE, US Band 4, 15. April 1990, Seiten 1723–1728, vergleicht
mehrere metrische Normalisierungstechniken, die für VLSI-Implementierungen
mit einer Festkommaarithmetik geeignet sind. Es wird eine effiziente
VLSI-Konstruktion der auf dieser Technik basierenden ACS-Einheiten
diskutiert.
-
Zusammenfassung
der Erfindung
-
Um
diesen Bedarf sowie andere anzusprechen, stellt die vorliegende
Erfindung für
einen Empfänger
eines Kommunikationssystems ein Verfahren zum Decodieren eines empfangenen
Signals und zum Bestimmen einer Gesamtmetrik zur Verfügung. Das
Verfahren umfasst die Schritte des Decodierens des empfangenen Signals
durch Bilden eines Decodiergitters, das aus einer Mehrzahl von Decodierzuständen besteht,
und des Durchlaufens eines Decodierpfades mit einer festen Länge, wobei
der Decodierpfad über
einen Anfangs- und einen Endzustand verfügt; während des Bildens eines Decodiergitters und
des Durchlaufens des Decodierpfades aus dem Anfangszustand in den
Endzustand: des Inkrementierens eines Zählers, wenn die Zustandsmetrik
eines ausgewählten
Zustandes einen ersten Schwellenwert überschreitet; des Dekrementierens
des Zählers,
wenn die Zustandsmetrik des ausgewählten Zustandes einen zweiten
Schwellenwert unterschreitet; und nach einem Durchlaufen des Decodierpfades: des
Bestimmens der Gesamtmetrik als eine Funktion eines in dem Zähler gespeicherten
Wertes, einer Differenz zwischen dem Anfangszustandsmetrikwert des
Ursprungszustandes und dem Endzustandsmetrikwert des Endzustandes
und einer Länge
des Decodierpfades.
-
Die
Erfindung selbst kann, zusammen mit ihren begleitenden Vorteilen,
am besten unter Bezug auf die nachfolgende ausführliche Beschreibung in Verbindung
mit den begleitenden Zeichnungen verstanden werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm eines Empfängers
in einem CDMA-Kommunikationssystem, der zur Verwendung mit einer
Ausführungsform
der vorliegenden Erfindung geeignet ist.
-
2 ist
ein Diagramm, das ein Verfahren zum Decodieren und Bestimmen von
Metriken darstellt, die in einer Ratenbestimmung verwendet werden
können.
-
3 ist
ein Flussdiagramm einer Ausführungsform
eines Verfahrens zur Bestimmung einer Pfadmetrik eines decodierten
Signals.
-
4 ist
ein Blockdiagramm einer Ausführungsform
einer Vorrichtung zur Bestimmung von Metriken zur Verwendung in
einer Ratenbestimmung.
-
5 ist
ein Blockdiagramm einer anderen Ausführungsform einer Vorrichtung
zur Bestimmung von Metriken zur Verwendung in eine Ratenbestimmung.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsform(en)
-
Um
ein empfangenes konvolutionell codiertes Signal, oder einfach ein
empfangenes Signal, durch Verwenden eines Maximum-Likelihood-Decodierers
zu decodieren, der einen Viterbi-artigen Algorithmus einsetzt, berechnet
ein Empfänger
zuerst eine Decodiermetrik für
jedes codierte Datenbit des empfangenen Signals, die Bitmetrik genannt
wird. Die optimale Bitmetrik eines übertragenen codierten Bits
in einem solchen Decodierer ist der Log-Likelihood-Wert des empfangenen
Signals, unter der Voraussetzung, dass das codierte Bit übertragen
wird. Sie wird auch die weiche Entscheidung des codierten Bits genannt.
-
Es
wird nun der Decodierprozess eines Konvolutionscodes mit der Rate
1/r mit einer Zwangslänge
("constraint length") von K betrachtet.
Der Decodierprozess, der einen Viterbi-Decodierer verwendet, ist
ein rekursiver Prozess, der üblicherweise
durch ein Gitterdiagramm beschrieben wird. Jede Rekursion des Decodierprozesses
wird ein Decodierertimingschritt genannt. Der Decodierer verfügt über ein RAM-Array,
das Zustandsmetriken speichert. Die Zahl von Zustandsmetriken, das
heißt
die Größe des RAM,
ist gleich 2(K – 1).
Der Zustandsmetrik-RAM wird üblicherweise
zu dem selben Wert initialisiert, zum Beispiel 0. Wenn die übertragenen
Signale in Blöcken
organisiert sind, wie zum Beispiel in typischen zellularen Kommunikationen,
sind die Anfangs- und Endzustände
jedoch für
jeden Block vordefiniert. Der Anfangswert des Zustandsmetrik-RAM bezüglich des
bekannten Anfangszustands des Codes wird zu einem Wert initiiert,
der viel größer (oder viel
kleiner, in Abhängigkeit
von der Implementierung des Decodierers) als die Anfangswerte anderer
Zustände
ist.
-
In
einem Gitterdiagramm, das den Decodierprozess darstellt, erstrecken
sich bei jeder Decodierertimingstufe zwei Abzweigungen ("branches") von jedem der Zustände und
enden bei zwei anderen Zuständen.
Jede Abzweigung entspricht einem Informationsbit und r codierten
Bits, die durch das Informationsbit zusammen mit dem Zustand, von
dem die Abzweigung startet, bestimmt werden. Eine Abzweigungsmetrik,
die die Summe der Bitmetriken der mit einer Abzweigung verknüpften codierten
Bits ist, wird für
jede der Abzweigungen berechnet.
-
Für eine gegebene
Decodierertimingstufe i enden Abzweigungen, die von dem Zustand
j starten, bei den Zuständen
m und n des nächsten
Decodierertimingschrittes i + 1. Zwei akkumulierte Metriken werden
durch Addieren der zwei Abzweigungsmetriken zu der Metrik des Zustandes
j berechnet. Weil bei dem Schritt i insgesamt 2·times·2·su·(K – 1) Abzweigungen erzeugt werden,
enden zwei Abzweigungen bei jedem Zustand des Schrittes i + 1. Die
zwei akkumulierten Metriken, die mit den zwei Abzweigungen verknüpft sind,
die bei dem selben Zustand enden, werden miteinander verglichen
und die Abzweigung mit der kleineren akkumulierten Metrik wird gelöscht und
die größere wird
die Zustandsmetrik bei dem Decodierertimingschritt i + 1 des Zustandes.
Am Ende eines jeden Decodierertimingschrittes gibt es nur 2·sup·(K – 1) überlebende
Abzweigungen, von denen jede bei einem anderen Zustand endet. Die
verbundenen Abzweigungen, die zu einem Zustand führen, bilden den überlebenden
Pfad des Zustandes.
-
Dieser
Prozess fährt
fort, bis das Ende des Blockes erreicht wird, das heißt, bis
alle codierten Bits erschöpft
sind. Nach dem letzten Schritt wird der Endzustand bestimmt. Für den oben
beschriebenen blockbeendeten Konvolutionscode ist der bekannte Abschlusszustand
des Codes der Endzustand. Andernfalls ist der Zustand mit der größten Zustandsmetrik
der Endzustand. Dann beginnt der Decodierer einen Prozess, der Zurückverfolgen
genannt wird.
-
Der
Zurückverfolgungsprozess
startet von dem Endzustand des Gitters. Der Zurückverfolgungsprozess bestimmt den überlebenden
Pfad des Endzustandes und der Zustände entlang des überlebenden
Pfades. Die mit den Abzweigungen des überlebenden Pfades verknüpften Informationsbits
sind die Entscheidungsbits. Die mit diesen Abzweigungen verknüpften codierten
Bits werden neucodierte Bits genannt.
-
Aus
der obigen Beschreibung ist ersichtlich, dass die Zustandsmetrik
des Endzustandes gleich der Summe der Abzweigungsmetriken der Abzweigungen
von dem überlebenden
Pfad ist, das heißt, der
Log-Likelihood aller Entscheidungsbits. Mit anderen Worten, sie
ist die Summe der Log-Likelihood-Werte
der neucodierten Bits. Wir nennen die Zustandsmetrik des Endzustandes
die Gesamtmetrik des überlebenden
Pfades, oder einfach Gesamtmetrik.
-
Da
die Gesamtmetrik ein Maß der
Wahrscheinlichkeit der Entscheidungsbits ist, kann sie zum Bestimmen
verwendet werden, welche der Multiratendecodierergebnisse in dem
Ratenbestimmungsalgorithmus gültig
sind.
-
Es
wird auf 2 Bezug genommen, darin wird
ein Gitterdiagramm eines Viterbi-Decodierers dargestellt. Das Gitterdiagramm
stellt ein Verfahren zum Decodieren eines empfangenen Signals in
einem Empfänger
eines Kommunikationssystems dar. Das Diagramm umfasst eine Mehrzahl
möglicher
Decodierpfade. Jeder der Mehrzahl möglicher Decodierpfade umfasst
eine Mehrzahl von Decodierzuständen
und eine Mehrzahl von Abzweigungen, die jeden Decodierzustand in
dem Decodierpfad verbinden. Der verwendete Decodierpfad wird basierend auf
dem gut bekannten Viterbi-Algorithmus bestimmt und als der mit 306 gekennzeichnete überlebende Pfad
bezeichnet. Der Decodierpfad 306 umfasst einen Anfangszustand 302,
einen Endzustand 304 und eine Mehrzahl von dazwischenliegenden
Zuständen 330, 322, 324, 326 und 328.
Der Deco dierpfad 306 umfasst eine Mehrzahl von Abzweigungen 308, 310, 312, 314, 316 und 318.
In dem in 2 dargestellten Beispiel kann
jeder der Zustände
in dem Decodierpfad 306 entsprechend den vier horizontalen
Zeilen von Zuständen
in dem Diagramm über
einen von vier möglichen
Werten verfügen.
Somit hat der Anfangszustand 302 den selben Wert wie der
Endzustand 304. Ebenso hat der Zustand 330 den
selben Wert wie der Zustand 324. Der Decodierpfad 306 verfügt über eine
Mehrzahl von Decodierbits und neucodierten Bits. Jede der Abzweigungen
in dem Decodierpfad 306 ist mit einem Decodierbit und neucodierten Bits
verknüpft.
Zum Beispiel ist die Abzweigung 308 mit dem Decodierbitwert
1 und den neucodierten Bits 111 verknüpft. Der Decodierpfad 306 als
Ganzes verfügt über Decodierbits
und neucodierte Bits basierend auf dem Decodierbit und den neucodierten
Bits für
jede Abzweigung in dem Pfad 306. Der Decodierpfad 306 verfügt daher über Decodierbits
von 101100 und neucodierte Bits von 111001100110010011.
-
In
der oben gegebenen Beschreibung ist ersichtlich, dass Zustandsmetriken
mit der Zahl von Decodierertimingschritten linear wachsen. Wenn
der Konvolutionsdecodierer für
eine lange Zeit ohne eine Beendigung betrieben wird, können die
Zustandsmetriken recht groß werden
und schließlich
einen RAM, der die Zustandsmetriken speichert, überfüllen. Wenn der Code blockbeendet
wird, werden die erforderlichen Wortlängen der Zustandsmetriken durch die
Blockgröße bestimmt,
die ebenfalls ziemlich groß sein
kann. Die erforderliche Wortlänge
kann durch Verwenden einer Modulo-Darstellung der Zustandsmetriken verringert
werden. Siehe A. P. Hekstra, "An Alternative
to Rescaling in Viterbi Deco ders",
IEEE Trans. on Comm., Band 37, Nr. 11, Seiten 1220–1222, November
1989.
-
In
der Annahme, dass der RAM L Bits breit ist, wenn eine akkumulierte
Metrik berechnet wird, können
wir einfach die unteren L Bits behalten und das Überlaufbit, wenn es auftritt,
verwerfen. Wenn die Zustandsmetrik als eine Komplementzahl von Zwei
betrachtet wird, erstreckt sich der Bereich der Zustandsmetriken
von –2·sup·L – 1 bis
2·sup·L – 1 – 1. Um
die zwei Zahlen A und B zu vergleichen, subtrahieren wir B von A
und verwerfen das Überlaufbit, wenn
es auftritt. Der Vergleich wird durch ein Prüfen des höchstwertigsten Bits (MSB) der
Differenz durchgeführt.
Wenn das MSB gleich 0 ist, haben wir A > B. Andernfalls, wenn das MSB gleich 1
ist, haben wir B > A.
-
Mit
der Modulo-Darstellung kann die Gesamtmetrik nicht einfach durch
Berechnen der Differenz zwischen den Zustandsmetriken der End- und Anfangszustände erzeugt
werden. Zusätzliche Schritte
werden benötigt,
um die Gesamtmetrik aus den Modulo-Darstellungen der Zustandsmetriken
der End- und Anfangszustände zu erhalten.
Und zwar zählen
wir, wie viele Modulo-Operationen in einem gegebenen Zustand während des
Demodulationsprozesses aufgetreten sind. Wenn L richtig gewählt wird,
kann die Differenz zwischen verschiedenen Zustandsmetriken nicht
größer als
die Hälfte
des Modulo-Bereiches sein. Somit sind wir imstande, die Zahl der
Modulo-Operationen
für einen
bestimmten Zustand zu zählen.
Für die
IS-95-codierte Datenstruktur startet das Gitter von dem Nullzustand
und endet bei dem Nullzustand und es ist äußerst zweckmäßig, den Nullzustand
zu überwachen.
Im Besonderen wird, wenn (ein Zähler
ist anfangs auf Null eingestellt) eine positive Modulo-Operation
von einem Decodie rertimingschritt zu dem nächsten in dem Nullzustand auftritt,
das heißt,
die Zustandsmetrik des Nullzustandes das obere Ende des Bereiches
(größer als
ein erster Schwellenwert) ihrer Modulo-Darstellung übersteigt, der
Zähler
durch Eins inkrementiert. Andernfalls, wenn eine negative Modulo-Operation auftritt,
das heißt,
die Zustandsmetrik des Null-Zustandes
kleiner als das untere Ende des Bereiches ist (unter einem zweiten
Schwellenwert liegt), dekrementiert der Zähler durch Eins. Für die oben
beschriebene Implementierung, die L Bit-RAMs verwendet, sind diese
zwei Bedingungen äquivalent
zu der einer Zwei-MSB-Änderung
von 11 zu 00, beziehungsweise von 00 zu 11. Für einen IS-95-Decodierer wird
ein 4- bis 5-Bit-Zähler
bevorzugt.
-
Nachdem
der ganze Block decodiert worden ist, wird die Gesamtmetrik zu der
Modulo-Endzustandsmetrik des Endzustandes plus dem Inhalt des Zählers multipliziert
mit dem Bereich, das heißt,
2L in dem obigen Beispiel, minus der Anfangszustandsmetrik des Anfangszustandes
gleich gesetzt.
-
Es
wird auf 3 Bezug genommen, darin wird
ein Verfahren zur Bestimmung einer Gesamtmetrik für ein decodiertes
Signal dargestellt. Bei 400 wird ein Decodierpfad, wie
zum Beispiel der Decodierpfad 306, von einem Anfangszustand
zu einem Endzustand durchlaufen, während die Decodiergitter gebildet
werden. Um die Gesamtmetrik des Decodierpfades 306 zu berechnen,
wird einer dieser Zustände
als ein ausgewählter
Zustand ausgewählt.
In der Abbildung ist der ausgewählte
Zustand der Zustand 0. Der Anfangszustand wird ausgewählt, bei 401,
und Zustandsmetriken aller Zustände
in dem Gitter werden bei dem Schritt 402 bei jedem Decodierertimingschritt
bestimmt.
-
Die
Zustandsmetrik eines jeden Decodierzustandes wird dann, bei dem
Entscheidungsschritt 404, mit einem ersten Schwellenwert
verglichen. Wenn die Zustandsmetrik über einem ersten Schwellenwert
liegt, wird, bei 406, eine Modulo-Operation durchgeführt und, wenn der Zustand der
ausgewählte
Zustand ist, wird, bei 408, ein Zähler inkrementiert. Andernfalls
wird, bei dem Entscheidungsschritt 410, die Zustandsmetrik
mit einem zweiten Schwellenwert verglichen. Wenn die Zustandsmetrik
unter einem zweiten Schwellenwert liegt, wird, bei 412,
eine Modulo-Operation durchgeführt
und, wenn der Zustand der ausgewählte
Zustand ist, wird, bei 414, der Zähler dekrementiert. Als nächstes,
bei 416, wird der nächste
Zustand in diesem Decodierertimingschritt ausgewählt. Wenn dieser Zustand nicht
der letzte Zustand. ist, wie durch den Schritt 417 bestimmt,
werden die Schritte 404–416 wiederholt. Andernfalls
wird der nächste
Decodierertimingschritt durchgeführt. Wenn
der neue Decodierertimingschritt nicht der letzte Decodierertimingschritt
ist, wie durch den Entscheidungsschritt 418 bestimmt, werden
die obigen Schritte 402–416 wiederholt. Nach
dem Erreichen eines letzten Decodierertimingschrittes wird, bei 420, eine
Gesamtmetrik basierend auf dem Zählerwert, basierend
auf der Differenz zwischen dem Anfangszustandsmetrikwert des Anfangszustandes
und dem Endzustandsmetrikwert des Endzustandes und basierend auf
der Länge
des Decodierpfades, bestimmt. In einer bestimmten Ausführungsform
wird die Gesamtmetrik durch Multiplizieren des Zählerwertes mit einem Differenzwert
bestimmt, wo der Differenzwert die Differenz zwischen dem ersten
und zweiten Schwellenwert ist, um ein Zwischenergebnis zu erzeugen,
das dann zu der Zustandsmetrik für
den Endzustand addiert wird. Dann wird die Zustandsmetrik des Endzustandes
zu dem Zwischenergebnis addiert und die Anfangszustandsmetrik des
Anfangszustandes davon subtrahiert, um die Gesamtmetrik zu ergeben.
Es ist zu beachten, dass für
die obige Addition und Subtraktion der Wert der Zustandsmetrik des Endzustandes
und der Wert der Anfangszustandsmetrik des Anfangszustandes als
ganze Zahlen ohne Vorzeichen behandelt werden, während der Wert in dem Zähler als
ein Komplementwert von Zwei behandelt wird. Obwohl ein von dem Decodierpfad
unabhängiger
Zähler
verwendet werden kann, kann der Zähler als zusätzliche
Daten, wie zum Beispiel ein ausgedehntes Wort, implementiert sein,
die in Speicherdaten eines Speichers integriert sind, die mindestens
einen der Zustände
in dem Decodierpfad darstellen.
-
In
dem oben dargestellten Verfahren nahmen wir an, dass der Anfangszustand
und der Endzustand beide der Nullzustand sind. Sogar, wenn der End-
und/oder Anfangszustand nicht die selben sind, wie der Zustand,
der ausgewählt
wurde, um für
die Modulo-Operationen überwacht
zu werden, kann die Gesamtmetrik wiedergewonnen werden. In diesem Fall
werden jedoch mehr Schritte benötigt.
Und zwar müssen
wir die Differenz zwischen Zustandsmetriken des Endzustandes und
des ausgewählten
Zustandes und die Differenz zwischen Anfangszustandsmetriken des
ausgewählten
Zustandes und des Anfangszustandes bestimmen. Diese zwei Differenzen
sollten zu der aus dem ausgewählten
Zustand berechneten Gesamtmetrik hinzuaddiert werden, um die Gesamtmetrik
des überlebenden
Pfades zu erhalten.
-
Es
wird auf 4 Bezug genommen, darin wird
eine erste Ausführungsform
einer Vorrichtung zur Bestimmung von Metrikdaten, wie zum Beispiel die
Gesamtmetrikdaten, die verwendet werden, um Diskriminantenfunktionen
zu bestimmen, dargestellt. Die Vorrichtung 100 umfasst
einen Konvolutionsdecodierer 102, einen Gesamtmetrikrechner 140 und eine
CRC-Prüfeinheit 119.
Der Konvolutionsdecodierer 102 umfasst die Abzweigungsmetrikschaltung 110,
die Metrikschaltung 112 und die Gitterschaltung 114.
Die Gitterschaltung 114 ist an die Metrikschaltung 112 gekoppelt,
die an die Abzweigungsmetrikschaltung 110 gekoppelt ist.
Die Metrikschaltung 112 ist außerdem an den Gesamtmetrikrechner 140 gekoppelt
und die Gitterschaltung ist an die CRC-Prüfeinheit 119 gekoppelt.
-
Die
Abzweigungsmetrikschaltung 110 empfängt die Symbole 104 bei
ihren Eingängen
und erzeugt die Abzweigungsmetriken 126 bei ihren Ausgängen. Die
Metrikschaltung 112 empfängt die Abzweigungsmetriken 126 und
erzeugt eine alte Metrikausgabe 122 und eine neue Überlebensmetrikausgabe 124.
Die Gitterschaltung 114 erzeugt in Reaktion auf die Metrikschaltung 112 die
decodierten Informationsdaten 116. Die CRC-Prüfeinheit 119 empfängt die
decodierten Informationsdaten 116 und erzeugt ein CRC-Prüfbit 118.
Weitere Einzelheiten von Konvolutionsdecodierern, die eine Erklärung einer
Gitterschaltung umfassen, werden in "Introduction to Spread-Spectrum Communications", von Peterson, Ziemer
und Borth, Seiten 413–427
(1995) beschrieben.
-
Die
Metrikschaltung 112 umfasst eine Verarbeitungseinheit 150,
die eine Additions-, Vergleichs- und Auswahlschaltung, einen Multiplexer 152,
einen ersten Speicher 154 und einen zweiten Speicher 156 umfasst.
Der erste Speicher 154 speichert und erzeugt die Metrik-A-Daten 160 und
der zweite Speicher 156 speichert und erzeugt die Metrik-B-Daten 162.
Die Verarbeitungseinheit 150 empfängt die Abzwei gungsmetrikdaten 126,
die Metrik-A-Daten 160 und die Metrik-B-Daten 162 und
erzeugt die Überlebensmetrik 124 und
eine Überlebensmetrikauswählausgabe 153.
-
Der
Gesamtmetrikrechner 140 umfasst eine erste Bitextraktionseinheit 176,
eine zweite Bitextraktionseinheit 174, ein Rahmenenderegister 172,
die digitale Logik 186, um Modulo-Operationen und Übergänge zu überwachen, und einen Zähler 170. Der
Zähler 170 verfügt über eine
Inkrementeingabe 182, eine Dekrementeingabe 184,
eine Rahmenstarteingabe 183 und eine Zählerausgabe, die das Zählerausgangssignal 178 erzeugt.
Das Register 172 empfängt
und speichert die neue Überlebensmetrik 124 von
der Metrikschaltung 112 und erzeugt eine Ausgangsmetrik 180,
die mit der Zählerausgabe 178 kombiniert
wird, um den Gesamtmetrikwert 120 zu erzeugen. Die erste
Bitextraktionseinheit 176 bestimmt die zwei höchstwertigsten
Bits der neuen Überlebensmetrik 124 und
die zweite Bitextraktionseinheit 174 bestimmt die zwei
höchstwertigsten
Bits der alten Metrik 122. Basierend auf einem Vergleich der
Bits von den ersten und zweiten Bitextraktionseinheiten 176 und 174,
der durch die digitale Logik 186 durchgeführt wird,
kann, der Zähler 170 entweder
inkrementiert oder dekrementiert werden. In dieser Art und Weise
akkumuliert der Zähler 170 einen Zählerwert,
der auf Modulo-Operationen basiert, die Änderungen anzeigen, die metrischen
Daten während
des Decodierprozesses widerfahren.
-
4 stellt
ein Blockdiagramm eines Konvolutionsdecodierers und eine Gesamtmetrikrechnerschaltung
dar. Wie zuvor erklärt,
erweitert der Gesamtmetrikrechner 140 den Bereich der Pfadmetrikdaten
durch Zählen
der Zahl von Modulo-Operationen, die entlang des Pfades zwischen
dem Decodiereranfangszustand und dem Decodiererendzustand auftre ten.
Die volle Pfadmetrikinformation wird dann durch Verketten des Zählers mit
dem Pfadmetrikwert des Endzustandes rekonstruiert. Bei dem Beginn
eines Decodiererrahmens, wenn die empfangenen Symbole demoduliert
werden und zuerst dem Konvolutionsdecodierer zum Decodieren zur
Verfügung
gestellt werden, wird der Zähler 170 auf
Null rückgestellt.
Der Konvolutionsdecodierer 102 initialisiert jeden Pfadmetrikwert
auf einen bekannten Zustand und beginnt dann, die empfangenen Symbole 104 zu decodieren.
Für jeden
Decodiererzeitschritt empfängt
der Gesamtmetrikrechner 140 die aktuellen Pfadmetrikdaten 122 für den Decodiererzustand
0 und die überlebenden
nächsten
Pfadmetrikdaten 124 für
den Decodiererzustand 0. Die Bitextraktionseinheiten 174, 176 extrahieren
die zwei höchstwertigsten
Bits aus jedem Datenwert und speisen diese Signale in die Logik 186 ein,
die bestimmt, ob der Zählerwert
bei der aktuellen Zählung
hält, durch
Eins inkrementiert, oder durch Eins dekrementiert. Wenn sich die
Pfadmetrik von einem positiven Wert zu einem negativen Wert ändert, wird
der Zähler 170 durch
Eins dekrementiert. Wenn sich die Pfadmetrik von einem negativen
Wert zu einem positiven Wert ändert,
wird der Zähler 170 durch
Eins inkrementiert. Wenn jedoch mit der Änderung des Vorzeichens der Pfadmetrik
ein Unterlauf oder ein Überlauf
auftritt, bleibt der Zählerwert
unverändert.
Um zwischen einer Änderung
des Vorzeichens der Pfadmetrik ohne Überlauf oder Unterlauf und
einer mit Überlauf
oder Unterlauf zu differenzieren, müssen die zwei höchstwertigsten
Bits überwacht
werden. Wenn sich die zwei höchstwertigsten
Bits der Pfadmetrik von einer '00
zu einer '11' ändern, wird der Zähler 170 durch Eins
dekrementiert, und wenn sich die zwei höchstwertigsten Bits von einer '11 zu einer '00' ändern, wird der Zähler 170 durch
Eins inkrementiert. Am Ende des Rahmens, wenn der Decodierer 102 Pfadmetriken
für den
letzten Zeitschritt verarbeitet, wird die Pfadmetrik des bekannten
Endzustandes (in diesem Falle Zustand 0) durch den Latch 172 eingefangen. Der
endgültige
Gesamtmetrikwert 120 wird durch Verketten des Zählerwertes 178 aus
dem Zähler 170 mit
der verriegelten Endzustandspfadmetrik 180 konstruiert.
-
Es
wird auf 5, wo gleiche Elemente durch
gleiche Bezugszeichen bezeichnet werden, Bezug genommen, darin wird
eine andere Ausführungsform
einer Vorrichtung zur Bestimmung von Metrikdaten dargestellt, die
in einer Datenbestimmung verwendet werden können. Die Vorrichtung 200 umfasst
einen Datengenerator mit weicher Entscheidung 202, einen
Datenselektor mit weicher Entscheidung 204, die Abzweigungsmetrikschaltung 110,
die Metrikschaltung 112, die Gitterschaltung 114,
den Konvolutionsdecodierer 212, den Gesamtmetrikrechner 216 und
die CRC-Prüfeinheit 119.
-
Der
Gesamtmetrikrechner 216 ähnelt dem Gesamtmetrikrechner 140,
ist jedoch durch Hinzufügen
des Summierers 278 und des Akkumulators 280 modifiziert
worden.
-
5 ist
ein Blockdiagramm der bevorzugten Ausführungsform des Gesamtmetrikrechners, der
in Verbindung mit einem Maximum-Conditional-Likelihood (MCL)-Decodierer
verwendet wird. Ein Beispiel eines MCL-Decodierers wird in dem US-Patent
Nr. 08/581,696 mit dem Titel "Method
and Apparatus of Decoding a Received Signal", Anwaltsaktenzeichen CE02924R, von
Schaffner et al., angemeldet am 29. Dezember 1995, das hierin durch
Bezugnahme miteinbezogen wird, zur Verfügung gestellt. Der Gesamtmetrikrechner
für einen
MCL-Decodierer ist
gegenüber
dem eines herkömmlichen Decodie rers,
aufgrund von Unterschieden in den Merkmalen der MCL-Decodiererpfadmetriken,
leicht verschieden. Ein Unterschied besteht darin, dass sich jeder
Zustandsmetrikwert auf eine beste, möglicherweise ungültige, Pfadsequenz
bezieht. Daher wird dieser als der maximale Gesamtpfadmetrikwert 282 bezeichnete
beste Pfadsequenzwert berechnet und mit dem endgültigen MCL-Decodiererpfadmetrikwert
summiert, um den Gesamtmetrikwert zu erhalten. Der Akkumulator 280 akkumuliert
die größten Log-Likelihood-Werte 218 für jedes
Symbol, um die maximale Gesamtpfadmetrik 282 zu erhalten.
Der relative Gesamtmetrikwert, der aus der Verkettung der verriegelten
Endzustandspfadmetrik 180 und des Zählerwertes 178 besteht,
wird der maximalen Gesamtpfadmetrik 282 durch den Addierer 278 hinzugefügt. Dieses
Ergebnis wird der Gesamtpfadmetrikwert 120. Das zweite
Merkmal beseitigt das Erfordernis der Inkrementierfunktion des Zählers 170.
-
In
der bevorzugten Ausführungsform
eines IS-95-Empfängers
wird die Pfadmetrik 180 die 12 niederwertigsten Bits des
relativen Gesamtmetrikwertes und der Zählerwert 178 wird
die vier höchstwertigsten
Bits des relativen Gesamtmetrikwertes. Der Akkumulator 280 akkumuliert
die 8-Bit-Log-Likelihood-Werte 218,
um einen 16-Bit-maximalen-Gesamtpfadmetrikwert 282 zu erzeugen.
Der Addierer 278 summiert die zwei 16-Bit-Werte, um einen 16-Bit-Gesamtmetrikwert 120 zu
erzeugen.
-
Aus
der oben gegebenen Beschreibung wird ersichtlich, dass die Differenz
zwischen der Zustandsmetrik des Endzustandes und des Anfangswertes
des Anfangszustandes gleich der Summe der Abzweigungsmetriken der
Abzweigungen ist, die den überlebenden
Pfad bilden, das heißt,
der Wahrscheinlichkeit aller Entscheidungsbits. Mit anderen Worten,
sie ist die Summe der Log-Likelihood-Werte der neucodierten Bits.
Wir nennen die Zustandsmetrik des Endzustandes die Gesamtmetrik
des überlebenden
Pfades, oder einfach, die Gesamtmetrik. Da die Gesamtmetrik ein
Maß der
Wahrscheinlichkeit der Entscheidungsbits ist, wird sie verwendet,
um zu bestimmen, welche der Multiratendecodierergebnisse in dem
Ratenbestimmungsalgorithmus, wie oben beschrieben, wahrscheinlich
gültig
sind.
-
Die
Schaltungen zur Berechnung des Gesamtmetrikwertes, wie oben beschrieben
und in 4 und 5 beschrieben, haben den Vorteil,
den Gesamtmetrikwert mit einer geringfügigen Zunahme in den Schaltkreisen
zur Verfügung
zu stellen, während
das Erfordernis einer erhöhten
Speicherkapazität
zur Speicherung der Decodiererpfadmetriken vermieden wird. Eine
Alternative zu der bevorzugten Implementierung wäre die, die Auflösung aller
Decodiererpfadmetriken zu erhöhen,
so dass keine Modulo-Operationen stattfinden mögen, während ein Block von Daten decodiert
wird. In diesem Falle ist die Gesamtmetrik dann einfach die Differenz
zwischen der Enddecodiererpfadmetrik und der Anfangspfadmetrik des
Anfangszustandes. Wenn die Anfangszustandspfadmetrik so gewählt wird,
dass sie gleich Null ist, dann ist die Gesamtmetrik die Enddecodiererpfadmetrik.
-
Eine
zweite Alternative zu den oben beschriebenen Implementierungen wäre eine,
die die Decodierermetriken neu skaliert. Dies umfasst ein Subtrahieren
des größten Pfadmetrikwertes
(oder kleinsten Pfadmetrikwertes, in Abhängigkeit von der Implementierung),
der in dem vorherigen Decodiererzeitschritt gefunden worden ist,
von jedem der in dem aktuellen Zeitschritt berechneten überlebenden
Pfadmetrikwerten. Diese Neuversiegelungsoperation verhindert, dass der
Wert der Pfadmetriken über
den Punkt ansteigt, durch den der Wert bei gegebener fester Auflösung der
Pfadmetrikwerte nicht genau dargestellt werden kann. In diesem Falle
ist der Gesamtmetrikwert dann die Enddecodiererpfadmetrik minus
der Anfangspfadmetrik des Anfangszustandes plus der Summe der Neuskalierungswerte
subtrahiert von jedem der Decodiererpfade.
-
Dem
Fachmann auf dem Gebiet werden leicht weitere Vorteile und Modifizierungen
der oben beschriebenen Vorrichtung und des oben beschriebenen Verfahrens
in den Sinn kommen. Daher ist die Erfindung hinsichtlich ihrer breiteren
Aspekte nicht auf die oben gezeigten und beschriebenen spezifischen
Einzelheiten, typischen Vorrichtungen und erläuternden Beispiele begrenzt.
Es können
verschiedene Modifikationen und Variationen der obigen Spezifikation
vorgenommen werden, ohne dass von dem Umfang der vorliegenden Erfindung
abgewichen wird, und es ist beabsichtigt, dass die vorliegende Erfindung
alle solche Modifikationen und Variationen abdeckt, sofern sie in
dem Umfang der nachfolgenden Ansprüche und ihrer Äquivalenten
liegen.