-
HINTERGRUND DER ERFINDUNG
-
Technisches Feld der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf einen Empfänger in
einem digitalen Kommunikationssystem und genauer auf einen Dekoder
zum Dekodieren von nichtbinären
faltungscodierten Daten unter Nutzung eines modifizierten Viterbi-Algorithmus.
-
Hintergrund
der Erfindung
-
1 stellt
ein typisches digitales Kommunikationssystem 10 dar, das
einen Sender 12, einen Empfänger 14 und einen
Kanal 24 beinhaltet. Der Sender enthält einen Kanalkodierer 16,
einem Multiplexer 18, einen Modulator 20 und eine
Sendeeinheit 22. Der Sender 12 kann andere Signal
verarbeitende Komponenten enthalten wie eine Encryption-Einheit oder Frequenzspreizer
in einem „Code
Division Multiple Access" (CDMA)
System, die in 1 nicht dargestellt sind.
-
Der
Kanalkodierer 16 in dem Sender 12 empfängt ein
Quellendatensignal und kodiert das Quellendatensignal, um die Wiederherstellbarkeit des
Signals durch den Empfänger 14 zu
erhöhen. Eine
Art einer Signalabstandskodierung von digitalen Daten ist M-Feld-Signalgebung.
Der Kanal-Dekoder transformiert k Datenbits in eins von M = k2 in den Signalraum. Für binäre Datensignale ist k = 1.
Eine Klasse von Signalraumkodierung ist der Faltungscode, der durch
ein K-Stufenschieberegister
implementiert werden kann. In jeder Zeiteinheit werden k Bits in
die ersten k Stufen des Registers geschoben, während Bits, die bereits in
den Registern sind, um k Stufen nach rechts verschoben werden. In
jeder Zeiteinheit wird der Inhalt von ausgewählten Schieberegister hinzuaddiert,
subtrahiert oder in anderer Weise manipuliert, um eine Anzahl n
von kodierten Bits zu erhalten. Durch das Hineinschieben von k Bits
zu jeder Zeiteinheit spezifiziert jeder Schiebesatz von k Bits einen Übergang
zu einer limitierten Anzahl von erlaubten Nachfolgezuständen des
Kodierers. Im Ergebnis repräsentieren
die kodierten Bits nicht nur den aktuellen Zustand des Kodierers
sondern beinhalten auch historische Informationen der Stati des
Kodierers, die aus der empfangenen Reihenfolge der kodierten Bits
abgeleitet werden kann.
-
Die
verschlüsselten
Bits des Kanalkodierers 16 werden dem Multiplexer 18 zugeführt. Der
Multiplexer kombiniert die kodierten Bits mit anderen Signalen,
die von unterschiedlichen Quellen herrühren oder unterschiedliche
Eigenschaften aufweisen. Der Modulator 20 empfängt das
multiplexte Signal, und wandelt das Signal in Wellenformen um, das über den
Kanal 24 gesendet werden kann. Das modulierte Signal wird
der Sendereinheit 22 zugeführt, welche typischerweise
einen Hochleistungsverstärker
und eine Antenne beinhaltet, um das modulierte Signal über den
Kanal 24 zu übertragen.
-
Während der Übertragung
des Signals kommt es im Kanal 24 zu Rauschen, Abschwächung oder
Störsignalen.
Der Empfänger 14 muss
das gesendete Signal erkennen und muss versuchen, das Originalquellendatensignal
aus dem gesendeten Signal wiederherzustellen. Der Empfänger 14 beinhaltet eine
Empfängereinheit 26,
einen Demodulator 27, einen Demultiplexer 28 und
einen Kanaldekoder 30. Die Empfängereinheit 26 beinhaltet
typischerweise eine Antenne zur Erkennung des gesendeten Signals und
einen gering rauschenden Verstärker
zur Verstärkung
des Signals. Der Demodulator 27 demoduliert das Signal,
während
der Demultiplexer 28 das Signal in Signalkomponenten aufteilt.
-
Der
Kanaldekoder 30 versucht das demultiplexte Signal mit dem
zusätzlichen
Rauschen und der Abschwächung
zu dekodieren, um das Originalquellendatensignal zu rekonstruieren.
Ein wohlbekanntes Verfahren zur Dekodierung von Faltungscodes ist
der Viterbi-Algorithmus, der auf A. J. Viterbi zurückgeht, und
der in IEEE Transactions on Information Theory, Vol. IT-13, Seiten
260–269
(April 1967 beschrieben ist, was hierdurch als Referenz einbezogen
sein soll. Der Viterbi-Algorithmus nutzt ein Gitter, das Reihen von
Knoten, die die möglichen
Zustände
des Kanalkodierers 16 des Senders 12 repräsentieren,
und Verbindungen zwischen den Knoten aufweist, die erlaubte Übergänge zwischen
den Zuständen
repräsentieren.
Wenn der Kanalkodierer nur ein Bit pro Zeiteinheit überträgt, d.h.
k = 1, ist der Gittercode binär
und hat zwei zugeordnete Verbindungen pro Knoten. Wenn der Kanalkodierer
mehr als ein Bit pro Zeiteinheit überträgt, d.h. k > 1, ist der Gittercode nichtbinär und hat
mehr als zwei zugeordnete Verbindungen pro Knoten.
-
Die
Implementierung eines Viterbi-Algorithmus für ein nichtbinäres Gitter,
d.h. ein Gitter mit mehr als zwei Verbindungen pro Knoten, ist viel
komplizierter als die Implementierung eines Viterbi-Algorithmus
für ein
binäres
Gitter, d.h. ein Gitter mit zwei Verbindungen pro Knoten, weil eine
viel höhere
Rechenleistung des Kanalkodierers erforderlich ist. Die erhöhte Komplexität hat zur
Einschränkung
der Nutzung von nichtbinären
Gittern zur Datenkodierung und Dekodierung in kommerziellen Kommunikationssystemen
geführt.
Damit ist ein Bedarf in der Industrie für ein einfaches und effizientes
Verfahren und für Dekoder
von Faltungscodes entstanden, die den Viterbi-Algorithmus für nichtbinäre Gitter ausführen.
-
George
C. Clark jr. und J. Bibbs Cain: „Error-correction coding for
digital communications" 1981,
Plenum Press, New York XP002099251, Seiten 258–261 bezieht sich auf Faltungscodestrukturen und
Viterbi-Dekodierung für nichtbinäre Codes.
Es soll erwähnt
werden, das ein Gitterdiagramm für
irgendeinen R = 1/n Code in Basismodule der Form, die in den 6–22 dargestellt sind, aufgeteilt werden
kann, und dass ein ACS-Schaltkreis für einen R = (n – 1)/n Code
normalerweise mehrere Elemente in der Form von 6–23 enthält.
-
George
C. Clark jr. und J. Bibbs Cain: „Error-correction coding for
digital communications" 1981,
Plenum press, New York XP002099251, Seiten 235–238 beschreibt, dass in einer
nichtbinären Gitterstruktur,
wie sie in einer 6–7 dargestellt
ist, vier Pfade jeden Zustand erreichen und nicht zwei wie im Falle
eines binären
Gitters. Die Ausführung
eines Viterbi-Algorithmus ist die gleiche mit der Ausnahme, dass
an jedem Knoten ein einziger bester Pfad aus den vier möglichen
ausgewählt
werden muss, was zu einem 4-Feld- statt zu einem 2-Feld-Vergleich
führt.
Um den Rechenaufwand zu reduzieren, wird eine „punktartige" Technik verwendet,
um die Anzahl der erforderlichen Vergleiche zu reduzieren. Eine
geeignete Löschung
von Symbolen kann dazu führen,
dass es möglich
wird, einen einzigen ACS-Schaltkreis (add-compare-selct) zu nutzen – wie in 6–23 dargestellt –, um den Dekodierungsvorgang
ausführen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist ein Ziel der Erfindung, nichtbinäre faltungscodierten Daten
effizient zu dekodieren.
-
Dieses
Ziel der Erfindung wird durch ein Verfahren mit den Merkmalen des
Anspruches 1 erreicht. Das erfindungsgemäße Verfahren zur Dekodierung
eines kodierten Signals, das über
einen Kanal übertragen
wurde, um ein Quellendatensignal mittels eines nichtbinären Gitters
mit einer Mehrzahl von Knoten zu bestimmen, enthält die folgenden Schritte: Zuweisung
einer Vielzahl von binären Schmetterlingsgittern
innerhalb des nichtbinären
Gitters enthaltend: Zuweisung eines ersten binären Schmetterlingsgitters,
welches zwei beginnende Knoten aufweist, die in dem nichtbinären Gitter
als an einer ersten Einheitszeitperiode repräsentiert sind, und das zwei
abschließende
Knoten aufweist, die in dem nichtbinären Gitter als an einer zweiten
Einheitszeitperiode repräsentiert
sind; Zuweisung eines zweiten binären Schmetterlingsgitters,
das zwei alternative, beginnende Knoten aufweist, die in dem binären Gitter
als an der ersten Einheitszeitperiode repräsentiert sind, und das die
beiden abschließenden
Knoten aufweist, die in dem nichtbinären Gitter als an der zweiten
Einheitszeitperiode repräsentiert
sind; Ausführung
einer binären
Schmetterlingsberechnung für jedes
zugewiesene Schmetterlingsgitter, um eine günstigste Pfadmetrik, die jedem
abschließenden Knoten
in jedem zugewiesenen, binären
Schmetterlingsgitter zugeordnet ist, zu bestimmen, so dass damit
jedem abschließenden
Knoten eine Vielzahl von günstigsten
Pfadmetriken zugeordnet ist; und Vergleichen der Vielzahl von günstigsten,
jedem abschließenden
Knoten zugeordneten Pfadmetriken, um einen Überlebenspfad für jeden
abschließenden Knoten
auszuwählen.
-
Das
Ziel der Erfindung wird weiterhin durch eine entsprechende Vorrichtung
mit den Merkmalen des Anspruches 7 erreicht. Bevorzugte Ausführungsbeispiele
der Erfindung sind in den abhängigen
Ansprüchen
angegeben.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Für ein vollständiges Verständnis der
vorliegenden Erfindung und weitere zugehörige Ziele und Vorteile soll
nun auf die folgende Beschreibung im Zusammenhang mit den begleitenden
Zeichnungen, bei denen gleiche Bezugszeichen für ähnliche Teile benutzt werden,
Bezug genommen werden:
-
1 stellt
ein digitales Kommunikationssystem dar, bei dem die vorliegende
Erfindung implementiert sein kann;
-
2 stellt
ein binäres
Gitter mit zwei Zuständen
zur Dekodierung eines Faltungscodes durch einen Dekoder dar, bei
dem eine einfache binäre Schmetterlingsberechnung
genutzt wird;
-
3 stellt
ein binäres
Gitter mit mehr als zwei Zuständen
zum Dekodieren eines Faltungscodes dar, bei dem eine einfache binäre Schmetterlingsberechnung
genutzt wird;
-
4 stellt
ein nichtbinäres
Gitter zum Dekodieren eines Faltungscodes durch einen Dekoder der vorliegenden
Erfindung dar;
-
5 stellt
ein nichtbinäres
Gitter zum Dekodieren eines Faltungscodes dar, bei dem eine modifizierte
einfache binäre
Schmetterlingsberechnung dargestellt wird; und
-
6 stellt
einen Dekoder dar, der zur Implementierung der vorliegenden Erfindung
genutzt werden kann; und
-
7 stellt
ein Flussdiagramm des Berechnungsverfahrens des Dekoders der vorliegenden
Erfindung zur Dekodierung eines Faltungscodes dar, bei dem eine
modifizierte einfache binäre
Schmetterlingsberechnung genutzt wird.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Die
vorliegende Erfindung wird jetzt nachfolgend in größerem Umfang
unter Zuhilfenahme der begleitenden Zeichnungen beschrieben, bei
denen bevorzugte Ausführungsbeispiele
der Erfindung dargestellt werden.
-
Ein
Beispiel des Viterbi-Algorithmus, der binäre Gitter nutzt, ist in 2 dargestellt.
Der Viterbi-Algorithmus nutzt ein Gitter, in welchem die Knoten zu
jedem Zeitpunkt die möglichen
Zustände
des kodierten Quellendatensignals in einem Signalraum S darstellen.
In dem Beispiel des binären
Gitters von 2 enthält der Signalraum S mindestens
zwei Signalzustände
S0 und S1. Der Signalraum
S kann ein Bereich von analogen Signalamplituden oder eine multidimensionale
Raumcharakteristik von Frequenzschieberschlüssel- oder Phasenschieberschlüsselsystemen
sein. Ein Übergang
zwischen zwei Zuständen
in dem Signalraum wird in dem Sender in ein eindeutiges Code-Symbol
eines Satzes von Symbolen A = {a1, a2 ...} kodiert. Beispielsweise kann während der
Kodierung durch den Sender der Übergang
von S0 zu S0 durch
a0 dargestellt sein, der Übergang
von S0 zu S1 kann
durch a1 dargestellt sein, der Übergang
von S1 zu S0 kann
durch a2 dargestellt sein und der Übergang
von S1 zu S1 kann
durch a3 dargestellt sein. Die Reihenfolge
der Zustände
in dem Kodierer kann durch den Empfänger durch die Verfolgung eines
Pfades durch ein Viterbi-Gitter dekodiert werden, wie es in 2 dargestellt
ist.
-
2 stellt
ein binäres
Schmetterlingsgitter dar, bei dem jeder Knoten nur zwei zugeordnete
Verbindungen aufweist, d.h. jeder Knoten kann nur von zwei anderen
Knoten durch nur zwei Verbindungen erreicht werden. Die Knoten zu
jedem Zeitpunkt t in 1 stellen die Signalzustände S0 und S1 im Signalraum
S dar. Die Verbindungen zwischen den Knoten in dem Gitter stellen
einen Übergang
zwischen den Zuständen
dar. Jedem Übergang
oder jeder Verbindung wird ein eindeutiges Symbol aus einem Satz
A = {a0, a1, a2, a3} zugewiesen,
um einen Übergang
darzustellen, wie es in 2 dargestellt ist.
-
Im
Betrieb wird ein eindeutiges Symbol A durch die kodierten Bits der
Schieberegister in dem Kodierer bestimmt. Eine Verbindungsmetrik ΔMeti ist der Abstand (wie ein euklidscher Abstand
für analoge Signale
oder ein Hamming-Abstand für
digitale Signale) zwischen den Symbolen des Satzes A für die Verbindung
oder den Übergang
und dem aktuell empfangenen Signal. Beispielsweise ist der Metrikwert,
der durch ΔMet0 beschrieben wird, der Abstand zwischen
dem empfangenen Signal und dem Symbol a0,
der Metrikwert ΔMet1 der Abstand zwischen dem empfangenen Signal
und dem Symbol a1, der Metrikwert ΔMet2 der Abstand zwischen dem empfangenen Signal
und dem Symbol a2 und der Metrikwert ΔMet3 der Abstand zwischen dem empfangenen Signal
und dem Symbol a3. Die Pfadmetrik für einen
Zustand wird als ΔMetS0 bezeichnet und ist die Summe der Verbindungsmetriken
zwischen einem ausgewählten Pfad
durch das Gitter zu demjenigen Zustand.
-
Für eine beliebige
Reihenfolge von empfangenen Signalen muss das Dekodierungsverfahren das
Gitter mit dem Pfad der Symbole a0, a1, a2, ... suchen,
die jede Verbindung repräsentiert,
die am besten zu den empfangenen Signalwerten passt, der denjenigen
Pfad darstellt, der die günstigste
Pfadmetrik aufweist. Der Viterbi-Algorithmus für ein binäres Signal bestimmt die günstigste
Pfadmetrik durch ein binäres
Schmetterlingsgitter. Zwei Kandidaten von Pfadmetriken pro Knoten
werden berechnet. Jeder berechnete Kandidat de r Pfadmetrik repräsentiert eine
andere Verbindung oder Übergang
zu dem Status. Beispielsweise sind die beiden berechneten Pfadmetriken
MetS0 + ΔMet0 und MetS1 + ΔMet2 für den
Status S0 bei t2.
Nachdem die beiden Kandidaten der Pfadmetriken berechnet wurden,
werden sie verglichen, um festzustellen, welche Pfadmetrik die günstigste
ist. Allgemein gilt, dass die günstigste Pfadmetrik
diejenige mit dem kleinsten Wert ist, der durch den Hamming-Abstand
für digitale
Signale oder den euklidschen Abstand für analoge Signale bestimmt
ist. Der Pfad, der der günstigsten
Pfadmetrik zugeordnet ist, wird dann ausgewählt. Eine akkumulierte Pfadmetrik
MetS0 für
den Zustand S1 bei t2 wird
aktualisiert, um die günstigste
Pfadmetrik anzunehmen. Diese beschriebene Pfadauswahlberechnung
für den
Zustand S0 bei t2 in 2 wird
als ACS0 (Add-Compare-Select) bezeichnet.
-
In ähnlicher
Weise wird eine Pfadauswahlberechnung für den Status S1 bei
t2 ausgeführt. Zwei Kandidaten von Pfadmetriken
MetS0 + ΔMet1 und MetS1 + ΔMet3 für
den Zustand S1 werden berechnet. Die günstigste
Pfadmetrik wird festgestellt, und der Pfad, der der günstigsten
Pfadmetrik zugeordnet ist, wird ausgewählt. Die Pfadauswahlberechnung
für diesen
Knoten wird in 2 als ACS1 (Add-Compare-Select)
bezeichnet. Allgemein gilt, dass der Pfad, der für den Zustand S ausgewählt wird,
als Überlebenspfad
bekannt ist.
-
Der
oben beschriebene Viterbi-Algorithmus, der für ein binäres Gitter ausgeführt wird,
d.h. ein Gitter mit zwei Verbindungen pro Status oder Knoten, der
zwei Knoten oder Stati zu jeder Zeiteinheit aufweist, ist als einfache
binäre
Schmetterlingsberechnung bekannt. Die einfache Schmetterlingsberechnung
kann mehrere Male in einem binären
Gitter mit mehr als zwei Zuständen
ausgeführt
werden, um den Überlebenspfad
für jeden
Knoten oder Zustand zu bestimmen. Jeder Knoten oder Zustand hat
nur zwei zugeordnete Verbindungszweige. In 3 ist beispielsweise
ein binäres
Gitter mit vier Zuständen
S0, S1, S2, und S3 zur Zeit
t1 und t2 dargestellt.
Eine erste einfache binäre
Schmetterlingsberechnung kann ausgeführt werden, um den Überlebenspfad
für die Stati
S0 und S1 in dem
binären
Gitter, der mit 1 in 3 gekennzeichnet ist, zu bestimmen.
Eine zweite einfache binäre
Schmetterlingsberechnung kann dann ausgeführt werden, um den Überlebenspfad
für die
Zustände
S2 und S3 in dem
binären
Gitter zur Zeit t2, die mit 2 in 3 dargestellt
sind, zu bestimmen.
-
Die
oben beschriebene einfache binäre Schmetterlingsberechnung
kann durch sehr effiziente Beschleunigungshalbleiterchips, die nach
dem Stand der Technik gut bekannt sind, – wie dem TMS320C54X DSP-Chip
von Texas Instruments – ausgeführt werden.
-
4 stellt
ein nichtbinäres
Gitter zur Dekodierung eines Faltungscodes durch einen Dekoder der
vorliegenden Erfindung dar. In einem nichtbinären Gitter kann jeder Knoten
Si mehr als zwei mögliche Verbindungszweige aufweisen.
Somit kann jeder Übergang
zu einem Zustand Si zu einer Zeitperiodeneinheit
t2 aus einem Satz von Zuständen Sim = {Si1, Si2, Si3 ... Sim} aus einer Zeitperiodeneinheit t1 sein, wobei der Index m größer als
2 ist. Eindeutige Symbole aus dem Satz A sind für allen Übergänge Ti = {ai1, ai2 ... aim} definiert, die dem Satz der Zustände Si zugeordnet sind, so dass t(Sim,
Sm) = aim. Ein Gitterdiagramm
kann explizit durch einen Satz Si und Ti für jeden
Zustand definiert werden, der durch einen Knoten des Gitterdiagramms
repräsentiert
ist.
-
In
dem Gitterdiagramm von 4 enthält der Signalraum des Quellendatensignals
die vier Zustände
Si = {S0, S1, S2, S3}
mit vier Verbindungszweigen oder Übergängen, die jedem Zustand zugeordnet sind.
Somit kann ein Übergang
vom Zustand S0 bei t2 durch
einen Satz von Zuständen
S0,4 = {S0,0, S0,1, S0,2, S0,3} herrühren.
Eindeutige Symbole für
den Satz A für
die Übergänge zu S0 können
dargestellt sein als: t(S0,0, S0)
= a0, t(S0,1, S0) = a1, t(S0,2, S0) = a2 und t(S0,3, S0) = a3. Ähnliche
Darstellungen können
für die
anderen Zustände
S1, S2 und S3 in dem Gitterdiagramm dargestellt sein.
-
Die
vorliegende Erfindung dekodiert einen gefalteten Code unter Nutzung
eines nichtbinären Gitterdiagramms
durch Zuweisung binärer
Schmetterlingsgitter innerhalb des nichtbinären Gitters. Jedes binäre Schmetterlingsgitter
hat nur zwei Zustände
in jeder Zeiteinheit und zwei Verbindungen pro Status. Die beiden
Stati in jeder Zeiteinheit können disjunkt
sein.
-
Beispielsweise
ist das nichtbinäre
Gitter von 4 in vier binäre Schmetterlingsgitter
aufgeteilt, die durch die Nummern 1 bis 4 bezeichnet sind. In der
vorliegenden Erfindung wird jedes der binären Schmetterlingsgitter unter
Nutzung einer einfachen binären
Schmetterlingsberechnung untersucht, und die Ergebnisse der einfachen
binären
Schmetterlingsberechnung für
beide Knoten werden verglichen, und es wird der Überlebenspfad für den Knoten bestimmt.
-
Ein
Beispiel für
die Bestimmung des Überlebenspfades
für die
Knoten S0 und S1 zur
Zeit t2 wird unter Bezug auf 5 beschrieben.
Das nichtbinäre Gitter
in 5 stellt die beiden einfachen Schmetterlinge,
die in 4 als 1 und 2 bezeichnet sind, dar.
-
Für jeden
Zustand Si zur Zeit t1 ist
die Pfadmetrik MetSi vor dem Beginn der
Berechnung bekannt. Die Pfadmetrik MetSi ist
gleich der Summe der vorherigen Verbindungsmetriken zwischen einem
gewählten
Pfad durch das Gitter zum Status Si. Alternativ
kann die Pfadmetrik MetSi durch einen Anfangswert
gesetzt sein, wenn t1 der erste Status bei
der Dekodierungsberechnung ist. Die vorliegende Erfindung führt eine
einfache binäre
Schmetterlingsberechnung auf einem ersten zugewiesenen einfachen
binären Schmetterlingsgitter
in dem nichtbinären
Gitter durch. Beispielsweise wird zuerst eine einfache binäre Schmetterlingsberechnung
für den
einfachen binären
Schmetterling, der mit 1 in 5 gekennzeichnet ist,
ausgeführt.
Das erste zugewiesene binäre Schmetterlingsgitter
enthält
die Zustände
S0 und S1 zu einer
Zeiteinheit t1 und die Zustände S0 und S1 zur Zeiteinheit
t2.
-
Für den Status
S0 beim ersten zugewiesenen einfachen binären Schmetterling
bei t2 wird die Berechnung ACS0 ausgeführt. Die
beiden Kandidaten für
die Pfadmetriken MetS0 + ΔMet0 und MetS1 + ΔMet2 werden berechnet. Nachdem sie berechnet wurden,
werden die beiden Kandidaten für
die Pfadmetriken verglichen, um festzustellen, welche Pfadmetrik
die günstigste
ist. Wie oben erklärt,
ist die günstigste
Pfadmetrik im Allgemeinen die Pfadmetrik mit dem kleinsten Wert.
Die günstigste
Pfadmetrik kann beispielsweise durch den Hamming-Abstand für digitale
Signale oder den euklidschen Abstand für analoge Signale bestimmt
werden. Der Pfad, dem die günstigste
Pfadmetrik zugewiesen ist, wird dann für die Berechnung ACS0 bestimmt.
-
Anstelle
der Auswahl dieses so bestimmten Überlebenspfades für S0 werden der Pfad und die günstigste
Pfadmetrik als Ergebnis der Berechnung ACS0 gespeichert.
Die vorliegende Erfindung führt dann
die Berechnung ACS2 aus und berechnet den Status
S1 bei t2, die beiden
Kandidaten für
Pfadmetriken MetS0 + ΔMet1 und
MetS1 + ΔMet3. Die günstigste Pfadmetrik
wird bestimmt, und der Überlebenspfad, dem
die günstigsten
Pfadmetrik zugeordnet ist, wird für die Berechnung ACS2 bestimmt. Wiederum wird anstelle der Auswahl
dieses so Bestimmten als Überlebenspfad
für S1 der Pfad und die entsprechende günstigste
Pfadmetrik als Ergebnis der Berechnung ACS2 gespeichert.
-
Als
nächstes
führt die
vorliegende Erfindung eine modifizierte einfache binäre Schmetterlingsberechnung
für das
zweite zugewiesene einfache binäre
Schmetterlingsgitter aus, das in 5 mit 2
bezeichnet ist. Dieses zweite zugewiesene binäre Schmetterlingsgitter enthält die Stati
S2 und S3 zur Zeiteinheit
t1 und die Stati S0 und
S1 zur Zeiteinheit t2. Die
Berechnung ACS1 wird für den Zustand S0 bei
t2 ausgeführt. Die beiden Kandidaten
für Pfadmetriken MetS2 + ΔMet4 und MetS3 + ΔMet6 werden berechnet. Die günstigste Pfadmetrik wird bestimmt,
und der Pfad, dem die günstigste
Pfadmetrik zugeordnet ist, wird ausgewählt. Dieser Pfad und die günstigste Pfadmetrik
werden für
die Berechnung von ACS1 gespeichert. Als
zweites wird die Berechnung ACS3 für den Status
S1 bei t2 ausgeführt. Die
beiden Kandidaten für
Pfadmetriken MetS2 + ΔMet5 und
MetS3 + ΔMet7 werden berechnet. Die günstigste Pfadmetrik wird bestimmt,
und der Pfad, dem die günstigste Pfadmetrik zugeordnet
ist, wird für
die Berechnung von ACS3 bestimmt. Dieser
Pfad und die günstigste Pfadmetrik
werden für
die Berechnung ACS3 gespeichert.
-
Die
vorliegende Erfindung bestimmt als nächstes den Überlebenspfad für jeden
Knoten oder jeden Zustand S in dem nichtbinären Gitter durch Vergleich
der günstigsten
Pfadmetriken für
jede ACS-Berechnung, die in der einfacheren binären Schmetterlingsberechnung
ausgeführt
wurde, die mit dem Status in dem nichtbinären Gitter korrespondiert.
Beispielsweise wird beim Status S0 zur Zeiteinheit
t2 die günstigste
Pfadmetrik, die als Ergebnis von ACS0 gespeichert
wurde, die dem Status S0 zugeordnet ist,
mit der günstigsten
Pfadmetrik, die als Ergebnis von ACS1 gespeichert
wurde, die dem Zustand S0 zugeordnet ist,
verglichen. Wie bereits oben erklärt, wurde die Berechnung ACS0 während
der ersten, einfachen binären
Schmetterlingsberechnung ausgeführt,
während
die Berechnung ACS1 während der zweiten, einfachen
binären
Schmetterlingsberechnung durchgeführt wurde. Weil beide ACS0- und ACS1-Berechnungen
für die
Verbindungen zum Status S0 bei t2 ausgeführt
wurden, werden ihre Ergebnisse verglichen, um den Überlebenspfad
für den
Zustand S0 zu ermitteln. Der Überlebenspfad
für den Status
S0 bei t2 ist der
Pfad, der mit der günstigsten Pfadmetrik
aus den beiden Überlebenspfaden
für den
Status S0 korrespondiert. Die letztlich
akkumulierte Metrik MetS0 für den Status
S0 bei t2 ist gleich
der günstigsten
Pfadmetrik zwischen den beiden gespeicherten Metriken der Berechnungen
ACS0 und ACS1.
-
Der Überlebenspfad
und die akkumulierte Metrik MetS1 werden ähnlich für den Zustand
S1 bei t2 bestimmt.
Die günstigste
Pfadmetrik, die als Ergebnis der Berechnung ACS2,
die dem Zustand S1 zugeordnet, gespeichert
ist, wird mit der günstigsten
Pfadmetrik, die als Ergebnis der Berechnung ACS3,
die dem Zustand S1 zugeordnet ist, gespeichert
ist, verglichen. Der Überlebenspfad
für den
Zustand S1 bei t2 ist
der Pfad, der der günstigsten
Pfadmetrik zwischen den beiden gespeicherten Metriken der Berechnungen
ACS2 und ACS3 entspricht.
Die abschließende
akkumulierten Metrik MetS1 für den Status
S1 bei t2 ist gleich
der günstigsten
Pfadmetrik aus den beiden gespeicherten Metriken der Berechnungen ACS2 und ACS3.
-
Ähnlich führt die
vorliegende Erfindung modifizierte binäre Schmetterlingsberechnungen
für die einfachen
binären
Schmetterlingsgitter 3 und 4 aus, um die Überlebenspfade für die Zustände S2 und S3 zu bestimmen,
wie es in 4 dargestellt ist. Durch Zuweisungen
von binären
Schmetterlingsgittern innerhalb des nichtbinären Gitters reduziert die vorliegende
Erfindung somit die Rechenlast des Dekders.
-
Ein
typischer, nach dem Stand der Technik bekannter Chip zur Ausführung einer
binären Schmetterlingsberechnung
kann genutzt werden, um die vorliegende Erfindung in einem Kanaldekoder 34 mit
keiner oder geringen Modifikationen genutzt werden, wie es in 6 dargestellt
ist. Der Kanaldekoder 34 enthält einen Prozessor 36,
einen Speicher 38 und einen binären Schmetterlingsbeschleunigungschip 40.
Der Prozessor steuert die Berechnung des Kanaldekoders 34 entsprechend
der vorliegenden Erfindung. Der binäre Schmetterlingsbeschleunigungschip 40 führt eine
einfache binäre
Schmetterlingsberechnung für
ein gegebenes binäres
Schmetterlingsgitter aus und gibt das Ergebnis der ACS-Berechnung für jeden
Knoten des binären
Schmetterlingsgitters aus. Der binäre Schmetterlingsbeschleunigungschip 40 kann
der Beschleunigungshalbleiter TMS320C54C-Chip von Texas Instruments
sein. Der Speicher 38 kann auf dem Prozessor 40 oder
in einem außerhalb
des Prozessors gelegenen Cache oder RAM anordnet sein. Obwohl 6 darstellt, dass
der Kanaldekoder 34 einen separaten binären Schmetterlingsbeschleunigungschip 40 enthält, erkennt
der Fachmann, dass die Funktionen der beiden Chips in einem einzigen
Prozessor zusammengefasst sein können.
-
Die
Berechnung des Kanaldekoders 34 zur Dekodierung eines gefalteten
Codes und die Nutzung eines nichtbinären Gitters wird unter Zuhilfenahme
von 7 erklärt. 7 stellt
ein Flussdiagramm des Betriebes des Kanaldekoders 34 der
vorliegenden Erfindung dar. Der Kanaldekoder 34 wurde mit
einem nichtbinären
Gitter, Zuständen
Si, Übergängen Ti und einem Symbolsatz A für den gewünschten
Dekodierungsprozess vorprogrammiert. Das nichtbinäre Gitter
für den
gewünschten
Dekodierungsprozess wurde auch in eine Mehrzahl von zugeordneten
binären
Schmetterlingsgittern aufgeteilt.
-
In
Schritt 42 in 7 empfängt der Kanaldekoder 34 ein
kodiertes Signalsymbol von dem Demultiplexer 38. Der Prozessor 36 beauftragt
den binären Schmetterlingsbeschleunigungschip 40 eine
einfache binäre
Schmetterlingsberechnung für
eins der zugewiesenen einfachen Schmetterlingsgitter in Schritt 44 auszuführen. Der
binäre
Schmetterlingsbeschleunigungschip führt die einfache Schmetterlingsberechnung
aus und bestimmt Ergebnisse von zwei ACS-Berechnungen, eine für jeden
der beiden Knoten der einfacheren binären Schmetterlingsgitter. Das
Ergebnis der ACS-Berechnungen für
die beiden Knoten der einfachen Schmetterlingsberechnung wird in
dem Speicher 38 gespeichert, wie es in Schritt 46 dargestellt
ist. Der Pfad und die günstigste
Pfadmetrik, die durch die beiden ACS-Berechnungen bestimmt wurden,
werden dem Speicher 38 zusammen mit dem zugeordneten Status
oder Knoten für
die bestimmte ACS-Berechnung
zugeordnet.
-
Als
nächstes
bestimmt der Prozessor 36 in Schritt 48, ob zusätzliche
einfache binäre
Schmetterlingsgitter in dem nichtbinären Gitter zugewiesen sind.
Falls ja, kehrt der Prozessor 36 zum Schritt 44 zurück und beauftragt
den binären
Schmetterlingsbeschleunigungschip 40 eine einfache Schmetterlingsberechnung
für das
nächste
zugewiesene einfache Schmetterlingsgitter auszuführen.
-
Wenn
der Prozessor 36 in Schritt 48 feststellt, dass
eine einfache Schmetterlingsberechnung für jedes einfache Schmetterlingsgitter
durchgeführt wurde,
bestimmt der Prozessor 36 die Überlebenspfade für jeden
Zustand oder Knoten in dem nichtbinären Gitter. Der Prozessor 36 vergleicht
die günstigste
Pfadmetrik für
jede ACS-Berechnung, die in den Speicher 38 gespeichert
ist, die einem Zustand oder Knoten in den nichtbinären Gitter
zugeordnet sind, und wählt
die günstigste
Pfadmetrik und den entsprechenden Überlebenspfad für jeden
Status aus. Der Prozessor 36 aktualisiert die Metrik für jeden Zustand
auf die ausgewählte
günstigste
Pfadmetrik und speichert den entsprechenden Überlebenspfad in Speicher 38.
Der Prozessor 36 fährt
damit fort, die kodierten Signalsymbole in der Nachricht zu verarbeiten,
bis ein Ende erreicht ist.
-
Alternativ
kann der Prozessor 36 Schritte 50 und 52 in 7 ausführen, um
einen Überlebenspfad für einen
Zustand auszuwählen,
nachdem der binäre Schmetterlingsbeschleunigungschip
eine binäre Schmetterlingsberechnung,
die dem Zustand zugeordnet ist, berechnet. Der binäre Schmetterlingsbeschleunigungschip
kann gleichzeitig binäre
Schmetterlingsberechnungen, die anderen Zuständen als denjenigen in den
Schritten 44 und 46 von 7 zugeordnet
sind, ausführen.
-
Die
vorliegende Erfindung hat signifikante Vorteile gegenüber den
nach dem Stand der Technik bekannten Dekodern für eine Dekodierung von gefalteten
Codes unter Nutzung von nichtbinären
Gittern. Die Nutzung eines Viterbi-Algorithmus zur direkten Lösung eines
nichtbinären
Gitters erfordert hochkomplexe Architekturen und große Rechenleistungen.
Die vorliegende Erfindung dekodiert ein nichtbinäres Gitter durch eine Aufteilung
des nichtbinären Gitters
in eine Vielzahl von binären
Schmetterlingsgittern und Ausführung
einer modifizierten binären Schmetterlingsberechnung
auf jedem der binären Schmetterlingsgitter.
Im Ergebnis nimmt die vorliegende Erfindung den Vorteil von hocheffizienten
und einfacheren Architekturen zur Ausführung binärer Schmetterlingsberechnungen
in Anspruch.