Search International and National Patent Collections
Some content of this application is unavailable at the moment.
If this situation persists, please contact us atFeedback&Contact
1. (WO1998052362) CHANNEL CODING METHOD
Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

Beschreibung

Kanalcodierungsverfahren

Die vorliegende Erfindung betrifft ein Verfahren zur Kanalcodierung gemäß dem Oberbegriff des Anspruches 1. Insbesondere betrifft die vorliegende Erfindung ein Verfahren zur Kanalcodierung von digitalen Kommunikationsinformationen, welche gemäß dem GSM-Mobilfunkstandard zwischen zwei
Mobilfunkteilnehmern, d.h. zwischen zwei mobilen Stationen oder zwischen einer mobilen Station und einer stationären Station, zu übertragen sind.

Die Fehlererkennung und Fehlerkorrektur stellt einen Kernpunkt digitaler Mobilfunksysteme dar. Um die für die Sprach- und insbesondere Datenübertragung erforderliche gute
Übertragungsqualität mit einer möglichst kleinen Bitfehlerrate zu erzielen, ist zur Fehlererkennung und Fehlerkorrektur die sogenannte Kanalcodierung erforderlich. Die Kanalcodierung ermöglicht durch das Hinzufügen zusätzlicher redundanter Bits zu den eigentlichen zu übertragenden Nachrichteninformationen dem Empfänger, ohne Mitwirkung des Senders Fehler zu erkennen und eventuell auch zu korrigieren.

Fig. 7 zeigt ein vereinfachtes Blockdiagramm eines Mobilfunksystems. Dabei sei beispielhaft die Übertragung von Kommunikationsinformationen zwischen einer mobilen Station 1, beispielsweise einem Handy, und einer weiteren mobilen Station 2 betrachtet. Um im Empfänger 2 vorliegende und über eine
Eingabeeinheit 3 eingegebene Daten, die beispielsweise von einem Faxgerät oder einem Modem stammen können und nach der Übertragung fehlerhaft sind, zu korrigieren, wird im
Kanalcoder 4 Fehlerschutz hinzugefügt, der - wie bereits zuvor beschrieben worden ist - das digitale Kom unikationssignal gemäß einer vorgegebenen Codiervorschrift derart codiert, daß den eigentlichen Nachrichtenbits des Kommunikationssignals zusätzliche Paritäts- bzw. Fehlererkennungsbits hinzugefügt- werden, so daß später anhand dieser zusätzlich hinzugefügten Fehlererkennungsbits auf das Vorliegen eines
Übertragungsfehlers geschlossen werden kann.

Die von dem Kanalcoder 4 erzeugten codierten Kommunikationsinformationen werden vorteilhafterweise einem Interleaver 5 zugeführt. Unter Interleaving versteht man eine zeitliche Spreizung der Übertragungszeitpunkte der Symbole der von dem Kanalcoder 4 geliefertem Codewörter, wobei die Umordnung und zeitliche Spreizung der Symbole der Codewörter auf eine eindeutige vorgegebene Weise erfolgt. Der Grund für das Interleaving ist, daß die meisten von den Kanalcodern 4 angewendeten Codes statistisch unabhängige Einzelfehler voraussetzen. In der Regel sind jedoch die Fehlerverteilungen nicht
zufällig. Vielmehr treten die Fehler, z. B. hervorgerufen durch einen Fadingeinbruch, als Burst- oder Bündelfehler auf, d. h. mehrere Einzelfehler folgen dicht aufeinander. Durch geeignetes Interleaving kann man die Bündelfehler derart verteilen, daß gegebenenfalls auftretende Fehler mehr oder weniger gleichmäßig auf einzelne Blöcke des zu übertragenden digitalen Kommunikationssignals verteilt werden. Bekannte Interleaving-Verfahren sind das sogenannte diagonale Interleaving, das Block-Interleaving oder das Faltungs-Inter-leaving, die jeweils bestimmte Vorschriften für die Umordnung der Symbole des zu übertragenden Codewortes darstellen.
Allgemein teilt der Interleaver 5 die Bits eines von dem
Kanalcoder 4 gelieferten Codewortes auf I-Blöcke oder Rahmen mit jeweils -Bits pro Block bzw. Rahmen auf, wobei I als Interleaving-Tiefe bezeichnet wird. Durch die Aufteilung der Bits des von dem Kanalcoder 4 gelieferten Codewortes wird zugleich die ursprüngliche Reihenfolge der Bits bzw. Symbole des Codewortes verändert, um somit die möglicherweise auftretenden Fehler gleichmäßig auf die Blöcke zu verteilen. Durch das Interleaving wird jedoch eine Verzögerung hervorgerufen, welche dem Produkt aus der Bitdauer mit m x I entspricht.

ERSATZBLÄTT (REGEL 26) Nach dem Interleaving werden die somit umgeordneten Symbole der Codewörter des Kanalcoders 4 über den Hochfrequenz-Mobilfunkkanal 6 und einer Basisstation an den Empfänger 2 übertragen und dort durch einen Deinterleaver 7 durch ein entsprechend zu dem Interleaving des Interleavers 5 reziprok durchgeführtes Interleaving wieder in die ursprüngliche
Reihenfolge gebracht. Die empfangenen Codewörter werden anschließend einem Kanaldecoder 8 zugeführt, der eine
Kanaldecodierung durchführt, um auf diese Weise anhand der von dem Kanalcoder 4 hinzugefügten Paritäts- bzw. Fehlererkennungsbits festzustellen, ob während der Übertragung ein Fehler aufgetreten ist. Gegebenenfalls kann der Kanaldecoder 8 nach Feststellen eines Fehlers diesen automatisch korrigieren. Die decodierten Kommunikationssignale werden von dem Kanaldecoder 8 anschließend einer Ausgabeeinheit 9 zugeführt, die das von dem Kanaldecoder 8 gelieferte digitale Signal wieder in ein analoges Signal umwandelt und dieses ausgibt.

Die vorliegende Erfindung betrifft nunmehr insbesondere die Kanalcodierung. Die Grundlage der Kanalcodierungstheorie stellen die Ausführungen von Shannon dar, der unter anderem zeigte, daß bei der Übertragung eines mit Rauschen gestörten Signals beliebig niedrige Fehlerraten möglich sind, soweit die Übertragungsrate geringer ist als die Kanalkapazität des
Übertragungskanals.

Eine wichtige Grundlage der Kanalcodierung ist die sogenannte Modulo-2-Rechnung. In der Modulo-2-Rechnung unterscheidet man nicht zwischen einer Zahl Z und der mit einem Vielfachen von 2 addierten Zahl, d.h. Z = Z + i x 2 mit i=0, ± 1, ± 2,...

Die grundlegende Verknüpfung der Modulo-2-Rechnung ist die Modulo-2-Addition, die gemäß der in Fig. 8 dargestellten
Vorschrift erfolgt (vgl. das sog. Galois-Feld GF(2)).

Wie bereits zuvor beschrieben worden ist, werden den
eigentlich zu übertragenden Nachrichtenbits mehrere Paritäts-

ERSATZBLAπ(REGEL26) bzw. Fehlererkennungsbits hinzugefügt, so daß die Anzahl n der von dem Kanalcoder codierten Bits größer ist als die Anzahl k der eigentlichen Daten- bzw. Nachrichtenbits. Die Coderate r, welche eine wichtige Größe zur Beschreibung von Codes
darstellt, ist definiert durch:

r = - (1)
n

Man bezeichnet einen solchen Code als (n,k)-Code. Je kleiner die Coderate ist, desto leistungsfähiger ist in der Regel der Code. Eine Coderate von 1 bedeutet, daß keine zusätzlichen Bits hinzugefügt werden.

Ein wichtiges Maß für die Güte eines Codierungsverfahrens ist der Codierungsgewinn. Er gibt an, wie weit das Verhältnis von der Symbolenergie Es, d.h. der Energie pro Symbol, zu der Rauschleistungsdichte N0 bei einer vorgegebenen Bitfehlerrate (bit error rate) BER gegenüber dem uncodierten Fall reduziert werden kann. Weitverbreitete Kanalcodierungsverfahren sind die sogenannte Blockcodierung sowie die Faltungscodierung. Da sich die vorliegende Erfindung mit der Anwendung von Faltungscodes (convolutional codes, CC) , beschäftigt, sollen die
mathematischen Grundlagen nachfolgend etwas ausführlicher dargestellt werden.

