Die vorliegende Erfindung betrifft Verfahren
der Signalverarbeitung.
-
Kanalcodierung ist ein Mittel zur wirksamen
Einführung von Redundanz in eine Folge von Datensymbolen
zur Förderung der Übertragungszuverlässigkeit. Zwei
Hauptverfahren, die zur Anwendung kommen, sind Block- und
Faltungscodierung. Man siehe beispielsweise Error Control
Coding - Fundamentals and Applications
(Fehlersicherungscodierung - Grundsätze und Anwendungen) von S. Lin und
D.J. Costello, prentice-Hall, 1983.
Blockcodes
-
Binäre Blockcode werden erzeugt, indem man n-k
Prüfbit an k Informationsbit anhängt, um einen Block von
n Bit für die Übertragung auf einem Kommunikationskanal
zu bilden. Diese n-Bit-Blöcke werden dann typischerweise
unter Verwendung standardmäßiger Modulationsverfahren,
beispielsweise Amplituden-, Frequenz-, Phasen- oder
Impulsmodulation an den Kanal angelegt. Am Empfängerende
des Kanals werden nach der Demodulation Schätzungen der
ursprünglichen k Informationsbit unter Verwendung der
Empfangsfolge einschließlich der durch die n-k Prüfbit
eingeführten Redundanz durchgeführt.
-
Entscheidungen hinsichtlich der empfangenen n Bit
können mit einem beliebigen einer Anzahl von Verfahren
getroffen werden, von denen einige unquantisierte
Schätzungen der Empfangsbit (Decodierung mit weicher
Entscheidung) und andere quantisierte Schätzungen der
Empfangsbit (Decodierung mit harter Entscheidung)
verwenden. Anwender haben festgestellt, daß, obwohl
Blockcodes einfach zu implementieren sind, sie ziemliche
Schwierigkeiten bieten, wenn eine wirksame Decodierung
nit weicher Entscheidung erreicht werden soll.
-
Auf einem Kanal mit additivem weißem Gaußschem
Rauschen ergibt eine Decodierung mit harter Entscheidung
(unter Verwendung binärer Quantisierung der
Empfangswerte) einen Leistungsverlust von zirka 2-3 dB im
Vergleich zur Decodierung mit weicher Entscheidung. Das
bedeutet, daß bei Verwendung von Decodierung mit weicher
Entscheidung das Leistungserfordernis am Sender um 2-3 dB
erniedrigt werden kann. Man siehe Principles of Digital
Communications and Coding (Grundsätze der digitalen
Kommunikation und Codierung), A.J. Viterbi und J.K.
Omura, McGraw-Hill, 1979.
-
Es ist gut bekannt, die Struktur des Mindest-
Hamming-Abstandes eines Blockcodes für eine kombinierte
Fehlerkorrektur und Fehlererkennung mit Decodierung mit
harter Entscheidung zu verwenden. Dies kann durch
Verwendung eines Vorgangs einer unvollständigen Decodierung
erreicht werden, wo der Decodierer nicht versucht, jedes
fehlerhafte Empfangswort zu decodieren. So wird die
Fehlererkennung durch Nichtdecodierung erreicht. Es
bestehen Verfahren zur Durchführung einer verbesserten
Fehlererkennung und -korrektur bei Blockcodes ohne
bedeutende Aufwandserhöhung, wenn an einem Kanalausgang
grobe weiche Entscheidungen (logisch null, logisch eins
oder Löschung) verfügbar sind. Man siehe beispielsweise
Error Control Technigues for Digital Communication
(Fehlersicherungsverfahren für digitale Kommunikation)
von A.M. Michelson und A.H. Levesque, John Wiley & Sons,
New York, 1985.
Faltungscodes
-
Faltungscodes werden durch Durchführen einer
Informationsfolge durch ein Schieberegister erzeugt, bei
dem Stufen mit linearen algebraischen
Funktionsgeneratoren verbunden sind. Die Ausgänge der Funktionsgeneratoren
werden dann gezielt kombiniert, um die codierte
Ausgangsfolge zu erzeugen.
-
Der Viterbi-Aigorithmus (VA) für die Decodierung
von Faltungscodes wurde von A.J. Viterbi "Error Bounds
for Convolutional Codes and an Asymptotically Optimum
Decoding Algorithm" (Fehlergrenzen für Faltungscodes und
ein asymptotisch optimaler Decodieralgorithmus) IEEE
Trans. on Info. Theory, Band IT-13, Seiten 260-269, 1967
eingeführt. Der Algorithmus wird auch in G.D. Forney,
Jr., "The Viterbi Algorithm" (Der Viterbi-Algorithmus),
Proceedings of the IEEE, Band 16, Seiten 268-278, 1973
beschrieben.
-
Forney zeigte auch in -Maximum Likelihood
Sequence Estimation of Digital Sequences in the Presence
of Intersymbol Interference" (Abschätzung der Folge mit
der größten Wahrscheinlichkeit von digitalen Folgen in
der Gegenwart von Nachbarzeichenstörung) IEEE Trans. on
Info. Theory, Band IT-18, Seiten 363-378N 1972, daß der
VA ein Decodieralgorithmus nach größter
Wahrscheinlichkeit für Kreuzgittercodes ist und benutzte ihn für die
Entzerrung von Kanälen mit Nachbarzeichenstörung. Der VA
ist auch für die Demodulierung von kreuzgittercodierter
Modulation benutzt worden, man siehe G. Ungerbock,
"Channel Coding With Multilevel Phase Signals"
(Kanalcodierung mit Mehrebenen-Phasensignalen) IEEE Trans. on
Info. Theory, Band IT-28, Seiten 55-67, Januar 1982. Der
VA ist auch für die Demodulation von phasenkonstanter
Pseudo-Mehrstufenmodulation benutzt worden. Man siehe
J.B. Anderson, T. Aulin und C-E. Sundberg, Digital Phase
Modulation (Digitale Phasenmodulation), Plenum Press, NY,
1986.
-
Es ist daher ersichtlich, daß der VA nicht nur
bei der Decodierung von Faltungscodes, sondern auch bei
einer Vielzahl anderer Codes und anderer
Übertragungsverfahren vorteilhaft angewandt wird, die sich alle im
allgemeinen durch eine kreuzgitterähnliche Struktur
auszeichnen.
-
Selbst bei einem niedrigen Decodieraufwand sind
mit Faltungscodes unter Verwendung von weichen
Demodulationsausgaben und Decodierung mit größter
Wahrscheinlichkeit mit dem VA gute Ergebnisse erreicht worden. Man
siehe die Literaturstelle Lin und Costello oben.
Normalerweise werden Faltungscodes für kontinuierliche
Datenübertragung benutzt. Durch Rahmenbildung der Daten
in Blöcke und Abschliessen der Blöcke können jedoch
Faltungscodes zur Auslegung von nichtsystematischen
Blockcodes benutzt werden, die dann optimal mit dem VA
decodiert werden können.
-
Im begensatz zu den Blockcodes ist jedoch der
Decodierer nach größter Wahrscheinlichkeit für
Faltungscodes und andere kreuzgitterbasierende Strukturen
vollständig, indem er jede Empfangsfolge decodiert. So
mangelt es den Decodierern für Faltungscodes an der
Fähigkeit, bei einem möglichen Decodierfehler eine
Warnung zu signalisieren. Die vorliegende Erfindung
verbessert solche Decodierer nach größter
Wahrscheinlichkeit, indem sie Mittel zum Signalisieren
eines möglichen Decodierfehlers einschließt.
-
In der Literatur sind verschiedene
Verallgemeinerungen des standardmäßigen VA dargestellt worden. In
"Convolutional Codes 11: Maximum Likelihood Decoding"
(Faltungscodes 11: Decodierung nach größter
Wahrscheinlichkeit), Information and Control, 25, Seiten 222-266,
Juli 1974 und "Convolutional Codes 111: Seguential
Decoding" (Faltungscodes 111: Seguentielle Decodierung),
Inf. Control, 25, Seiten 267-297, Juli 1974 schlug Forney
einen Decodierer mit einer Liste von 2 mit größter
Wahrscheinlichkeit vor, der auf das Ziel begrenzt war,
einen Einblick in die Analyse von seguentiellen
Decodierverfahren zu gewinnen.
-
In "Viterbi Decoding Algorithm for Convolutional
Codes with Repeat Reguest" (Viterbi-Decodieralgorithmus
für Faltungscodes mit Wiederholungsanforderung), IEEE
Trans. Info. Theory, IT-26, Seiten 540-547, September
1980, schlugen Yamamoto und Itoh einen ARQ-Algorithmus
vor, der jedesmal dann eine Wiederholungsanforderung
signalisiert, wenn der beste Weg in jeden Zustand auf
irgendeiner Kreuzgitterebene dem zweitbesten Weg in jeden
Zustand "zu nahe" liegt. In ihrer ARQ-Strategie finden
sie jedoch nicht den global zweitbesten Weg und geringere
beste Wege und nutzen sie auch nicht ausdrücklich aus.
Der Algorithmus von Yamamoto, Itoh ist erfolgreich in
einem verketteten Codierverfahren eingesetzt worden. Der
innere Code ist ein Faltungscode mit weicher Viterbi-
Decodierung. Der äußere Code ist ein Reed-Solomon-Code,
der Fehler und Löschungen korrigiert, wobei die
Zeichenlöschungsinformation am inneren Decodiererausgang durch
Verwendung eines verallgemeinerten Viterbi-Algorithmus
geliefert wird.
-
In "A List-Type Reduced-Constraint Generalization
of the Viterbi Algorithm" (Eine listenartige
Verallgemeinerung
mit verringerter Beschränkung des Viterbi-
Algorithmus), IEEE Trans. Info. Theory, IT-33, Seiten
866-876, November 1987, schlug Hashimoto eine
listenartige Verallgemeinerung mit verringerter Beschränkung
des Viterbi-Algorithmus vor, die den Viterbi-Algorithmus
und den sogenannten M-Algorithmus als Sonderfälle
enthält. Der Zweck dieses Algorithmuses besteht darin, den
Decodieraufwand nicht den des gebräuchlichen Viterbi-
Algorithmuses überschreiten zu lassen und
Fehlerfortpflanzung aufgrund einer verringerten Zustandsdecodierung
zu vermeiden. Nach der Enddecodierung wird wiederum kein
ausdrücklicher Gebrauch von den Überlebenden, abgesehen
vom Besten, gemacht und es ist daher kein
Listendecodieralgorithmus.
-
Nach einem Aspekt der vorliegenden Erfindung wird
ein Verfahren nach Anspruch 1 bereitgestellt.
-
Nach einem weiteren Aspekt der vorliegenden
Erfindung wird ein Verfahren nach Anspruch 17
bereitgestellt.
-
Eine Schar von verallgemeinerten Viterbi-
Algorithmen (GVA - Generalized Viterbi Algorithms) wird
in der vorliegenden Offenbarung auf die weiche oder harte
Decodierung von Faltungscodes angewandt, aber sie gelten
gleichermaßen für Blockcodes und andere Codes,
verschiedene Modulationsverfahren und sonstige
kreuzgitterbasierende Strukturen. Insbesondere werden die
GVA in den hier offenbarten beispielhaften
Ausführungsformen benutzt, um kombinierte Fehlererkennung
und -korrektur für faltungscodierte Daten mit
unguantisierten weichen Entscheidungen vom Demodulator
durchzuführen.
-
In einer Anwendungsform der vorliegenden
Erfindung werden Daten in Blöcken mit fester Größe, die
als Rahmen bezeichnet werden, übertragen. Messungen und
Entscheidungen werden getrennt von Rahmen zu Rahmen am
Decodierer durchgeführt. Wie bei dem klassischen VA-
Decodierer gibt ein GVA-Decodierer die Folge mit der
größten Wahrscheinlichkeit (ML - Maximum Likelihood)
frei. Er heftet jedoch auch eine Markierung an den
decodierten Rahmen an, um anzuzeigen, ob die Entscheidung
zuverlässig (korrekt mit hoher Wahrscheinlichkeit) oder
unzuverlässig ist. Diese Zuverlässigkeitsbestimmung
basiert auf der gemessenen Wahrscheinlichkeit der
Richtigkeit für die wahrscheinlichste Folge im Vergleich
zur Wahrscheinlichkeit der zweitwahrscheinlichsten Folge
und wahlweise Folgen sukzessiv geringerer
Wahrscheinlichkeit. Wenn ein Ausgangssignal derart
markiert ist und die Daten Sprachsignale darstellen, dann
wird eine bevorzugte Rahmendecodierung auf der Grundlage
von Rahmen-Rahmen-Redundanz durchgeführt. Gleichermaßen
kann bei einem nichtsprachlichen
Datenkommunikationssystem die Löschungsinformation zur
Anforderung einer Rahmenwiederholung vom Sender benutzt
werden.
-
Als Alternative kann der GVA die besten L
Kandidaten bei einer Löschung freigeben. Die Rahmen-Rahmen-
Redundanz wird dann zur Auswahl des besten Kandidaten für
die Sprachdecodierung aus den L freigegebenen Kandidaten
benutzt.
-
Eine weitere Anwendung der vorliegenden Erfindung
liegt bei automatischen Wiederholungsanforderungs- (ARQ
- Automatic Repeat Request) Systemen. In dieser Anwendung
wird ein Datenblock zuerst mit zusätzlichen Paritätsbit
standardmäßig codiert. Der gesamte verstärkte Block
(Daten und Paritätsbit) wird dann mit einem Faltungscode
codiert, der sich durch GVA-Verfahren decodieren läßt.
Wenn sich erweist, daß der mit den GVA am Empfänger
erzeugte beste Kandidat nach Bestimmung durch
standardmäßige Paritätsprüfverfahren die richtige Parität
aufweist, dann werden die Datenbit als richtig bestimmt.
Wenn der beste Kandidat von der GVA-Decodierung bei der
Paritätsprüfung ein falsches Resultat ergibt, dann wird
der GVA-Decodierer auf den zweitbesten Kandidaten
abgefragt. Wenn dieser zweitbeste Kandidat erfolgreich die
Paritätsprüfung besteht, dann werden seine Datenbit als
richtig erachtet. In den Verfahren des Standes der
Technik wäre zur Bereitstellung eines neuen Kandidaten
für die Paritätsprüfung eine zeitaufwendige Wiederholung
erforderlich. Die Verwendung drittbester und
nachfolgender Kandidaten kann ebenfalls dazu benutzt
werden, die Notwendigkeit einer Wiederholung zu
vermeiden, wenn "bessere" (offensichtlich
wahrscheinlichere) Kandidaten kein richtiges Resultat
ergeben, wenn sie auf Parität überprüft werden.
Kurze Beschreibun der Zeichnun
-
Fig. 1 zeigt ein verallgemeinertes
Blockschaltbild/Fließdiagramm eines Kommunikationssystems, in dem
die vorliegende Erfindung angewandt werden kann;
-
Fig. 2 zeigt einen Faltungscodierer nach dem
Stand der Technik zur Darstellung der vorliegenden
Erfindung;
-
Fig. 3 zeigt das Zustandsfolgediagramm für den
Faltungscodierer der Fig. 2;
-
Fig. 4 zeigt das vollständige Kreuzgitterdiagramm
für den Codierer der Fig. 2 für eine typische Codierung;
-
Fig. 5, die aus Figuren 5A und 5B besteht, zeigt
graphische Darstellungen zur Erleichterung der
Kennzeichnung zweitbester Wege;
-
Fig. 6 zeigt Tabelleninformationen, die bei der
Ausübung der vorliegenden Erfindung nützlich sind;
-
Fig. 7 ist ein Teil eines Kreuzgitterdiagramms,
das die Kennzeichnung zweitbester Wege darstellt;
-
Fig. 8 zeigt einen weiteren Aspekt der
Kennzeichnung zweitbester Wege; und
-
Fig. 9 zeigt wie ein GVA zur Verringerung der
Anzahl von Wiederholungsanforderungen benutzt werden
kann, die in Systemen erforderlich sind, die zur
Fehlerkorrektur die Wiederholung von Blöcken benutzen.
Detaillierte Beschreibun
Definitionen
-
In der gesamten folgenden Beschreibung werden die
Begriffe "Rahmen" und "Block" nebeneinander angewandt.
Das heißt, bei Sprachübertragung wird "Rahmen" zur
Darstellung eines verarbeiteten Segments (typisch 16 ms)
von Sprache mit einem zusätzlichen Kopfteil für
Kanalcodierung benutzt. Für Unterrahmen und für
Datenübertragung wird der Begriff "Block" benutzt.
-
Der Begriff "Verallgemeinerter
Viterbi-Algorithmus" (GVA) bedeutet eine Verallgemeinerung des gut
bekannten Viterbi-Algorithmus, der in der Lage ist, eine
Liste der L besten in Frage kommenden Decodierungen
entsprechend einem (typischerweise verrauschten) Rahmen
(beziehungsweise Block) faltungscodierter Daten frei
zugeben. Die im GVA enthaltenen Verallgemeinerungen des VA
werden ausführlicher unten beschrieben.
-
Ein paralleler GVA ist einer, der gleichzeitig
alle L Kandidaten kennzeichnet, während ein serieller GVA
den l-sten Kandidaten auf Grundlage der Kenntnis der
vorhergegangenen l-1-besten Kandidaten iterativ freigibt.
-
Decodierung mit weicher Entscheidung bezieht sich
auf die Zuweisung einer der Menge möglicher Codefolgen
auf Grundlage unguantisierter (beziehungsweise
unvollständig guantisierter) Informationen am Ausgang des
Kanaldemodulators im Empfänger. So wird beispielsweise
das durch Rauschen verstümmelte Empfangssignal vom Kanal
an einen Satz angepaßter Filter entsprechend jedem
möglichen Codewort angelegt. Die Ausgaben der angepaßten
Filter werden dann verglichen und das der größten Ausgabe
eines angepaßten Filters entsprechende Codewort wird als
das Empfangscodewort ausgewählt. "Größtes" bedeutet in
diesem Sinn typischerweise größtes als Funktion von
Abtastwerten entsprechend jedem Bit im Empfangscodewort.
Man siehe beispielsweise Digital Coxnmunications (Digitale
Nachrichtenübermittlung) von J.G. Proakis, McGraw-Hill,
New York, 1983, Seiten 258 et seq.
-
Decodierung mit harter Entscheidung bezieht sich
auf Decodierung von Kanalsignalen, bei denen jedem
Empfangsbit entsprechende Abtastwerte auantisiert werden,
oftmals auf die beiden Werte 0 oder 1. Man siehe Proakis
oben, Seiten 265 et seq.
Verallgemeinerte Viterbi Algorithmus (GVA)
-
Die Fig. 1 stellt die Art und Weise dar, auf die
der GVA vorteilhaft eingesetzt wird.
-
Die Fig. 1 zeigt ein System zur Übermittlung von
Informationen von einer Datenguelle 100 zu einer
Empfangsstelle über einen Koinmunikationskanal 130. Wenn
das System für Sprachsignale benutzt werden soll, dann
enthält die Datenguelle 100 gut bekannte Mittel zur
Umformung dieser Sprache in Rahmen von Digitalsignalen.
-
Der Blockcodierer 110 wird zur Hinzufügung
entsprechender Redundanz, d.h. von Paritätsprüfbit zum
Ausgang der Datenquelle 100 vor Zuführung dieser Daten
zum Faltungscodierer 120 benutzt. Der Blockcodierer 110
kann von jeder standardmäßigen Art sein, die
beispielsweise in Literaturstellen wie Lin und Costello
oben beschrieben worden sind. Da nicht alle Anwendungen
der vorliegenden Erfindung aus Blockcodierung Nutzen
ziehen werden, ist der Blockcodierer 110 in der Figur 1
als wahlfrei dargestellt.
-
Der Faltungscodierer 120 ist standardmäßiger
Konstruktion und wird vom Fachmann auf Grundlage von
solchen Systemparametern wie Datengeschwindigkeit und
übertragungskanaleigenschaften ausgewählt werden. Die
Fig. 2 zeigt einen typischen Faltungscodierer, der unten
zur Darstellung des GVA beschrieben wird.
-
Der Modulator 125 kann jeder für den
übertragungskanal 130 geeigneten Art sein. Im allgemeinen
wird der Kanal 130 Rauschen und andere
Beeinträchtigungen, z.B. Frequenz- und Phasenverzerrung und eine einer
Vielzahl von Schwundeigenschaften aufweisen. In
entsprechenden Fällen, z.B. wenn ein bedeutender
Kanalschwund erwartet werden kann, erweist es sich als
zweckdienlich, Informationen von Nachbarrahmen als Teil des
Modulations- (bzw. Codier-)Vorgangs zu verschachteln. Dies
dient zur Verteilung der Schwundwirkung über eine
Mehrzahl von Rahmen, wodurch die Auswirkung auf jeden
Einzelrahmen verringert wird. Diese Verfahren sind in der
Technik gut bekannt.
-
Der Demodulator 140 in der Fig. 1 führt
standardmäßige Demodulation auf eine zu der vom Modulator 125
gebotenen Modulation entgegengesetzte Weise durch. Die
Ausgabe vom Denodulator 140 wird dem Decodierer 145
zugeführt. Der Decodierer 145 kann in einigen Anwendungen
einen wahlfreien zum Blockcodierer 110 komplementären
Blockdecodierer enthalten, aber dieser Blockdecodierer
wird zugunsten einer ausführlicheren Besprechung in
Verbindung mit der Figur 5 aus der gegenwärtigen
Besprechung herausgelassen. Gleicherweise wird, wenn am
Sender Verschachtelung von Bit oder Bitgruppen (Zeichen)
eingesetzt wird, dieser Vorgang durch Entschachteln am
Empfänger auf standardmäßige Weise umgekehrt. Der Block
150 stellt die ausführlicher unten zu beschreibenden GVA-
Operationen dar. Für gegenwärtige Zwecke genügt es, zu
bemerken, daß der Decodierer 150 einen Kandidaten mit
größter Wahrscheinlichkeit für die tatsächlich von der
Datenquelle 100 übertragene Datenfolge bietet. Zusätzlich
bietet der Decodierer 150 auch eine Anzeige (bzw.
Markierung), um anzuzeigen, ob dieser Kandidat bedeutend
wahrscheinlicher als jeder andere am Decodierer
verfügbare mögliche Kandidat ist oder nicht.
-
Wenn die übermittelte Information
Sprachinformation ist, dann wird der decodierte Rahmen von
Sprachinformation entsprechend der vom Entscheidungsblock
160 und den Blöcken 170 und 180 dargestellten
Funktionalität verarbeitet. Wenn die übermittelte Information
willkürliche (Nicht-Sprach-) Daten sind, dann gelten die
durch Blöcke 185, 190 und 195 angedeuteten Operationen.
In beiden Fällen wird auf das Vorhandensein einer
Markierung geprüft, die den der in Frage kommenden Datenfolge
zuzuordnenden Zuverlässigkeitsgrad anzeigt.
-
Wenn die am Block 160 angezeigte Prüfung ein
Ergebnis "keine Markierung gesetzt" ergibt, dann wird die
in Frage kommende Folge (der decodierte Rahmen von
Sprachinformationen) angenommen. Wenn eine Markierung
festgestellt wird, dann wird der Rahmen nicht angenommen.
Stattdessen wird eine Neuschätzung des Rahmens von
Sprachinformationen unternommen. Dies wird typischerweise
unter Verwendung der von Rahmen zu Rahmen in der
Sprachkommunikation bestehenden Redundanz erzielt. Besondere
Verfahren für eine solche Neuschätzung werden unten
besprochen.
-
Auf gleiche Weise wird, wenn Nicht-Sprach-
Informationen verarbeitet werden und bei Durchführung der
vom Block 185 angezeigten Prüfung keine Markierung
gesetzt wird, der Rahmen von Nicht-Sprach-Information
angenommen. Wenn festgestellt wird, daß bei Durchführung
der vom Block 185 angezeigten Prüfung eine Markierung
gesetzt wird, dann wird eine Korrekturmaßnahme,
typischerweise eine Anforderung zur Wiederholung des Blocks,
die zur Sendestelle zurückzusenden ist, unternommen. Dies
ist als 190 in der Fig. 1 dargestellt. Eine bevorzugte
Alternative mit Verwendung der vom Blockcodierer 110
eingeführten rahmeninternen Redundanz wird unten
beschrieben.
Implementierung der GVA
-
Nunmehr werden die Verfahren zur Implementierung
der parallelen und seriellen Versionen des GVA
beschrieben. Beim parallelen GVA-Algorithmus wird die Aufgabe der
Kennzeichnung der L wahrscheinlichsten Kandidaten in
einem Durchlauf durch ein Kreuzgitter mit einer Struktur
erreicht, die sich etwas von der mit dem gebräuchlichen
Viterbi-Algorithmus verbundenen unterscheidet. Der
serielle Algorithmus wird mit auf einanderfolgenden
Durchläufen durch eine Kreuzgitterstruktur implementiert,
die im wesentlichen dieselbe Komplexität wie die mit dem
normalen Viterbi-Algorithmus verbundene aufweist.
-
Die Algorithmen werden an dem Beispiel eines
Faltungscodes der Rate R = 1/2 mit 4 Zuständen erläutert.
Verallgemeinerung auf andere Codes folgt leicht. In der
gesamten Besprechung werden (ohne Verlust der
Allgemeinheit) Faltungscodes mit Rahmenbildung benutzt, wo das mit
Faltungscodes verbundene Kreuzgitter in einem bekannten
Zustand abschließt. Dies wird durch Hinzufügung von M
bekannten Informationsbit (typischerweise Nullen) am Ende
des Datenblocks auf standardmäßige Weise erreicht.
-
Nunmehr bezugnehmend auf Fig. 2 ist der
beispielhaf te Codierer dargestellt. An den Eingang 200 wird eine
Eingangsfolge von Bit bitweise angelegt. Diese Bit laufen
in die Schieberegisterstufe 210 und danach in die
Schieberegisterstufe 220. Exklusive-ODER-Schaltungen 230
und 240 empfangen als Eingaben die Eingaben und Ausgaben
der Schieberegisterstufen wie in Fig. 2 gezeigt, wobei
deren Ausgaben an Knotenpunkten 250 bzw. 260 erscheinen.
Vom Multiplexer 270 werden diese Ausgangsknotenpunkte
(mit dem Knotenpunkt 260 zuerst) während jeder
Eingangsbitperiode abgetastet. So bietet der Multiplexer 270
Ausgangsbit am Knotenpunkt 280 mit der doppelten Rate,
mit der Eingangsbit am Eingangsknotenpunkt 200 zugeführt
werden. Damit wird die Rate R = 1/2 definiert. Die
Eingangsdaten nehmen die Werte 0 und 1 mit gleicher
Wahrscheinlichkeit an. Die Ausgabe des Kanalcodierers
wird auf Zeichen +1 und -1 abgebildet, entsprechend der
Abbildung: 0T +1; 1T -1.
-
Allgemeiner gesagt läßt sich ein Faltungscodierer
als das 3-Tupel (n,k,M) charakterisieren, wobei n die
Anzahl von Ausgangsbit für alle k Eingangsbit ist und M
die Anzahl von K-Bit-Stufen im Schieberegister ist. Unter
Verwendung dieser Charakterisierung ist der Codierer der
Fig. 2 ein (2, 1, 2)-Codierer.
-
Wie gut bekannt ist kann die Funktionsweise von
Faltungscodierern vollständig entweder als
Kreuzgitterdiagramm oder als Zustandsfolgediagramm oder -tabelle
beschrieben werden. Man siehe beispielsweise die
Literaturstelle Lin und Costello oder die Literaturstelle
Proakis oben.
-
Die Fig. 3 zeigt das Zustandsfolgediagramm
(entsprechend der i-ten Stufe des entsprechenden
Kreuzgitters) für den Codierer der Fig. 2. Da es zwei
Schieberegisterstufen gibt, bestehen 4 mögliche Zustände, die
als S&sub0; bis S&sub3; gekennzeichnet sind und mit den in Fig. 3
gezeigten jeweiligen Bitmustern 00, 01, 10 und 11
verbunden sind. Da der Codierer der Fig. 2 ein binärer
Faltungscodierer ist, bestehen zwei Zweige, die jeden
Zustand betreten und verlassen. Das Eingangsbit bestimmt
die Zustandsübergänge. Der Kreuzgitterabschnitt der Fig.
3 wird als i-te Kreuzgitterebene (entsprechend dem
Übergang von einem Zustand zur Zeit i-1 zu einem weiteren
zur Zeit i) bezeichnet.
-
Das vollständige Kreuzgitter für den Codierer der
Fig. 2 für einen Code mit Länge N, wobei N die Anzahl von
k-Bit-Informationsteilblöcken ist (k = 1 im Beispiel),
ist in Fig. 4 dargestellt. Auf jeder Stufe i entspricht
der einen Zustand zur Zeit i verlassende obere Zweig
einer Eingabe von 0, während der untere Zweig einer
Eingabe von 1 entspricht. Es ist ersichtlich, daß das
Kreuzgitter eine Stufenzahl aufweist, die gleich N + M +
1 beziehungsweise 8 für das angegebene Beispiel ist. Wie
angenommen beginnt die Codierung einer Folge stets mit
dem Zustand S&sub0; und kehrt zu S&sub0; zurück. So ist für eine
Eingangs folge 0000000 (fünf Informationsbit und M = 2
nullwertige "Nachlauf"-Bit zur Vervollständigung des
Rahmens) die vom Codierer der Fig. 2 erzeugte codierte
Folge 00 00 00 00 00 00 00.
-
Wie bei Beschreibungen von Codierung und anderen
Zusammenhängen, die zweckdienlicherweise als
Kreuzgitterstrukturen beschrieben werden, gebräuchlich ist, erweist
es sich als zweckdienlich, die Folge von nur Nullen als
typisch zu benutzen. Die folgenden Ergebnisse sind im
allgemeinen nicht darauf begrenzt.
-
Die Eingangs folge in den Faltungscodierer ist
-
u = (u&sub1; ... uN)
-
wobei u- ein k-Bit-Teilblock ist. u wird nach Abschluß in
eine Folge v codiert
-
v = (v&sub1; ..., vN+M).
-
wobei vi ein n-Bit-Teilblock ist. Der Abschluß am Ausgang
besteht aus M bekannten n-Bit-Teilblöcken.
Die codierte Folge wird dann über den Kanal
übertragen und empfangen als
-
r = (r&sub1;, ...rN+M.
-
Bei der Decodierung von r berechnet der Viterbi-
Algorithmus die logarithmische Wahrscheinlichkeit von
Funktion log P(rO), die als die mit dem Weg v in dem mit
dem benutzten Code verbundenen Kreuzgitter verbundene
Metrik bekannt ist. Diese Metrik wird
zweckdienlicherweise als die Summe der Einzelzweigmetriken log P(rO)
berechnet, die den Zweigen des Weges v entsprechen. Die
Teilwegmetrik für die ersten j Zweige eines Weges wird
dann berechnet als
-
i=j
-
Σ log P (ri vi)
-
i=l
-
Viterbi lehrte, daß die Folge der größten
Wahrscheinlichkeit (d.h. die mit dem Weg der größten
Wahrscheinlichkeit durch das Kreuzgitter verbundene) durch
Verarbeitung von r auf iterative Weise Zweig um Zweig
gefunden werden kann. Mit jedem Schritt werden die
Metriken aller in jeden Zustand eingehenden Wege
verglichen und der Weg mit der größten Metrik (der
Überlebende) und seine Metrik werden gespeichert. Die für die
Ableitung des wahrscheinlichsten Kandidaten für die
Sendefolge benutzten detaillierten Berechnungen sind in
Literaturstellen wie dem Buch von Lin und Costello oben
zu finden und werden hier nicht wiederholt.
-
Bislang ging die Beschreibung von einem
speicherlosen Kanal aus. Wenn der Kanal jedoch Speicherung
aufweist, dann kann zur Verteilung der Signale (z.B. Bit)
von einem Rahmen auf benachbarte Rahmen wie oben bemerkt
ein als Verschachtelung bekanntes Verfahren benutzt
werden. Bei Entschachtelung am Empfänger bewirkt dies
eine Verteilung von Fehlern, die die Nutzinformationen
aus einem oder sogar einigen benachbarten Empfangsrahmen
gelöscht haben oder sehr verschlechtert haben können.
Wenn solche Kanäle angetroffen werden, erweist es sich
daher als zweckdienlich, in Betracht zu ziehen, daß der
Modulator 125 in der Fig. 1 diese gut bekannte
Verschachtelungsfunktion vor der eigentlichen
Kanalmodulation einfügt. Gleicherweise führt der
Demodulator 140 in diesen Fällen das Umgekehrte dieser
Verschachtelung aus, um die Reihenfolge von Signalen zu
der vor der Modulation vorherrschenden
wiederherzustellen.
-
Auch ist zu bemerken, daß in Speicherung
aufweisenden
Kanälen die Metriken für die teilweisen und
vollständigen Wege durch das Kreuzgitter im allgemeinen
nicht den Maßen größter Wahrscheinlichkeit sondern
irgendeinem anderen gleicherweise zufriedenstellenden
Gütemaß entsprechen werden. Solche Metriken sind für
viele gebräuchliche Anwendungen in der Technik gut
bekannt.
Parallele GVA
-
Die bei der Berechnung der L wahrscheinlichsten
Sendefolgen für eine gegebene verrauschte Empfangsfolge
durchgeführten Schritte werden nunmehr unter Anwendung
des parallelen GVA beschrieben. Eine wichtige
Feststellung, auf der der GVA beruht, ist die, daß, um die
global L besten decodierten Kandidaten zu finden, es
notwendig ist und ausreicht, die L besten Kandidaten in
jedem Zustand auf jeder Ebene zu finden und zu behalten.
-
Diese Feststellung wird für den Fall von L=2
bewiesen. Insbesondere wird gezeigt, daß, um die zwei
besten globalen Wege (d.h. das gesamte Kreuzgitter
durchlaufenden Wege) freizugeben, es notwendig ist und
ausreicht, die zwei besten Wege in jeden Zustand auf
jeder Kreuzgitterebene zu finden und zu behalten.
-
Die Bedingung notwendig folgt aus der Tatsache,
daß sich der global zweitbeste Weg vom global besten Weg
über mindestens einen Teil des Kreuzgitters
unterscheidet. Am Ende läuft er zu irgendeinem Zeitpunkt
wieder mit dem besten Weg zusammen. Wenn der zweitbeste
Weg in den Zustande wo dieses Wiederzusammenlaufen
eintritt (der a priori nicht bekannt ist), nicht gefunden
wird, dann ist der global zweitbeste Weg überhaupt nicht
bekannt.
-
Die Bedingung ausreichend folgt aus der Tatsache,
daß der drittbeste (oder niedrigere) Kandidat nicht
überleben kann, weil er in irgendeinem Zustand der
Zweitbeste ist, da es schon einen Kandidaten gibt,
nämlich den Zweitbesten mit besserer Metrik.
-
Nunmehr wird die zur Berechnung der zwei besten
Wege erforderliche Verarbeitung beschrieben.
-
Die Decodierung beginnt zur Zeit i=0, wenn die
angesammelten Metriken des besten und zweitbesten Weges,
die gefunden werden können, für den bekannten
Beginnzustand auf Null und für die übrigen Zustände auf einen
sehr großen negativen Wert initialisiert werden. Man
nehme an, daß zur Zeit i-1 die zwei wahrscheinlichsten
Wege in S&sub0;(i-1) (die Hochstellung bezeichnet die Zeit)
gefunden worden sind Zur Zeit i gibt es vier bei S&sub0;(i)
ankommende Wege, je zwei von S&sub0;(i-1) und S&sub1;(i-1). Die
Erweiterung von S&sub0;(i-1) auf S&sub1;(i) umfaßt die Berechnung der
Inkrementalmetrik, die gegeben wird durch
-
Δλ = ri1 xi1 + ri2 xi2
-
= ri1 + ri2
-
wobei ri1 und ri2 die Empfangszeichen (reelle Zahlen) sind
und xi1 und xi2 die Kreuzgitterzweigzeichen (+1 oder -1;
+1, +1 für den Ubergang von S&sub0;(i-1) zu S&sub0;(i)) auf
Kreuzgitterebene (bzw. Stufe) i sind. Die Inkrementalmetrik
wird zu den Saznmelmetriken der beiden Überlebenden bei
S&sub0;(i-1) hinzugefügt und ergibt damit die
Gesamt-Sainmelmetriken für die zwei Wege erweitert von S&sub0;(i-1) auf S&sub0;(i).
Ähnliche Berechnungen werden während der Erweiterung der
beiden Wege von S&sub1;(i-1) auf S&sub0;(i) durchgeführt.
-
Aus den vier Erweiterungen werden die zwei Wege
mit den höchsten Sammelmetriken ausgewählt und für
weitere Erweiterung von S&sub0;(i) zurückbehalten. Ähnliche
Berechnungen werden bei allen anderen Zuständen
durchgeführt. Abschliessend schließt das Kreuzgitter in einem
bekannten Zustand ab und die beiden überlebenden Wege,
die in diesem Zustand abschliessen, werden als die
wahrscheinlichsten und zweitwahrscheinlichsten Kandidaten
freigegeben (wobei die Wege-Metriken in dieser
Reihenfolge liegen). Sie werden der beste und zweitbeste
Weg genannt.
-
Die Erweiterung diese Beispiels auf den
Algorithmus zum Finden der L wahrscheinlichsten Kandidaten
erfordert, daß die L wahrscheinlichsten Kandidaten für
jeden Zustand und auf jeder Ebene gefunden werden müssen.
Für den binären Faltungscode mit Rate 1/n (n≥2) gibt es
2L an jedem Zustand ankommende Wege, aus denen die besten
L ausgewählt werden.
-
Verallgemeinerung auf hochratige Codes mit
nichtbinärem Kreuzgitter ist leicht zu erreichen. Man siehe
beispielsweise S. Benedetto et al., Digital Transmission
Theory (Theorie der digitalen Übertragung), Prentice
Hall, Englewood Cliffs, N.J., 1987, wo eine Besprechung
solch hochratiger Codes enthalten ist. Gleichermaßen ist
die Anwendung dieser Verfahren auf hochratige
Faltungscodes auf Grundlage von durchbrochenen Codes
unkompliziert. Eine Besprechung solcher Codes ist in Hagenauer
"Rate Compatible Punctured Convolutional Codes (RCPC
codes) and Their Applications" (Ratenkompatible
durchbrochene Faltungscodes (RCPC-Codes) und ihre
Anwendungen), IEEE Trans. Comm. Band COM-36, Seiten 389-
400, April 1988 zu finden.
Erwägungen über die Implementierung des parallelen
Algorithmus
-
Bei der Ausführung des parallelen GVAS erweist es
sich als zweckdienlich, L Gruppierungen der Größe 2M x
(N+M) zu erhalten, wobei 2M die Anzahl von Zuständen und
N die Anzahl von Informationsbit proRahmem ist. Der
ij-ste Eintrag in der l-sten Gruppierung wird als Eijl
bezeichnet, wobei 1≤i≤2M; 1≤j≤(N+M) ist. Eijl ist ein
Protokoll der Vorgeschichte des l-sten besten Weges im
Zustand Si-1 und im Augenblick j. Die Vorgeschichte dieses
Weges wird vollständig angegeben durch
-
(i) den vom Weg zur Zeit j-1 belegten Zustand, und
-
(ii) die relative Rangordnung unter den besten l
Überlebenden für den vom Weg zur Zeit j-1 belegten
Zustand.
-
Diese Information wird während des ersten
"Vorwärts-"Durchlaufs des Algorithmuses bewertet. Der
zweite Schritt ist in wesentlichen ein
Rückverfolgungsschritt, wo der l-ste beste Kandidat freigegeben wird, wo
das erste freigegebene Informationsbit der
Kreuzgitterebene
N entspricht und das letzte freigegebene Bit der
Kreuzgitterebene 1 (zeitlich umgekehrte Reihenfolge)
entspricht.
-
Die folgende alternative Implementierung ergibt
eine Verringerung des Speicherraums zum Suchen des
zweitbesten Weges. Die Implementierung beruht auf der
Tatsache, daß der zweitbeste Weg nach einer Abweichung
vom besten Weg zu einem späteren Zeitpunkt wieder
zusammenläuft und wie in Fig. 5A gezeigt niemals mehr
abweicht. Dies ist so, da nach dem Wiederzusammenlaufen
der beste Weg die höchste Metrik über die verbleibende
Kreuzgitterspanne aufweist. Eine Abweichung vom besten
Weg nach einem solchen Wiederzusammenlaufen (wie in
Fig. 5B) würde einen Kandidaten mit einer zugehörigen
Metrik ergeben, die kleiner (schlechter) als die des
Kandidaten ohne Abweichung ist.
-
Wenn man dies in Erinnerung behält, erweist es
sich als zweckdienlich, zwei Gruppierungen, eine
Hauptwegzustandsgruppierung von 2M x (N+M) und eine
Hilfsgruppierung von der Größe 2M x 1 zu erhalten. Der Eintrag
Eij in die Hauptwegzustandsgruppierung ist eine
Zusammenfassung der Vorgeschichte des besten Weges, der
zur Zeit j im Zustand Si-1 abschließt. Die Vorgeschichte
wird einmalig durch den von diesem Weg zur Zeit j-1
belegten Zustand angegeben.
-
Der i1-ste Eintrag in die Hilfsgruppierung wird
als E'i1 bezeichnet. Das Element E'i1 ist der Augenblick,
in dem der zweitbeste Weg in den Zustand Si-1 auf einer
gegebenen Ebene zum ersten Mal wieder mit dem besten Weg
durch denselben Zustand zusammengelaufen ist. Diese
Information wird zu jedem Augenblick aktualisiert (wie
oben sind Augenblicke mit Kreuzgitterstufen oder -ebenen
verbunden) . Abschliessend wird das Kreuzgitter in einem
bekannten Zustand, dem Zustand von nur Nullen
abschliessen.
-
Der freigegebene zweitbeste Weg ist derselbe wie
der beste Weg von E'&sub1;&sub1; zu (N+M), wobei E'&sub1;&sub1; der Augenblick
ist, in dem der zweitbeste Weg in den Zustand von nur
Nullen endlich mit dem besten Weg in diesen Zustand
zusammenläuft. Zu E'&sub1;&sub1; ist der freigegebene Zustand für
den zweitbesten Weg derjenige, der sich von dem für den
besten unterscheidet. Da es von einer Ebene nur zwei
Zustände gibt, die sich in einen Zustand auf der nächsten
Ebene erstrecken, kann dieser Freigabeschritt einmalig
durchgeführt werden. Im Augenblick E'&sub1;&sub1;-1 schaltet der
Rückverfolgungsteil des Algorithmus auf die
Hauptgruppierung um und fährt entlang der Vorgeschichte des zu
E'&sub1;&sub1; freigegebenen Zustandes für den zweitbesten Weg fort.
-
Diese Realisierungsalternative wird durch das
Beispiel in Figur 6 für einen Code mit Rate 1/2
aufgezeigt, wo die beste Folge der Weg mit nur Nullen ist.
Rückverfolgung wird für den besten Weg durch
durchgezogene Pfeile gezeigt, die von rechts nach links
zeigen. Die aktualisierte Hilfsgruppierung zeigt, daß der
zweite Weg vom besten Weg zum Zeitaugenblick j=8
abweicht. Hier ist der freigegebene Zustand für den
besten Weg S&sub0; und ist daher für den zweitbesten Weg S&sub1;. Zu
j=7 ist der freigegebene Zustand für den Zweitbesten S&sub2;.
Zu j=6 ist der freigegebene Zustand S&sub0; und zu diesem
Zeitpunkt ist der zweitbeste Weg mit dem besten Weg
(rückwärts) zusammengelaufen und die nachfolgenden
Zustände, die freigegeben werden, sind dieselben wie die
des besten Weges.
-
Bei dieser Realisierung wird ein Code mit Rate
R = 1/n angenommen. Bei einem allgemeinen Code mit Rate
R = k/n gibt es 2k Wege, die in jeden Zustand eintreten.
So enthält E'&sub1;&sub1; die oben angezeigten Informationen für den
Code mit R=1/n, enthält aber auch Informationen über den
Zustand, aus dem der zweitbeste Weg wieder mit dem besten
Weg zusammenlief.
Rechenerfordernisse
-
Die die Ausführungsgeschwindigkeit
beeinflussenden Faktoren sind die Berechnungen der Metrik und die
Auswahl der L besten Kandidaten in jeden Zustand auf
jeder Kreuzgitterebene. Zur Darstellung eines typischen
Rechenvorgangs ist ersichtlich, daß für einen Code mit
R=1/2 auf jeder Ebene 4 Inkrementalmetriken ausgewertet
werden müssen. Jede davon erfordert zwei Multiplikationen
und eine Addition. Die Metrik für die L Überlebenden aus
jedem Zustand wird aktualisiert und erfordert damit L
Additionen der zuvor angesammelten Metriken zur
Inkrementalmetrik. Für den Code mit R=1/2 ist daher auf jeder
Kreuzgitterebene die Durchführung von insgesamt 2M+1L+4
Additionen und 8 Multiplikationen erforderlich.
-
Zusätzlich zu den obigen Metrikberechnungen
müssen für jeden Zustand die L besten Kandidaten aus den
2L ankommenden Kandidaten ausgewählt werden. Dies
erfordert genau L paarweise Metrikvergleiche, da die 2L
Kandidaten sich in zwei geordneten Listen mit der Größe
L befinden. Als Beispiel gibt es für L=4 zwei geordnete
Listen mit Metriken von, zum Beispiel, a&sub1;> b&sub1;> c&sub1;> d&sub1; und
a&sub2;> b&sub2;> c&sub2;> d&sub2;. a&sub1; und a&sub2; werden zuerst verglichen und wenn
a&sub1;> a&sub2;(a&sub2;< a&sub1;), dann wird der Kandidat mit der Metrik a&sub1;(a&sub2;)
als der beste erklärt. Am nächsten zu vergleichen sind b&sub1;
und a&sub2;, dann b&sub2; und a&sub1; usw. Es läßt sich leicht
überprüfen, daß in diesem Fall genau vier paarweise
Vergleiche benötigt werden.
Serieller verallgemeinerter Viterbi-Algorithmus
-
Mit der seriellen Version des verallgemeinerten
Viterbi-Algorithmus werden die L wahrscheinlichsten
Kandidaten einzeln berechnet, beginnend mit dem
wahrscheinlichsten Weg. Während des ersten Durchlaufs wird
die normale Viterbi-Suche durchgeführt, um den
wahrscheinlichsten Weg zu identifizieren. In diesem Vorgang
wird die Hauptzustandsgruppierung aufgebaut. Am Ende
dieses ersten Durchlaufs ist die beste Weise, jeden
Zustand auf jeder Ebene aus einem bekannten Startzustand
heraus zu erreichen gefunden worden. Angenommen der
wahrscheinlichste Kandidat ist der Weg mit nur Nullen.
Dieser wird in dem in der Fig. 7 dargestellten Teil-
Kreuzgitter als durchgezogener Weg dargestellt. Es sind
noch die übrigen L-1 wahrscheinlichsten Wege zu finden.
-
Um den global zweitbesten Weg unter allen
möglichen Kandidaten, die mit dem besten Weg mit nur Nullen
zur Zeit j zusammenlaufen, zu finden, wird der mit der
höchsten Metrik ausgewählt. Dies findet sequentiell
statt, beginnend bei j=0, und fortschreitend zu j=N.
Unter Isolierung des Zustandes mit nur Nullen zur Zeit j,
um einen solchen Kandidaten zu finden&sub1; wird der
zweitbeste Kandidat, der zur Zeit j-1 überlebt, zur Zeit j
erweitert. Dieser Kandidat wird durch die gepunktete
Linie in der Fig. 7 dargestellt.
-
Als zweites findet man den besten unter allen
möglichen Kandidaten, die mit dem Weg mit nur Nullen zur
Zeit j zum ersten Mal wieder zusammenlaufen (zur Zeit j-1
noch nicht mit dem Weg mit nur Nullen zusammengelaufen)
Dieser Kandidat wird durch die strich-punktierte Linie in
Fig. 7 dargestellt. Man bemerke, daß dieser Kandidat ein
Wettbewerber für die Stelle des global Besten war und
zugunsten des Weges mit nur Nullen zurückgewiesen wurde.
Seine Vorgeschichte ist daher schon während des ersten
Durchlaufs (der normalen Viterbi-Suche) aufgezeichnet
worden.
-
Der beste der beiden Kandidaten verbleibt dann im
Wettbewerb für die Stelle des Zweitbesten zur Zeit j. Der
am Ende überlebende Kandidat ist der global Zweitbeste.
Während dieses Suchvorgangs muß nur der Zeitaugenblick
aufgezeichnet werden, zu dem der zweitbeste Weg wieder
mit dem besten zusammenläuft. Dieser wird in einer
Hilfsgruppierung der Größe 1 x 1 gespeichert. Dies ist
mit dem parallelen Algorithmus in Vergleich zu setzen,
der eine Hilfsgruppierung mit der Größe 2M x 1 benötigt.
Auf Grundlage der Hauptzustandsgruppierung, die während
der normalen Viterbi-Suche angefüllt wird, und der
Hilfsgruppierungsinformationen kann der zweitbeste Weg wie bei
dem parallelen Algorithmus erläutert gefunden werden.
-
Es ist veranschaulichend, noch ein Beispiel
durchzuarbeiten, nämlich das des Suchens nach dem
Drittbesten, wonach die Methodik verallgemeinert werden wird.
Die Figur 8 zeigt die global besten und zweitbesten Wege.
Der zweitbeste Weg läuft nach einer Anfangsabweichung zu
j=d&sub1; zum ersten Mal zu j=d&sub2; wieder mit dem Besten
zusammen. Die zu jedem Zeitaugenblick j entlang dem
besten Weg durchgeführten Grundberechnungen sind wie
folgt: der zu j-1 als global Drittbester überlebende
beste Kandidat wird zu Zeit j verlängert. Als zweites
sucht man nach dem Besten unter allen im Wettbewerb für
die Stelle als global Drittbester stehenden und wieder
mit dem global besten Weg zu j zusammenlaufenden (nicht
schon zur Zeit j-1 zusammengelaufenen) Wegen.
-
Die beiden Kandidaten werden verglichen und der
Beste der beiden überlebt für eine weitere Verlängerung.
Es ist zu bemerken, daß für die Ereignisse in der Figur 8
der zu j=d&sub2;-1 als Drittbester überlebender Kandidat in
Wirklichkeit der zweitbeste Kandidat in j=d&sub2;-1 ist. Dies
ist deshalb, weil dieser (drittbeste) Kandidat nicht ein
Teil des global zweitbesten Kandidaten ist. Dieser Weg
wird bis j=d&sub2; verlängert und ist einer der zwei
Kandidaten, die im Wettbewerb für die Stelle als Drittbester zu
j=d&sub2; stehen. Der andere Wettbewerber ist der beste unter
allen in j=d&sub2; wieder zusammenlaufenden Kandidaten
ausschließlich des global zweitbesten Kandidatens. So ist
dieser Wettbewerber der Zweitbeste nach dem global
zweitbesten Weg zwischen j=0 bis j=d&sub2;. Da nunmehr bekannt ist,
wie der zweitbeste nach einem Weg berechnet wird, kann
dies durchgeführt werden. Der beste der beiden überlebt
für eine weitere Verlängerung. Es sollte nunmehr klar
sein, daß eine rekursive Realisierung hervortritt, bei
der die Aufgabe des Suchens nach dem l-t besten
Kandidaten in die Aufgabe des Suchens nach einem k-t besten
Kandidaten zwischen zwei Verbindungsknoten zerlegt wird,
wobei k< l.
-
Zur Verallgemeinerung zur Suche nach dem l-t
besten Kandidaten zu jedem Augenblick j entlang dem
besten Weg wird der beste verfügbare Kandidat für diese
Stelle von j-1 verlängert. Auch wird der beste verfügbare
Kandidat für diese Stelle, der mit dem besten Weg im
Augenblick j (und nicht zu j-1) zusammenläuf t, gesucht.
Der beste der beiden Wettbewerber überlebt für eine
weitere Verlängerung.
Während diese Beschreibung auf einen Code mit
R = 1/n zutrifft, besteht für R = k/n die einzige
erforderliche Abänderung darin, daß die Hilfsgruppierung
auch Informationen über den Zustand enthält, aus dem der
zweitbeste Weg in den besten Weg einlief.
-
So läßt sich der allgemeine Ansatz des seriellen
GVA in folgenden Schritten zusammenfassen:
-
1. Initialisieren l=0.
-
2. (a) Erstellen einer Zustandsfolgegruppierung, die
die Zustandsfolge der bereits gefundenen l besten
Überlebenden enthält (Gruppierung mit Größe
Lx(N+M)).
-
(b) Bilden einer Zustandszählungsgruppierung mit
Größe 2Mx(N+M). Das ij-te Element dieser Gruppierung
Cij ist die Anzahl von Wegen unter den global l
besten Kandidaten, die den Zustand i zur Zeit j
durchlaufen. (Wenn l=0, so sind sowohl die
Zustandsfolge als auch die Zustandszählungsgruppierungen
leer).
-
3. Erhöhen l um 1.
-
4. Durchführen des parallelen GVA bei Rückbehaltung
der Cij+1 Wege mit den höchsten Metriken in den
Zustand i zur Zeiteinheit j. Am Ende, d.h. wenn
j=N+M, ist der (1+1)te beste Kandidat zusammen mit
allen l vorhergefundenen global besten Kandidaten
gefunden.
-
5. Fortfahren mit Schritt 3 bis l=L.
-
Es wird darauf hingewiesen, daß dieser serielle
GVA ungleich dem parallelen Algorithmus nicht erfordert,
daß die L besten Wege in jeden Zustand zu jeder
Zeiteinheit j zu finden seien.
-
Anwendun des GVA auf Fehlersicheruxi
Die obige Beschreibung betrifft Algorithmen, die
die L besten Wege durch ein abgeschlossenes Kreuzgitter
kennzeichnen. Diese Algorithmen werden nunmehr auf die
Durchführung von Fehlererkennung mit Faltungscodes mit
Rahmenbildung angewandt.
-
Fehlererkennung kann mit dem GVA durch
Vergleichen des Unterschiedes der Metriken der
wahrscheinlichsten und der zweitwahrscheinlichsten Wege und durch
Erklären des wahrscheinlichsten Weges als unzuverlässig,
wenn der Unterschied weniger als ein voreingestellter
Schwellwert T beträgt, durchgeführt werden.
-
Die Metrik kann optimal sein wie bei Decodierung
mit größter Wahrscheinlichkeit oder kann eine andere
"sinnvoele" Metrik sein, die bei verschiedenen
technischen Lösungen für einen suboptimalen ad-hoc-
Decodierer erscheinen könnte. Darüber hinaus ist die Wahl
einer Metrik für den GVA oder seine Anwendung auf
Fehlererkennung nicht kritisch. Der dem größten
angesammelten Metrikwert entsprechende Weg ist (bei einer
solchen sinnvollen Metrikwahl) der wahrscheinlichste Weg,
der auch als der beste Weg bezeichnet wird. Der Weg mit
der zweitgrößten Metrik wird der zweitbeste Weg genannt.
Gleichermaßen werden Wege mit fortschreitend kleineren
Metriken als drittbeste, viertbeste usw. bezeichnet.
-
So ist "wahrscheinlichster" nicht nur als am
wahrscheinlichsten (größte Wahrscheinlichkeit) in einem
probabilistischen Sinn, sondern auch als der ein Maximum
in irgendeinem vernünftigen "Güte-"Sinn aufweisende (Weg,
Kandidat usw.) zu verstehen.
-
Wie aus dem Stand der Technik bekannt ist kann
bei Erkennung eines Fehlers in einem Rahmen mit
Sprachinformationen eine Löschung erklärt werden und der
gelöschte Rahmen wird auf Grundlage von Rahmen-Rahmen-
Sprachredundanz neu geschätzt. Dies läßt sich wie von
D.J. Goodman in "Waveform substitution techniques for
recovering missing speech segments in packet voice
communications" (Wellenformsubstitutionsverfahren zur
Wiedergewinnung fehlender Sprachsegmente in
Paketsprachkommunikationen), IEEE Trans. Acoust. Speech, Signal
Processing, Band ASSP-34, Seiten 1440-1448, Dezember
1986, beschrieben, auf der Wellenformebene durchführen.
Als Alternative kann die Neuschätzung auf Bitstromebene
unter Verwendung von beispielsweise quantisierten
Informationen über Spektralparameter der Sprache wie die auf
Energie in Freguenzbändern bezogenen, von denen erwartet
wird, daß sie ein Verhältnis von Rahmen zu Rahmen
aufrechterhalten, durchgeführt werden.
-
Die Markierung einer Empfangsfolge (Rahmens) als
unzuverlässig kann zur Folge haben, daß die Empfangsfolge
als Löschung behandelt wird. Im Fall einer solchen
Löschung werden die L besten Kandidaten vom GVA
freigegeben und zur Auswahl des Besten aus den L Kandidaten
wird Rahmen-Rahmen-Redundanz benutzt. Dies kann
durchgeführt werden, indem die Sprachredundanz zur Erzeugung
einer Erstschätzung des gelöschten Rahmens benutzt wird.
Diese wird dann als Bezugswert für die Auswahl des besten
auszugebenden der L Kandidaten unter Verwendung einer für
den gegebenen Sprachcodierer zutreffenden Auswahlregel
benutzt.
-
Beispielsweise kann in sogenannten
Teilbandcodierern mit dynamischer Bitzuweisung (D-SBC), die in Cox et
al. "New Directions in Sub-Band Coding" (Neue Richtungen
in der Teilbandcodierung) IEEE Journal on Selected Areas
in Communications, Band SAC-6, Nr. 2, Seiten 391-409; Cox
et al., "A Sub-Band Coder Designed for Combined Source
and Channel Coding" (Ein für kombinierte Quellen- und
Kanalcodierung ausgelegter Teilbandcodierer) proc. IEEE
Conf. Acoust., Speech, Signal Processing, 1988, Seiten
235-238 und Hagenauer et al., "Variable-Rate Sub-Band
Speech Coding and Matched Channel Coding for Mobile Radio
Channels" (Teilbandsprachcodierung mit veränderlicher
Rate und angepaßter Kanalcodierung für Mobilfunkkanäle)
Proc. 38th IEEE Vehicular Technology Conf. Seiten 139-146
beschrieben sind, die Rahmen-Rahmen-Redundanz zur
Neuschätzung eines aktuellen Rahmens auf der Basis des
vorhergegangenen Rahmens benutzt werden. Insbesondere
kann, wenn ein D-SBC-codierter Rahmen als zu löschen
bestimmt wird, derjenige der vom erfindungsgemäßen GVA
verfügbaren L Kandidaten, der der Folge, die dem
gelöschten Rahmen unmittelbar vorangeht, am nächsten
liegt, als Neuschätzung der Löschung benutzt werden.
Diese "Nähe" kann beispielsweise auf einer hohen
Korrelation für einige Bitstellen in einem Rahmen-Rahmen-
Vergleich basieren.
-
Fehlererkennung kann ebenfalls ohne explizite
Auswertung des zweitwahrscheinlichsten Weges durchgeführt
werden, wenn nur Information darüber, ob der
wahrscheinlichste Kandidat zuverlässig oder unzuverlässig
ist, gewünscht werden. Dieses Ziel kann durch leichte
Abänderung des gewöhnlichen Viterbi-Algorithmus erreicht
werden. Diese implizite Fehlererkennung reicht zur
Einleitung der Neuschätzung für Sprachsignale wie oben
beschrieben aus.
-
In einer seriellen Version schreitet man auf
dieselbe Weise fort, als wenn man den Viterbi-Algorithmus
benutzt, und kennzeichnet damit den besten Kandidaten.
Der Vorgang schreitet dann sequentiell fort, beginnend
mit dem bekannten Zustand, um herauszufinden, ob die zum
ersten Mal mit dem besten Weg zu j, j = 1,2, ..., N
wieder zusammenlaufende beste Alternative eine Metrik
aufweist, die sich von der besten Metrik um weniger als
ein festgelegter Schwellwert unterscheidet. Wenn in
irgendeinem Stadium während der Suche ein solcher
Kandidat gefunden wird, dann wird der beste Weg als
unzuverlässig erklärt.
-
Abschliessend wird die oben eingeführte Anwendung
der automatischen Wiederholung (ARQ) für den GVA jetzt
ausführlicher besprochen. Es wird Bezug genommen auf die
Figur 9, in der ein Fließdiagramm für ein typisches ARQ-
System gezeigt wird.
-
Es ist zu sehen, daß eine Empfangssignalfolge aus
dem Kanal in den Demodulator 910 eintritt, um die am
Sender angelegte Modulation auf im wesentlichen die
gleiche Weise wie in Fig. 1 dargestellt umzukehren. Die
demodulierte Folge wird dann vom GVA-Decodierer wie von
dem in Fig. 9 dargestellten Block 920 angedeutet
verarbeitet. Der GVA-Decodierer kann ein beliebiger der
mehreren oben beschriebenen Versionen sein, nur wird
angenommen, daß der GVA die L besten in Frage kommenden
Folgen liefert.
-
In typischen ARQ-Systemen erweist es sich als
vorteilhaft, redundante Bit ebenfalls in die Quellenfolge
einzuschliessen, die die Paritätsbit eines entsprechenden
Blockcodes darstellen. So wird nach Decodierung vom GVA
eine nachfolgende Blockdecodierung durchgeführt, wie vom
Block 930 in der Fig. 9 angezeigt.
-
Wenn die Blockdecodierung ohne Fehleranzeige
durchgeführt wird, d.h. die Paritätsbit sich als
angemessen für die vom GVA verfügbar gemachte
wahrscheinlichste Folge erweisen, dann wird angenommen,
daß die blockdecodierte Version der vom GVA
bereitgestellten wahrscheinlichsten Folge die gesandte
Folge ist. Diese Folge wird wie vom Block 940 angezeigt
zur Weiterverarbeitung durch die sie verwendete
Anwendung, zum Beispiel Sprach- oder Datenverarbeitung,
gesandt.
-
Wenn jedoch die vom Block 930 in der Fig. 9
dargestellte Blockfehlerdecodierung anzeigt, daß ein
Fehler aufgetreten ist, dann wird zum GVA-Decodierer eine
Anforderung nach der nächstwahrscheinlichsten Sendefolge
gesandt. Diese zweitwahrscheinlichste Folge wird dann vom
Blockdecodierer decodiert und, wenn sie fehlerfrei ist,
als die von der Sendestelle herstammende Folge zur
Verarbeitung gesandt. Wenn die vom GVA bereitgestellte
zweitwahrscheinlichste Folge sich ebenfalls als
fehlerhaft herausstellt, kann dann eine Anforderung nach der
drittwahrscheinlichsten Folge usw. gestellt werden, bis
sich ein fehlerfreier decodierter Block wie vom Block 940
in der Fig. 9 angezeigt sich als für die Ablieferung
geeignet herausstellt.
-
Sollte keine vom GVA-Decodierer 920 decodierte
Folge sich als fehlerfrei herausstellen, nachdem eine
Anzahl L der wahrscheinlichsten Folgen untersucht worden
ist, dann wird wie vom Entscheidungsblock 960 angezeigt
eine Wiederholungsanforderung zur Sendestelle
zurückgesandt. Es wird jedoch darauf hingewiesen, daß die
Verfügbarkeit der wahrscheinlichsten in Frage kommenden
Folgen für die Auswertung vom Blockdecodierer die
Wahrscheinlichkeit sehr erhöht, daß die richtige Folge
identifiziert wird. Dies hat die günstige Wirkung, die
Anzahl benötigter Wiederholungsanforderungen sehr zu
reduzieren.
-
Die obige Beschreibung fand unter Benutzung
einzelner Verfahren statt, die dem Fachmann gut bekannt
sind. Die Verfahren und Algorithmen sind ohne Bezugnahme
auf einen bestimmten Prozessor bzw. ein bestimmtes
Steuerprogramm beschrieben worden. Stattdessen sind die
Einzelschritte so beschrieben worden, daß der Fachmann
die Prozessoren, Modulatoren, Programmiersprachen und
dergleichen, die für bestimmte Anwendungen verfügbar oder
bevorzugt sein können, leicht anpassen kann.
-
Während in der obigen Beschreibung die
Decodierung von Faltungscodierung als Beispiel einer möglichen
Anwendung des GVA der vorliegenden Erfindung benutzt
worden ist, ist zu betonen, daß die Verfahren über
Faltungscodes hinausschreitende Anwendung finden.
Insbesondere kann die Verarbeitung von Signalfolgen, die auf
andere Weisen codiert worden sind, z.B. Blockcodes, oder
verschiedenen Modulationsverfahren unterworfen worden
sind (z.B. kreuzgittercodierte Modulation oder
phasenkonstante Modulation oder in Kanäle mit der
klassischen Frequenz-, Amplituden-, Phasen- oder sonstiger
Verarbeitung einschließlich von Entzerrern zur Korrektur
von Kanalwirkungen eingeordnet worden sind) unter
Anwendung der vorliegenden Erfindung erreicht werden.
Eine vereinheitlichende Eigenschaft aller dieser und
sonstiger Anwendungen ist die Anwendung einer
Kreuzgitterstruktur zur Beschreibung der Zustände der
Verarbeitung zu jedem der entsprechenden Zeitpunkte während
der Decodierung. Eine weitere Besprechung von
kreuzgitterstrukturierten Zusammenhängen, bei denen sich die
gegenwärtige Erfindung als nützlich erweisen wird, findet
sich beispielsweise in dem Hagenauer und Sundberg am
21 Februar 1989 erteilten US-Patent Nr. 4,807,253.
-
In der obigen Beschreibung der vorliegenden
Erfindung ist die Verarbeitung von Sprachsignalen als
eine typische Anwendung benutzt worden, besonders wenn
Rahmen-Rahmen-Redundanz zum Vorteil benutzt werden kann.
Es ist jedoch zu verstehen, daß die vorliegende Erfindung
in zahlreichen anderen Zusammenhängen einschließlich
vieler, bei denen eine solche Rahmen-Rahmen-Redundanz
erwartet werden kann, angewandt werden wird. So enthalten
bekannterweise viele codierte Informationen, die visuelle
Bilder kennzeichnen, bedeutsame Redundanz. Ebenso
enthalten auch andere Tonsignale als Sprache und auch
Faksimilesignale oft nützliche Rahmen-Rahmen-Redundanz.
In jedem Fall kann die redundante Information auf eine
ebenbürtige Weise zu der oben für die Verarbeitung
codierter Sprachsignale beschriebene benutzt werden.
-
Typisch für bildbasierende Informationen, die
sich für die Verarbeitung nach der vorliegenden Erfindung
eignen, sind Informationen, die durch in der am 5. Mai
1989 von J.D. Johnston und R.J. Safranek eingereichten
US-Patentanmeldung Serien-Nr. 350,435 mit dem Titel
"Perceptually-Tuned Sub-Band Image Coder" (Perzeptorisch
abgestimmter Teilband-Bildcodierer) (betreffende
europäische Anmeldung: EP-A 0396368) beschriebene
Codierverfahren dargestellt werden. Darüber hinaus kann
Codierung der in der am 11. November 1988 von T. Kim
eingereichten US-Patentanmeldung Serien-Nr. 272,860 mit
dem Titel "Data Coding for Image Transmission Using
Vector Quantization" (Datencodierung für Bildübertragung
mit Vektorquantisierung) (betreffende europäische
Anmeldung: EP-A 0369689) beschriebenen Art
vorteilhafterweise entsprechend der vorliegenden Erfindung verarbeitet
werden. Jede dieser letzteren Patentanmeldungen ist dem
Rechtsnachfolger der vorliegenden Anmeldung zugewiesen.