-
Die
Erfindung betrifft ein Verfahren zum Empfangen eines Datenblocks
sowie einen entsprechenden 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 A1 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, 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 kryptographischen
Prüfwert
zu versehen. Ferner ist hieraus auch ein entsprechendes Empfangsverfahren
bekannt.
-
Aus
WO 2008/015742 A1 ist
ein Empfänger in
einem Kommunikationssystem bekannt, wobei ein Informationsrahmen
in mehrere Blocks aufgeteilt wird und die Information jedes Blocks
für die Übertragung
turbokodiert wird.
-
Der
Erfindung liegt demgegenüber
die Aufgabe zugrunde, ein verbessertes Verfahren zum Empfangen eines
Datenblocks zu schaffen sowie einen entsprechenden Empfänger.
-
Nach
Ausführungsformen
der Erfindung wird ein Verfahren zum Empfangen 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 Übertragungs teilblö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 Kanalcodierer 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 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 Übertragungsteilblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen
Teilblock des Übertragungsteilblocks generiert
werden, mit den empfangenen Prüfdaten dieses Übertragungsteilblocks
identisch sind.
-
Nach
einer Ausführungsform
der Erfindung gilt ein Übertragungsteilblock
als korrekt empfangen, wenn die Prüfdaten, die empfängerseitig
für den empfangenen
Teilblock des Übertragungsteilblocks generiert
werden, sich von den empfangenen Prüfdaten dieses Übertragungsteilblocks
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 Senders
-
2 ein
Blockdiagramm einer weiteren Ausführungsform eines Senders
-
3 ein
Flussdiagramm einer Ausführungsform
eines 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 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, so wie
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änkung
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 Übertragungsteil blocks 118 gesendet,
danach die erste Bitposition 6256 des Übertragungsteilblocks 120,
anschließend
die zweite Bitposition B1 des Übertragungsteilblocks 118,
nachfolgend die zweite Bitposition 6257 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
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ängersei tige
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 P0 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 Übertragungsteilblö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
bei den 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 einzi ges fehlerhaftes Bit in dem Teilblock
zu einer großen
Hammingdistanz zwischen den empfangenen Prüfdaten dieses Teilblocks und
den empfängerseitig
generierten Prüfdaten
führt.
Im Umkehrschluss 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 Teilblock 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änderten
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 vorgegebenen 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 eine
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 Zusammenbau 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 erneut 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