Die mathematische Grundlage der Kanalcodierung bildet die lineare Algebra. Durch die Codiervorschrift des Kanalcoders werden k Datenbits, darstellbar durch 2k Vektoren, eindeutig auf 2n Vektoren abgebildet, die die von dem Kanalcoder erzeug-ten Codewörter bzw. codierten Kommunikationsinformationen definieren. Die Codiervorschrift eines Codes C läßt sich allgemein mit der sogenannte Generatormatrix G beschreiben, wobei gemäß der folgenden Gleichung der Codevektor v mit n codierten Bits durch Multiplikation des Nachrichten- bzw.
Datenvektors u mit der Generatormatrix G hervorgeht:

ERSATZBLÄΓT (REGEL v = u x G ( 2 )

Die Dimension des Daten- bzw. Nachrichtenvektors u beträgt lxk, die Dimension der Generatormatrix G beträgt kxn und die Dimension des Codevektors v beträgt lxn für einen (n,k)-Code.

Charakteristisch für einen systematischen Code ist, daß k Stellen des von dem Kanalcoder gelieferten Codewortes identisch mit dem zu codierenden Datenwort sind. Dies bedeutet, daß sich die Generatormatrix G einerseits aus der kxk
Einheitsmatrix I und der sogenannten Paritätsmatrix P mit der Ordnung kx (n-k) zusammensetzt, d. h. es gilt:

G = [AP] (3)

Die Paritätsmatrix P bildet aus den Datenbits Prüfbits, die bei der Decodierung eine Fehlererkennung bzw. Fehlerkorrektur erlauben.

Eine wichtige Matrix für die Kanaldecodierung ist die (n-k) xn Kontrollmatrix H sowie die entsprechende transponierte nx (n-k) Matrix Hτ. Die Kontrollmatrix H bzw. ihre transponierte Matrix Hτ erfüllt folgende Orthogonalitätsbedingung:

G x H = o (4)

Jedem (nachfolgend noch näher zu beschreibenden) Faltungscode C ist ein sogenannter dualer Faltungscode C* zugeordnet, dessen Codewörter bzw. Codevektoren v* orthogonal zu den
Codewörtern bzw. Codevektoren v des ursprünglichen Faltungscodes C sind. Der duale Faltungscode C* umfaßt demnach sämtliche Codewörter, die durch die oben beschriebende Kontrollmatrix H erzeugt werden.

Die Aufgabe der Decodierung ist es, aus einem empfangenen

Codevektor den gesendeten Codevektor zu bestimmen, wobei sich der empfangene Codevektor von dem ursprünglich gesendeten Codevektor um einen Fehlervektor unterscheiden kann, der zugleich von dem Decoder korrigiert werden soll.

Neben der Vektorschreibweise lassen sich die Datenwörter, die Codewörter sowie die Generatormatrix auch in Polynom-Schreibweise im Sinne einer Laurent-Reihe darstellen. Ein Nachrichten- bzw. Datenwort u = (u0, Ui, u2 ... uk_ι) läßt sich demnach darstellen durch:

U D ) = Uk - ιDk~i + Uk - 2Dk~2 +...mD + uo ( 5 )

Das Datenwort-Polynom u (D) =1+D3+D5+D6 entspricht demnach dem Codewort Vektor u= (1001011). Auf analoge Art und Weise läßt sich auch ein Codewort v= (v0, v:,v2... vn_ι) sowie die Generator-matrix für einen (n, k) -Code folgendermaßen in Polynom-Schreibweise darstellen:

v(D)=vn-ιDn_1+vn-2Dn"2+...+V1D+V0
G(D)= gn-kDn"k+gn-.k-1Dn-k-1+.. ,+giD+go (6)

In Polynom-Schreibweise geht demnach das Codewort-Polynom v(D) gemäß folgender Gleichung aus dem Datenwort-Polynom u(D) und dem Generatorpolynom G(D) hervor:

v(D)=u(D)xG(D) (7)

Bei der Addition der einzelnen Koeffizienten einer Polynompotenz in Gleichung (7) sind stets die in Fig. 8 dargestellten Modulo-2-Additionsregeln zu beachten. Demnach ergibt sich beispielsweise bei einem (7, 4) -Code mit G(D)=1+D+D3 und u(D)=l+D+D3 folgender Ausdruck für das Codewortpolynom v(D):

v(D)= (1+D2+D3) x(l+D+D3)
= 1+D+D3+D2+D3+D5+D3+D4+D6
= 1+D+D2+D3+D4 + D5+D6 ( 8 ) Dieses Codewort-Polynom v(D) entspricht gemäß Gleichung (6) dem Codewortvektor . Ein wichtiger Vorteil eines zuvorbeschriebenen zyklischen Codes, der durch Polynom-Schreibweise darstellbar ist, ist die schaltungstechnische Umsetzung der Codierung durch einfach zu realisierende, rückgekoppelte Schieberegister, die insbesondere bei den nachfolgend ausführlicher beschriebenen Faltungscodes
(convolutional codes, CC) zur Anwendung kommen.

Eine wesentliche Eigenschaft von Faltungscodes ist die
Tatsache, daß bei der Faltungscodierung nicht einzelne Blöcke nacheinander codiert werden, sondern daß es sich um eine kontinuierliche Verarbeitung handelt. Dadurch erhält man eine Codierung mit "Gedächtnis". Das aktuelle Codewort eines
Nachrichtenworts hängt demnach von den vorhergehenden
Nachrichtenwörtern ab. Ein Codewort bzw. eine Codesequenz A wird durch Faltung der Daten- bzw. Nachrichtensequenz Uj mit einer Generatormatrix G mit den Elementen gj gemäß folgender Gleichung erhalten:

N
V i = ∑ g jU i - j (9)
j = o

Fig. 9 zeigt ein Beispiel für den schematischen Aufbau eines Faltungscoders . Ein zu codierendes Nachrichtenwort bzw. eine zu codierrende Nachrichtensequenz Ui wird in eine Registeranordnung mit K Einzelregistern 10-12 eingeschrieben, wobei pro Takt jeweils 1 neue Bits gleichzeitig in die Registeranordnung hineingeschoben werden. Die Registeranordnung besitzt demnach die Tiefe lxK. Der Wert K wird allgemein als "constraint length" bezeichnet und gibt an, über wie viele Takte von 1 neuen Bits ein Bit das ausgangsseitig erhaltene Codewort beeinflußt. In der Regel wird pro Takt lediglich ein neues Bit in die Registeranordnung eingeschrieben, d. h. 1=1. Die
Inhalte der einzelnen Register werden über Verknüpfungen ausgelesen, in q Addierern Modulo-2 addiert und ausgangsseitig abgetastet. In der Art der Verknüpfungen liegt die Faltungscode-Vorschrift. Für ausreichend lange Sequenzen entspricht die Coderate r dem Verhältnis r=l/q.

Bei dem in Fig. 9 gezeigten Beispiel beträgt die "constraint length" K 3 und es wird pro Takt lediglich ein neues Bit in die Registeranordnung hineingeschrieben, d. h. 1=1. Des weiteren sind zwei Addierer vorhanden, d. h. q=2. Die dem oberen Addierer zugeordnete Faltungscode-Vorschrift Gi
entspricht dem "Verknüpfungsvektor" Gι=(lll), und die dem unteren Addierer zugeordnete Faltungscodevorschrift G2
entspricht dem "Verknüpfungsvektor" G2=(101). Die sich pro Takt an dem Ausgang des in Fig. 9 gezeigten Faltungscoders ergebenden Ausgangsbits Vi und v2 sind zusammen mit den jeweiligen Registerinhalten der Register 10-12 in Fig. 10 dargestellt, wobei angenommen wird, daß als Nachrichtenwort bzw. Eingangssequenz u± die Bitfolge u=(101) an dem Eingang der Registeranordnung, d. h. an dem ersten Schieberegister 10, anliegt. Zu Beginn der Faltungscodierung, d. h. beim Takt 0, sind sämtliche Register 10-12 auf 0 gesetzt. Die Ausgangsbitfolge Vi setzt sich jeweils aus der Kombination der von dem oberen bzw. unteren Addierer gelieferten Bitfolgen vπ und v2i zusammen, so daß sich als ausgangsseitiges Codewort bzw.
Codevektor v= (1110001011) ergibt.

In Polynom-Darstellung läßt sich das von dem Faltungscoder gemäß Fig. 9 gelieferte Codewort v(D) folgendermaßen
darstellen:

v(D)=u(D)xGι (D) kombiniert mit u(D)xG2(D) (10)

Unter der Annahme, daß für die Eingangssequenz u=(101) das Polynom u(D)=l+D2 gilt, ergeben sich demnach folgende
Ausdrücke:



u(D)xG2(D)=l+D4 (li;

Das Codewort-Polynom v(D) läßt sich demnach auch folgendermaßen gemäß Formel (10) darstellen:

v(D) = (l,l) + (l,0)D+(0,0)D2+(l,0)D3+(l,l)D4 (12)

Die obigen Ausführungen gelten jeweils für die den in Fig. 9 dargestellten Verknüpfungsvektoren (111) bzw. (101) entsprechenden Verknüpfungspolynome d (D) =1+D+D2 und G2(D)=1+D2.

Neben der Poynom-Darstellung lassen sich Faltungscodes auch auf andere Art und Weise darstellen, wie z. B. in einem
Zustandsdiagramm, welches in Abhängigkeit von den Eingangsbits des Faltungscoders die Zustandsübergänge in den Registern darstellt, einem Baumdiagramm oder dem sogenannten Trellis- Diagramm, welches analog zu dem Zustandsdiagramm abhängig von den Eingangsbits die sich ergebenden Registerinhalte darstellt.

Die Decodierung von Faltungscodes kann mit Hilfe der sogenannten Maximum Likelihood Decodierung erfolgen, die durch Anwendung der Maximum Likelihood Methode dasjenige sämtlicher möglicher Codewörter vA findet, welches am "nächsten" an der Empfangssequenz v liegt. Da in der Regel die beiden Zustände des binären Signals jeweils (gaußförmig) mit
Rauschverteilungen überlagert sind, ist die Wahl der
Entscheidungsschwelle für die Entscheidung, ob ein "0"- oder "1"-Bit empfangen wurde, von grundsätzlicher Bedeutung. Bei der sogenannten "hard decision" gibt es eine feste
Entscheidungsschwelle, die bei gleichen und symmetrischen

Verteilungen genau in der Mitte zwischen den beiden möglichen Zuständen "0" und "1" liegt. Befindet sich der aufgrund der Rauschüberlagerung tatsächlich empfangene Signalpegel nahe der Entscheidungsschwelle, so ist die Gefahr einer
Fehlentscheidung relativ groß. Die "hard decision" ist demnach relativ ungenau und es werden Informationen "verschenkt". Bei der sogenannten "soft decision" werden hingegen eine Vielzahl von Entscheidungsschwellen (im Idealfall unendlich viele Entscheidungsschwellen) vorgesehen, so daß die Angabe der jeweiligen Schwelle zusammen mit der angenommen
Rauschverteilung implizit auch eine Information über die statistische Sicherheit der Entscheidung beinhaltet.

Eine weit verbreitete und bekannte Faltungsdecodierung ist die sogenannte Viterbi-Decodierung, bei der eine optimale Maximum Likelihood Decodierung erfolgt. Dieser Algorithmus wird z. B. verbreitet bei dem GSM-Mobilfunksystem verwendet. Insbesondere erfolgt bei der Viterbi-Decodierung eine Auswertung des zuvorgenannten Trellis-Diagramms . Auf die Einzelheiten der Decodierung soll jedoch an dieser Stelle nicht weiter
eingegangen werden.

1993 wurde die Verwendung von parallel verketteten sogenannten rekursiven systematischen Faltungscodes (recursive systematic convolutional code (RSC) ) mit einer iterativen Decodierung vorgeschlagen. Eine ausführliche Beschreibung dieser RSC-Codes findet sich in C. Berrou, A. Glavieux und P. Thitimaj shima, "Near Shannon Limit Error-Correcting Coding and Decoding:
Turbo-Codes", IEEE International Conference on Communication (ICC), S. 1064-1070, Mai 1993, sowie in den Patentanmeldungen FR-A-91 05 279, EP-A-92 460 011 und US-A-07/870, 483.

Fig. 11 zeigt ein Beispiel eines rekursiven systematischen Faltungscoders (RSC-Coders) . Ein RSC-Coder wird allgemein dadurch erhalten, daß bei einem gewöhnlichen, nichtsystematischen Faltungscoder (non-systematic convolutional coder, NSC-Coder) eine Rückkopplungsschleife eingefügt und einer der beiden Ausgänge des Coders direkt mit dem Eingang verbunden wird, um somit einerseits einen rekursiven und andererseits einen systematischen Code realisieren zu können. Wie bereits eingangs beschrieben worden ist, zeichnet sich ein systematischer Code dadurch aus, daß in der von dem Coder gelieferten ausgangsseitigen Codewortsequenz die eingangs-seitig anliegenden Nachrichtenwortsequenz unverändert auf- - taucht und lediglich zusätzliche Paritäts- bzw. Fehlererkennungsbits hinzugefügt werden. Fig. 11 zeigt beispielhaft einen RSC-Coder mit der "constraint length" K=3, d. h. mit drei Registern 10-12. Wie des weiteren Fig. 11 zu entnehmen ist, kann an dem oberen Ausgang des RSC-Coders die eingangsseitig anliegende Nachrichtenwortsequenz u± unverändert als erste Codewortsequenz vu entnommen werden. An einem zweiten Ausgang wird die zweite Codewortsequenz v2i abgegriffen, die gemäß einer bestimmten Verknüpfungsvorschrift mit anschließender Modulo-2-Addition durch rekursive Auswertung der
Registerinhalte der Register 10-12 gewonnen wird.

Mit Hilfe der RSC-Codes wurden die sogenannten verketteten Codes oder "Turbo"-Codes entwickelt, die eine reduzierte
Bitfehlerrate ermöglichen.

Die sogenannten verketteten Codes können dadurch gewonnen bzw. realisiert werden, daß mehrere dieser beispielhaft in Fig. 11 dargestellten RSC-Coder parallel oder in Serie geschaltet werden, wobei zwischen den einzelnen RSC-Codern zudem ein Interleaver angeordnet ist.

Fig. 12 zeigt ein Beispiel für die Realisierung einer
parallelen Verschaltung von RSC-Codern. Wie Fig. 12 zu
entnehmen ist, werden den beiden RSC-Codern 13, 14 im Prinzip die selben Nachrichtenbits der Nachrichtenbitfolge u±
zugeführt. Aufgrund der Anordnung des Interleavers 15 zwischen den beiden RSC-Codern 13, 14 empfängt der untere RSC-Coder 14 jedoch die Nachrichtenbits in einer anderen Reihenfolge, da der Interleaver 15 - wie bereits eingangs beschrieben worden ist - die Nachrichtenbitfolge u umsortiert . Die eingangsseitig anliegende Nachrichtenbitsequenz Ui wird zudem
unverändert einem Kombinierer 16 zugeführt. Wie anhand des RSC-Coders 14 gezeigt ist, werden im Gegensatz zu dem oberen RSC-Coder 13 nicht die an dem RSC-Coder 14 anliegenden Bits unverändert dem Kombinierer 16 zugeführt. Wie bereits anhand Fig. 11 beschrieben worden ist, erzeugt jeder der RSC-Coder- 13, 14 Paritäts- bzw. Fehlererkennungsbits p bzw. p2l, welche gemäß der dem jeweiligen RSC-Coder zugeordneten RSC-Codevor-schrift generiert werden. Der Kombinierer 16 kombiniert die Nachrichten- bzw. Informationsbits ux mit den Fehlererken-nungsbits p und p2l der beiden RSC-Coder 13 und 14 und erzeugt somit ausgangsseitig die der codierten Nachrichtenbitfolge _ entsprechende Codebitfolge vλ . Falls erforderlich, kann in einer Einrichtung 17 eine sogenannte Punktierung der Codebits vx durchgeführt werden, um die Codebits vx an eine vorgegebene Übertragungsrate sowie ein vorgegebenes Übertragungsformat anzupassen. Im Falle einer Punktierung werden bestimmte Bits der Codebitfolge vx , vorzugsweise in
regelmäßigen Abständen, auf 0 gesetzt und nicht übertragen, so daß die übertragene Datenrate erhöht wird. In Fig. 12 ist die schließlich zu übertragende codierte Bitfolge mit xλ
bezeichnet .

Ein besonderes Problem stellt jedoch die Decodierung dieser "Turbo"-Codes dar. Zu diesem Thema ist umfangreiche Literatur vorhanden.

In C. Berrou, A. Glavieux und P. Thitimaj shima, "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes", IEEE International Conference on Communication (ICC), S. 1064-1070, Mai 1993, wird die Decodierung dieser "Turbo"-Codes durch mehrere in Serie geschaltete identische Elementar-Decoder vorgeschlagen, wobei dem i-ten Decoder die Werte des
Demodulators des Empfängers über eine Verzögerungsleitung sowie zusätzliche Informationen des (i-l)-ten Decoders, welche als "extrinsic Information" bezeichnet werden, zugeführt werden. Die Elementardecoder können beispielsweise gemäß dem sogenannten Bahl-Algorithmus (vergl. L. R. Bahl, J. Cocke, F. Jelinek und J. Raviv, "Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate", IEEE Trans. Inform. Theory, Vol. IT-20, S. 248-287, 1974) arbeiten.

In J. Hagenauer, E. Offer, L. Papke, "Iterative Decoding of Binary Block and Convolutional Codes", IEEE, Trans. On
Information Theory, Vol. 42, S.429-445, 1996, wird die zuvor beschriebene sogenannte Iterative Decodierung für binäre
Faltungscodes bestätigt und zudem ausgeführt, daß für diese iterative Decodierung jeder "soft-in/soft-out-Decoder" verwendet werden kann, der somit "soft decision"-Eingangs-signale und "soft decision"-Ausgangssignale liefert, wobei in Bezug auf die zuvor beschriebene Maximum Likelihood Methode die sogenannten "soft"-Eingangsssignale sogenannte "a priori"-Werte umfassen und die "soft"-Ausgangssignale aufgeteilt werden können in die sogenannten "soft"-Kanalausgangssignale, die "a priori"-Eingangssignale sowie die "extrinsic"-Werte . Die "extrinsic"-Werte werden jeweils als "a priori"-Wert für die nächste Iteration verwendet. Da - wie bereits zuvor beschrieben worden ist - die "soft decision"-Information
Wahrscheinlichkeitsaussagen umfaßt, wird bei dieser Art der Decodierung nahezu keine Information verschenkt. In dieser Druckschrift werden als mögliche Decodier-Algorithmen der sogenannte "Symbol-by-Symbol" Maximum a Posteriori Probability (MAP) "-Decodieralgorithmus sowie der sogenannte "soft-in/soft-out"-Viterbi-Algorithmus (SOVA) für systematische Faltungscodes mit binärer Trellisstruktur vorgeschlagen.

In S . Riedel, "MAP-Decoding of Convolutional Codes using
Reciprocal Dual Codes", Proc. of IEEE Workshop on
Convolutional Codes, S. 4.1 - 4.3, 1996, wird ein Decodier-Algorithmus für hochratige Faltungscodes vorgeschlagen. Der darin vorgeschlagene MAP-Decodieralgorithmus basiert seine Entscheidung auf die Verwendung reziproker dualer
Faltungscodes. Dieser Algorithmus erfüllt alle Anforderungen zur iterativen Decodierung von verketteten Codes. Wie bereits eingangs beschrieben worden ist, ist jedem Faltungscode C ein dualer Faltungscode C* zugeordnet, dessen Codewörter
v* (D) orthogonal zu den Codewörtern v(D) des ursprünglichen Faltungscodes sind. Die Codewörter v* (D) des dualen
Faltungscodes C* werden durch die bereits zuvor beschriebene

ERSÄΓZBLÄΓT(REGEL26) Kontrollmatrix H(D) erhalten, die zusammen mit der
Generatormatrix G(D)"die Bedingung G (D) xHτ (D) =0 erfüllt.

Des weiteren ist jedem Faltungscode C ein reziproker Faltungs-code C~ zugeordnet, wobei in Polynom-Darstellung die Generatormatrix G~(D) des reziproken Faltungscodes C~ aus der
ursprünglichen Generatormatrix G(D) des Faltungscodes C dadurch gewonnen wird, daß D durch D"1 ersetzt und die i-te Zeile der sich daraus ergebenden Matrix mit Dδ(l) multipliziert wird, wobei δ(i) dem Grad der i-ten Reihe von G(D) entspricht. Die gemäß dem reziproken Faltungscode C~ erzeugte Codebitsequenz v~(D) entspricht dabei der zeitinvertierten Codebitfolge v(D_1) .

Fig. 13 zeigt ein Beispiel einer Decodiereinrichtung zum
Decodieren der zuvor beschriebenen "Turbo"-Codes mit Hilfe der Anwendung von reziproken dualen Faltungscodes. Die von einem Empfänger empfangene Bitfolge Xi' wird - falls erforderlich -in einer entsprechenden Einrichtung 18 depunktiert, um die von der in Fig. 12 gezeigten Einrichtung 17 durchgeführte Punktierung rückgängig zu machen. Die sich daraus ergebende
Codebitfolge vx ' wird einer Trenneinrichtung 19 zugeführt, die in Übereinstimmung mit dem in Fig. 12 gezeigten "Turbo"-Coder die Codebitfolge v < in eine Nachrichtenbitfolge ux sowie die beiden Fehlererkennungsbitfolgen plx' bzw. p2l' aufteilt. Der in Fig. 13 gezeigte iterative Decoder umfaßt einen ersten Decoder

20 für den RSC-Code des in Fig. 12 gezeigten ersten RSC-Coders 13 sowie einen zweiten Decoder 21 für den RSC-Code des RSC-Coders 14. Die beiden Decoder 20 und 21 sind über in Fig. 13 dargestellte Interleaver 23, 24 bzw. einem Deinterleaver 22 miteinander verbunden. Das Ausgangssignal des zweiten Decoders

21 wird über einen Deinterleaver 25 der nächsten Iterationsstufe, d. h. dem nächsten Decodermodul zugeführt, um auf diese Weise eine iterative Decodiereinrichtung mit insgesamt i
Decodiermodulen zu schaffen, die jeweils wie in Fig. 3 dargestellt aufgebaut sein können.

Der Vorteil des von S. Riedel vorgeschlagenen MAP-Algorithmus sind die niedrigen Speichererfordernisse sowie die niedrige Decodierkomplexität .

Die vorliegende Erfindung betrifft nun die Kanalcodierung bei dem sogenannten GSM-Mobilfunkstandard (Global System for
Mobile Communication) oder einen auf dem GSM-Mobilfunkstandard basierenden Mobilfunkstandard, wie z. B. das PCS-1900
(Personal Communication System)- oder das DCS 1800 (Digital Communication System 1800) -Mobilfunksystem.

Derzeit beträgt die maximale pro Zeitschlitz bei dem GSM-Mobilfunkstandard zu übertragende Benutzerdatenrate 9, 6 kBit/s. Eine höhere Benutzerdatenrate von 14,4 kBit/s ist jedoch beispielsweise für Fax- oder Modemdienste weit
verbreitet. Um eine derartig hohe Datenrate von 14,4kBit/s bei dem GSM-Mobilfunksystem erzielen zu können, muß die derzeit bei dem GSM-Mobilfunksystem verwendete Datenrate von 12 kBit/s, die sich aus der Benutzerdatenrate von 9, 6 kBit/s sowie einer zusätzlichen Datenrate von 2,4 kBit/s für
sogenannte Overhead-Informationen, die beispielsweise
Steuerinformationen oder Protokollinformationen umfassen können, zusammensetzt, auf mindestens 14,4 kBit/s erhöht werden. Das heißt, die Anzahl der für den Fehlerschutz
hinzugefügten Bits muß verringert werden.

Eine Möglichkeit zur Erhöhung der Datenrate, die dem in dem GSM-TCH/F9, 6-Standard (Traffic Channel/Füll Rate 9,6 kBit/s) des ETSI (European Telecommunication Standard Institute) gerecht wird, ist die bereits beschriebene Punktierung der Codebits. Da bei dieser Variante dasselbe Codier-/Decodierverfahren wie bei dem bereits bestehenden GSM-Mobilfunksystem verwendet wird, sind die Auswirkungen auf die bereits vorhandenen Basisstationen, mobilen Station usw.
relativ gering. Diese Variante weist jedoch den Nachteil auf, daß im Verhältnis zu dem üblichen GSM-9, 6 kBit/s-Mobilfunksystem der Signal-Rausch-Abstand (Signal-to-Noise— Ratio (SNR) ) unter denselben Kanalbedingungen von mindestens 2 dB abnimmt. Die Kanalbedingungen können beispielsweise dem TU50IFH-Modell (Typical Urban at 50 km/h vehicle speed with ideal frequency hopping) bei einer Übertragungsfrequenz von 900 MHz entsprechen. Aufgrund der Abnahme des Signal-Rausch-Abstands verringert sich entsprechend die Reichweite.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Kanalcodierung von digitalen Kommunikations-Informationen, die gemäß dem GSM-Mobilfunkstandard zu übertragen sind, zu schaffen, so daß auch für höhere Datenraten nahezu dieselben Übertragungseigenschaften wie bei der
normalen Übertragungsrate von 12,0 kBit/s erzielt werden können.

Diese Aufgabe wird erfindungsgemäß durch ein Kanalcodierverfahren nach Anspruch 1 gelöst.

Die Unteransprüche beschreiben vorteilhafte Ausgestaltungen der vorliegenden Erfindung.

Gemäß der vorliegenden Erfindung werden die bereits eingangs beschriebenen "Turbo"-Codes auf das GSM-Mobilfunksystem angewendet, wobei den rekursiven systematischen Faltungscodem die zu codierenden Kommunikationsinformationen bzw. Nachrichtenbits mit einer Datenrate zugeführt werden, die mindestens so groß wie die herkömmliche Datenrate von 12,0 kBit/s ist. Die Erfinder haben herausgefunden, daß durch die Anwendung dieser sogenannten "Turbo"-Codes nahezu dieselben
Übertragungseigenschaften wie bei dem GSM-12,0 kBit/s-Standard erzielt werden können, ohne daß die Reichweite oder der
Signal-Rausch-Abstand wesentlich verschlechtert wird.

Besonders vorteilhaft ist die Codierung der Nachrichteninfor-mationen, wenn diese den Faltungscodem mit einer Datenrate im Bereich zwischen 12,0kBit/s und 16,0kBit/s zugeführt werden.

Die auf diese Weise kanalcodierten Nachrichteninformationen werden gemäß dem GSM-Mobilfunkstandard mit 22,8 kBit/s übertragen, wobei die codierten Nachrichteninformationen nach gegebenenfalls durchgeführter Punktierung einem Interleaver zugeführt werden, der die codierten Nachrichtenbits in Blöcken mit vorzugsweise 8 mal 456 Kanalbits umsortiert, wobei jeder dieser Rahmen eine Zeitdauer von 20 ms aufweist. Als
Interleaver kann der standardisierte GSM-Interleaver für GSM-Datenkanäle verwendet werden.

Da die vorliegende Erfindung insbesondere eine Datenübertragung mit einer hohen Datenrate bezwecken soll, werden bevorzugt Faltungscoder verwendet, die jeweils eine Coderate von k/(k+l) aufweisen.

Besonders vorteilhaft ist der Fall, daß den Faltungscodem, d. h. den über einen Interleaver parallel angeordneten
rekursiven systematischen Faltungscodem, die zu codierenden Nachrichteninformationen mit einer Datenrate von 14,4 kBit/s zugeführt werden, wobei beispielsweise die Coderate des ersten Faltungscoders 4/5 und die Coderate des zweiten Faltungscoders 3/4 beträgt, so daß insgesamt keine Punktierung erforderlich ist, um die Kanalbits mit einer Übertragungsrate von 22,8 kBit/s in Blöcken mit jeweils acht Rahmen ä 456 Bits zu übertragen.

Als Interleaver können sogenannten Pseudo-Zufälligkeitsinter-leaver (pseudo random interleaver) verwendet werden.

Für den Fall, daß die Nachrichteninformationen dem "Turbo"- Coder mit höheren Datenraten als 14,4 kBit/s zugeführt werden, ist in der Regel eine Punktierung der codierten Nachrichteninformationen erforderlich, um die codierten Nachrichteninformationen, welche einerseits die unveränderten Nachrichtenbits sowie die von dem "Turbo"-Coder hinzugefügten Fehlererkennungsbits umfassen, mit dem gewünschten Übertragungsformat in Blöcken mit vorzugsweise jeweils acht Rahmen ä 456 Kanalbit-s übertragen zu können. Dabei können sowohl die eigentlichen Nachrichtenbits als "auch die von dem "Turbo"-Coder
hinzugefügten Fehlererkennungsbits punktiert werden.

Die Decodierung der erfindungsgemäß kanalcodierten Nachrichten- bzw. Kommunikationsinformationen erfolgt vorteilhafterweise mit einem bereits eingangs beschriebenen iterativen Decodierverfahren, wobei die einzelnen Komponentencodes mit dem Symbol-by-Sombol MAP basierend auf reziproken dualen Codes mit besonders geringer Komplexität decodiert werden können. Ebenso kann der SOVA angewendet werden.

Die Erfindung weist den Vorteil auf, daß die vorgeschlagene Kanalcodierung auf einfache Weise in für die mobile Kommuni-kation bereits vorhandene digitale Signalprozessoren
implementiert werden kann.

Die Erfindung wird nachfolgend anhand bevorzugter Ausführungsbeispiele unter Bezugnahme auf die Zeichnungen näher beschrie-ben.

Fig. 1 zeigt ein vereinfachtes Blockschaltbild eines GSM-Mobilfunksystems, bei dem die erfindungsgemäße Kanalcodierung Anwendung findet,

Fig. 2a und 2b zeigen Beispiele für die schaltungstechnische Realisierung der RSC-Coder, die bei dem erfindungsgemäßen Kanalcodierverfahren verwendet werden,

Fig. 3 zeigt eine Gegenüberstellung der Eigenschaften der bei verschiedenen Datenraten angewendeten Kanalcodes,

Fig. 4a-4d zeigen eine Gegenüberstellung der mit dem
erfindungsgemäßen Kanalcodierverfahren erzielbaren Signal-Rausch-Abstände bezogen auf die Bitfehlerrate gegenüber der GSM-Standardcodierung und einer gewöhnlichen
Faltungscodierung, Fig. 5 zeigt eine Gegenüberstellung der Datenraten sowie der Anzahl der übertragenen Bits bei einer gewöhnlichen
Faltungscodierung und der erfindungsgemäßen Anwendung von "Turbo"-Codes,

Fig. 6 zeigt einen Vergleich verschiedener Decodierverfahren,

Fig. 7 zeigt eine allgemeine Darstellung des Aufbaus eines Mobilfunksystems,

Fig. 8 zeigt Additionsregeln bei der Modulo-2-Addition,

Fig. 9 zeigt ein Beispiel eines nichtsystematischen
nichtrekursiven Faltungscoders,

Fig. 10 zeigt die bei dem in Fig. 9 dargestellten
Faltungscoder erzielten Ausgangs-Codesequenzen,

Fig. 11 zeigt ein Beispiel eines RSC-Coders,

Fig. 12 zeigt ein Beispiel eines Turbo-Coders, und

Fig. 13 zeigt ein Beispiel eines iterativen Decoders unter Anwendung von reziproken dualen Codes zum Decodieren eines Turbo-Codes .

Gemäß der vorliegenden Erfindung werden die 1993 vorgeschlagenen und anhand Fig. 11 und 12 bereits beschriebenen "Turbo"-Codes auf das GSM-Mobilfunksystem bzw. auf ein auf dem GSM-Mobilfunkstandard basierendes Mobilfunksystem angewendet. Mit Hilfe der sogenannten "Turbo"-Codes können allgemein
Codiergewinne erzielt werden, die der theoretischen Shannon-Grenze sehr nahe kommen. "Turbo"-Codes werden durch die parallele Verschachtelung von mindestens zwei rekursiven systematischen Faltungscodem (RSC) erhalten, wobei zwischen den beiden Codern ein Interleaver geschaltet ist (vergl. Fig. 12) .

Gemäß der vorliegenden Erfindung werden die "Turbo"-Codes auf Datenraten angewendet, die mindestens so groß wie die
gewöhnliche 12,0 kBit/s-Datenrate des herkömmlichen GSM-Mobilfunksystems sind. Da die Decodierverzögerung für
Datenübertragungen in der Regel nicht kritisch ist, ist die Verwendung längerer Codewörter, die bei der Anwendung von "Turbo"-Codes erforderlich werden, unproblematisch.

Fig. 1 zeigt ein Ausführungsbeispiel eines GSM-Mobilfunküber-tragungssystems, bei dem erfindungsgemäß die sogenannten
"Turbo"-Codes auf höhere Datenraten angewendet sind. Das in Fig. 1 dargestellte Mobilfunkübertragungssystem umfaßt im wesentlichen einen "Turbo"-Coder 26, gegebenenfalls eine
Einrichtung 17 zum Punktieren der Codebits vx , einen Interleaver 28, um die Codebits, d. h. die codierten Nachrichteninformationen, gemäß einem vorgegebenen Interleavingverfahren auf Blöcke mit vorzugsweise jeweils acht Rahmen ä 456 Bits umzusortieren, einen Mobilfunkkanal 29 sowie empfängerseitig einen Deinterleaver 30, um das von dem Interleaver 28
durchgeführte Interleaving rückgängig zu machen,
gegebenenfalls eine Einrichtung 31 zum Depunktieren der von dem Deinterleaver 30 gelieferten Kommunikationsinformationen, falls diese zuvor von der Einrichtung 17 punktiert worden sind, sowie schließlich eine Decodiereinrichtung 27, die insbesondere durch einen iterativen ( "Turbo" ) -Decoder
realisiert sein kann.

Prinzipiell muß zwischen den drei Ausdrücken Benutzerrate, Datenrate und Kanalrate unterschieden werden. Die Benutzerrate ist diejenige Rate, auf die jeder Benutzer für seine Anwendung zugreifen kann. Die Datenrate ist die vor der von der Codier-einrichtung 26 durchgeführten Kanalcodierung auftretende Rate. Die Datenrate kann der Benutzerrate zuzüglich einer Overhead-rate entsprechen, wobei die Overheaddaten beispielsweise einen zusätzlichen äußeren Fehlererkennungscode oder zusätzliche Steuerinformationen," wie z. B. das sogenannte Radio Link Protocol, enthalten kann. Die Kanalrate ist die nach der
Kanalcodierung vorliegende Rate. Gemäß dem GSM-Mobilfunk-Standard entspricht die Kanalrate stets 22,8 kBit/s.

Wie aus Fig. 1 ersichtlich ist, ist die "Turbo"-Codierein-richtung 26 durch die bereits aus Fig. 11 und 12 bekannte parallele Verschachtelung von mindestens zwei rekursiven systematischen Faltungscodem (RSC-Coder) gebildet, wobei zwischen den beiden RSC-Codern 13 und 14 ein Interleaver 15 angeordnet ist. Da bei der vorliegenden Erfindung die
hochratige Datenübertragung im Vordergrund steht, werden im folgenden lediglich RSC-Coder mit Coderaten r=k/(k+l)
untersucht. Die eingangsseitige Nachrichteninformationsbitfolge Ui wird einer Kombiniereinrichtung 16 unverändert zugeführt. Des weiteren werden von den RSC-Codern 13 und 14 Paritätsbits p±1 bzw. pi2 gemäß einer vorgegebenen Faltungscodevorschrift erzeugt, die in der Kombiniervorrichtung 16 mit den eigentlichen Informationsbits Ui kombiniert werden, so daß der "Turbo"-Coder 26 schließlich die codierten Kommunikationsinformationen V ausgibt.

Um umfangreiche Anpassungen bzw. Änderungen insbesondere der Hardware des bereits bekannten GSM-Systems zu vermeiden, wurde der 20 ms-Zeitrahmen beibehalten. Ebenso wurde die aus dem GSM-System bekannte 16 kBit/s-Multiplexrate beibehalten. Die Auswirkungen der Anwendung der "Turbo"-Codes auf hochratige GSM-Datendienste wurde insbesondere für Datenraten zwischen 12,0kBit/s und 16,0kBit/s untersucht.

Im Falle einer Datenrate von 14,4 kBit/s umfaßt ein Zeitrahmen von 20 ms 288 Bits. Im Vergleich dazu umfaßt der 20 ms-Zeitrahmen bei dem gewöhnlichen 12,0 kBit/s-GSM-System 240 Bits. Vor der eigentlichen Kanalcodierung durch den "Turbo"-Coder 26 bilden acht dieser Rahmen einen Block, der insgesamt 2304 Datenbits umfaßt, die den beiden RSC-Codern 13 und 14 zugeführt werden. Nach der Kanalcodierung umfaßt ein Block 8x456=3648 Kanalbits, was der gewünschten Kanalrate von 22,8 kBit/s entspricht.

Für die Datenrate von 14,4 kBit/s ergibt sich demnach eine effektive Gesamtcoderate R von

n UAkbit/s ] f - r>
Λ — 22,Skbit/s — 19 t i J
Diese gewünschte effektive Gesamtcoderate R=12/19 kann
beispielsweise durch die Kombination von zwei RSC-Codern 13 und 14 mit einer Coderate rι=4/5 bzw. r2=3/4 erhalten werden, da sich die effektive Gesamtcoderate R abhängig von den beiden Coderaten ri und r2 RSC-Coder 13 und 14 gemäß folgender
Gleichung berechnen läßt:

