-
Die
Erfindung betrifft ein Verfahren zum Empfangen eines Datenblocks
sowie einen entsprechenden 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 A1 ,
US 2007/0130494 A1 ,
US 2005/0258995 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, F.,
Raviv, J., Cocke, J.: 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. Hoeher, P.: A Viterbi algorithm
with soft-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. Koetter, R.,
Vardy, A.: Algebraic Soft-Decision Decoding of Reed-Solomon Codes,
November 2003 vol. 49, pp. 2809–2825,
2. Koetter, R., Vardy, A.: Soft 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.
-
Aus
der
EP 1 198 913 B1 ist
ein Verfahren zum Fehlerschutz eines Datenbitstromes in einem digitalen
Nachrichtenübertragungssystem
zur Reduzierung der Bitfehlerrate bekannt. Vor einer Kanalkodierung
wird eine Mehrzahl vorbekannter Dummy-Bits an vorbestimmte Bit-Positionen
des primären Datenbitstroms
eingefügt.
-
Aus
3 GPP [Hrsg.]: 3rd Generation Partnership Project: Technical Specification
Group Radio Access Network: Working Group 1; Multiplexing and channel
coding. Jun. 1999 3 GPP TS 25.212 VS.0.0 (1999–06) [rechercheriet am 15.06.2009],
Kapitel 4.2 ein Verfahren zur Generierung eines Transport-Kanals
mit Hilfe von Codierung und Multiplexing bekannt.
-
Aus
US 6 061 823 A ist
ein Gerät
zur fehlerkorrigierenden Decodierung bekannt.
-
Der
Erfindung liegt demgegenüber
die Aufgabe zugrunde, ein verbessertes Verfahren zum Empfangen eines
Datenblocks zu schaffen sowie einen entsprechenden 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.
-
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.
-
Die
Erfindung betrifft 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 Senders,
-
2 ein
Blockdiagramm einer ersten Ausführungsform
eines erfindungsgemäßen Empfängers,
-
3 ein
Blockdiagramm einer zweiten Ausführungsform
eines 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 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 beinhaften, 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 Leitungsdekodierer 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,
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
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 wird, 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 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 ein 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
B2. 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 B8 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'
- Datenblock
nach 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