-
Die
Erfindung betrifft ein Verfahren zum Senden und Empfangen eines
Datenblocks sowie entsprechende Sender und Empfänger.
-
Sogenannte
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 on 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 soft-decision Outputs
and its applications, Proc. IEEE GLO-BECOM '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.: Soft Decoding of Reed Solomon Codes and Optimal Weight
Assignments, 4th International ITG Conference on 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 on Source and Channel Coding, Ulm, VDE/ITG 2008,
ist es bekannt, zu sendende Daten blockweise mit einem kryptographischen
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.
-
Nach
Ausführungsformen der Erfindung wird ein Verfahren zum
Senden eines Datenblocks in Form von zwei oder mehr Teilblöcken über
einen Nachrichtenkanal gemäß Patentanspruch 1
geschaffen. Ausführungsformen dieses Verfahrens sind in den
abhängigen Patentansprüchen angegeben.
-
Ausführungsformen
der Erfindung betreffen Verfahren zum Empfangen eines Datenblocks über einen
Nachrichtenkanal. Ein korrekt empfangener oder mit einem Fehlerkorrekturverfahren
korrigierter Übertragungsteilblock ermöglicht
eine verbesserte, erneute Kanaldecodierung der noch nicht korrekten Übertragungsteilblöcke
mit einer Erhöhung der Wahrscheinlichkeit, dass diese durch
die Kanaldecodierung oder eine weitere Anwendung des Fehlerkorrekturverfahrens
korrigiert werden können.
-
Ausführungsformen
der Erfindung sind besonders vorteilhaft, da die Zuordnung der Bits
des zu sendenden Datenblocks zu Teilblöcken, die jeweils mit
Prüfdaten zur Fehlererkennung versehen werden und separat
fehlerkorrigiert werden können, wobei die erfolgreiche
Korrektur eines Teilblockes die Korrekturmöglichkeiten
des anderen Teilblockes verbessert, bei gleichem Signalrauschleistungsverhältnis eine
Verringerung der Restfehlerrate des Empfängers ermöglicht.
-
Die
Erfindung geht dabei von der Erkenntnis aus, dass ein verbesserter
Empfang dadurch erreicht werden kann, dass senderseitig die zu sendenden Bits
einem Kanalkodierer in einem vorgegebenen Schema zugeführt
werden, wobei das Schema so ausgebildet ist, dass die Bits abwechselnd
den Übertragungsteilblöcken entnommen sind. Dies
kann z. B. dadurch realisiert werden, dass auf jedes Bit des ersten Übertragungsteilblocks,
der einen ersten Teilblock und dessen Prüfdaten beinhaltet,
ein Bit des zweiten Übertragungsteilblocks, der einen zweiten Teilblock
und dessen Prüfdaten beinhaltet, folgt. Es sind aber auch
andere Schemata möglich: Zum Beispiel folgen immer zwei
Bits des ersten Übertragungsteilblocks auf zwei Bits des
zweiten Übertragungsteilblocks oder die alternierende Auswahl
einzelner Bits oder Bitgruppen aus den Übertragungsteilblöcken
erfolgt nach einem komplexeren Schema. Wesentlich ist nur, dass
die zu übertragenden Bits abwechselnd zu dem ersten und
dem zweiten Übertragungsteilblock gehören.
-
Verfälschungen,
insbesondere sog. burst errors, des so gesendeten Signals bei dessen Übertragung über
den Nachrichtenkanal betreffen statistisch häufig Bits,
die aus verschiedenen der Übertragungsblöcke stammen,
da ja Bits aus den verschiedenen Übertragungsblöcken
abwechselnd in dem Signal aufeinander folgen. Dies hat empfängerseitig
den Vorteil, dass selbst dann wenn einer der Übertragungsblöcke
in zunächst nicht korrigierbarer Art und Weise empfangen
wird, doch die Möglichkeit besteht, selbst diesen Übertragungsblock
noch zu rekonstruieren, wie weiter unten im einzelnen dargelegt.
-
Nach
einer Ausführungsform der Erfindung werden die ersten und
zweiten Teilblöcke so gebildet, dass jeweils abwechselnd
ein Bit des Datenblockes dem ersten Teilblock und das nachfolgende
Bit dem zweiten Teilblock zugeordnet wird. Für jeden dieser Teilblöcke
wird Redundanz zur Fehlererkennung generiert, d. h. die ersten bzw.
zweiten Prüfdaten. Die um die Information zur Fehlererkennung
erweiterten Teilblöcke werden Übertragungsteilblöcke
genannt und vor der Ausgabe an den Kanalcodierers wieder gemultiplext,
z. B. Bit für Bit.
-
Nach
einer weiteren Ausführungsform der Erfindung bleibt die
Reihenfolge der Bits zunächst bei der Aufteilung des Datenblocks
in die ersten und zweiten Teilblöcke erhalten. Eine Abweichung
der Reihenfolge der Sendung der Bits von der ursprünglichen
Reihenfolge wird dadurch erhalten, dass unmittelbar vor der Sendung
der Bits über den Nachrichtenkanal ein Multiplexen der
Datenübertragungsteilblöcke, z. B. ein bitweises
Multiplexen erfolgt. Das Ergebnis ist ein Übertragungsblock.
-
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, sogenannte
Cryptographic Check Values, handeln, die insbesondere mit Hilfe
eines symmetrischen und/oder asymmetrischen Schlüsselpaares
und/oder aus den betreffenden Teilblöcken erzeugt werden.
-
In
einem weiteren Aspekt betrifft die Erfindung einen Sender zum Senden
von Datenblöcken über einen Nachrichtenkanal.
Der Sender ist so ausgebildet, dass er nach einem erfindungsgemäßen Verfahren
arbeitet.
-
In
einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Empfangen
eines Datenblocks über einen Nachrichtenkanal. Ausführungsformen
dieses Verfahrens sind in den abhängigen Patentansprüchen
angegeben.
-
Nach
Ausführungsformen der Erfindung wird ein Soft-Decision-Leitungsdecodierer,
insbesondere ein Demodulator, verwendet.
-
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.
-
Der
korrekte Empfang der Übertragungsteilblöcke, die
aus dem von dem SISO-Decoder ausgegebenen Übertragungsblock
durch Demultiplexen rückgewonnen werden, wird anhand der
Prüfdaten überprüft. Wenn beide Übertragungsteilblöcke
als korrekt empfangen gelten, ist keine weitere Aktion mehr notwendig.
-
Wenn
jedoch die Prüfung der ersten und zweiten Übertragungsteilblöcke
ergibt, dass sowohl der erste als auch der zweite Übertragungsteilblock zunächst
nicht korrekt empfangen worden sind, werden die folgenden weiteren
Schritte durchgeführt:
Für jeden der ersten
und zweiten Übertragungsteilblöcke wird erforderlichenfalls
ein Fehlerkorrekturverfahren durchgeführt. Wenn jedoch
die Prüfung der ersten und zweiten Übertragungsteilblöcke
ergibt, dass nur ein Datenübertragungsteilblock nicht korrekt
empfangen worden ist, wird das Fehlerkorrekturverfahren nur für
den nicht korrekten Übertragungsteilblock durchgeführt.
-
In
einer Ausführungsform kann das Fehlerkorrekturverfahren
so erfolgen, dass ein oder mehrere Bits in dem Übertragungsteilblock,
denen die niedrigsten Zuverlässigkeitsbetragswerte zugeordnet sind,
verändert werden. Nach Veränderung der Bitwerte
wird dann geprüft, ob der so geänderte Teilblock
mit den ihm zugeordneten Prüfdaten stimmig ist. Ist dies
der Fall, so gilt dieser Übertragungsteilblock als korrekt
empfangen. Ist dies nicht der Fall, so können weitere Fehlerkorrekturversuche
unternommen werden, indem zusätzliche oder andere Bits
in dem Datenübertragungsteilblock 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 der Datenübertragungsteilblöcke nach
deren Zuverlässigkeitsbetragswerten durchgeführt
werden.
-
Nach
einer Ausführungsform der Erfindung gilt ein Übertragteilungsblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen Teilblock des Übertragteilungsblocks generiert
werden, mit den empfangenen Prüfdaten dieses Übertragteilungsblocks
identisch sind.
-
Nach
einer Ausführungsform der Erfindung gilt ein Übertragteilungsblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen Teilblock des Übertragteilungsblocks generiert
werden, sich von den empfangenen Prüfdaten dieses Übertragteilungsblocks
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 Teilblock als korrekt empfangen.
Liegt diese Hammingdistanz dagegen über dem vorgegebenen
Schwellwert, so gilt der Teilblock als nicht korrekt empfangen.
-
Das
Fehlerkorrekturverfahren wird dann vorzugsweise so durchgeführt,
dass ein oder mehrere Bits nur in dem Teilblock des Übertragungsteilblocks, 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üh rungsform
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 Teilblocks 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 den Eigenschaften des Encoders festgelegt. Wenn die Hammingdistanz
nicht größer als dieser Schwellwert ist, so gilt
dieser Teilblock als korrekt empfangen. Ist dies nicht der Fall,
so können weitere Fehlerkorrekturversuche unternommen werden,
indem zusätzliche oder andere Bits in dem Teilblock 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 der Teilblöcke
nach deren Zuverlässigkeitswerten durchgeführt
werden. Konnte auf diese Weise der empfangene Teilblock korrigiert
werden, so werden die empfangenen Prüfdaten korrigiert,
indem sie durch die berechneten Prüfdaten ersetzt werden.
Der korrigierte Teilblock mit den berechneten Prüfdaten stellt
den korrigierten Übertragungsteilblock dar. Diese Ausführungsform
hat den Vorteil, dass sich die Fehlerkorrekturversuche auf Bitpositionen
im Teilblock beschränken..
-
Wenn
auf diese Art und Weise eine Fehlerkorrektur sowohl des ersten als
auch des zweiten Übertragungsteilblocks erfolgen kann,
so ist keine weitere Aktion mehr erforderlich, da dann bereits ein korrekter
Empfang vorliegt. Ist hingegen nur einer der ersten und zweiten Übertragungsteilblöcke
korrigiert worden oder korrekt empfangen worden, und der Korrekturversuch
mit Hilfe des Fehlerkorrekturverfahrens für den anderen
der Übertragungsteilblöcke ist fehlgeschlagen,
so wird wie folgt vorgegangen:
Die Beträge der Zuverlässigkeitswerte
der Bits desjenigen der Übertragungsteilblöcke,
der fehlerkorrigiert werden konnte oder korrekt empfangen worden
ist, werden erhöht, um hierdurch zum Ausdruck zu bringen,
dass die betreffenden Bits sicher richtig emp fangen worden sind.
Beispielsweise werden die Beträge der Zuverlässigkeitswerte
auf einen Maximalbetrag gesetzt. Ferner können die Zuverlässigkeitswerte
der Bits desjenigen der Übertragungsteilblöcke,
der nicht fehlerkorrigiert werden konnte, verringert werden, um hierdurch
zum Ausdruck zu bringen, dass wahrscheinlich mehrere der betreffenden
Bits sicher nicht richtig empfangen worden sind. Insbesondere können
die Zuverlässigkeitswerte dieser Bits auf Null gesetzt
werden. Alternativ können die Zuverlässigkeitswerte
dieser Bits aber auch unverändert gelassen werden.
-
Diese
erhöhten Zuverlässigkeitswerte der bekannten empfangenen
Bits des fehlerkorrigierten oder korrekt empfangenen Übertragungsteilblocks und
die erniedrigten oder identischen Zuverlässigkeitswerte
der unbekannten Bits des nicht korrigierten Übertragungsteilblocks
werden entsprechend dem Aufbau des Übertragungsblocks wieder
in dieselbe Reihenfolge gebracht, wie sie für den gesendeten Übertragungsblock
definiert ist, und dann erneut in den SISO-Decoder eingegeben, um
die Decodierung mit Hilfe der geänderten Eingangsinformation erneut
durchzuführen.
-
Da
die Qualität der Eingangsinformation aufgrund der positiven Überprüfung
der Prüfdaten und ggf. der erfolgreichen Fehlerkorrektur
verbessert worden ist, kann sich das Ergebnis der SISO-Decodierung
auch der Bits des anderen der Übertragungsteilblöcke ändern,
welcher zunächst nicht einer Fehlerkorrektur unterzogen
werden konnte.
-
Nach
dieser weiteren SISO-Decodierung werden die Übertragungsteilblöcke
des Datenblockes nochmals hinsichtlich ihres korrekten Empfangs überprüft,
wobei sich wahlweise die Überprüfung auf den Übertragungsteilblock
beschränken kann, der bisher nicht korrigiert werden konnte,
und zwar mit Hilfe der diesem Übertragungsteilblock zugeordneten
Prüfdaten. Die nochmalige Prüfung des einen der Übertragungsteilblöcke,
der bereits vor der nochmaligen SISO-Decodierung fehlerkorrigiert
werden konnte, kann optional entfallen, da dieser Übertragungsteilblock
ja bereits als korrekt empfangen gilt.
-
Ist
nun nach der zweiten SISO-Decodierung auch der andere der Übertragungsteilblöcke
korrekt, so ist keine weitere Aktion mehr notwendig. Wenn hingegen
dieser Übertragungsteilblock immer noch nicht korrekt ist,
so wird erneut das Fehlerkorrekturverfahren für diesen Übertragungsteilblock
durchgeführt. Dabei kann so vorgegangen werden wie bei
der ersten Durchführung des Fehlerkorrekturverfahrens vor
der nochmaligen SISO-Decodierung, d. h. es werden die Zuverlässigkeitswerte
für das Fehlerkorrekturverfahren verwendet, beispielsweise
indem die Bits in dem Übertragungsteilblock oder Teilblock
in der Reihenfolge der Beträge der Zuverlässigkeitswerte
sortiert werden, um die Bits mit niedrigen Zuverlässigkeitsbetragswerten
in einer oder mehreren Iterationen zu verändern. Erst wenn
auch dieser weitere Fehlerkorrekturversuch hinsichtlich des anderen der
Teilblöcke fehlschlägt, ist der fehlerfreie Empfang des
betreffenden Datenblocks endgültig gescheitert.
-
Ausführungsformen
des erfindungsgemäßen Verfahrens zum Empfangen
eines Datenblocks sind besonders vorteilhaft, da sich bei einer
nur geringfügig oder nicht verminderten Coderate eine geringere Fehlerrate
der Übertragung erreichen lässt.
-
Nach
Ausführungsformen der Erfindung kann die Coderate durch
sogenanntes Punktieren („Puncturing”) erhöht
werden. Die Punktierung kann zum Beispiel mit einer Rate durchgeführt
werden, so dass die Verringerung der Coderate, die durch Hinzufügen
der Prüfdaten zu den Teilblöcken verursacht wird,
kompensiert wird.
-
Nach
Ausführungsformen der Erfindung kann ein zu übertragender
Datenblock auch in mehr als zwei Teilblöcke aufgeteilt
werden, die jeweils mit Prüfdaten versehen werden. Entsprechend
erhöhen sich dann die Möglichkeiten, dass, beginnend
mit der erfolgreichen Korrektur eines der Übertragungsteilblöcke,
durch iterative Anwendung des Fehlerkorrekturverfahrens und der
SISO-Decodierung die anderen Übertragungsteilblöcke
korrigiert werden können, die im vorhergehenden Durchlauf
nicht als korrekt erkannt werden konnten. Wenn also eine erste Menge von Übertragungsteilblöcken
nach zunächst nicht korrektem Empfang mit Hilfe des Fehlerkorrekturverfahrens
fehlerkorrigiert werden konnte und eine zweite Menge von Übertragungsteilblöcken
nach zunächst nicht korrektem Empfang mit Hilfe des Fehlerkorrekturverfahrens
nicht fehlerkorrigiert werden konnte, so werden die Zuverlässigkeitswerte
der Übertragungsteilblöcke der ersten Menge vergrößert, da
diesbezüglich ja Sicherheit hinsichtlich des korrekten
Empfangs besteht, und die SISO Kanal Decodierung wird für
den Übertragungsblock auf der Basis der geänderten
Zuverlässigkeitswerte erneut durchgeführt.
-
Dies
gilt auch entsprechend, wenn eine dritte Menge von Übertragungsteilblöcken
gleich korrekt empfangen wird, ohne dass eine Fehlerkorrektur erforderlich
ist. Die Zuverlässigkeitswerte der Bits der Übertragungsteilblöcke
der dritten Menge können ebenfalls erhöht werden,
um die SISO Kanal Decodierung erneut durchzuführen.
-
Im
Weiteren werden Ausführungsformen der Erfindung mit Bezugnahme
auf die Zeichnungen näher erläutert. Es zeigen:
-
1 ein
Blockdiagramm einer Ausführungsform eines erfindungsgemäßen
Senders
-
2 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäßen
Senders
-
3 ein
Flussdiagramm einer Ausführungsform eines erfindungsgemäßen
Verfahrens zum Senden eines Datenblocks,
-
4 ein
Blockdiagramm einer Ausführungsform eines erfindungsgemäßen
Empfängers passend zum Sender gemäß 1
-
5 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäßen
Empfängers passend zum Sender gemäß 2
-
6 ein
Flussdiagramm einer Ausführungsform eines erfindungsgemäßen
Verfahrens zum Empfang eines Datenblocks.
-
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 hat einen Eingang 102 zur
Eingabe von zu sendenden Datenblöcken. Die 1 zeigt
exemplarisch einen zu senden Datenblock 104. Der Datenblock 104 hat
beispielsweise eine Länge von 512 Bit mit den Bitpositionen
B0, B1, B2, ..., B511. Der Datenblock kann Teil eines Datenstroms
sein, d. h. es folgen viele Datenblöcke hintereinander.
-
Der
Sender 100 hat ein Aufteilungsmodul 106 zur Aufteilung
eines zu sendenden Datenblocks, wie zum Beispiel des Datenblocks 104,
in zumindest einen ersten Teilblock 108 und einen zweiten
Teilblock 110. Die Teilblöcke, in die jeder der
Datenblöcke aufgeteilt wird, können je nach Ausführungsform gleich
oder unterschiedlich lang sein. In der hier betrachteten Ausführungsform
erfolgt die Aufteilung in zwei gleich lange Teilblöcke 108 und 110.
Die ursprüngliche Reihenfolge der Bits in dem Datenblock 104 bleibt
bei der hier betrachteten Ausführungsform erhalten, d.
h. die Bits B0 bis B255 bilden in dieser Reihenfolge den Teilblock 108 und
die nachfolgenden Bits B256 bis B511 bilden den zweiten Teilblock 110.
Es kann aber auch eine Aufteilung der Datenblöcke in mehr
als zwei Teilblöcke erfolgen. Die mehreren Teilblöcke
können wiederum gleich oder unterschiedlich lang sein,
wobei die Art und Weise der Aufteilung vordefiniert ist.
-
Der
Sender 100 hat ferner einen Encoder 112. Der Encoder
dient zur Codierung des Teilblockes mit einem fehlererkennenden
Code, und zwar separat für jeden der Teilblöcke.
Bei dem Encoder handelt es sich vorzugsweise um einen Blockcode. 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
Encoder 112 kann auch zur Generierung von kryptographischen
Prüfdaten ausgebildet sein, wie zum Beispiel zur Generierung
einer digitalen Signatur, eines Message Authentication Code (MAC) oder
eines Hashed Message Authentication Code (H-MAC). Die Generierung
von digitalen Signaturen durch den Encoder 112 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 Encoder zur Fehlererkennung 112 kann
gemäß ISO/IEC 9797-2 erfolgen.
-
In
dem hier betrachteten Beispielsfall generiert der Encoder 112 also
erste Prüfdaten 114 für den ersten Teilblock 108 und
zweite Prüfdaten 116 für den zweiten
Teilblock 110. In dem hier betrachteten schematischen Beispielsfall
beinhalten die Prüfdaten 114 die Bitpositionen
P0, P1, ... P31 sowie die Prüfdaten 116 die Bitpositionen
P32, ... P63. Wenn mehrere Teilblöcke von dem Aufteilungsmodul 106 generiert werden,
so werden für jeden der Teilblöcke solche Prüfdaten
von dem Encoder 112 erzeugt.
-
Beispielsweise
werden die Teilblöcke um ihre jeweilige Prüfdaten
verlängert, d. h. der Teilblock 108 mit den Prüfdaten 114 und
der Teilblock 110 mit den Prüfdaten 116,
sowie dies in der 1 gezeigt ist, um so entsprechende Übertragungsteilblöcke,
d. h. hier den Übertragungsteilblock 118 bzw.
den Übertragungsteilblock 120 zu generieren. Für
jeden Teilblock wird also ein Übertragungsteilblock erzeugt, der
den betreffenden Teilblock und dessen Prüfdaten beinhaltet.
-
Ohne
Beschränung der Allgemeinheit wird in den nachfolgenden
Ausführungsbeispielen ein systematischer Blockcode verwendet,
bei dem die Redundanz, d. h. die Prüfinformation als Prüfdaten
den Datenbits angehängt wird. Es ist aber auch möglich, dass
ein Code verwendet wird, der den Eingangsymbolen Codesymbole zuordnet,
die die Redundanz in einer nicht-systematischen Weise beinhalten.
-
Der
Encoder 112 zur empfängerseitigen Fehlererkennung
kann eine sogenannte Cryptographic Check Function implementieren,
wie zum Beispiel zur Generierung einer digitalen Signatur, MAC oder
H-MAC. Beispielsweise handelt es sich bei den Prüfdaten 114 um
die digitale Signatur des Teilblocks 108, welche mit einem
geheimen Schlüssel, der zum Beispiel in dem Encoder 112 gespeichert
ist, generiert wird. Ebenso kann es sich mit den Prüfdaten 116 verhalten,
welche die digitale Signatur des Teilblocks 110 darstellen
können.
-
Der
Sender 100 hat ferner einen Multiplexer 122. Der
Multiplexer 122 dient dazu, die zur Sendung anstehenden
Bits der Übertragungsteilblöcke 118 und 120 zu
multiplexen, sodass die Reihenfolge der Bits des entstehenden Übertragungsblocks 124 von der
ursprünglichen Reihenfolge der Bits in dem Datenblock 104 abweicht.
Das Multiplexen erfolgt nach einem vorgegebenen Schema. Beispielsweise
hat der Multiplexer einen separaten Eingang für jeden der Übertragungsteilblöcke.
-
In
der hier betrachteten Ausführungsform ist das Schema so
definiert, dass ein bitweises Multiplexing erfolgt, d. h. zuerst
wird die erste Bitposition B0 des Übertragungsteilblocks 118 gesendet,
danach die erste Bitposition B256 des Übertragungsteilblocks 120,
anschließend die zweite Bitposition B1 des Übertragungsteilblocks 118,
nachfolgend die zweite Bitposition B257 des Übertragungsteilblocks 120,
etc. Der von dem Multiplexer ausgegebene Übertragungsblock 124,
welcher die Übertragungsteilblöcke 118 und 120 beinhaltet,
wird dann von einem Kanalcodierer 126 einer Kanalcodierung
unterzogen. Die Kanalcodierung ermöglicht zumindest eine
Fehlererkennung, vorzugsweise eine Fehlerkorrektur.
-
Schließlich
wird der kanalcodierte Übertragungsblock 124 mit
Hilfe eines sogenannten Leitungskodierers 128 für
die unmittelbare Versendung über einen Nachrichtenkanal 130 vorbereitet.
Bei dem Leitungskodierer 128 kann es sich zum Beispiel um
einen Modulator handeln. Der Leitungskodierer 128 gibt
das leitungskodierte Signal 132 ab, welches dann über
den Nachrichtenkanal 130 übertragen wird. Der
Nachrichtenkanal 130 kann als ein sogenanntes „Baseband” oder „Broadband” ausgebildet sein.
-
Der
Kanalcodierer 126 kann beispielsweise ein sogenanntes Convolutional
Coding Schema oder Turbo Code Schema implementieren.
-
Durch
den Sender 100 kann hier also eine aneinander gehängte
Codierung, d. h. ein sogenanntes Concatenated Coding, implementiert
werden. Der äußere Code, erzeugt durch den sogenannten
Outer Encoder 133 des Concatenated Codes, wird hier durch
das Aufteilungsmodul 106, welches die Aufteilung in zwei
oder mehr Teilblöcke vornimmt, den Encoder 112 für
die Teilblöcke und den Multiplexer gebildet, d. h. bei
dem Übertragungsblock 124 handelt es sich bei
dem hier betrachteten Beispielsfall um die Ergebnisse des Outer
Encoders 133. Die innere Codierung, d. h. das sogenannte
Inner Coding, erfolgt dagegen durch den Kanalcodierer 126,
beispielsweise mit Hilfe eines Convolutional Codes oder Turbo Codes.
Vorzugsweise wird für den Kanalcodierer 126 ein
Code gewählt, der sich besonders für eine SISO-Decodierung
eignet.
-
Die
Ausführungsform der 1 ist besonders
vorteilhaft, da bei der Aufteilung des Datenblocks 102 durch
das Aufteilungsmodul 106 zunächst die ursprüngliche
Reihenfolge der Bits erhalten bleibt. Dadurch erübrigt
sich eine eingangsseitige Zwischenspeicherung der Bits.
-
Die 2 stellt
eine Ausführungsform der Erfindung dar, die sich darin
von der 1 unterscheidet, dass die Teilblöcke 108 und 110 auf
eine andere Weise aus dem Datenblock 104 gebildet werden.
An Stelle der Aufteilung von aufeinander folgenden Bits in Teilblöcke
werden hier die Bits des Datenblocks 104 in die Teilblöcke
separiert und zwar durch den Demultiplexer 107, z. B. Bit
für Bit: das erste Bit B0 wird dem ersten Teilblock 108 zugeordnet,
das zweite Bit B1 dem zweiten Teilblock 110, das dritte
Bit B2 wieder dem ersten Teilblock 108, usw.
-
Alle
weiteren Komponenten sind identisch zu dem in 1 dargestellten
Sender 100.
-
Die
Ausführungsform des Senders 100 gemäß 2 hat
den Vorteil, dass die senderseitige Verzögerung, die durch
den Outer Encoder 133 verursacht wird, geringer ist als
bei der Ausführungsform gemäß 1,
da die Reihenfolge der Bits des Datenblocks 104 mit der
Reihenfolge der Bits im Übertragungsblock 124 übereinstimmt.
-
Die 3 zeigt
ein entsprechendes Flussdiagramm. In dem Schritt 200 wird
von einer Datenquelle der Datenblock in den Sender eingegeben. Der
Datenblock wird dann in zumindest zwei Teilblöcke aufgeteilt,
die gleiche oder unterschiedliche Längen haben können.
In einer Ausführungsform kann die Aufteilung durch Demultiplexen
erfolgen.
-
Anschließend
werden die Teilblöcke in dem Schritt 202 einer
Codierung zur Fehlererkennung unterzogen. Dies kann mit Hilfe eines
systematischen oder nicht-systematischen Codes, eines Blockcodes oder
Faltungscodes oder einer sogenannten Cryptographic Check Function
erfolgen. In dem Schritt 204 erfolgt dann eine Änderung
der Reihenfolge der zu sendenden Bitpositionen. Dies kann durch
bitweises Multiplexen der Übertragungsteilblöcke
mit den jeweils angehängten Prüfdaten erfolgen.
Es kann auch ein anderes vorgegebenes Schema zur Änderung der
Reihenfolge zur Anwendung kommen.
-
In
dem nachfolgenden Schritt 206 wird die aus dem Schritt 204 resultierende
Bitsequenz, d. h. der Übertragungsblock, einer Kanalcodierung
unterzogen, wobei die Kanalcodierung vorzugsweise mit einem Code
durchgeführt wird, der für eine empfängerseitige
SISO-Decodierung vorgesehen ist. Die kanalcodierte Bitsequenz wird
dann in dem Schritt 208 einer Leitungskodierung unterzogen,
d. h. beispielsweise erfolgt die Sendung der Bitsequenz mit Hilfe
eines Modulationsverfahrens.
-
Die 4 zeigt
eine Ausführungsform eines erfindungsgemäßen
Empfängers 134, der zum Empfang der von dem Sender 100 (vgl. 1)
abgegebenen Signale 132, die als Signale 132' empfangen werden,
dient. Es wird davon ausgegangen, dass sich auf Grund von Störungen
während der Übertragung über den Kanal 130 die
Signale 132 und 132' unterscheiden. Der Empfänger 134 hat
einen Leitungsdekodierer 136 zur Dekodierung der von dem Leitungskodierer 128 des
Senders 100 vorgenommenen Codierung. Bei dem Leitungsdekodierer 136 kann
es sich zum Beispiel um einen Demodulator handeln.
-
Der
Leitungsdekodierer 136 führt Soft Decision durch
und liefert entsprechende Outputwerte an den SISO-Kanaldecodierer 138.
Der SISO-Kanaldecodierer 138 decodiert die von dem Kanalcodierer 126 des
Senders 100 vorgenommene Codierung. Bei dem Kanaldecodierer 138 handelt
es sich also um den inneren Decoder.
-
Der
Kanaldecodierer 138 arbeitet nach dem SISO-Prinzip, d.
h. er verarbeitet den von dem Leitungsdekodierer 136 erzeugten
Soft-Output als Soft-Input und liefert selbst einen Soft-Output,
vorzugsweise in Form von sog. L-Werten.
-
Das
Vorzeichen eines von dem Kanaldecodierer 138 ausgegebenen
L-Werts gibt den Wert des empfangenen Bits an. Beispielsweise steht
ein negatives Vorzeichen des L-Werts für einen Bitwert
von logisch 0 und ein positives Vorzeichen des L-Werts für einen
Bitwert von logisch 1. Der Betrag des L-Werts hingegen gibt die
Zuverlässigkeit an, mit der die Entscheidung, ob das betreffende
Bit eine 0 oder 1 ist, getroffen worden ist.
-
Der
geringste mögliche Betrag des L-Wertes ist dabei 0. Ein
L-Wert von 0 bedeutet, dass die Wahrscheinlichkeit der Korrektheit
der Entscheidung für das betreffende Bit 0,5 ist. Wenn
der Betrag des L-Werts dagegen einen vorgegebenen Maximalwert hat,
so bedeutet dies, dass die Korrektheit des betreffenden Bitwerts
als sicher zu betrachten ist.
-
Der
Kanaldecodierer 138 gibt als Soft-Output den potenziell
immer noch gestörten Übertragungsblock 124' aus.
Der Übertragungsblock 124' kann in der Form vorliegen,
dass jede der Bitpositionen durch einen L-Wert repräsentiert
wird oder jedes der Bits zusätzlich mit einem L-Wert versehen
wird
-
Der
Empfänger 134 hat ferner einen Demultiplexer 140,
um aus dem Übertragungsblock 124' die potenziell
gestörten Übertragungsteilblöcke 118' und 120' rück
zu gewinnen. Der Demultiplexer 140 macht hierzu das von
dem Multiplexer 122 vorgenommene Multiplexing rückgängig.
-
Der
Empfänger 134 hat ferner ein Verifikationsmodul 142,
welches dazu dient, den richtigen Empfang der Übertragungsteilblöcke 118' bzw. 120' zu überprüfen.
Diese Prüfung erfolgt anhand der Prüfdaten 114' bzw. 116',
die senderseitig von dem Encoder 112 (vgl. 1 und 2)
erzeugt worden sind.
-
Das
Verifikationsmodul 142 prüft für den Übertragungsteilblock 118',
ob die in den Bits PO bis P31 der Prüfdaten 114' beinhaltete
Redundanz zu dem Teilblock 108' gültig ist oder
nicht. Ebenso prüft das Verifikationsmodul 142 die
Gültigkeit der Prüfdaten 116' zu dem
Teilblock 110' des Übertragungsblock 124'.
-
Wenn
es sich bei den Prüfdaten beispielsweise um digitale Signaturen
der Teilblöcke handelt, die von dem Encoder 112 erzeugt
worden sind, so werden diese Signaturen von dem Verifikationsmodul 142 geprüft
und zwar mit Hilfe des dem geheimen Schlüssel, mit dem
die Signaturen erzeugt worden sind, zugeordneten öffentlichen
Schlüssels.
-
Wenn
eine der Signaturen als valide erkannt worden ist, so gilt der entsprechende Übertragungsteilblock
als korrekt empfangen. Wenn die Signatur eines der Übertra gungsteilblöcke
als nicht valide erkannt wird, so gilt dieser Übertragungsteilblock
als nicht korrekt empfangen.
-
Wenn
sich bei der Prüfung der Prüfdaten 114' und 116' durch
das Verifikationsmodul 142 herausstellt, dass beide Übertragungsteilblöcke 118' und 120' korrekt
empfangen worden sind, so setzt das Zusammenbaumodul 144 des
Empfängers 134 die beiden Teilblöcke 108' und 110' wieder
durch Aneinanderreihung der Teilblöcke entsprechend dem Aufteilungsmodul 106 des
Senders 100 zusammen und gibt an seinem Ausgang 145 den
als korrekt erkannten empfangenen Datenblock 104' aus.
-
Für
den Fall, dass einer der Übertragungsteilblöcke 118'' und 120'' nicht
als korrekt erkannt empfangen worden ist, hat der Empfänger 134 ein Fehlerkorrekturmodul 146.
Das Fehlerkorrekturmodul 146 ist so ausgebildet, dass es
ein Fehlerkorrekturverfahren zur Fehlerkorrektur jeweils eines der Übertragungsteilblöcke
implementiert. Vorzugsweise werden bei dem Fehlerkorrekturverfahren
die Zuverlässigkeitswerte der einzelnen Bitpositionen berücksichtigt.
-
In
einer Ausführungsform kann dies so erfolgen, dass zunächst
die Bitposition oder die Bitpositionen mit den geringsten Zuverlässigkeitsbetragswerten
in dem zu korrigierenden Übertragungsteilblock, wie zum
Beispiel dem Übertragungsteilblock 118', identifiziert
werden. Der Bitwert an der Bitposition mit dem geringsten absoluten
Zuverlässigkeitswert wird dann versuchsweise geändert.
Der Übertragungsblock 118' mit dem so geänderten
Bitwert wird dann erneut von dem Verifikationsmodul 142 einer
Prüfung auf Validität mit Hilfe der Prüfdaten 114' unterzogen. Wenn
diese erneute Prüfung ergibt, dass die Prüfdaten 114' valide
sind, so wird von einer erfolgreichen Fehlerkorrektur des Übertragungsteilblocks 118' ausgegangen,
sodass dieser als identisch mit dem ursprünglichen Übertragungsblock 118 betrachtet
wird.
-
Wenn
hingegen auch die erneute Prüfung zum Ergebnis hat, dass
die Prüfdaten 114' auch nach der Änderung
des Bitwertes mit dem geringsten absoluten Zuverlässigkeitswert
nicht valide sind, 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 Übertragungsteilblock jeweils
erneut einer Prüfung in dem Verifikationsmodul 142 unterzogen.
Dieser Vorgang kann so lange wiederholt werden, bis entweder ein
Fehlerkorrekturversuch erfolgreich ist oder eine Abbruchbedingung erreicht
wird. Diese Abbruchbedingung kann beispielsweise eine zulässige
Höchstanzahl Nmax ≥ 0 von Fehlerkorrekturversuchen
sein. 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 Übertragungsblock 118' 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(P1) = +32
L(B0) = +50
L(P2)
= –56
L(P63) = –60
L(P0) = –100
-
Es
sei angenommen, dass die Bits B2, B3 des Teilblocks 110'' und
das Bit P1 des Teilblocks 116' tatsächlich vom
inneren Decoder, d. h. dem Kanal Decodierer 138, falsch
decodiert worden sind.
-
In
diesem Fall wird das Fehlerkorrekturverfahren des Fehlerkorrekturmoduls 146 gestartet:
Es wird zunächst die Bitposition mit dem geringsten Zuverlässigkeitswert
in dem Übertragungsteilblock 118' 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 Übertragungsteilblock 118' wird
dann erneut einer Prüfung anhand der Prüfdaten 114' unterzogen.
-
Wenn
sich dabei ergibt, dass der Übertragungsteilblock nicht
korrigiert werden konnte, kann ein weiterer Versuch unternommen
werden: Beispielsweise wird jetzt der Bitwert an der Bitpositionen mit
dem zweitgeringsten Zuverlässigkeitsbetrag geändert,
in dem hier betrachteten Beispielfall der Bitwert der Bitposition
B2. Wenn der Übertragungsteilblock 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.
Mit dem so nochmals geänderten Übertragungsteilblock 118' wird
erneut eine Prüfung in dem Verifikationsmodul 140 anhand
der Prüfdaten 114' vorgenommen, etc. Wenn die
Bitwerte der Bitpositionen bis zu den fünf niedrigsten
Zuverlässigkeitsbeträgen modifiziert werden, kann
der Übertragungsteilblock in dem angeführten Beispielsfall
korrigiert werden, weil der fünft niedrigste L-Wert das
Bit P1 repräsentiert, das falsch dekodiert worden ist.
-
Es
gibt auch weitere Strategien zur Fehlerkorrektur, die zum Beispiel
das Fehlerverhalten des Kanals 130 berücksichtigen.
-
Einer
weiteren Ausführungsform der Erfindung liegt die Erkenntnis
zu Grunde, dass Übertragungsstörungen der Teilblöcke 108,
bzw. 110 zu einer signifikanten Anzahl unterschiedlicher
Bits zwischen den Prüfdaten 114 und 114',
bzw. 116 und 116' führen. Die Hammingdistanz
H der Prüfdaten, die empfangen wurden, und der Prüfdaten,
die vom Verifikationsmodul über den empfangenen Teilblock
berechnet werden, wird daher als Kriterium genommen, ob ein Teilblock
korrekt ist. Wenn H einen bestimmten Schwellwert nicht überschreitet,
liegt der Teilblock korrekt vor, und es wurden einige Bits der Prüfdaten während
der Übertragung gestört. In diesem Fall werden
die empfangenen Prüfdaten 114', bzw 116' durch die
berechneten Prüfdaten ersetzt. Somit wird angenommen, dass
die Übertragungsteilblöcke 118' und 120' in
korrekter Weise vorliegen. Wenn H über dem festgelegten
Schwellwert liegt, wird angenommen, dass der Teilblock, der empfangen
worden ist, nicht korrekt ist. Insbesondere bei Anwendung kryptographischer
Verfahren zur Generierung der Prüfdaten kann nämlich
bereits ein einziges fehlerhaftes Bit in einem Teilblock zu gänzlich
anderen empfängerseitig generierten Prüfdaten
für diesen fehlerhaften Teilblock führen, so dass
also bereits ein einziges fehlerhaftes Bit in dem Teilblock zu einer
grossen Hammingdistanz zwischen den empfangenen Prüfdaten dieses
Teilblocks und den empfängerseitig generierten Prüfdaten
führt. Im Umkehrschluß kann aus einer kleinen
Hammingdistanz zwischen den empfangenen Prüfdaten dieses
Teilblocks und den empfängerseitig generierten Prüfdaten
auf den korrekten Empfang des Teilblocks geschlossen werden.
-
Der
Schwellwert für H hängt von dem Encoder 112 und
der Bitfehlerrate hinter dem Kanaldecodierer 138 ab.
-
Entsprechend
dieser Tatsache gibt es eine Ausführungsform des Fehlerkorrekturmoduls,
bei der das beschriebene Fehlerkorrekturverfahren nur auf die Bitpositionen
des Teilblockes 108', bzw. 110' angewendet wird.
An Stelle der Überprüfung, ob Teilblock und Prüfdaten
identisch sind, wird überprüft, ob die Hammingdistanz
der Prüfdaten 114', bzw. 116' und der
im Verifikationsmodul über den empfangenen Teilblock 108',
bzw. 110', berechneten Prüfdaten nicht über
dem festgelegten Schwellwert liegt. Ist dies der Fall, bilden der
korrigierte Teilblock und die berechneten Prüfdaten den
korrigierten Übertragungsteilblock 118', bzw. 120'.
-
Beispielsweise
wird bei dieser Ausführungsform also wie folgt vorgegangen:
Das Verifikationsmodul 142 generiert für die empfangenen
Teilblöcke 108' und 110' deren Prüfdaten 114'' bzw. 116'',
wobei für die Generierung dieser Prüfdaten dasselbe
Verfahren eingesetzt wird, wie es senderseitig von dem Encoder 112 (vgl. 1 und 2)
verwendet wird.
-
Wenn
die Hammingdistanz H zwischen den empfängerseitig generierten
Prüfdaten 114'' und den empfangenen Prüfdaten 114' nicht über
dem vorgegebenen Schwellwert liegt, so gilt der Teilblock 108' als
korrekt empfangen. Im gegenteiligen Fall gilt der Teil block 108' als
nicht korrekt empfangen. Entsprechend wird für den Teilblock 110' und
dessen Prüfdaten 116'' bzw. 116' vorgegangen.
-
Im
weiteren wird ohne Beschränkung der Allgemeinheit davon
ausgegangen, dass die Hammingdistanz H zwischen den Prüfdaten 116'' und 116' des Teilblock 110' über
dem vorgegebenen Schwellwert liegt, so dass der Teilblock 110' als
nicht korrekt empfangen gilt.
-
Zur
Fehlerkorrektur wird dann nur für die Bitpositionen des
Teilblocks 110' das oben offenbarte Fehlerkorrekturverfahren
durchgeführt, wobei die Bitpositionen der Prüfdaten 116' für
die Durchführung des Fehlerkorrekturverfahrens unberücksichtigt
bleiben. Beispielsweise werden also die Bitpositionen des Teilblocks 110' zunächst
nach Zuverlässigkeitswerten sortiert und es werden dann
beginnend mit den Bitpositionen geringer Zuverlässigkeitswerte
versuchsweise die Bitwerte solcher Bitpositionen geändert.
-
Ein
so versuchsweise geänderter Teilblock 110' wird
dann von dem Fehlerkorrekturmodul 146 an das Verifikationsmodul 142 zurückgegeben,
wo der Teilblock 110' anhand der empfangenen Prüfdaten 116' auf
Korrektheit geprüft wird.
-
Hierzu
werden von dem Verifikationsmodul 142 erneut Prüfdaten 116'' für
den nunmehr versuchsweise geänderter Teilblock 110' generiert.
Anhand der Hammingdistanz H zwischen diesen Prüfdaten 116'' und
den empfangenen Prüfdaten 116' entscheidet das
Verifikationsmodul, ob der Korrekturversuch des Teilblocks 110' erfolgreich
war, indem es die Hammingdistanz mit dem vorgegeben Schwellwert
vergleicht, wie oben ausgeführt.
-
Falls
die Prüfdaten 116'' und 116' jetzt eine Hammingdistanz
haben, die nicht über dem Schwellwert liegt, so gilt der
versuchsweise geänderte Teilblock 110' als korrekt.
Im gegenteiligen Fall kann das Verifikationsmodul 142 einen
weiteren Fehlerkorrekturversuch des Fehlerkorrekturmoduls 146 für
den Teilblock 110' initiieren, solange bis eine erfolgreiche Fehlerkorrektur
erfolgt ist oder ein Abbruchbedingung erreicht ist.
-
Für
den Fall, dass einer oder beide der Übertragungsteilblöcke 118' oder 120' zunächst
nicht korrekt empfangen worden ist, sich dies aber durch Ausführung
des Fehlerkorrekturverfahrens durch das Fehlerkorrekturmodul 146 hat
beheben lassen, so wird auch in diesem Fall der als korrekt erkannte
Datenblock 104' ausgegeben.
-
Der
als korrekt erkannte Datenblock 104' muss nicht unbedingt
fehlerfrei und identisch zu dem Datenblock 104 des Senders 100 sein,
da es vorkommen kann, dass das Verifikationsmodul erkennt, dass die
Prüfinformation zu dem Teilblock als gültig akzeptiert
wird, obwohl es sich nicht um den originalen Teilblock handelt.
Dies kann der Fall sein, wenn die Änderungen auf dem gestörten
Kanal und/oder in Verbindung mit den Änderungen bei der
Fehlerkorrektur zu einem Übertragungsteilblock 118' und/oder 120' führen,
der als korrekt erkannt wird. Eine solche Situation ist aber je
nach dem gewählten Kodierungsverfahren für den
Outer Encoder 133 unwahrscheinlich bis praktisch ausgeschlossen.
-
Die
Komponenten Demultiplexer 140, Verifikationsmodul 142 mit
dem Fehlerkorrekturmodul 146, Multiplexer 143 und
Zusammenbaumodul 144, das wieder die Datenbits der Teilblöcke 108' und 110' zu
einem Datenblock 104' zusammensetzt, bilden also den sog.
outer decoder 152.
-
Ausführungsformen
der vorliegenden Erfindung sind nun besonders vorteilhaft in der
folgenden Situation: Zunächst wurden beide Übertragungsteilblöcke 118' und 120' nicht
korrekt empfangen, was eine erste Überprüfung
durch das Verifikationsmodul 142 ergeben hat. Für
beide Übertragungsteilblöcke 118' und 120' wird
dann der Versuch einer Fehlerkorrektur mit Hilfe des Fehlerkorrekturmoduls 146 unternommen.
Wenn ein solcher Fehlerkorrekturversuch hinsichtlich nur einer der Übertragungsteilblöcke
gelingt, für den anderen Übertragungsteilblock
jedoch fehlschlägt, wird wie folgt vorgegangen:
Im
Weiteren wird ohne Beschränkung der Allgemeinheit davon
ausgegangen, dass eine Fehlerkorrektur des Übertragungsteilblocks 118' mit
Hilfe des Fehlerkorrekturmoduls 146 erfolgreich war, für
den Übertragungsteilblock 120' jedoch fehlgeschlagen
ist. In diesem Fall setzt das Verifikationsmodul 142 die
Beträge der L-Werte des Übertragungsteilblocks 118' auf einen
maximalen Zuverlässigkeitswert, da ja nun Sicherheit hinsichtlich
der korrekten Bitwerte des Übertragungsteilblocks 118' besteht.
Die L-Werte des Übertragungsteilblocks 120' können
verringert werden, da sie ja bekanntermaßen zumindest teilweise nicht
richtig sind; beispielsweise können die L-Werte auf Null
gesetzt werden, sie können aber je nach Implementation
auch unverändert bleiben.
-
Diese
geänderten L-Werte der Übertragungsteilblöcke 118' und 120' werden
vom Verifikationsmodul einem Multiplexer 143 übergeben,
der die Bits der Übertragungsteilblöcke 118' und 120' entsprechend
der Arbeitsweise des senderseitigen Multiplexers 122 wieder
multiplext, sodass die Reihenfolge der L-Werte identisch zur Reihenfolge
der Bits im Übertragungsblock 124' ist. Diese
gemultiplexten L-Werte werden in den Kanal Dekodierer 138 eingegeben.
Alternativ kann auch so vorgegangen werden, dass der Soft-Output 137 des
Leitungsdecodierers 136 zwischengespeichert wird. Die L-Werte
in dem zwischengespeicherten Soft-Output 137 werden dann
geändert, und der so geänderte Soft-Output 137 wird
erneut in den Kanal Decodierer 138 eingegeben.
-
Mit
Hilfe dieser geänderten L-Werte 148 des Übertragungsblocks 124' wird
also der Output 137 des Leitungsdekodierers 136 erneut
dem Kanalcodierer 138 zugeführt und zwar je nach
Implementierung von dem Multiplexer 143 oder aus dem Zwischenspeicher
(in der Fig. nicht gezeigt).
-
Der
Kanaldecodierer 138 gibt daraufhin den resultierenden Übertragungsblock 124' mit
den zugehörigen Zuverlässigkeitswerten für
jedes Bit aus, der wieder durch den Demultiplexer in die Übertragungsteilblöcke 118' und 120' geteilt
wird, die jeweils dem Verifikationsmodul 142 zugeführt
werden. Wenn die Prüfung durch das Verifikationsmodul 142 ergibt, dass
nunmehr der Übertragungsteilblock 120' korrekt empfangen
worden ist, so wird der als korrekt erkannte Datenblock 104' ausgegeben,
nachdem das Zusammenbaumodul 144 die Datenbits der Teilblöcke 108' und 110' wieder
aneinandergereiht hat.
-
Wenn
hingegen die Prüfung des Übertragungsteilblocks 120' in
dem Verifikationsmodul 142 ergibt, dass dieser immer noch
nicht korrekt ist, so kann erneut eine Fehlerkorrektur mit Hilfe
des Fehlerkorrekturmoduls 146 versucht werden.
-
Nach
einer weiteren Ausführungsform wird senderseitig der Datenblock 104 in
zumindest einen weiteren dritten Teilblock (in der Fig. nicht gezeigt) aufgeteilt.
Hieraus wird ein dritter Übertragungsteilblock generiert,
der neben dem dritten Teilblock auch dessen dritte Prüfdaten
beinhaltet, analog zu der Generierung der ersten 118 und
zweiten Übertragungsteilblöcke 120. Die
ersten, zweiten und dritten Übertragungsteilblöcke
werden zu einem resultierenden Übertragungsblock kombiniert,
wobei ein Schema zur Anwendung kommt, welches Bits der ersten, zweiten
und dritten Übertragungsteilblöcke in dem resultierenden Übertragungsblock
alternierend aufeinander folgen lässt. Es folgt beispielsweise
immer ein Bit des zweiten Übertragungsteilblocks auf ein
Bit des ersten Übertragungsteilblocks und ein Bit des dritten Übertragungsteilblocks
auf ein Bit des zweiten Übertragungsteilblocks.
-
Es
sei ohne Beschränkung der Allgemeinheit angenommen, dass
der dritte Übertragungsteilblock ohne Fehlerkorrektur korrekt
empfangen worden ist, und dass eine Fehlerkorrektur des Übertragungsteilblocks 118' mit
Hilfe des Fehlerkorrekturmoduls 146 erfolgreich war, für
den Übertragungsteilblock 120' jedoch fehlgeschlagen
ist.
-
In
diesem Fall setzt das Verifikationsmodul 142 nicht nur
die Beträge der L-Werte des Übertragungsteilblocks 118' auf
einen maximalen Zuverlässigkeitswert (vgl. das oben genannte
Beispiel für zwei Übertragungsteilblöcke),
sondern auch die L-Werte für die Bitpositionen des dritten Übertragungsteilblocks,
da ja Sicherheit hinsichtlich der korrekten Bitwerte auch des dritten Übertragungsteilblocks
besteht. Die L-Werte des Übertragungsteilblocks 120' können
verringert werden, da sie ja bekanntermaßen zumindest teilweise
nicht richtig sind; beispielsweise können die L-Werte auf
Null gesetzt werden, sie können aber je nach Implementation
auch unverändert bleiben.
-
Diese
geänderten L-Werte der Übertragungsteilblöcke
dienen dann für die erneute Durchführung der SISO
Kanal Decodierung. Der weitere Verfahrensablauf ist analog zu der
oben geschilderten Ausführungsform mit zwei Übertragungsteilblöcken.
-
Die 5 zeigt
eine weitere Ausführungsform eines erfindungsgemäßen
Empfänger, der der Ausführungsform des Senders
der 2 entspricht. Im Unterschied zu der Ausführungsform
gemäß 4 erfolgt bei der Ausführungsform
der 5 der Zusammen bau der beiden Teilblöcke 108' und 110' zum
Datenblock 104' bei der Ausgabe 145 durch Multiplexing
(abwechselnd 1 Bit von Teilblock 108', ein Bit von Teilblock 110',
im Fall eines Senders gemäß 2),
wozu statt des Zusammenbaumoduls 144 ein Multiplexer 150 vorgesehen
ist.
-
Die 6 zeigt
ein entsprechendes Flussdiagramm. In dem Schritt 300 empfängt
der Empfänger ein Signal über einen gestörten
Kanal. Das Signal wird von einem Soft Decision Leitungsdekodierer
decodiert. In dem nachfolgenden Schritt 302 erfolgt eine SISO-Kanaldecodierung.
Anschließend werden die Übertragungsteilblöcke
in dem Schritt 304 gedemultiplext.
-
In
dem Schritt 306.1 erfolgt dann eine Verifikation des ersten Übertragungsteilblocks,
vgl. Übertragungsteilblock 118' der 4 und 5.
Wenn die Verifikation ergibt, dass der erste Übertragungsteilblock
nicht korrekt empfangen worden ist, so folgt in dem Schritt 308.1 der
Versuch einer Fehlerkorrektur mit Hilfe des oben beschriebenen Fehlerkorrekturverfahrens.
Entsprechend wird in den Schritten 306.2 und 308.2 bezüglich
des zweiten Übertragungsteilblocks vorgegangen.
-
Im
Folgenden wird ohne Beschränkung der Allgemeinheit wiederum
davon ausgegangen, dass zunächst beide Übertragungsteilblöcke
nicht korrekt empfangen worden sind, sodass die Schritte 308.1 und 308.2 zur
jeweiligen Fehlerkorrektur durchgeführt worden sind. Dabei
ist nur eine Fehlerkorrektur des ersten Übertragungsteilblocks
in dem Schritt 308.1 möglich gewesen; die Durchführung
des Fehlerkorrekturverfahrens in dem Schritt 308.2 für
den zweiten Übertragungsteilblock ist dagegen fehlgeschlagen.
-
In
diesem Fall werden in dem Schritt 310 die Beträge
der L-Werte des ersten Übertragungsteilblocks auf einen
Maximalbetrag gesetzt, da ja nun Sicherheit hinsichtlich deren korrekten
Empfangs vorliegt. Dagegen werden die Beträge der L-Werte
der Bitpositionen des zweiten Übertragungsblocks verringert,
beispielsweise auf Null gesetzt. Alternativ können die
L-Werte des zweiten Übertragungsblocks auch unverändert
bleiben oder andere Werte erhalten.
-
Anschließend
wird in dem Schritt 312 erneute eine SISO-Decodierung vorgenommen,
die im Prinzip gleich abläuft wie die SISO-Decodierung
in dem Schritt 302, allerdings auf der Basis der in dem Schritt 310 geänderten
L-Werte. Aus dem resultierenden Datenübertragungsblock 124' der
SISO-Decodierung des Schrittes 312 wird z. B. von dem Demultiplexer 140 (vgl. 5)
der zweite Übertragungsteilblock 120' extrahiert
und in 314 erneut einer Verifikation unterzogen.
-
Erforderlichenfalls
wird in dem Schritt 316 nochmals das Fehlerkorrekturverfahren
zur Korrektur des in dem Schritt 312 ausgegebenen zweiten Übertragungsteilblocks
durchgeführt. Wenn das Fehlerkorrekturverfahren jetzt erfolgreich
ist, werden die Bits der beiden Teilblöcke 108' und 110' aneinandergereiht,
z. B. von dem Zusammenbaumodul 144 in der Ausführungsform
der 4 oder durch den Multiplexer 150 in der
Ausführungsform der 5, um die
Bits so wieder in die ursprüngliche Reihenfolge des Datenblocks 104 zu
bringen.
-
Das
Verhalten, falls das Verfahren die Übertragungsteilblöcke
endgültig nicht erfolgreich korrigieren kann, ist implementationsabhängig,
z. B. können die Datenbits der beiden Teilblöcke
wie im erfolgreichen Fall durch das Zusammenbaumodul 144 oder
den Multiplexer 150 in die richtige Reihenfolge gebracht
und ausgegeben werden, wobei ein Hinweis erfolgt, dass die Bits
desjenigen Teilbockes, der nicht als korrekt erkannt werden konnte,
möglicherweise nicht korrekt sind.
-
Nach
Ausführungsformen der Erfindung erfolgt senderseitig eine
Punktierung, d. h. ein sogenanntes Puncturing, um die Coderate zu
erhöhen. Beispielsweise werden durch die Punktierung Bitpositionen
in äquidistanten Abständen aus dem Datensignal 124 (vgl. 1 und 2)
gelöscht. In diesem Fall wird die Punktierung durch den
Empfänger 134 rückgängig gemacht,
indem die senderseitig gelöschten Bitpositionen vor dem
SISO-Kanaldecodierer 138 des Empfängers 134 wieder
aufgefüllt werden.
-
- 100
- Sender
- 102
- Eingang
- 104,
104'
- Datenblock
vor dem Senden, nach dem Empfang
- 106
- Aufteilungsmodul
- 107
- Demultiplexer
- 108,
108'
- Teilblock
vor dem Senden, nach dem Empfang
- 110,
110'
- Teilblock
vor dem Senden, nach dem Empfang
- 112
- Encoder
zur Generierung eines fehlererkennenden Codes
- 114,
114'
- Prüfdaten
vor dem Senden, nach dem Empfang
- 116,
116'
- Prüfdaten
vor dem Senden, nach dem Empfang
- 118,
118'
- Übertragungsteilblock
vor dem Senden, nach dem Empfang
- 120,
120'
- Übertragungsteilblock
vor dem Senden, nach dem Empfang
- 122
- Multiplexer
- 124,
124'
- Übertragungsblock
vor dem Senden, nach dem Empfang mit L-Werten
- 126
- Kanalcodierer
- 128
- Leitungskodierer
- 130
- Nachrichtenkanal
- 132
- Signal
- 133
- Outer
Encoder
- 134
- Empfänger
- 136
- Leitungsdekodierer
- 137
- Output
des Soft Decision Leitungsdekodierer
- 138
- SISO-Kanaldecodierer
- 140
- Demultiplexer
- 142
- Verifikationsmodul
- 143
- Multiplexer
- 144
- Zusammenbaumodul
- 146
- Fehlerkorrekturmodul
- 145
- Ausgang
- 148
- L-Werte
- 150
- Multiplexer
- 152
- Outer
Decoder
-
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 on Information
Theory, IT-20, pp. 284–287, March 1974 [0003]
- - Hagenauer, J., Höher, P.: A Viterbi algorithm with soft-decision
Outputs and its applications, Proc. IEEE GLO-BECOM '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.: Soft Decoding of Reed Solomon
Codes and Optimal Weight Assignments, 4th International ITG Conference
on 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 on Source and Channel Coding, Ulm, VDE/ITG
2008 [0006]
- - ISO 9796-2 [0048]
- - ISO 14888 [0048]
- - ISO 15946-4 [0048]
- - ISO/IEC 9797-1 [0048]
- - ISO/IEC 18033-3 [0048]
- - ISO/IEC 9797-2 [0048]
- - 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 [0080]