R 12.
19 (14)
• 3-

Da sich durch die Kombination der beiden RSC-Coder 13 und 14 mit den Coderaten r1 =4/5 und r2=3/4 die gewünschte effektive Coderate von R=12/19 direkt erzielen läßt, ist für dieses

Ausführungsbeispiel keine Punktierung erforderlich, d. h. in diesem Fall entfallen die in Fig. 1 dargestellten Einrichtungen 17 und 31.

Da es sich bei den beiden Faltungscodem 13 und 14 um systematische Faltungscoder handelt, müssen die den RSC-Codern 13 bzw. 14 entsprechenden Generatormatrizen Gi bzw. G2 - wie bereits eingangs beschrieben worden ist - die Einheitsmatrix I enthalten, die insbesondere die Dimension kixki bzw. k2xk2 besitzt. Die Coderaten rι=4/5 und r2=3/4 können insbesondere durch folgende Generatormatrizen Gα (D) und G2 (D) in Polynom-Darstellung erhalten werden, wobei die Generatormatrizen Gi (D) bzw. G2 (D) die Faltungscodevorschrift des entsprechenden RSC-Coders 13 bzw. 14 definieren:

Wie bereits zuvor beschrieben worden ist, können die Generatormatrizen von RSC-Codern durch rekursive Schieberegisteranordnungen realisiert werden. Fig. 2a zeigt ein Beispiel der schaltungstechnischen Realisierung der Generatormatrix G2 des zweiten RSC-Coders 14 mit r2=3/4. Entsprechend zeigt Fig. 2b ein Beispiel einer schaltungstechnischen Realisierung der Generatormatrix Gα des ersten RSC-Coders 13 mit rι=4/5.

