DE10001147A1 - Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms - Google Patents
Verfahren zum Fehlerschutz bei der Übertragung eines DatenbitstromsInfo
- Publication number
- DE10001147A1 DE10001147A1 DE2000101147 DE10001147A DE10001147A1 DE 10001147 A1 DE10001147 A1 DE 10001147A1 DE 2000101147 DE2000101147 DE 2000101147 DE 10001147 A DE10001147 A DE 10001147A DE 10001147 A1 DE10001147 A1 DE 10001147A1
- Authority
- DE
- Germany
- Prior art keywords
- bits
- code
- bit stream
- data
- data bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
- H03M13/235—Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3994—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using state pinning or decision forcing, i.e. the decoded sequence is forced through a particular trellis state or a particular set of trellis states or a particular decoded symbol
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4123—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing the return to a predetermined state
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
Abstract
Beschrieben wird ein Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms in einem digitalen Nachrichtenübertragungssystem, bei dem bei einer Kanalcodierung der Datenbitstrom blockweise unter Verwendung eines rekursiven Faltungscodes codiert wird. Zum Schutz der im Endbereich eines Datenblocks befindlichen informationstragenden Bits werden vor der Kanalcodierung eine vorgegebene Anzahl vorbekannter Tailbits an das Ende des jeweiligen Datenblocks angehängt.
Description
Die Erfindung betrifft ein Verfahren zum Fehlerschutz bei der
Übertragung eines Datenbitstroms in einem digitalen Nach
richtenübertragungssystem, bei dem bei einer Kanalcodierung
der Datenbitstrom blockweise unter Verwendung eines
rekursiven Faltungscodes codiert wird. Sie betrifft darüber
hinaus eine Vorrichtung zur Durchführung des Verfahrens sowie
eine Vorrichtung zur Decodierung eines mit dem Verfahren
übertragenen Datenbitstroms.
Derartige Verfahren und Vorrichtungen werden unter anderem
zur Übertragung von Signalen wie beispielsweise Daten-,
Sprach-, Audio- oder Videosignalen verwendet. Ein Beispiel
eines Einsatzgebiets ist hierbei insbesondere die
Sprachübermittlung in Mobilfunknetzen.
Für die Übermittlung über eine Mobilfunkstrecke werden z. B.
die Sprachsignale zunächst in einem Quellenencoder, in diesem
Fall ein Sprachencoder, in verschiedene Parameter zerlegt,
durch die zeitliche Sprachabschnitte beschrieben werden
können. Diese reellwertigen Sprachparameter werden dann
quantisiert und somit durch eine bestimmte Bit-Kombination
repräsentiert. Der auf diese Weise digital codierte Sprach
parameter wird anschließend weitergeleitet. Bei anderen
Quellensignalen findet in ähnlicher Form eine Zerlegung in
sogenannte quellencodierte Parameter oder auch quellen
codierte Koeffizienten statt, die dann weitergeleitet werden.
Andere zu übertragende Datensignale, wie z. B. SMS-Signale im
GSM-Standard, liegen meist ohnehin schon in digitaler Form
vor.
Da bei der Übertragung der Parameter über einen Nachrichten
übertragungskanal mit Störungen und Verlusten zu rechnen ist,
werden diesen codierten Signale in einem Kanalencoder
redundante Informationen hinzugefügt, aus denen auf der
Empfängerseite Schlüsse über die Korrektheit des empfangenen
Signals gezogen werden können.
Zur Erzeugung der redundanten Informationen bei der Kanal
codierung werden in den Übertragungssystemen häufig Faltungs
codes eingesetzt. Bei Verwendung eines Faltungscodes werden
aus den Informationsbits in der Weise Codebits erzeugt, daß
nach bestimmten, durch sogenannte Generator- oder Code
polynome vorgegebenen Regeln, jedes Informationsbit mit
bestimmten innerhalb des Datenbitstroms angeordneten anderen
informationstragenden Bits verknüpft wird. Die schaltungs
technische Umsetzung dieser durch die Codepolynome vorge
gebenen Regeln erfolgt in der Regel durch ein Schieberegister
mit mehreren hintereinandergeschalteten Delays und eine
Binäraddition der jeweils zu einem bestimmten Zeitpunkt an
den Eingängen bzw. Ausgängen der Delays befindlichen Bits.
Die Anzahl der Delays des Schieberegisters wird als
sogenanntes "Gedächtnis" m des Codes bezeichnet.
Durch verschiedene Verknüpfungen können dabei aus einem
primären Informationsbitstrom mehrere unterschiedliche Code
bitströme erzeugt werden. Das Verhältnis der Anzahl der Ein
gangsbitströme zur Anzahl der bei der Codierung erzeugten
Codebitströme ist die sogenannte "Rate" des Codes. Ein Code
mit der Rate 1/2 erzeugt demnach aus einem Informations
bitstrom u1 u2 u3 . . . zwei Codebitströme v1 (1)v2 (1)v3 (1) . . . und
v1 (2)v2 (2)v3 (2) . . .. Diese Codebitströme werden zu einem
gemeinsamen Bitstrom in der Form v1 (1)v1 (2)v2 (1)v2 (2) . . .
verschachtelt, welcher dann über den Kanal übertragen wird.
Für jedes Informationsbit des ankommenden Bitstroms werden
dabei zwei Codebits im übertragenen Bitstrom ausgegeben.
Beim Einsatz von Faltungscodes in Übertragungssystemen können
aus verschiedenen Gründen, wie z. B. der Synchronisation oder
dem störenden Einfluß der Decodierverzögerung, nur endlich
lange Codesequenzen verwendet werden. Das heißt, es ist
erforderlich, den Datenbitstrom zur Codierung in einzelne
Datenblöcke zu zerlegen. Die einfachste Möglichkeit hierzu
besteht darin, die Codierung nach einer bestimmten Anzahl von
Zeittakten ohne weitere Vorkehrungen abzubrechen. Allerdings
sind die Informationsbits im Endbereich der so generierten
Codeblöcke dann deutlich schlechter gegen Übertragungsfehler
geschützt als Informationsbits an anderen Positionen, z. B.
am Anfang oder im mittleren Bereich eines Codeblocks.
Um diesen Effekt zu vermeiden, wird eine sogenannte
Terminierung des Codes durchgeführt. Ziel der Terminierung
ist es, daß das Schieberegister des Encoders sich nach dem
Übersenden eines Blocks in einem bekannten Zustand befindet,
beispielsweise auf "0" zurückgesetzt ist.
Bei einem häufig verwendeten Verfahren zur Decodierung eines
übertragenen Codes wird unter Verwendung eines Viterbi-
Algorithmus ein sogenanntes "Trellis-Diagramm" entlang eines
Pfades durchlaufen. Ein Trellis-Diagramm eines Faltungscodes
besteht aus Zweigen (Zustandsübergänge) und Knoten, wobei an
jedem Knoten mehrere Zweige zusammenlaufen. Ein Knoten
repräsentiert dabei einen Zustand des Gedächtnisses des
Faltungscodes. Die Terminierung des Codes am Ende eines
Datenblocks hat den Vorteil, daß der Pfad im entsprechenden
Trellis-Diagramm in einem vorher bekannten Zustand endet.
Um eine solche Terminierung zu erreichen, können bei einem
normalen Faltungscode ohne eine Rückkopplung, d. h. ohne
feedback-Zweig, einfach eine dem Gedächtnis des Codes
entsprechende Anzahl von sogenannten Tailbits "0" angehängt
werden. Nach m Takten befindet sich dann jeweils am Ausgang
eines jeden Delays der Zustand "0", so daß sich das gesamte
Schieberegister im "0"-Zustand befindet und somit der
Faltungscode im "0"-Zustand terminiert ist.
Darüber hinaus gibt es aber auch rekursive Faltungscodes, bei
denen ein bestimmtes Informationsbit bei der Codierung nicht
nur mit im Datenbitstrom vorhergehenden Informationsbits
verknüpft wird, sondern auch mit dahinterliegenden Bits,
indem zwischen den Delays des Schieberegisters anliegende
Bits an vorherige Positionen des Schieberegisters zurück
gekoppelt werden. Solche rekursiven Faltungscodes sind bei
schlechten Kanalbedingungen besonders sicher. Sie werden
daher weitgehend in den bestehenden Mobilfunkstandards
eingesetzt.
Durch die Rückkopplung ist jedoch die eben beschriebene
einfache Art der Terminierung des Codes nicht möglich.
Stattdessen müssen die angehängten Tailbits durch einen
speziellen Rückkopplungszweig im rekursiven Verfahren vom
Encoder selbst generiert werden, um das Schieberegister bzw.
den Code auf "0" zu terminieren. Die so generierten Tailbits
sind daher nicht nur vom Endzustand des Schieberegisters,
sondern auch vom Code selbst abhängig und daher vor der
Encodierung der gesamten Informationsbits nicht bekannt.
Ein schematisches Blockschaltbild eines mit einem rekursiven
Faltungscode arbeitenden Encoders, der am Ende eines jeden
Datenblocks terminiert wird, ist in der Fig. 1 dargestellt.
Hierbei handelt es sich um ein Beispiel eines klassischen
Verfahrens zur Terminierung eines sogenannten RSC(recursiv
systematic convolutional)-Codes. Derartige RSC-Codes werden
bereits bei der GSM AMR-Kanalcodierung und auch als
Komponentencodes bei Turbo-Codes verwendet.
Wie dem Schema zu entnehmen ist, weist das zugehörige
Schieberegister drei Delays D1, D2, D3 auf. Der Code hat
daher ein Gedächtnis von m = 3. Der am Eingang 1 ankommende
Informationsbitstrom u1 u2 u3 . . . wird hierbei über den
Schalter 2 zum Encoder geführt, und dabei über die Leitung 3
zu einem ersten Ausgang 14 ohne Veränderung durchgeschleift.
Der erste Codebitstrom v1 (1)v2 (1)v3 (1) . . . entspricht daher dem
eingehenden Informationsbitstrom u1 u2 u3 . . .. Der Code ist
somit ein sogenannter "systematischer Code", da im
ausgehenden Datenbitstrom die eingehenden Informationsbits
identisch enthalten sind.
Weiterhin wird der eingehende Bitstrom u1 u2 u3 . . . durch das
aus den drei Delays D1, D2, D3 bestehende Schieberegister
geführt, wobei jeweils am Eingang und am Ausgang jedes Delays
D1, D2, D3 das anstehende Bit über die Datenstrecken 5, 6, 7,
8, 9 abgegriffen und den Binäraddierern 10, 11, 12 zugeführt
wird, wodurch der Code gemäß der gewünschten Regel erzeugt
wird. Am Ausgang 13 des Binäraddierers 11 liegt schließlich
der gemäß der vorgegebenen Regel verschlüsselte Code
v1 (2)v2 (2)v3 (2) . . . an. Zur Erzeugung eines einzigen Ausgangscodes
werden in einem In-Serie-Umsetzer 16 die einzelnen Bits der
beiden Codebitströme u1 u2 u3 . . . und v1 (2)v2 (2)v3 (2) . . . wie
gewünscht hintereinandergesetzt.
Da bei dem dargestellten RSC-Code für jedes eingehende Bit
zwei ausgehende Bits erzeugt werden, hat der Code eine Rate
1/2. Die in der dargestellten Form technisch umgesetzten
Generatorpolynome sind [1, n(D)/d(D)], mit d(D) = 1 + D2 + D3 und
n(D) = 1 + D + D3. Um den Code bzw. das Schieberegister zum "0"-
Zustand zu terminieren, werden nach der Encodierung der
Informationsbits u1 u2 u3 . . . eines Datenblocks anschließend
die Bits t1, t2, t3 über die gestrichelt dargestellte Leitung
15 und den entsprechend umgelegten Schalter 2 zum Eingang des
Encoders geschickt. Da diese Tailbits t1, t2, t3 aus der Rück
kopplungsleitung vor dem Eingang des ersten Binäraddierers 12
ausgekoppelt werden und somit an beiden Eingängen des Binär
codierers 12 zu jedem Zeitpunkt identische Bits anliegen,
liegt am Ausgang zwangsläufig immer eine "0" an. Folglich
geht das Schieberegister in m = 3 Takten in den "0"-Zustand
über. Die der Terminierung entsprechenden zusätzlich noch zu
übertragenden Codebits sind dann am Ausgang 14 die Tailbits
t1, t2, t3 und am Ausgang 13 die aus diesen Bits erzeugten
Codebits.
Ein Nachteil einer solchen Terminierung von rekursiven Codes
besteht darin, daß die Informationsbits u1 u2 u3 . . . und die
Tailbits t1, t2, t3 nicht nur bei der Codierung besonders
behandelt werden müssen, sondern auch bei der Decodierung
eine separate Behandlung erforderlich ist.
Ein anderes Verfahren zum gleichmäßigen Schützen von
Informationsbits innerhalb eines Datenblocks ist das
sogenannte "Tail-biting", welches beispielsweise im Artikel
"Binary unequal error-protection block codes formed from
convolutional codes by generalized tail-biting" von H. Ma in
der Zeitschrift "IEEE Trans. Information Theory", vol. 32,
pp. 776-786, 1986, beschrieben wird. Hierbei wird in gewisser
Weise eine "Endloskette" aus den Datenblocks gebildet, in dem
in bestimmter Weise die Anfangsbits eines Datenblocks als
"Tailbits" genutzt werden. Obwohl dieses Verfahren keine
zusätzlichen Tailbits benötigt, ist ein recht großer Aufwand
zur Encodierung und Decodierung der Informationsbits
erforderlich.
Es ist Aufgabe der vorliegenden Erfindung, eine einfache und
kostengünstige Alternative zu diesem bekannten Stand der
Technik zu schaffen.
Diese Aufgabe wird dadurch gelöst, daß zum Schutz der im
Endbereich der Datenblocks befindlichen informationstragenden
Bits vor der Kanalcodierung eine vorgegebene Anzahl bekannter
Tailbits an das Ende des jeweiligen Datenblocks angehängt
werden. Diese Tailbits führen, da es sich um einen rekursiven
Code handelt, in der Regel nicht zur Terminierung. Das heißt,
der Code ist normalerweise nicht terminiert, da am Ende der
Decodierung der Code sich im allgemeinen abhängig vom
jeweiligen Code und von den jeweiligen Informationsbits des
Datenblocks in einem undefinierten Zustand befindet.
Es hat sich überraschenderweise gezeigt, daß durch die
Verwendung von bekannten Bits als Tailbits auf diese
Terminierung aber verzichtet werden kann, ohne daß dies zu
einer Erhöhung der Bitfehlerrate bei den im Endbereich
befindlichen Bits des Datenblocks führt. Dagegen hat das
erfindungsgemäße, alternative Verfahren den wesentlichen
Vorteil, daß die Informationsbits und die Tailbits einheit
lich vom Encoder und Decoder behandelt werden, so daß es
nicht mehr nötig ist, die Informationsbits und Tailbits im
Encoder und Decoder zu unterscheiden. Daher ist es ins
besondere auch möglich, je nach Anforderung, z. B. bezüglich
der Performance des Übertragungskanals, auch mehr oder
weniger Tailbits einzusetzen, ohne das Codier- oder
Decodierverfahren zu verändern. Das Verfahren erlaubt daher
eine sehr schnelle Anpassung an die unterschiedlichen
Übertragungsmöglichkeiten, beispielsweise an die zur
Verfügung stehende Kanalrate und die aktuelle Übertragungs
qualität des jeweiligen Kanals. Insbesondere können auch im
Gegensatz zu den bekannten Verfahren, bei denen der Code
terminiert wird, eine Anzahl von Tailbits eingesetzt werden,
die unter dem Gedächtnis m des Codes liegen.
Das Verfahren ist für alle rekursiven Codes, für die bisher
eine Terminierung nötig ist, anwendbar. Besondere Vorteile
bietet das Verfahren jedoch bei der Verwendung eines
systematischen Codes, bei dem die Informationsbits als
Codebits mitübertragen werden. Da die Tailbits bekannt sind,
müssen diese nicht mitübertragen werden, wodurch die
Datenmenge reduziert werden kann. Zu diesen systematischen
rekursiven Codes zählen z. B. der bereits erwähnte RSC- oder
der Turbo-Code.
Weiterhin ist auch eine Verknüpfung des jeweiligen Codes mit
einer Punktierung zweckmäßig. Hierbei werden die Codebits
nach Anwendung des vorgeschlagenen Verfahrens punktiert.
In Verbindung mit dem vorgeschlagenen Verfahren können
Decodierverfahren wie die quellengesteuerte Kanaldecodierung
eingesetzt werden, wobei für die bekannten Bits das maximale
(absolute) Apriori-Wissen, beispielsweise bei dem sogenannten
Apri-Viterbi-Algorithmus das Log-Likelihood-Ratio, auf der
Empfangsseite gesetzt wird.
Eine entsprechende Vorrichtung zur Durchführung des
Verfahrens weist einen Kanalencoder zur rekursiven Codierung
eines in Datenblöcken unterteilten Datenbitstroms und Mittel
zum Anhängen einer vorgegebenen Anzahl bekannter Tailbits an
das Ende des jeweiligen Datenblocks auf.
Zur Decodierung eines mit dem erfindungsgemäßen Verfahren
übertragenen Datenbitstroms wird eine Vorrichtung verwendet,
welche vorzugsweise eine quellengesteuerte Kanaldecodierung,
insbesondere zur Ausführung eines Apri-Viterbi-Algorithmus
oder MAP-Algorithmus, und eine Speichereinrichtung mit einer
Datenbasis für die Werte des Log-Likelihood-Verhältnisses für
die bekannten Tailbits aufweist.
Selbstverständlich kann auch eine gemeinsame Vorrichtung zur
Codierung und Decodierung verwendet werden, welche sowohl
sender- als auch empfangsseitig eingesetzt werden kann. Eine
solche Kombinationsvorrichtung weist vorzugsweise ebenfalls
einen quellengesteuerten Kanaldecodierer, insbesondere zur
Ausführung eines Apri-Viterbi-Algorithmus oder MAP-
Algorithmus auf.
Besondere praktische Bedeutung haben das vorgeschlagene Ver
fahren und die Vorrichtungen für die fehlergeschützte Über
tragung der eingangs genannten Quellensignale wie Sprach-,
Audio- oder Videosignale. Sie sind folglich besonders für die
Anwendung in Mobilfunksystemen geeignet.
Die Erfindung wird im folgenden anhand eines Ausführungs
beispiels unter Hinweis auf die beigefügten Zeichnungen näher
erläutert. Die dargestellten Merkmale können nicht nur in den
genannten Kombinationen, sondern auch einzeln oder in anderen
Kombinationen erfindungswesentlich sein. Im übrigen wird
ausdrücklich darauf hingewiesen, daß auch Merkmale, die nur
im Zusammenhang mit dem erfindungsgemäßen Verfahren
dargestellt sind, auch bezüglich der Vorrichtungen zur
Durchführung des Verfahrens erfindungswesentlich sein können
und umgekehrt. Es zeigen:
Fig. 1 ein schematisches Blockschaltbild eines RSC-Codes
nach dem klassischen, im Stand der Technik bekannten
Verfahren mit einer Terminierung des Codes durch die
Tailbits;
Fig. 2 ein schematisches Blockschaltbild des gleichen RSC
wie in Fig. 1, jedoch bei Verwendung des erfindungsgemäßen
Verfahrens;
Fig. 3 ein Beispiel für die Encodierung und Decodierung
eines Blocks von N-Informationsbits Xi mit drei Tailbits "0";
Fig. 4 ein Diagramm der Simulationsergebnisse für einen RSC-
Code mit Gedächtnis m = 8 und Rate = 1/2 über einem AWGN-
Kanal mit einem Signal-to-Noise-Ratio von -1 dB.
Da das erfindungsgemäße Verfahren einen Hauptanwendungs
bereich bei der Übertragung von Signalen in Mobilfunksystemen
hat, wird im folgenden Beispiel von einer solchen Übertragung
ausgegangen. Es wird aber ausdrücklich noch einmal darauf
hingewiesen, daß der Einsatz des Verfahrens und der
Vorrichtung selbstverständlich nicht auf diesen
Anwendungsbereich begrenzt ist, sondern daß im Prinzip ein
Einsatz des Verfahrens in beliebigen Übertragungssystemen
möglich ist, bei denen die zu übertragenden Datenbitströme
durch einen rekursiven Faltungscode codiert werden.
Fig. 2 zeigt als Beispiel einen relativ einfachen RSC-Code
mit einem Gedächtnis von m = 3 und Rate 1/2. Die verwendeten
Generatorpolynome sind hier [1, n(D)/d(D)], mit d(D) =
1 + D2 + D3 und n(D) = 1 + D + D3. Es handelt sich hierbei folglich um
den gleichen Code, der bereits als Ausführungsbeispiel in
Fig. 1 zur Erläuterung des klassischen Verfahrens nach dem
Stand der Technik verwendet wurde. Dementsprechend werden
auch für gleiche Funktionsblöcke und Datenstrecken gleiche
Bezugsziffern verwendet.
Der erfindungsgemäße wesentliche Unterschied zu dem
klassischen Verfahren besteht darin, daß zum Ende eines
Blocks von informationstragenden Bits x1 x2 . . . xN die
Tailbits t1, t2, t3 nicht, wie in Fig. 1 dargestellt über die
Rückkopplungsleitung 15, rekursiv erzeugt werden, sondern es
werden (beispielsweise über den Schalter 2) als bekannte
Tailbits eine vorgegebene Anzahl von "0"-Bits angefügt. Diese
"0"-Bits durchlaufen dann als Endwerte das Schieberegister
und führen anders als die beim herkömmlichen rekursiven
Verfahren generierten Tailbits t1', t2', t3' in der Regel
nicht zu einer Terminierung des Schieberegisters. Das
bedeutet, daß der Zustand des Schieberegisters, und somit
auch ein eventuelles zufälliges "0"-Setzen des Registers,
nach Beendigung der Codierung eines Datenblocks nicht bekannt
ist.
Da es sich hierbei um einen systematischen Code handelt,
werden die eingehenden Informationsbits x1 x2 . . . xN über die
Datenleitung 3 an den Ausgang 14 des Encoders weitergeleitet
und dort mittels des In-Serie-Umsetzers 16 mit den am Ausgang
13 anliegenden Codebits z1 z2 . . . zN zN+1 zN+3 zN+3 zu einem
gemeinsamen Ausgangsbitstrom verschachtelt, welcher über den
Kanal übertragen wird.
Die Bits eines Datenblocks direkt vor der Kanalencodierung
sind noch einmal in Fig. 3(a) dargestellt. Fig. 3(c) zeigt
außerdem die von diesem Encoder ausgesendeten und am
Kanaldecoder empfangenen Daten x* i, z* i (i = 1, 2, 3 . . . N + 1) wobei
die markierten drei systematischen Codebits "0", resultierend
aus den drei vorher bekannten Tailbits "0", nicht übertragen
worden sind, da diese Werte ohnehin Apriori feststehen.
Da die bekannten systematischen Codebits nicht übertragen
werden müssen, ist die Datenrate bei gleicher Anzahl von
Tailbits geringer als bei dem klassischen Verfahren der
Terminierung des Codes. Im allgemeinen gilt, daß bei der
klassischen Terminierung bei Verwendung eines Codes mit der
Rate 1/r und dem Gedächtnis m zusätzlich r . m Codebits zu
übertragen sind. Für das vorgeschlagene Verfahren mit K
bekannten Tailbits sind dagegen nur zusätzlich (r - 1) . K
Codebits zu übertragen. Bei Verwendung eines systematischen
Codes mit Rate 1/2 können folglich doppelt soviele Tailbits
an einen Datenblock angehängt werden wie bei der klassischen
Methode, um auf die insgesamt gleiche zu übertragende
Datenrate zu kommen.
Zur Decodierung sind beispielsweise folgende Methoden
möglich, bei denen das Apriori-Wissen über die bekannten
Tailbits verwendet werden kann.
Im Falle eines normalen Viterbi-Algorithmus kann z. B. das
Apriori-Wissen bei der Selektion der möglichen Pfade im
Trellis-Diagramm verwendet werden. Das heißt, daß Pfade, mit
denen die bekannten Tailbits falsch decodiert werden,
verworfen werden.
Bei Verwendung eines Apri-Viterbi-Algorithmus, wie er bei
spielsweise in der DE 42 24 214 C2 beschrieben ist, oder
eines ähnlichen Algorithmus wie z. B. des MAP (maximum a
posteriori probability)-Decodieralgorithmus, können die
Apriori "L-Werte" (Werte des Log-Likelihood-Verhältnisses)
für die bekannten Tailbits als (möglich zulässige) maximale
Werte eingesetzt werden. So kann z. B. für ein Bit = "0" ein
Wert L = "+∞" und für ein Bit = "1" ein Wert L = "-∞"
gesetzt werden. In Fig. 3(b) sind die entsprechenden L-Werte
für die Kanaldecodierung der in Fig. 3(a) dargestellten Bits
vor der Kanalencodierung (inklusive der bekannten Tailbits)
dargestellt. Wenn kein Apriori-Wissen vorhanden ist, wird für
die Informationsbits x1 x2 . . . xN ein Wert Li = 0 (i = 1 bis
N) gesetzt.
Fig. 4 zeigt Simulationsergebnisse für einen RSC-Code mit
einem Gedächtnis von m = 8 und einer Rate 1/r = 1/2 bei
Übertragung eines Block von 200 Bits über einen sogenannten
AWGN (additive white Gaussian noise)-Kanal. Der Kanal hat
eine Signal-to-Noise-Ratio ES/N0 = -1 dB. Die verwendeten
Generatorpolynome sind [1, n(D)/d(D)], mit
n(D) = 1 + D2 + D3 + D4 + D8 und d(D) = 1 + D1 + D2 + D3 + D5 + D7 + D8.
Zur Decodierung wurde der Apri-Viterbi-Algorithmus-Kanal
decoder gemäß der DE 42 24 214 C2 verwendet. Aufgetragen ist
in dem Diagramm die Bit-Fehlerrate BER über der jeweiligen
Bit-Nummer, wobei jeweils nur die letzten 80 Bits des Blocks
dargestellt sind. Wie sich deutlich zeigt, wirkt die
Beendigung des Blocks auf ungefähr die letzten 50 Bits
zurück.
Kurve IX entspricht einer Codierung ohne Einfügung von
Tailbits, d. h. ohne jede Terminierung. Hier steigt die Bit-
Fehlerrate zum Ende eines Datenblocks aufgrund des Abruchs
bis zu einem Faktor 50 gegenüber der durchschnittlichen Bit-
Fehlerrate im mittleren Bereich des Datenblocks an. Auf der
anderen Seite zeigt Kurve I, daß bei einer Codierung mit
einer klassischen Terminierung, mit m im Encoder rekursiv
generierten Tailbits, die Bit-Fehlerrate im Endbereich des
Fehlerblocks sogar noch unter die durchschnittliche Bit-
Fehlerrate abgesenkt werden kann.
Ein gleichgutes Ergebnis bei der Reduzierung der Bit-
Fehlerrate erreicht man durch das Anhängen von 16 bekannten
Tailbits nach dem erfindungsgemäßen Verfahren (Kurve II). Da
diese 16 Tailbits bekannt sind und nicht übertragen werden
müssen, führt diese Anfügung von 16 Tailbits dazu, daß genau
16 zusätzliche Codebits übertragen werden. Die Anzahl der bei
dieser Simulation zusätzlich für den Schutz der am Ende des
Datenblocks befindlichen Informationsbits zu übertragenden
Bits entspricht daher genau der Anzahl von Codebits (r . m, wie
oben bereits erläutert), die bei der Verwendung von m = 8
Tailbits nach dem klassischen Verfahren benötigt werden
(d. h. 8 unbekannte Tailbits als systematische Codebits und 8
weitere Codebits).
Die zwischen den beiden Kurven liegenden weiteren Kurven III
bis VIII stammen jeweils aus Simulationen bei einer Codierung
mit dem erfindungsgemäßen Verfahren, wobei unterschiedliche
Anzahlen von bekannten Tailbits angehängt werden. Bei Kurve
III wurden 14 Tailbits verwendet, bei Kurve IV 12 Tailbits,
bei Kurve V 10 Tailbits, bei Kurve VI 6 Tailbits, bei Kurve
VII 4 Tailbits, bei Kurve VIII 2 Tailbits. Wie diese Kurven
zeigen, reichen im Prinzip 12 bekannte Tailbits (Kurve IV)
aus, um die Informationsbits am Ende des Datenblocks gleich
gut gegen Übertragungsfehler wie die Informationsbits an
anderen Positionen zu schützen.
Es zeigt sich also, daß bei dem vorliegenden Ausführungs
beispiel mit r = 2 und m = 8 im Falle der klassischen
Terminierung immer 16 Codebits zu übertragen sind, wogegen
bei dem erfindungsgemäßen Verfahren K = 12 Codebits für einen
gleichmäßigen Schutz aller Informationsbits ausreichend sind.
Somit kann die Übertragungsrate insgesamt reduziert werden.
Ein weiterer Vorteil besteht darin, daß problemlos während
des Betriebs eine weitere Reduzierung oder auch Erhöhung der
Anzahl der verwendeten Tailbits möglich ist, so daß jeweils
eine schnelle Anpassung an die Performance des
Übertragungskanals erfolgen kann.
Claims (9)
1. Verfahren zum Fehlerschutz bei der Übertragung eines
Datenbitstroms in einem digitalen Nachrichtenüber
tragungssystem, bei dem bei einer Kanalcodierung der
Datenbitstrom blockweise unter Verwendung eines rekursiven
Faltungscodes codiert wird,
dadurch gekennzeichnet, daß zum Schutz der im
Endbereich eines Datenblocks (x1, x2, x3, . . ., xN) befindlichen
informationstragenden Bits vor der Kanalcodierung eine
vorgegebene Anzahl vorbekannter Tailbits (t1, t2, t3) an das
Ende des jeweiligen Datenblocks (x1, x2, x3, . . ., xN) angehängt
werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß bei der Kanalcodierung ein systematischer Code verwendet
wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch
gekennzeichnet, daß bei der Kanalcodierung ein Turbo-
Code verwendet wird, der mindestens einen rekursiven
Faltungscode als Komponentencode beinhaltet.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, daß eine Decodierung des Datenbitstroms
als quellengesteuerte Kanaldecodierung, insbesondere mittels
eines Apri-Viterbi-Algorithmus oder MAP-Algorithmus,
ausgeführt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß der Datenbitstrom Quellensignale
umfaßt.
6. Verfahren nach einem der Ansprüche 1 bis 5,
gekennzeichnet durch die Anwendung bei einem
Mobilfunksystem.
7. Vorrichtung zur Durchführung des Verfahrens nach einem der
vorstehenden Ansprüche, gekennzeichnet durch einen
Kanalencoder zur rekursiven Codierung eines in Datenblöcken
unterteilten Datenbitstroms und durch Mittel zum Anhängen
einer vorgegebenen Anzahl bekannter Tailbits (t1, t2, t3) an das
Ende des jeweiligen Datenblocks (x1, x2, x3, . . ., xN).
8. Vorrichtung nach Anspruch 7, gekennzeichnet durch
einen quellengesteuerten Kanaldecodierer, insbesondere zur
Ausführung eines Apri-Viterbi-Algorithmus oder MAP-
Algorithmus.
9. Vorrichtung zur Decodierung eines mit einem Verfahren
gemäß einem der Ansprüche 1 bis 6 übertragenen
Datenbitstroms, gekennzeichnet durch einen
quellengesteuerten Kanaldecodierer, insbesondere zur
Ausführung eines Apri-Viterbi-Algorithmus oder MAP-
Algorithmus und einer Speichereinrichtung mit einer
Datenbasis für die Werte des Log-Likelihood-Verhältnisses für
die bekannten Tailbits (t1, t2, t3).
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000101147 DE10001147A1 (de) | 2000-01-13 | 2000-01-13 | Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms |
PCT/DE2001/000022 WO2001052424A1 (de) | 2000-01-13 | 2001-01-05 | Verfahren zum fehlerschutz bei der übertragung eines datenbitstroms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000101147 DE10001147A1 (de) | 2000-01-13 | 2000-01-13 | Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10001147A1 true DE10001147A1 (de) | 2001-07-19 |
Family
ID=7627389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2000101147 Withdrawn DE10001147A1 (de) | 2000-01-13 | 2000-01-13 | Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE10001147A1 (de) |
WO (1) | WO2001052424A1 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0511576A (pt) * | 2004-05-27 | 2008-01-02 | Matsushita Electric Ind Co Ltd | aparelho de decodificação de viterbi e método de decodificação de viterbi |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19520987A1 (de) * | 1995-06-08 | 1996-12-12 | Siemens Ag | Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes |
US5721745A (en) * | 1996-04-19 | 1998-02-24 | General Electric Company | Parallel concatenated tail-biting convolutional code and decoder therefor |
DE69942684D1 (de) * | 1998-04-18 | 2010-09-30 | Samsung Electronics Co Ltd | Turbocodierung mit Einfügung bekannter Bits |
BR9906479B1 (pt) * | 1998-06-05 | 2013-01-22 | dispositivo de codificaÇço de canal, e, processo de codificaÇço de canal. | |
US6014411A (en) * | 1998-10-29 | 2000-01-11 | The Aerospace Corporation | Repetitive turbo coding communication method |
US6553540B1 (en) * | 1998-12-07 | 2003-04-22 | Telefonaktiebolaget Lm Ericsson | Efficient system and method for forward error correction |
-
2000
- 2000-01-13 DE DE2000101147 patent/DE10001147A1/de not_active Withdrawn
-
2001
- 2001-01-05 WO PCT/DE2001/000022 patent/WO2001052424A1/de active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2001052424A1 (de) | 2001-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1198913B1 (de) | Verfahren zum fehlerschutz eines datenbitstromes | |
DE60113053T2 (de) | Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes | |
DE3910739C2 (de) | ||
DE60001988T2 (de) | Turbo Dekodierung mit variabler Anzahl von Iterationen | |
DE10008064B4 (de) | Verfahren zum Anpassen der einem Turbo-Codierer zuzuführenden Datenblöcke und entsprechende Kommunikationsvorrichtung | |
WO2001039421A2 (de) | Verfahren zur anpassung der datenrate in einer kommunikationsvorrichtung und entsprechende kommunikationsvorrichtung | |
DE60316428T2 (de) | Verfahren, Kodierer und Kommunikationsvorrichtung zur Kodierung von parallel verketteten Daten | |
EP0737389B1 (de) | Übertragungssystem mit soft-output-dekodierung bei reduziertem speicherbedarf | |
DE60111974T2 (de) | Abbruchkriterium für einen Turbodekoder | |
DE69908629T2 (de) | Hybrid verschachteler für turbo-kodierer | |
EP1497943B1 (de) | Verfahren und kommunikationsvorrichtung zur anpassung der datenrate in einer kommunikationsvorrichtung | |
DE19934646C2 (de) | Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes | |
DE10001147A1 (de) | Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms | |
DE60118716T2 (de) | Log-MAP Dekodierung | |
DE19647653A1 (de) | Digitales Übertragungssystem mit trellisbasiertem, zustandsreduziertem Schätzverfahren | |
EP0422560B1 (de) | Verfahren zum Codieren und Decodieren von binären Daten sowie Einrichtung zur Durchführung des Verfahrens | |
DE19725275C2 (de) | Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen | |
DE19520987A1 (de) | Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes | |
EP1222763B1 (de) | Verfahren zur anpassung der datenrate in einer kommunikationsvorrichtung | |
WO2007098814A1 (de) | Codierung und decodierung mit trellis-codierter modulation | |
DE10000932C2 (de) | Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms | |
WO1998052362A2 (de) | Kanalcodierungsverfahren | |
EP1196912B1 (de) | Verfahren und vorrichtung zur decodierung von quellensignalen | |
DE19732122C2 (de) | Verfahren und Einrichtung zur Datenübertragung | |
EP0912021A2 (de) | Verfahren und Einrichtung zur Datenübertragung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination |