-
Die
Erfindung betrifft ein Verfahren zum Senden und Empfangen eines
Datenblocks sowie entsprechende Sender und Empfänger.
-
So
genannte Soft Decision- und Soft-Input Soft-Output (SISO) Decoder
sind an sich aus dem Stand der Technik bekannt. Solche Decoder sind
beispielsweise bekannt aus
WO
2001/006662 ,
US 2007/0130494
A1 ,
US
2005/0258985 A1 ,
US 2007/0288833 A1 und
US 2008/0046799 A1 .
-
Aus
dem Stand der Technik sind ferner sog. MAP Decoder bekannt, die
ebenfalls zu den SISO Decodern gehören: Bahl, L.,
Jelinek, J., Raviv, J., Raviv, F.: Optimal decoding of linear codes
for minimizing symbol error rate, IEEE Transactions an Information
Theory, IT-20, pp. 284–287, March 1974.
-
Die
sog. SOVA Decoder gehören auch zu den SISO Decodern: Hagenauer,
J. Höher, P.: A Viterbi algorithm with soff-decision outputs
and its applications, Proc. IEEE GLOBECOM '89, Dallas, Texas, USA,
vol. 3, pp. 1680–1686, November 1989
-
Ferner
sind Soft Decision und SISO Decoding von Reed Solomon Codes aus
dem Stand der Technik bekannt: 1. Kötter, R., Vardy,
A.: Algebraic Soft-Decision Decoding of Reed-Solomon Codes, November
2003 vol. 49, pp. 2809–2825, 2. Kötter,
R., Vardy, A.: Saft Decoding of Reed Solomon Codes and Optimal Weight
Assignments, 4th International ITG Conference an Source and Channel
Coding, pp. 69–74, Berlin, Germany, January 2002.
3. Ponnampalam, V., Grant, A.: An efficient SISO algorithm
for Reed-Solomon codes, IEEE Int. Symp. Inform. Theory, Yokohama,
Japan, June 29–July 4, 2003, 4. Ponnampalam,
V., Vučetić, B.: Soft decision decoding of Reed-Solomon
codes, IEEE Trans. Communications, vol. 50, Nov. 2002, pp 1758–1768,
5. Vardy, A., Be'ery, Y.: Bit-level soft-decision decoding
of Reed-Solomon codes, IEEE Trans. Communications., vol. 39, pp.
440–445, March 1991.
-
Aus "Feedback
in Joint Channel Coding and Cryptography", Christoph Ruland
and Nataša Živić in: 7th International
Conference an Source and Channel Coding, Ulm, VDE/ITG 2008,
ist es bekannt, zu sendende Daten blockweise mit einem kryptografischen
Prüfwert zu versehen. Ferner ist hieraus auch ein entsprechendes
Empfangsverfahren bekannt.
-
Der
Erfindung liegt demgegenüber die Aufgabe zugrunde, ein
verbessertes Verfahren zum Senden und Empfangen eines Datenblocks
zu schaffen sowie einen entsprechenden Sender und Empfänger.
-
Die
der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den
Merkmalen der unabhängigen Patentansprüche gelöst.
Ausführungsformen der Erfindung sind in den abhängigen
Patentansprüchen angegeben.
-
Nach
Ausführungsformen der Erfindung wird ein Verfahren zum
Senden eines Datenblocks geschaffen. Als Teil der Kanalkodierung
des Datenblocks werden Bits eines vordefinierten Bitstroms in den
Datenblock nach einem vordefinierten Schema eingefügt.
Die Bitwerte der eingefügten Bits und die Positionen, an
denen die Bits dem Datenblock hinzugefügt werden, hängen
nicht von dem Inhalt des Datenblocks ab.
-
Durch
die Einfügung der Bits in den Datenblock wird ein Übertragungsblock
erzeugt, der zumindest den zu sendenden Datenblock und die in den Datenblock
eingefügten Bits beinhaltet. Dieser Übertragungsblock
wird dann über einen Nachrichtenkanal gesendet. Nach dem
Einfügen der Bits können weitere Kanalkodierungsschritte
erfolgen, wie zum Beispiel eine Kanalkodierung des Übertragungsblocks
mit einem Convolutional Code oder einem Turbo Code.
-
Nach
einer Ausführungsform der Erfindung erfolgt die Einfügung
der Bits in den Datenstrom durch bitweises Multiplexing.
-
Nach
einer Ausführungsform der Erfindung wird der vordefinierte
Bitstrom senderseitig generiert und nach dem vordefinierten Schema
in den Datenblock eingefügt.
-
Beispielsweise
soll ein Datenstrom übertragen werden, der aus mehreren
Datenblöcken besteht, wobei ein Datenblock eine Anzahl
von k Bits beinhaltet. In einen zu sendenden Datenblock wird dann
eine Anzahl von n Bits des vordefinierten Bitstroms eingefügt.
Der vordefinierte Bitstrom wird dabei beispielsweise synchron zu dem
zu sendenden Datenstrom generiert und in die aufeinander folgenden
Datenblöcke des Datenstroms nach dem vordefinierten Schema
eingefügt. Die in die Datenblöcke des Datenstroms
einzufügenden Bits des vordefinierten Bitstroms hängen
nicht von dem Inhalt des Datenstroms ab, sodass sie empfängerseitig
als a priori Information vorliegen können. Beispielsweise
wird hierzu empfängerseitig der vordefinierte Datenstrom in
identischer Weise generiert, und zwar beispielsweise synchron zu
dem Empfang des Datenstroms von dem Sender.
-
Nach
einer Ausführungsform der Erfindung besteht der vordefinierte
Bitstrom aus einer Reihe von identischen Bits, d. h. beispielsweise
nur aus „1” Bits oder nur aus „0” Bits.
-
Nach
einer Ausführungsform der Erfindung ist das vordefinierte
Schema so ausgebildet, dass nach einer ersten vorgegebenen Anzahl
von Bits des Datenblocks jeweils eine zweite vorgegebene Anzahl von
Bits des Bitstroms eingefügt wird. Beispielsweise ist die
erste vorgegebene Anzahl gleich der zweiten vorgegebenen Anzahl
gleich 1, sodass also alternierend in dem Übertragungsblock
ein Bit des vordefinierten Bitstroms auf ein Bit des Datenblocks
folgt.
-
Wenn
beispielsweise pro m Bits des Datenstroms ein Anzahl von n Bits
des vordefinierten Bitstroms hinzugefügt wird, ergibt sich
aufgrund der Einfügung der Bits eine Coderate von m/(m
+ n).
-
Nach
einer Ausführungsform der Erfindung werden für
den zu sendenden Datenblock Prüfdaten generiert. Mit Hilfe
der Prüfdaten kann empfängerseitig geprüft
werden, ob ein korrekter Empfang des Datenblocks vorliegt.
-
Nach
Ausführungsformen der Erfindung handelt es sich bei den
Prüfdaten um Cyclic Redundancy Check (CRC) Prüfdaten,
Paritäts-Prüfwerte, Hashwerte, Prüfsummen
oder die Redundanzinformation von Blockcodes oder Faltungscodes.
Nach weiteren Ausführungsformen der Erfindung kann es sich
bei den Prüfdaten um kryptographische Prüfinformation, so
genannte Cryptographic Check Values, handeln, die insbesondere mit
Hilfe eines symmetrischen und/oder asymmetrischen Schlüsselpaares
und/oder aus den betreffenden Teilblöcken erzeugt werden.
-
Nach
einer Ausführungsform der Erfindung wird der Datenstrom
nach der Einfügung der vordefinierten Bits punktiert, d.
h. es werden Bits gelöscht, um die Coderate zu erhöhen.
Falls auf der Senderseite punktiert worden ist, werden empfängerseitig dem
Datenstrom an den punktierten Positionen wieder Bits hinzugefügt.
-
In
einem weiteren Aspekt betrifft die Erfindung einen Sender, der zur
Durchführung eines erfindungsgemäßen
Verfahrens zum Senden eines Datenblocks ausgebildet ist.
-
In
einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Empfangen
eines Datenblocks. Nach Ausführungsformen der Erfindung
erfolgt empfängerseitig eine Leitungsdekodierung eines
den Übertragungsblock tragenden Signals. Die Leitungsdekodierung
erfolgt mit Hilfe eines Soft-Decision-Leitungsdekodierers. Die Ergebnisse
der Leitungsdekodierung werden also für jedes empfangene Bit
als Soft Decision ausgegeben und dienen als Grundlage für
eine nachfolgende SISO-Kanaldekodierung. In die SISO-Kanaldekodierung
können die eingefügten vordefinierten Bits als
a priori Information eingehen, indem die Zuverlässigkeitswerte
für den korrekten Empfang dieser Bits auf einen maximalen
Zuverlässigkeitswert gesetzt werden.
-
Nach
einer Ausführungsform der Erfindung wird empfängerseitig
ein Kanaldekodierer eingesetzt, der als Input Bits verarbeitet.
Dem Kanaldekodierer werden dann an den durch das vordefinierte Schema bestimmten
Positionen der eingefügten Bits die Werte dieser Bits als
a priori Information zur Verfügung gestellt.
-
Nach
einer Ausführungsform der Erfindung erfolgt die SISO-Kanaldekodierung
zunächst ohne die Berücksichtigung der a priori
bekannten Informationen hinsichtlich der eingefügten Bits.
In diesem Fall werden die von dem SISO-Kanaldekodierer in Form von
Zuverlässigkeitswerten gelieferten Bitwerte der vordefinierten
Bits mit der a priori bekannten Information verglichen. Wenn die
von dem SISO-Kanaldekodierer gelieferten Bitwerte der vordefinierten Bits
nicht mit der a priori Information übereinstimmen, so werden
die betreffenden L-Werte dieser Bits korrigiert und die SISO-Kanaldekodierung
wird auf der Basis dieser korrigierten L-Werte nochmals durchgeführt.
Diese Ausführungsform ist besonders vorteilhaft, wenn ein
bereits existenter Empfänger nachträglich zur
Ausführung des erfindungsgemäßen Empfangsverfahrens
umgerüstet werden soll.
-
Nach
einer Ausführungsform der Erfindung beinhaltet der empfangene Übertragungsblock
Prüfdaten, die durch einen Fehlererkennungsenkoder generiert
werden. Empfängerseitig wird dann mit Hilfe der Prüfdaten
geprüft, ob der Datenblock korrekt empfangen worden ist.
Falls die Prüfung ergibt, dass kein korrekter Empfang vorliegt,
kann ein Verfahren zur Fehlerkorrektur gestartet werden.
-
Nach
einer Ausführungsform der Erfindung werden für
die Durchführung des Verfahrens zur Fehlerkorrektur die
von der SISO-Kanaldekodierung gelieferten Zuverlässigkeitswerte,
d. h. die so genannten L-Werte, verwendet.
-
Nach
einer Ausführungsform der Erfindung wird das Verfahren
zur Fehlerkorrektur so durchgeführt, dass ein oder mehrere
Bits des Übertragungsblocks, denen die niedrigsten Zuverlässigkeitsbetragswerte
durch die SISO-Kanaldekodierung zugeordnet worden sind, verändert
werden. Nach Veränderung dieser Bitwerte wird dann geprüft,
ob der dann vorliegende empfangene Datenblock mit den zugeordneten
Prüfdaten stimmig ist. Ist dies der Fall, so gilt der Datenblock
als korrekt empfangen. Ist dies nicht der Fall, so können
weitere Fehlerkorrekturversuche unternommen werden, indem zusätzliche
oder andere Bits in dem Übertragungsblock geändert
werden, und zwar beispielsweise beginnend mit denjenigen Bits, die
am wenigsten wahrscheinlich korrekt empfangen worden sind. Hierzu
kann zunächst eine Sortierung der Bits des Übertragungsblocks
nach deren Zuverlässigkeitsbetragswerten durchgeführt
werden.
-
Nach
einer Ausführungsform der Erfindung gilt ein Übertragungsblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen Datenblock des Übertragungsblocks generiert
werden, mit den empfangenen Prüfdaten dieses Übertragungsblocks
identisch sind.
-
Nach
einer Ausführungsform der Erfindung gilt ein Übertragungsblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen Datenblock des Übertragungsblocks generiert
werden, sich von den empfangenen Prüfdaten dieses Übertragungsblocks
in nicht mehr als einer vorgegebenen Anzahl von Bitpositionen unterscheiden.
Bei der Anzahl der unterschiedlichen Bitpositionen der zu vergleichenden
empfangenen Prüfdaten und der empfängerseitig
generierten Prüfdaten handelt es sich um die so genannte
Hammingdistanz. Wenn also die Hammingdistanz zwischen den empfangenen
Prüfdaten und den empfängerseitig generierten
Prüfdaten nicht über einem vorgegebenen Schwellwert
liegt, so gilt der dazugehörige Datenblock als korrekt
empfangen. Liegt diese Hammingdistanz dagegen über dem
vorgegebenen Schwellwert, so gilt der Datenblock als nicht korrekt
empfangen.
-
Das
Fehlerkorrekturverfahren wird dann beispielsweise so durchgeführt,
dass ein oder mehrere Bits nur in dem Datenblock des Übertragungsblocks, denen
die niedrigsten Zuverlässigkeitswerte zugeordnet sind,
verändert werden. Die Bitpositionen der empfangenen Prüfdaten
werden also im Unterschied zu der oben beschriebenen Ausführungsform
des Fehlerkorrekturverfahrens nicht berücksichtigt, sondern
sie bleiben unverändert und gehen auch nicht in die Sortierung
nach den Zuverlässigkeitswerten ein.
-
Nach
der versuchsweisen Veränderung eines oder mehrerer der
Bitwerte des zu korrigierenden Datenblocks wird dann geprüft,
ob die Hammingdistanz zwischen den empfangenen Prüfdaten
und den im Verifikationsmodul über den empfangenen und versuchsweise
geänderten Teilblock berechneten Prüfdaten nicht über
dem vorgegebenen Schwellwert liegt.
-
Dieser
Schwellwert wird auf Grund der Bitfehlerrate hinter der Kanalcodierung
und der Eigenschaften des Fehlererkennungsenkoders festgelegt. Wenn
die Hammingdistanz nicht größer als dieser Schwellwert
ist, so gilt dieser Datenblock als korrekt empfangen. Ist dies nicht
der Fall, so können weitere Fehlerkorrekturversuche unternommen
werden, indem zusätzliche oder andere Bits in dem Datenblock geändert
werden, und zwar beispielsweise beginnend mit denjenigen Bits, die
am wenigsten wahrscheinlich korrekt empfangen worden sind. Hierzu kann
zunächst eine Sortierung der Bits des Datenblocks nach
deren Zuverlässigkeitswerten durchgeführt werden.
-
Nach
Ausführungsformen der Erfindung wird der Soft Output des
Soft-Decision-Leitungsdecodierer in einen SISO-Kanal-Decodierer
zur Kanaldekodierung eingegeben. Bei dem SISO-Kanal-Decodierer kann
es sich um einen MAP Decoder, SOVA Decoder oder einen anderen SISO-Dekodierer,
z. B. zur Dekodierung von Reed Solomon Codes, handeln.
-
In
einem weiteren Aspekt betrifft die Erfindung ein Telekommunikationssystem,
welches zumindest einen erfindungsgemäßen Sender
und zumindest einen erfindungsgemäßen Empfänger
beinhaltet.
-
Ausführungsformen
der Erfindung sind besonders vorteilhaft, da eine verbesserte Kanalkodierung
ermöglicht wird, insbesondere für eine verbesserte
SISO-Kanaldekodierung. Insbesondere ermöglicht die Erfindung
eine verbesserte Qualität der Übertragung, bei
einer nur wenig erhöhten – oder aufgrund entsprechender
Punktierung – nicht erhöhten Coderate.
-
Im
Weiteren werden Ausführungsformen der Erfindung mit Bezugnahme
auf die Zeichnungen näher erläutert. Es zeigen:
-
1 ein
Blockdiagramm einer ersten Ausführungsform eines erfindungsgemäßen
Senders,
-
2 ein
Blockdiagramm einer ersten Ausführungsform eines erfindungsgemäßen
Empfängers,
-
3 ein
Blockdiagramm einer zweiten Ausführungsform eines erfindungsgemäßen
Senders,
-
4 ein
Blockdiagramm einer zweiten Ausführungsform eines erfindungsgemäßen
Empfängers.
-
Elemente
der nachfolgenden Ausführungsformen, die einander entsprechen,
sind jeweils mit denselben Bezugszeichen gekennzeichnet.
-
Die 1 zeigt
eine Ausführungsform eines erfindungsgemäßen
Senders 100. Der Sender 100 dient zur Versendung
zum Beispiel eines Datenstroms, der aus mehreren aufeinander folgenden
Datenblöcken besteht. Die 1 zeigt
exemplarisch einen solchen Datenblock 102. Beispielsweise
hat der Datenblock 102 eine Länge von 512 Bits,
d. h. die Bitpositionen B0, B1, B2, ... B511, wie in 1 dargestellt.
-
Der
Sender 100 verfügt über einen Multiplexer 104,
einen Bitstromgenerator und einen Kanalencoder 160 zur
Codierung der zu sendenden Datenblöcke, insbesondere also
des Datenblocks 102.
-
Der
Bitstromgenerator 106 ist dazu ausgebildet, einen vordefinierten
Bitstrom 108 zu generieren. Beispielsweise kann der vordefinierte
Bitstrom aus vordefinierten Bitstromblöcken einer vorgegebenen Länge
zusammengesetzt sein, wie zum Beispiel in Form des Bitstromblocks 108,
der in der 1 exemplarisch dargestellt ist.
In der hier betrachteten Ausführungsform hat der Bitstromblock 108 die
halbe Bitlänge des Datenblocks 102, d. h. eine
Länge von 256 Bits mit den Bitpositionen A0, A1, A2, ...
A255, wie in der 1 dargestellt. Der Bitstromblock 108 kann
ein vordefiniertes Bitmuster beinhalten.
-
Beispielsweise
ist das Bitmuster so ausgebildet, dass sämtliche der Bitpositionen
A0 bis A255 denselben Bitwert, nämlich den Wert 0 oder
1, aufweisen oder es folgen alternierend die Bitwerte 1 und 0 in
dem Bitstromblock 108 aufeinander. Das Muster kann auch
komplexer ausgebildet sein und mehrere aufeinander folgende Bitstromblöcke 108 übergreifen.
-
Die
Bitstromblöcke des Bitstroms und die Datenblöcke
des Datenstroms haben zueinander ein vordefiniertes Längenverhältnis,
sodass für eine erste vorgegebene Anzahl von Bits eines
jeden Datenblocks eine zweite vorgegebene Anzahl von Bits des entsprechenden
Bitstromblocks eingefügt wird, wobei das Verhältnis
der ersten Anzahl zu der zweiten Anzahl das Bitlängenverhältnis
eines der Datenblöcke zu einem der Bitstromblöcke
angibt.
-
Der
Bitstromgenerator 106 kann so ausgebildet sein, dass er
einen Speicher aufweist, in dem der Bitstromblock 108 gespeichert
ist. Durch wiederholte Ausgabe des Bitstromblocks 108 wird
dann der Bitstrom generiert. Der Bitstromgenerator 106 kann auch
ein rückgekoppeltes Schieberegister oder dergleichen beinhalten,
um einen Bitstrom mit dem vordefinierten Bitmuster zu generieren.
-
Der
Multiplexer 104 hat einen ersten Eingang 110 zur
Eingabe der Datenblöcke des Bitstroms und einen zweiten
Eingang 112 zur Eingabe der Bitstromblöcke 108 des
Bitstroms, den der Bitstromgenerator 106 generiert.
-
Der
Multiplexer 104 ist so ausgebildet, dass er die Bits des
Bitstromblocks 108 nach einem vordefinierten Schema in
den Datenblock 102 einfügt. Hierdurch wird ein Übertragungsblock 114 erzeugt.
-
Das
Schema kann so ausgebildet sein, dass auf zwei Bits des Datenblocks 102 ein
Bit des Bitstromblocks 108 folgt, sodass die in der 1 gezeigte
Reihenfolge der Bitpositionen des Übertragungsblocks 114 resultiert.
Bei dieser Ausführungsform ist also die erste vorgegebene
Anzahl gleich 2 und die zweite vorgegebene Anzahl gleich 1, was
mit dem Bitlängenverhältnis des Datenblocks 102 und des
Bitstromblocks 108 übereinstimmt.
-
In
analoger Art und Weise wird für sämtliche der
Datenblöcke des zu sendenden Datenstroms verfahren, wobei
vorzugsweise die Eingabe der aufeinander folgender Datenblöcke
synchron zu der Eingabe der aufeinander folgenden Bitstromblöcke
in den Multiplexer 104 erfolgt.
-
Der Übertragungsblock 114 sowie
die weiteren, für den Datenstrom generierten Übertragungsblöcke
werden dann an den Kanalencoder 160 gegeben, der den Datenübertragungsblock 114 sowie
die weiteren für den Datenstrom generierten Übertragungsblöcke
mit Redundanz entsprechend dem vom Kanalencoder 160 verwendeten
Kodierverfahren, z. B. einem Convolutional Code oder Turbo Code,
versieht, und dann nach einer Leitungskodierung durch den Leitungsencoder 115 von
dem Sender 100 über einen Nachrichtenkanal 116 gesendet.
-
Von
besonderem Vorteil ist dabei, dass durch die Einfügung
der Bits des von dem Bitstromgenerator 106 gelieferten
Bitstroms in die Datenblöcke des Datenstroms Redundanz
hinzugefügt wird, sodass die zu übertragenden
Daten des Datenstroms bei der Übertragung über
den Nachrichtenkanal gegenüber Übertragungsfehlern
zusätzlich zu der vom Kanalencoder 160 generierten
Redundanz geschützt werden. Von besonderem Vorteil ist
dabei ferner, dass dies mit geringem schaltungstechnischen bzw.
Datenverarbeitungsaufwand geschehen kann, da die Bitwerte der einzufügenden
Bits nicht von den Datenwerten des zu übertragenden Datenstroms
abhängen, sondern vordefiniert sind. Dies hat den weiteren
Vorteil, dass die Latenzzeit des Senders zwischen der Eingabe des
Datenblocks 102 und dem Senden des Übertragungsblocks 114 besonders
gering sein kann.
-
Nach
Ausführungsformen der Erfindung beinhaltet der Sender 100 vorzugsweise
Mittel zur Quellenkodierung des Datenstroms, sodass der quellenkodierte
Datenstrom in die Mittel zur Kanalkodierung eingegeben wird. Auf
die Kanalkodierung fol gen vorzugsweise Mittel zur Leitungskodierung,
d. h. z. B. der Leitungsencoder 115, in dem Sender 100 zur
Leitungskodierung der Übertragungsblöcke.
-
Die 2 zeigt
einen Empfänger 118 zum Empfang der von dem Sender 100 gesendeten
Daten. Der Empfänger 118 hat einen Soft Decision
Leitungsdekodierer (SDLD) 120. Beim Empfang eines Signals über
den Nachrichtenkanal 116 führt der Leitungscekodierer 120 eine
Soft Decision durch und liefert entsprechende Outputwerte an einen
SISO-Kanaldekodierer 122. Der SISO-Kanaldekodierer 122 erhält
also von dem Leitungsdekodierer 120 für jedes über
den Kanal 116 gesendete Bit eine reellwertige Zahl, die
aus dem physikalischen Empfangssignal abgeleitet worden ist.
-
Der
SISO-Kanaldekodierer 122 hat einen ersten Eingang 124 zum
Empfang der Input-Werte von dem Leitungsdekodierer 120 und
einen zweiten Eingang 126 zum Empfang des vordefinierten
Bitstroms von einem Bitstromgenerator 106 des Empfängers 118.
Der Bitstromgenerator 106 des Empfängers 118 ist
zur Ausgabe des identischen vordefinierten Bitstroms ausgebildet,
den der Bitstromgenerator 106 des Senders 100 (vgl. 1)
ausgibt. Die Ausgabe des Bitstroms des Bitstromgenerators 106 des Empfängers 118 kann
hier so erfolgen, dass die vorgegebenen Bits durch Ausgabe von vorzeichenbehafteten
maximalen L-Werten ausgegeben werden, da ja Gewissheit hinsichtlich
der Korrektheit dieser Bits besteht.
-
Wenn
der Empfänger 118 beispielsweise die leitungskodierten
Bits über den Nachrichtenkanal 116 empfängt,
so generiert der Leitungsdekodierer 120 eine Reihenfolge
von reellen Zahlen, d. h. zum Beispiel eine reelle Zahl für
jedes über den Kanal gesendete Bit, welche über
den Eingang 124 in den SISO-Kanaldekodierer 122 eingegeben
werden. Intern im SISO Dekoder 122 wird für jedes
in dem Übertragungsblock 114' beinhaltete Bit
des Bitromblocks 108 der a-priori-L-Wert vorbelegt, d.
h. auf einen maximalen L-Wert gesetzt. Die L-Werte für
die Bits des Datenblocks 102 werden hingegen initial z.
B. auf 0 gesetzt, wenn hinsichtlich dieser Bits keine a-priori Information
empfängerseitig vorliegt oder auf einen Wert, der der a-priori
Information entspricht.
-
Die
L-Werte für die Bits des Datenblocks 102 können
aber auch einen anderen initialen Wert als 0 haben, und zwar insbesondere
dann, wenn empfängerseitig eine a-priori Wahrscheinlichkeit
für das Auftreten bestimmter Bitwerte in dem Datenblock 102 bekannt
ist. Eine solche a-priori Wahrscheinlichkeit kann empfängerseitig
z. B. aus dem Verhalten der Datenquelle oder aus vorhergehenden
Decodiervorgängen abgeleitet werden.
-
Beispielsweise
wird also der Bitstromblock 108 (vgl. 1)
von dem Bitstromgenerator 106 des Empfängers 118 über
den Eingang 126 in den SISO-Kanaldekodierer 122 eingegeben,
und zwar in Form der vorzeichenbehafteten maximalen L-Werte für
die Bitpositionen des Übertragungsblocks 114', die
durch den Bitstromgenerator 106 auf der Senderseite definiert
wurden, um so die a priori empfängerseitig bekannte Information
hinsichtlich der in den Datenstrom eingefügten Bits in
die SISO-Kanaldekodierung eingehen zu lassen. Mit diesen maximalen L-Werten
werden im SISO-Kanaldecodierer 122 die entsprechenden Bitpositionen
des Übertragungsblocks 114' vorbelegt, t, im dargestellten
Fall also an den durch das auch empfängerseitig bekannte
vordefinierte Schema bestimmten Bitpositionen der Bits A0, A1 ...
A255 des Übertragungsblocks 114'.
-
Nach
einer Ausführungsform der Erfindung hat der Kanalencoder 160 des
Senders 100 eine Koderate von beispielsweise 1/N, wobei
N eine natürliche Zahl ist. Der Kanalencoder 160 gibt
dann für jedes zu sendende Bit des Übertragungsblocks 114 eine
Anzahl von N Bits aus, die im Weiteren als N-Tupel bezeichnet werden.
Dementsprechend gibt der Soft Decision-Leitungsdekodierer 120 des
Empfängers 118 für jedes Bit des Übertragungsblocks 114 ein
N-Tupel von reellen Zahlen über den Eingang 124 an
den SISO-Kanaldecodierer aus. Zu jedem N-Tupel gibt es einen initialen
L-Wert, der die Wahrscheinlichkeit der Bits des Übertragungsblocks 114' angibt. Für
die N-Tupel, die für die vordefinierten Bits des Bitstromblocks 108 empfangen
werden, werden die von dem Bitstromgenerator 106 erzeugten
Bits verwendet, wobei der SISO-Kanaldecodierer 122 für
den Wert jeden dieser Bits über den Eingang 126 einen vorzeichenbehafteten
maximalen L-Wert als a priori Information erhält. Der SISO-Kanaldecodierer
setzt die initialen Wahrscheinlichkeiten der Bits des Übertragungsblocks 114 initial
z. B. auf 0, wenn für sie keine a priori Information vorliegt
Je nach Ausführungsform kann die Ersetzung dieser maximalen
L-Werte der vordefinierten Bits in dem SISO Decoder 122 erfolgen
oder außerhalb des SISO Decoder 122, indem die
L-Werte nicht über den Eingang 126 in den SISO Decoder 122 eingegeben
werden.
-
Nach
einer Ausführungsform der Erfindung arbeitet der SISO-Kanaldekodierer 122 iterativ
ausgehend von einem Startwert für die L-Werte des zu empfangen Übertragungsblocks 114.
Für die Bits des Übertragungsblocks 114,
die zum Datenblock 102 gehören, werden die L-Werte
initial z. B. auf 0 gesetzt, wenn für sie keine a priori
Information vorliegt, wohingegen die L-Werte derjenigen Bits des Übertragungsblocks 114,
für die a priori Information vorliegt, d. h. die Bits des
Bitstromblocks 108, mit maximalen L-Werten vorbelegt werden,
da ja empfängerseitig Sicherheit hinsichtlich der korrekten
Werte dieser Bits besteht. Von den so definierten Startwerten für
die L-Werte ausgehend kann die SISO Kanaldekodierung dann unter
Nutzung von an sich aus dem Stand der Technik bekannten Verfahren
zur SISO Kanaldekodierung der über den Eingang 124 empfangenen Werte
iterativ durchgeführt werden.
-
Alternativ
kann auch so vorgegangen werden, dass der Startwert für
alle L-Werte zunächst z. B. 0 ist, also auch für
die Bits des Bitstromblocks 108. Nach der ersten Iteration
gibt der SISO-Kanaldekodierer 122 einen Satz L-Werte aus.
Diese werden dann außerhalb des SISO-Kanaldekodierers durch den
Empfänger 118 dahingehend modifiziert, dass die
L-Werte für die Bits des Bitstromblocks 108 in
diesem Satz von L-Werten jeweils auf einen maximalen L-Wert gesetzt
werden. Der so modifizierte Satz von L-Werten wird dann in den SISO-Kanaldekodierer 122 eingegeben,
z. B. über den Eingang 126, so dass auf dieser
Basis dann die zweite und erforderlichenfalls weitere Iterationen
durchgeführt werden können. Durch die Modifizierung
des nach der ersten Iteration ausgegebenen Satzes von L-Werten geht
hier also die a priori Information in die SISO-Kanaldekodierung
ein.
-
Durch
die SISO-Kanaldekodierung, die von dem SISO-Kanaldekodierer 122 durchgeführt,
erhält man empfängerseitig also den Übertragungsblock 114'.
Entsprechend wird für sämtliche aufeinander folgend
empfangenen Übertragungsblöcke empfängerseitig
vorgegangen. Dabei arbeiten der Sender 100 und der Empfänger 118 synchron,
d. h. der Empfänger 118 erkennt und kennt die
Struktur der über den Nachrichtenkanal 116 empfangenen
Daten. Für die Synchronisierung des Senders 100 und
des Empfängers 118 können an sich bekannte
Synchronisierungsverfahren eingesetzt werden. Beispielsweise kann
die Synchronisierung basierend auf den empfangenen Daten selbst
erfolgen.
-
Der
Empfänger 118 hat ferner einen Demultiplexer 128 zur
Entfernung der eingefügten Bits aus dem Übertragungsblock 114',
sodass man den Datenblock 102' erhält, welcher über
einen Ausgang 130 des Empfängers ausgegeben wird.
Der ebenfalls von dem Demultiplexer 128 zurück
gewonnene Bitstromblock 108 kann je nach Ausführungsform
zur Synchronisierung des Empfängers 118 mit dem
Sender 100 oder des Bitstromgenerator 106 des
Empfängers 118 mit dem Bitstromgenerator 106 des
Senders 100 verwendet werden. Der Demultiplexer 128 macht also
die Operation des Einfügens der Bits, welche von dem Multiplexer 104 in
der Ausführungsform der 1 vorgenommen
wird, rückgängig, d. h. er wendet das vordefinierte
Schema an, welches zuvor von dem Multiplexer 104 zur Einfügung
der Bits verwendet worden ist, um diese Bits wieder aus dem Übertragungsblock 114' zu
entfernen.
-
Je
nach Ausführungsform kann vor der Ausgabe des Datenblocks 102' noch
eine Quellendekodierung erforderlich sein.
-
Die 3 zeigt
eine weitere Ausführungsform eines erfindungsgemäßen
Senders 100. Ergänzend zu der Ausführungsform
der 1 hat der Sender 100 in der Ausführungsform
der 3 einen Fehlererkennungsenkoder 132.
Der Fehlererkennungsenkoder 132 ist mit dem Eingang 110 des
Multiplexers 104 verbunden, sodass in den Fehlererkennungsenkoder 132 ebenfalls
der Datenblock 102 eingegeben wird. Der Fehlererkennungsenkoder 132 dient
zur Kodierung des Datenblocks 102 mit einem Fehler erkennenden
Code, vorzugsweise einem Blockcode. Durch den Fehlererkennungsenkoder 132 werden
Prüfdaten 134 für den Datenblock 102 erzeugt.
-
Bei
den Prüfdaten handelt es sich zum Beispiel um ein CRC,
Paritätsbits, eine Prüfsumme, einen One-Way-Hashfunktionswert,
Redundanzwerte eines systematischen Blockcodes oder eines unsystematischen
Codes oder dergleichen.
-
Der
Fehlererkennungsenkoder 132 kann auch zur Generierung von
kryptographischen Prüfdaten ausgebildet sein, wie zum Beispiel
zur Generierung eines Message Authentication Code (MAC) oder eines
Hashed Message Authentication Code (H-MAC). Die Generierung von
digitalen Signaturen durch den Fehlererkennungsenkoder 132 kann
zum Beispiel gemäß ISO 9796-2, ISO
14888 oder ISO 15946-4 erfolgen. Die Generierung
von MACs kann gemäß ISO/IEC 9797-1,
DES, 3-DES oder AES [ISO/IEC 18033-3] erfolgen.
Die Generierung von H-MACs durch den Fehlererkennungsencoder 132 zur
Fehlererkennung kann gemäß ISO/IEC 9797-2 erfolgen.
-
In
dem hier betrachteten schematischen Beispielsfall beinhalten die
Prüfdaten 134 die Bitpositionen P0, P1, ... P31
-
Ohne
Beschränkung der Allgemeinheit wird in den nachfolgenden
Ausführungsbeispielen ein systematischer Blockcode verwendet,
bei dem die Prüfinformation als Prüfdaten 134 angehängt
wird. Es ist aber auch möglich, dass ein Code verwendet wird,
der den Eingangssymbolen Codesymbole zuordnet, die die Redundanz
in einer nicht-systematischen Weise beinhalten.
-
Der
Fehlererkennungsenkoder 132 zur empfängerseitigen
Fehlererkennung kann eine sogenannte Cryptographic Check Function
implementieren, wie zum Beispiel zur Generierung eines MAC oder
H-MAC. Beispielsweise handelt es sich bei den Prüfdaten 134 um
die digitale Signatur des Datenblocks 102, welche mit einem
ge heimen Schlüssel, der zum Beispiel in dem Fehlererkennungsenkoder 132 gespeichert
ist, generiert wird.
-
Die
Prüfdaten 134 und der Übertragungsblock 114 werden
in ein Modul 136 eingegeben, welches die Prüfdaten 134 an
den Übertragungsblock 114 anhängt. Dieser
resultierende Übertragungsblock 150 wird dann
z. B. in einen Convolutional Encoder 160 eingegeben, um
ihn nach einer Leitungskodierung durch den Leitungsencoder 115 über
den Nachrichtenkanal 116 zu senden.
-
Die 4 zeigt
eine Ausführungsform eines erfindungsgemäßen
Empfängers 118 zum Empfang von dem Sender 100 der
Ausführungsform der 3. Ergänzend
zu der Ausführungsform der 2 beinhaltet
der Empfänger 118 in der Ausführungsform
der 4 ein Modul 138, welches das Anhängen
der Prüfdaten 134 an den Übertragungsblock 114 rückgängig
macht. Das Modul 138 hat einen ersten Ausgang 140,
an dem die empfangenen Prüfdaten 134' ausgegeben
werden, die aufgrund der Übertragung über den
Nachrichtenkanal 116 fehlerbehaftet sein können.
An seinem anderen Ausgang 142 gibt das Modul 138 den Übertragungsblock 114' aus, und
zwar ohne die Prüfdaten. Auch der Übertragungsblock 114' kann
fehlerbehaftet sein.
-
Der
Empfänger 118 hat einen Fehlererkennungsenkoder 132,
der zur Durchführung derselben Kodierung wie der Fehlererkennungsenkoder 132 des
Senders 100 der Ausführungsform der 3 ausgebildet
ist. Von dem Demultiplexer 128 empfängt der Fehlererkennungsenkoder 132 den
möglicherweise fehlerbehafteten Datenblock 102' und
generiert daraus die Prüfdaten 134''. Die Prüfdaten 134' und
die Prüfdaten 134'' werden dann in ein Berechnungsmodul 144 eingegeben,
welches zur Berechnung der Hammingdistanz d der Prüfdaten 134' und 134'' dient.
Diese Hammingdistanz d wird in ein Entscheidungsmodul 146 eingegeben.
-
Falls
d kleiner oder gleich ein vordefinierter Schwellwert („threshold”)
ist, so wird davon ausgegangen, dass der Datenblock 102' korrekt
empfangen worden ist. Ein Übertragungsfehler liegt dann also
nur bezüglich der Prüfdaten 134' vor.
Dabei geht die Erfindung von der Erkenntnis aus, dass ein Übertragungsfehler
in dem Datenblock 102 bei der Generierung der Prüfdaten 134'' durch
den Fehlererkennungsenkoder 132 zu stark von den Prüfdaten 134' abweichenden
Prüfdaten geführt hätte, also zu einer großen
Hammingdistanz, die größer als der vorgegebene
Schwellwert ist. Wenn aber der Unterschied zwischen den Versionen
der Prüfdaten 134' und 134'' nicht sehr
groß ist, d. h. wenn die Hammingdistanz d kleiner als der
Schwellwert ist, so kann davon ausgegangen werden, dass der Datenblock 102' tatsächlich
korrekt empfangen worden ist, und nur die Prüfdaten 134' nicht
korrekt sind.
-
Ist
das Gegenteil der Fall, d. h. ist die Hammingdistanz d nicht kleiner
als der Schwellwert, so wird ein Fehlerkorrekturmodul 148 aufgerufen,
welches ein Verfahren zur Fehlerkorrektur implementiert, insbesondere
einen Fehlerkorrekturalgorithmus. Durch das Fehlerkorrekturmodul 148 wird
der empfangene Datenblock 102' versuchsweise modifiziert, um Übertragungsfehler
in dem Datenblock 102' zu korrigieren. Der daraus resultierende
Datenblock 102' wird von dem Fehlerkorrekturmodul 148 in
den Fehlererkennungsenkoder 132 eingegeben, sodass dieser
eine neue Version der Prüfdaten 134'' generiert.
Nachfolgend wird erneut die Hammingdistanz d berechnet und in dem
Entscheidungsmodul 146 geprüft, ob die Hammingdistanz
d nunmehr unterhalb des Schwellwerts liegt. Falls dies jetzt der
Fall ist, gilt der Datenblock 102' als der korrekt empfangene
Datenblock und wird über den Ausgang 130 ausgegeben.
Ist hingegen immer noch die Hammingdistanz d nicht kleiner als der
Schwellwert, so wird erneut das Fehlerkorrekturmodul 148 gestartet,
um den empfangenen Datenblock 102' erneut zu modifizieren,
um einen weiteren Fehlerkorrekturversuch durchzuführen. Dieser
Ablauf kann solange wiederholt werden, bis die Hammingdistanz d
kleiner als der Schwellwert ist, eine maximale Anzahl von Fehlerkorrekturversuchen durchgeführt
oder eine andere Abbruchbedingung erreicht worden ist.
-
Das
Fehlerkorrekturmodul 148 kann so ausgebildet sein, dass
zur Durchführung des Fehlerkorrekturalgorithmus die von
dem SISO-Kanaldekodierer 122 gelieferten L-Werte des empfangenen
Datenblocks 102' verwendet werden. In einer Ausführungsform
kann dies so erfolgen, dass zunächst die Bitposition oder
die Bitpositio nen mit den geringsten Zuverlässigkeitsbetragswerten
in dem zu korrigierenden Datenblock 102' identifiziert
werden. Der Bitwert an der Bitposition mit dem geringsten absoluten
Zuverlässigkeitswert in dem Datenblock 102' wird
dann versuchsweise geändert, sodass der modifizierte Datenblock 102' resultiert.
Wenn die nachfolgende Überprüfung des Datenblocks 102' ergibt,
dass auch dieser noch nicht valide ist, so ist der Fehlerkorrekturversuch
fehlgeschlagen. Nachfolgend können ein oder mehrere weitere
Fehlerkorrekturversuche durchgeführt werden.
-
Beispielsweise
kann in einem zweiten Fehlerkorrekturversuch der Bitwert mit dem
zweitgeringsten absoluten Zuverlässigkeitswert, dann einen Fehlerkorrekturversuch
mit den geänderten Bits mit dem geringsten absoluten Zuverlässigkeitswert
und dem zweitniedrigsten absoluten Zuverlässigkeitswert,
durchgeführt werden. Nachdem die Bitwerte an den betreffenden
Bitpositionen geändert worden sind, wird der so modifizierte
Datenblock 102' jeweils erneut einer Prüfung mit
Hilfe des Fehlererkennungsenkoders 132, des Berechnungsmoduls 144 und
des Entscheidungsmoduls 146 unterzogen.
-
In
einer weiteren Ausführungsform können nicht nur
die Bitpositionen des Datenblocks 102', sondern auch die
der Prüfdaten 134' entsprechend den geringsten
L-Betragswerten für die Fehlerkorrekturversuche modifiziert
werden.
-
Die
Fehlerkorrektur unter Berücksichtigung der L-Werte kann
auch wie an sich aus Chase, D.: A Class of Algorithms for
Decoding Block Codes with Channel Measurement Information, IEEE
Trans. Inform. Theory, IT-18, pp. 170–182, January 1972 bekannt,
erfolgen.
-
Beispielsweise
liegen die L-Werte der Bits des Datenblocks 102' nach einer
Sortierung der Größe ihrer Beträge in
folgender Reihenfolge vor:
L(B3) = +0,5
L(B2) = –10
L(B255)
= +15
L(B1) = +20
L(B8) = +32
L(B0) = +50
L(B137)
= –56
L(B169) = –60
L(B57) = –100
...
-
Es
sei angenommen, dass die Bits B2, B3, B8 tatsächlich falsch
decodiert worden sind.
-
In
diesem Fall wird das Fehlerkorrekturverfahren gestartet: Es wird
zunächst die Bitposition mit dem geringsten Zuverlässigkeitswert
identifiziert. Dies ist hier die Bitposition B3. Da der L-Wert der
Bitposition B3 0,5 ist, hat die Bitposition B3 zunächst den
Bitwert von logisch 1. Aufgrund des geringsten Zuverlässigkeitswerts
an der Bitposition B3 wird deren Bitwert versuchsweise von 1 auf
0 geändert. Der daraus resultierende geänderte
Datenblock 102' wird dann erneut einer Prüfung
auf Validität unterzogen.
-
Wenn
sich dabei ergibt, dass der Datenblock 102' nicht korrigiert
werden konnte, kann ein weiterer Versuch unternommen werden: Beispielsweise
wird jetzt der Bitwert an der Bitposition mit dem zweitgeringsten
Zuverlässigkeitsbetrag geändert, in dem hier betrachteten
Beispielfall also der Bitwert der Bitposition 62. Wenn der Datenblock 102' wieder
nicht korrigiert werden konnte, werden die Bitwerte der Bitpositionen
mit den geringsten und den zweitgeringsten Zuverlässigkeitsbeträgen
geändert, d. h. hier wird der Bitwert der Bitposition B2
von logisch 0 auf logisch 1 geändert und der Bitwert an
der Bitposition B3 wird von logisch 1 auf logisch 0 geändert.
-
Auf
der Basis des so nochmals geänderten Datenblock 102' wird
erneut eine Prüfung auf Validität durchgeführt.
Wenn die Bitwerte der Bitpositionen bis zu den fünf niedrigsten
Zuverlässigkeitsbeträgen modifiziert werden, kann
der Übertragungsteil block in dem angeführten Beispielsfall
korrigiert werden, weil der fünft niedrigste L-Wert das
Bit 68 repräsentiert, das falsch dekodiert worden ist.
-
Es
gibt auch weitere Strategien zur Fehlerkorrektur, die zum Beispiel
das Fehlerverhalten des Kanals 116 berücksichtigen.
-
- 100
- Sender
- 102
- Datenblock
- 102'
- Datenblocknach
der Übertragung
- 104
- Multiplexer
- 106
- Bitstromgenerator
- 108
- Bitstromblock
- 110
- Eingang
- 112
- Eingang
- 114
- Übertragungsblock
- 114'
- Übertragungsblock
nach der Übertragung
- 115
- Leitungsencoder
- 116
- Nachrichtenkanal
- 118
- Empfänger
- 120
- Leitungsdekodierer
- 122
- SISO-Kanaldekodierer
- 124
- Eingang
- 126
- Eingang
- 128
- Demultiplexer
- 130
- Ausgang
- 132
- Fehlererkennungsenkoder
- 134
- Prüfdaten
- 134'
- Prüfdaten
- 134''
- Prüfdaten
- 136
- Zusammenbaumodul
- 138
- Zerlegungsmodul
- 140
- Ausgang
- 142
- Ausgang
- 144
- Berechnungsmodul
- 146
- Entscheidungsmodul
- 148
- Fehlererkorrekturmodul
- 150
- Übertragungsblock
- 150'
- Übertragungsblock
nach der Übertragung
- 160
- Kanalcodierer
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - WO 2001/006662 [0002]
- - US 2007/0130494 A1 [0002]
- - US 2005/0258985 A1 [0002]
- - US 2007/0288833 A1 [0002]
- - US 2008/0046799 A1 [0002]
-
Zitierte Nicht-Patentliteratur
-
- - Bahl, L.,
Jelinek, J., Raviv, J., Raviv, F.: Optimal decoding of linear codes
for minimizing symbol error rate, IEEE Transactions an Information
Theory, IT-20, pp. 284–287, March 1974 [0003]
- - Hagenauer, J. Höher, P.: A Viterbi algorithm with soff-decision
outputs and its applications, Proc. IEEE GLOBECOM '89, Dallas, Texas,
USA, vol. 3, pp. 1680–1686, November 1989 [0004]
- - Kötter, R., Vardy, A.: Algebraic Soft-Decision Decoding
of Reed-Solomon Codes, November 2003 vol. 49, pp. 2809–2825 [0005]
- - Kötter, R., Vardy, A.: Saft Decoding of Reed Solomon
Codes and Optimal Weight Assignments, 4th International ITG Conference
an Source and Channel Coding, pp. 69–74, Berlin, Germany,
January 2002 [0005]
- - Ponnampalam, V., Grant, A.: An efficient SISO algorithm for
Reed-Solomon codes, IEEE Int. Symp. Inform. Theory, Yokohama, Japan,
June 29–July 4, 2003 [0005]
- - Ponnampalam, V., Vučetić, B.: Soft decision
decoding of Reed-Solomon codes, IEEE Trans. Communications, vol.
50, Nov. 2002, pp 1758–1768 [0005]
- - Vardy, A., Be'ery, Y.: Bit-level soft-decision decoding of
Reed-Solomon codes, IEEE Trans. Communications., vol. 39, pp. 440–445,
March 1991 [0005]
- - ”Feedback in Joint Channel Coding and Cryptography”,
Christoph Ruland and Nataša Živić in: 7th
International Conference an Source and Channel Coding, Ulm, VDE/ITG
2008 [0006]
- - ISO 9796-2 [0067]
- - ISO 14888 [0067]
- - ISO 15946-4 [0067]
- - ISO/IEC 9797-1 [0067]
- - ISO/IEC 18033-3 [0067]
- - ISO/IEC 9797-2 [0067]
- - Chase, D.: A Class of Algorithms for Decoding Block Codes
with Channel Measurement Information, IEEE Trans. Inform. Theory,
IT-18, pp. 170–182, January 1972 [0079]