Die aus den beiden Generatormatrizen G: (D) und G2 (D)
resultierenden Generatormatrizen Hi" (D) und H2~ (D) der entsprechenden reziproken dualen Faltungscodes können auf einfache Art und Weise aus den bekannten Generatormatrizen Gx (D) bzw. G2 (D) berechnet werden. Da die RSC-Codes der beiden Coder 13 und 14 jeweils eine Coderate von k/(k+l) besitzen, sind die reziproken Matrizen jeweils (l (k+1) ) -dimensional und besitzen folgende Form:



H2"(D)=[1 l+D2 D+D2 l+D+D2] (16;

Bei den in der vorliegenden Anmeldung beschriebenen Untersuchungen wurden nicht terminierte RSC-Codes verwendet. Die Ergebnisse haben gezeigt, daß dies lediglich geringe negative Auswirkungen auf die Gesamtleistung innerhalb des
interessierenden Bitfehlerbereiches hat. Dies trifft insbesondere für Coderaten ri bzw. r2 zu, die größer oder gleich 1/2 sind. Auch terminierte Codes können verwendet werden. Diese führen jedoch zu keiner Verbesserung im Bereich einer Bitfehlerrate von 10"3 bis 10"4. Allgemein wird bei abgebrochenen (truncated) Faltungscodes die Codierung zu einem bestimmten Zeitpunkt abgebrochen. Bei beendeten (terminated) Faltungs wird die Codierung zu einem bestimmten Zeitpunkt beendet und anschließend noch eine bestimmte Anzahl an Dummy-Bits übertragen, um die Coder zurückzusetzen.

Aufgrund der Coderate rι=4/5 erzeugt der in Fig. 1 dargestellte erste RSC-Coder insgesamt 576 Paritätsbits pn (da 4/5=2304/(2304+576)). Der zweite RSC-Coder 14 erzeugt entsprechend aufgrund seiner Coderate r2 768 Paritätsbits pi2. Die Einrichtung 16 kombiniert die von den RSC-Codern 13 und 14 gelieferten Paritätsbits pn bzw. pi2 mit den eigentlichen Nachrichtenbits u± und erzeugt demnach 3648 Codebits v±, die exakt acht Rahmen zu jeweils 456 Kanalbits entsprechen, so daß bei diesem Ausführungsbeispiel - wie bereits beschrieben worden ist - keine Punktierung erforderlich ist. Grundsätzlich kann jedoch jede beliebige Anzahl an Zeitrahmen gewählt werden. Die Verwendung von acht Zeitrahmen führt jedoch zu einem besonders guten Verhältnis der Decodierverzögerung zu dem Decodiergewinn.

Der Interleaver 28 führt das Interleaving und die Aufteilung der einzelnen Bits auf die einzelnen Zeitschlitze gemäß dem üblichen GSM-TCH/F9, 6-Standard aus. Insbesondere besitzt der Interleaver 28 eine Interleavingtiefe von 19.

Um zusätzlich zu den codierten Kommunikationsinformationen bzw. Kommunikationsbits v± auch Steuerinformationen, wie z.B. einen äußeren Fehlerkorrekturcode oder das sog. radio link protocoll, übertragen zu können, ist die Erhöhung der den beiden RSC-Codern 13 und 14 zugeführten Datenrate von Interesse. Dementsprechend wurden verschiedene Ausführungsbeispiele der „Turbo"-Codierung mit Datenraten im Bereich zwischen 12,0kBit/s und 16,0kBit/s untersucht. In jedem dieser Fälle betrug die über den Mobilfunkkanal 29 übertragene Kanalrate für einen Benutzer stets 22,8 kBit/s bzw. über acht 20-ms-Zeitrahmen übertragene 3.648 Bits.

Das Ergebnis dieser Untersuchung ist in Fig. 3 dargestellt, wobei Fig. 3 für jede Datenrate die entsprechende Coderaten ri bzw. r2 der beiden RSC-Coder 13 und 14, die Anzahl der übertragenen Nachrichtenbits u, die Anzahl der von dem RSC-Coder 13 erzeugten Paritätsbits pi die Anzahl der von dem zweiten

RSC-Coder 14 erzeugten Paritätsbits p2 sowie die jeweils nicht übertragenen, d.h. punktierten Nachrichten - bzw Paritätsbits und die sich daraus ergebende effektive Coderate des „Turbo"-Coders 26. Wie bereits zuvor beschrieben worden ist, kann die Anzahl der Paritätsbits pi und p2 einfach anhand der entsprechenden Coderate r-_ bzw. r2 und der Anzahl der Nachrichtenbits u berechnet werden. Für den Fall, daß die Summe aus den Nachrichtenbits u und Paritätsbits pi und p2 größer als die vorgesehene Blockgröße von 3.648 Bits ist, werden bestimmte Bits auf Null gesetzt und nicht übertragen, d.h. punktiert. Auf diese Weise wird die Coderate verändert. Es können sowohl die Nachrichtenbits als auch die Paritätsbits punktiert werden. Für den Fall, daß die Nachrichtenbits punktiert werden, werden von dem letzten Nachrichtenbit beginnend in regelmäßigen Ab-ständen die Nachrichtenbits nicht übertragen. Für den Fall, daß die Paritätsbits punktiert werden, werden ebenfalls bestimmte Bits in regelmäßige Abstände nicht übertragen, wobei jedoch vorteilhafterweise hier von dem ersten Bit ausgegangen wird. Unterscheiden sich die beiden Coderaten rα und r2 der beiden RSC-Coder 13 und 14, werden vorteilhafterweise nur die Paritätsbits desjenigen Coders punktiert, der die niedrigere Coderate besitzt. Grundsätzlich sollten sowenig Bits wie möglich punktiert werden, da dies die Fehlerrate nachteilig beeinflußt.

Fig. 4a bis 4d zeigen Vergleiche des erfindungsgemäßen Kanalcodierverfahrens mit gewöhnliche GSM-Kanalcodierverfahren, - wobei jeweils der Signal-Rausch-Abstand, d.h. das Verhältnis der Symbolenergie Es zu der Rauschleistungsdichte N0, bezogen auf die Bitfehlerrate (bit error rate) BER logarithmisch aufgetragen ist. Dabei ist der entsprechende Kurvenverlauf für eine Datenrate von 14,4 kBit/s mit RSC-Codern, die jeweils eine „constraint length" von 2 und Coderaten ri = 4/5 und r2 = 3/4 aufweisen, durch ein Dreieck dargestellt. Entsprechend ist der Verlauf für eine Datenrate von 15,7 kBit/s durch ein
Multiplikationszeichen auf einer strichpunktierten Linie ange-deutet, wobei die beiden Coder 13 und 14 wiederum eine
„contraint length" von 2 sowie eine Coderate von rα = 5/6 und r2 = 4/5 aufweisen. Ebenso ist in Fig. 4a der Verlauf für die erfindungsgemäße Anwendung der "Turbo"-Codes auf eine
Datenrate von 12,0 kBit/s mit Hilfe einer Raute und einer gestrichelten Linie dargestellt. Zudem zeigt Fig. 4a mit Hilfe eines Quadrats die erfindungsgemäße Anwendung der "Turbo"-Codes auf eine Datenrate von 14,5 kBit/s. In jedem dieser Fälle war zwischen den beiden in Fig. 1 dargestellten RSC-Codern 13 und 14 ein Interleaver 15 mit einer
Interleavingtiefe von 8 Rahmen, d.h. 2.304 bzw. 2.514
Datenbits, angeordnet. Des weiteren wurde die Decodierung der „Turbo"-Codes mit einem MAP-Algorithmus unter Anwendung der reziproken dualen Codes decodiert, wobei insgesamt sechs
Iterationen bei der iterativen Decodierung durchgeführt wurden. Durch die Anwendung eines sog. Stopkriteriums kann die durchschnittliche Iterationsanzahl verringert werden (vgl.
J.Hagenauer, E. Offer und L. Papke, „Iterative Decoding of Binary Block and Convolutional Codes", IEEE Trans. Inform.
Theory, Vol. 42, Seiten 429-445, 196. Des weiteren ist in Fig. 4a zu Vergleichszwecken die 12,0 kBit/s-GSM-Standardcodierung durch Anwendung eines Faltungscodes mit der Coderate 1/2 und der „constraint length" K = 4 dargestellt (angedeutet durch eine Raute auf einer durchgezogenen Linie) . Schließlich ist in Fig. 4a auch eine 14,4 kBit/s-Faltungscodierung
(Multiplikationszeichen auf einer punktierten Linie) und die 14,5 kBit/s-Faltungscodierung (Pluszeichen) dargestellt, bei der jeweils derselbe Faltungscode wie bei dem GSM-Standardcode zur Anwendung kam und die höhere Datenrate durch gleichmäßige Punktierung der Kanalbits erzielt worden ist.

Dabei ist zu beachten, daß bei der 12,0 kBit/s-GSM-Standardcodierung ein Block von 20 ms vor der Kanalcodierung 240 Nachrichtenbits und nach der Kanalcodierung insgesamt 488 Codebits umfaßt, die punktiert werden müssen, um die für das GSM-System typische Blocklänge von 456 Kanalbits zu erzielen. Dagegen umfaßt bei der 14,4 kBit/s-Faltungscodierung ein 20 ms-Block bzw. - Rahmen 288 Nachrichtenbits.

Im Gegensatz zu den zuvor beschriebenen Blocklängen umfaßt bei der erfindungsgemäßen „Turbo^-Codierung ein Block acht 20-ms-Rahmen, wobei der Block insgesamt 2.304 (im Falle von 14,4 kBit/s) oder 2.514 (im Falle von 15,7 kBit/s) umfaßt. Nach der Kanalcodierung umfaßt ein Block 3.648 Codebits, die auf acht Rahmen mit jeweils 456 Codebits aufgeteilt werden.

Fig. 4a zeigt die Bitfehlerrate BER im Verhältnis zu dem
Signal-Rausch-Abstand Es/N0 für das TU 50 IFH-Kanalmodell. Aus Fig. 4a ist ersichtlich, daß für bestimmte Bitfehlerraten die erfindungsgemäß vorgeschlagene Turbo"-Codierung auch für höhere Datenraten bessere Ergebnisse aufweist als die
herkömmliche 12,0 kBit/s-Faltungscodierung. Für eine
Bitfehlerrate von 10~4 wird bei einer Datenrate von 14,4kBit/s ein Codiergewinn von ca. 0,6 dB erzielt. Die Bitfehlerrate für die 15,71 kBit/s-„Turbo"-Codierung ist zwar nicht so gut wie die GSM-12,0 kBit/s-Faltungscodierung, für eine Bitfehlerrate von 10"4 tritt jedoch lediglich ein Verlust von 1 dB auf, was für eine derartig hohe Datenrate ein sehr gutes Resultat ist, wobei zusätzliche Steuer- oder Protokollinformationen in einem Zeitschlitz übertragen werden können.

Fig. 4b zeigt für das TU3-Kanalmodell ohne Frequenzwechsel, daß mit der 14,4 kBit/s- (oder auch 14,5 kBit/s-) "Turbo"-Codierung ähnliche Ergebnisse erzielt werden können wie mit der herkömmlichen GSM-Standardcodierung mit einer 12,0 kBit/s-Datenrate.

Fig. 4c und 4d zeigen ähnliche Untersuchungsergebnisse für den GSM-Standardcode mit 12,0 kBit/s, einem punktierten Faltungscode mit 14,5 kBit/s, dem bereits zuvor beschriebenen 14,4 kBit/s-„Turbo"-Code und einem 14,5 kBit/s-„Turbo"-Code, wobei Fig. 4c die Ergebnisse für das Kanalmodell STATIC und Fig. 4d die Ergebnisse für das Kanalmodell RA 250 mit jeweils einer Übertragungsfrequenz von 900 MHz darstellt. Auch aus Fig. 4c und 4d ist ersichtlich, daß durch die erfindungsgemäß vorgeschlagene Anwendung von „Turbo"-Codes auf GSM-Datendienste mit einer relativ hohen Datenrate zum Teil bessere Ergebnisse erzielt werden können als mit den herkömmlichen Faltungscodes bei bekannten Datenraten.

Auch Fig. 5 zeigt nochmals einen Vergleich der herkömmlichen 12,0 kBit/s-Faltungscoder bzw. der punktierten 14,5 kBit/s-Faltungscoder mit dem erfindungsgemäß vorgeschlagenen „Turbo"-Coder mit einer Datenrate von 14,4 kBit/s bzw. 14,5 kBit/s. In Fig. 5 sind nochmals die bei den einzelnen Codern auftretenden Datenraten sowie die jeweils pro Block übertragenen Bitzahlen dargestellt. Im Falle einer Übertragungsrate von 14,5 kBit/s wird der Benutzerdatenrate von 14,4 kBit/s eine Overhead-Datenrate von 0,1 kBit/s für die Übertragung zusätzlicher

Steuer- oder Protokollinformationen hinzugefügt. Während bei den herkömmlichen GSM-Systemen die kanalcodierten Daten jweils mit 456 Bits pro Rahmen übertragen werden, umfaßt bei der erfindungsgemäß vorgeschlagenen „Turbo"-Codierung jeder Block acht Rahmen zu jeweils 456 Bits, d.h. insgesamt 3.648 Bits. Der in Fig. 1 dargestellte ausgangsseitige Interleaver 28 besitzt eine Interleavingtiefe von 19. Den eigentlich zu übertragenden Datenbits werden - wie in Fig. 5 gezeigt ist -bei der bekannten Faltungscodierung vier Terminierungsbits bzw. bei der erfindungsgemäßen 14,5 kBit/s-„Turbo"-Codierung acht zusätzliche Bits zur Blockauffüllung hinzugefügt, wobei anschließend eine Punktierung einiger codierter Kanalbits erforderlich ist, um die gewünschte Datenrate von 22,8 kBit/s mit dem gewünschten "Übertragungsformat erzielen zu können.

Die Komplexität und die Codierverzögerung der „Turbo"-Coder wird vorwiegend durch die Codierparameter, insbesondere durch die Codeart und die „constraint length" des Codes sowie die Interleavingtiefe des Interleavers zwischen den beiden RSC-Codern bestimmt. Die erfindungsgemäß vorgeschlagene „Turbo"-Codierung kann einfach implementiert werden, da lediglich zwei oder mehr RSC-Coder parallel geschaltet werden müssen. Der damit verbundene Berechnungsaufwand sowie die Speicheranforderungen sind gering.

Wie bei dem bekannten Codierverfahren ist die Komplexität der „Turbo"-Decodierung wesentlich höher als die der Codierung. Neben der Art des verwendeten Codes sowie der Interleavingtiefe des zwischen den beiden RSC-Codern angeordneten Interleavers hängt die Komplexität der „Turbo"-Decodierung im wesentlichen von dem verwendeten Decodieralgorithmus, wie z.B. dem MAP-Algorithmus oder dem Soft-Output Viterbi Algorithmus (SOVA) ab. Des weiteren hängt die Komplexität der Decodierung von der Anzahl der durchgeführten Iterationen sowie die für die „soft decision"-Entscheidungsfindung verwendete Anzahl der Quantisierungspegel ab.

Für die Datenübertragung ist die Codier-/Decodierverzögerung weniger kritisch. Bei dem erfindungsgemäßen vorgeschlagenen Kanalcodierverfahren ist mit einer Gesamtverzögerung von ca. 250 bis 400ms bei einer Blockübertragung mit acht Rahmen zu erwarten.

Im Prinzip kann die Implementierung des Decoders durch den Hersteller bestimmt werden. Im einfachsten Fall müssen
lediglich die empfangenen Daten decodiert werden, so daß ein MAP-Algorithmus ohne jegliche Iterationen verwendet werden kann. Dies verschlechtert zwar die Leistung, der Berechnungsaufwand und die Speicheranforderungen sowie die Herstellungs- kosten können jedoch gering gehalten werden. Für den Fall, daß hingegen eine leistungsstarke Codierung gewünscht wird, kann ein leistungsstarker digitaler Signalprozessor mit einem großen Speicherbereich für die Implementierung eines an-spruchsvolleren Decodieralgorithmus verwendet werden. Hinsichtlich der Decodierung von „Turbo"-Codes wurden für Datenraten zwischen 14,4 kBit/s und 15,7 kBit/s, d.h. effektiven Gesamtcoderaten zwischen 0,632 und 0,689, drei unterschiedliche Decodierverfahren untersucht. Die Coderaten der beiden RSC-Coder des „Turbo"-Coders entsprachen jeweils dem

Verhältnis k/(k+l). Die Ergebnisse sind in Fig. 6 dargestellt.

Bei dem ersten Decodierverfahren handelt es sich um einen MAP-Algorithmus, wie er von L.R. Bahl, J.Cocke, F. Jelinek und J.Raviv in „Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate", IEEE Trans. Inform. Theory, Seiten 284-287, 1974 vorgeschlagen worden ist. Dieser Algorithmus verwendet auch Codewörter des ursprünglichen Codes C, um die Informationsbits zu decodieren. Bei diesem MAP-Algorithmus erhöht sich jedoch die Komplexität der Decodierung exponen-tiell mit der Anzahl der jeder Decoderstufe zugeführten
Datenbits .

Das zweite Verfahren war ein MAP-Algorithmus, wobei jeder RSC-Coder eine Coderate von 1/2 aufwies und viele der Paritätsbits punktiert wurden. Dies führte jedoch bei der Decodierung zu hohen Speicheranforderungen. Bei diesem Verfahren ist der Speicherbedarf um das k-fache höher als bei dem ersten Decodierverfahren, da für die Decodierung von k-Datenbits k-Stufen erforderlich sind. Des weiteren ist ein durch die Punktierung des Ursprungscodes mit Coderate 1/2 erhaltener Code mit
Coderate k/(k+l) lediglich eine geringe Untermenge sämtlicher möglicher Codes mit einer Coderate von k/(k+l), so daß
optimale Codierergebnise selbst bei einer optimalen
Punktierung nicht garantiert werden können.

Das dritte untersuchte Decodierverfahren ist schließlich der von S. Riedel vorgeschlagene MAP-Algorithmus, der durch die Verwendung von reziproken dualen Faltungscodes C*~ (reciprocal dual convolutional codes (RDC) ) realisiert werden kann. Der Vorteil dieses Decodierverfahrens ist eine niedrigere
Decodierkomplexität und somit ein geringerer Berechnungsaufwand für Codes mit einer Coderate größer als 1/2. Dieser MAP-Algorithmus wurde bereits eingangs anhand Fig. 13 näher erläutert. Im Vergleich zu dem ersten Decodierverfahren kann mit Hilfe dieses neuen Decodierverfahrens die Decodierkomplexität deutlich verringert und gegenüber dem zweiten Decodierverfahren die Speicheranforderungen um den Faktor k bei einer Coderate von k/(k+l) reduziert werden. Die Anwendung dieses MAP-Algorithmus mit reziproken dualen Codes ist somit besonders vorteilhaft für die Decodierung der erfindungsgemäß vorgeschlagenen „Turbo"-Codes . Insbesondere ist die Decodierkomplexität des neuen dritten Decodierverfahrens nicht größer als die des herkömmlichen GSM-Vollraten-Vocoders, so daß das neue Decodierverfahren einfach durch die Verwendung eines bereits verfügbaren GSM-Chips implementiert werden kann.