DE69936683T2 - Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt - Google Patents

Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt Download PDF

Info

Publication number
DE69936683T2
DE69936683T2 DE69936683T DE69936683T DE69936683T2 DE 69936683 T2 DE69936683 T2 DE 69936683T2 DE 69936683 T DE69936683 T DE 69936683T DE 69936683 T DE69936683 T DE 69936683T DE 69936683 T2 DE69936683 T2 DE 69936683T2
Authority
DE
Germany
Prior art keywords
integer
interleaving
elements
index
sequence
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.)
Expired - Fee Related
Application number
DE69936683T
Other languages
English (en)
Other versions
DE69936683D1 (de
Inventor
Stewart N. Kanata Crozier
Andrew Ottawa Hunt
John Kanata Lodge
Paul Fitzroy Harbour Guinand
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA MINISTER INDUSTRY
Canada Minister of Industry
Original Assignee
CA MINISTER INDUSTRY
Canada Minister of Industry
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CA MINISTER INDUSTRY, Canada Minister of Industry filed Critical CA MINISTER INDUSTRY
Publication of DE69936683D1 publication Critical patent/DE69936683D1/de
Application granted granted Critical
Publication of DE69936683T2 publication Critical patent/DE69936683T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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 using interleaving techniques
    • H03M13/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding

Description

  • Die vorliegende Erfindung bezieht sich auf das Interleaving und ist insbesondere auf Interleaving-Systeme und -Verfahren gerichtet, die für turbo- und turboartige Vorwärts-Fehler-Korrekturcodes unter der Verwendung von Inkrementen nach dem goldenen Schnitt geeignet sind.
  • Das Interleaving ist eine entscheidende Komponente vieler digitaler Kommunikationssysteme, bei denen eine Vorwärts-Fehler-Korrektur-Codierung (Foreward Error Correction/FEC) verwendet wird. Dies trifft insbesondere für Kanäle zu, die zum Beispiel durch Schwund-, Mehrwege- und Impulsrauschen-Phänomene gekennzeichnet sind. Ein zweites Beispiel ist die Klasse magnetischer Aufzeichnungskanäle, bei denen Bursts von Fehlern durch Defekte in den Aufzeichnungsmedien verursacht werden. Interleaving, oder Permutieren, der übertragenen Elemente liefert eine Zeitdiversität für das verwendet werdende FEC-Verfahren. Der Begriff "Element" wird hier so verwendet, dass er sich auf ein beliebiges Symbol, eine Abtastung, eine Ziffer, oder ein Bit (Binary Digit) beziehen kann. Das Interleaving spreizt die verstümmelten Teile des Signals auf und erleichtert es dem FEC-Verfahren, die damit zusammenhängenden Fehler zu korrigieren. Herkömmlicherweise ist die Interleaving-Strategie nur schwach mit dem verwendeten FEC-Verfahren verbunden. Ein Beispiel hierfür ist der Fall verketteter FEC-Verfahren, die verkettete Viterbi- und Reed-Solomon-Decodierer verwendet. Der Interleaver wird zwischen die beiden FEC-Codierer angeordnet, um die Fehler-Bursts zu verteilen, und die Tiefe des Interleavings hängt direkt mit der Fehlerkorrekturfähigkeit des inneren (Viterbi-)Decodierers zusammen. In letzter Zeit sind die Interleaver jedoch ein integralerer Teil der Codierungs- und Decodierungsstrategie selbst geworden. Dies ist auch für turbo- und turboartige Codes der Fall, bei denen der Interleaver einen integralen Bestandteil des Codierungsverfahrens bildet. Das Problem des Findens optimaler Interleaver für solche Verfahren ist tatsächlich ein Codekonzeptionsproblem, und es handelt sich dabei um ein aktuelles Forschungsgebiet.
  • Claude Berrou erhielt ein US-Patent Nr. 4,446,747 mit dem Titel „Error-correction coding method with at least two systematic convolutional codings in parallel corresponding iterative decoding method, decoding module and decoder" („Fehlerkorrektur-Codierungsverfahren mit mindestens zwei systematischen parallelen Faltungscodierungen, entsprechendes iteratives Decodierungsverfahren, Decodierungsmodule und Decodierer"). Dieses Patent beschreibt im Wesentlichen denselben Turbo-Code, wie er von Berrou et al. in ihrem Aufsatz „Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes" („Fehlerkorrekturcodierung und -Decodierung in der Nähe der Shannon-Grenze; Turbo-Codes"), veröffentlicht in den Proceedings of ICC'93, Genf, Schweiz, Seiten 1064-1070, Mai 1993, vorgestellt wurde. Der vorgestellte Turbo-Code ist ein binärer Code mit halber Rate, der eine Leistung innerhalb von 0,5 dB der BPSK-Kapazitätsgrenze bei einer BER von 10–5 lieferte, wenn er eine Interleaverblockgröße von 65.536 verwendete. Dieses Ergebnis liegt auch nur 0,7 dB von der allgemeineren Shannon-Kapazitätsgrenze. Der Codierer besteht aus zwei rekursiven systematischen Faltungs-Codierern (recursive systematic convolutional/RSC) mit halber Rate, die parallel zu einander betrieben werden, wobei die Informationsbits zwischen den beiden Codierern verschachtelt sind, wie in 1 gezeigt. Ohne Punktierung und mit den Konstituentencodes mit halber Rate ist die gesamt Coderate ein Drittel. Dies deshalb, weil die systematischen Informationsbits lediglich einmal gesendet werden müssen. Andere Coderaten können gegebenenfalls erzielt werden, indem die Paritätsbits c1 k und c2 k punktiert werden. In dieser Konfiguration ist es die Aufgabe des Interleavers, Fehler-Bursts, die in einem Code auftreten, über den anderen Code zu spreizen, sodass eine größere Wahrscheinlichkeit der Korrektur unzuverlässiger Information besteht.
  • Vor kürzerer Zeit lieferten Berrou und Glavieux eine weitere Erörterung der Codierung und Decodierung von Turbo-Codes in ihrem Vortrag „Near Optimum Error Correcting Coding and Decoding: Turbo-Codes" („Fast optimale Fehlerkorrekturcodierung und -decodierung: Turbo-Codes"), veröffentlicht in IEEE Trans. On Comm., Bd. 44, Nr. 10, Oktober 1996.
  • 2 veranschaulicht eine Vorgehensweise bei der Turbodecodierung auf der Grundlage eines Maximum-A-Posteriori-Decodierungsalgorithmus (MAP), der von Bahl et al. abgeleitet wurde und in ihrem Aufsatz „Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate" („Optimale Decodierung linearer Codes zum Minimieren der Symbolfehlerrate"), veröffentlicht in IEEE Transactions an Information Theory, Bd. IT-20, Seiten 284-287, März 1974, vorgestellt ist. Der MAP-Decodierer wird im Log-Bereich implementiert, sodass der Log-MAP-Algorithmus verwendet wird. Der Turbodecodierer verwendet einen iterativen Prozess, bei dem der nicht mehr verschachtelte Ausgabevektor des zweiten Log-MAP-Decodierers L2 in den Eingang des ersten Log-MAP-Decodierer nach der ersten Iteration rückgekoppelt wird. Der Speichervektor für den zweiten Log-MAP-Decodierer muss unter der Verwendung desselben Interleavers verschachtelt werden, wie er bei Turbo-Codierer verwendet wird. In gleicher Weise muss bei dem Ausgangssignal aus dem zweiten Log-MAP-Decodierer das Interleaving rückgängig gemacht werden, bevor es in den Eingang des ersten Log-MAP-Decodierer rückgekoppelt wird. Entscheidungen können entweder am Ausgang des ersten Log-MAP-Decodierers oder am De-Interleave-Ausgang des zweiten Log-MAP-Decodierers getroffen werden. Es besteht eine Konvention dahingehend, dass eine Turbo-Decodierungs-Iteration als zwei Log-MAP-Decodieroperationen definiert ist, wie in 2 gezeigt.
  • Interleaving ist eine entscheidende Komponente bei jedem Turbo-Codierer und -Decodierer, wie schon in den 1 und 2 gezeigt. Auch wenn eine bestimmte Form des zufälligen oder pseudozufälligen Interleavings üblicherweise für Turbo-Codes empfohlen wird, hat es sich herausgestellt, dass einfach strukturierte Interleaver, insbesondere für kurze Datenblöcke in der Größenordnung von wenigen hundert Bits, auch eine hervorragende Leistung bringen können. Beispiele für strukturierte bekannte Interleaver sind die teilerfremden Interleaver, Faltungs-Interleaver, Helix-Interleaver und LxM-Matrix (oder Block-)Interleaver, die L Zeilen und M Spalten verwenden. LxM-Matrix-Interleaver werden üblicherweise durch Schreiben in Zeilen und durch Auslesen aus den Spalten oder umgekehrt implementiert. Die Zeilen und/oder Spalten werden manchmal in einer veränderten Reihenfolge ein- und/oder ausgelesen. Diese veränderte Reihenfolge wird oft unter der Verwendung einer teilerfremden Zahl implementiert. Das heißt, dass der Zeilen- oder Spaltenindex unter der Verwendung einer Modulo-Arithmetik, bei der das Indexinkrement und die Zeilen- bzw. Spaltenlängen zueinander teilerfremd sind. Wenn L oder M gleich 1 ist, wird dieser Typ eines Interleavers einfach ein eindimensionaler teilerfremder Interleaver.
  • Im US-Patent Nr. 5,056,105 erwähnen Darmon et al. teilerfremde Interleaver, die gegenüber herkömmlichen LxM-Matrix-Interleavern einige Vorteile zu bieten scheinen. Bei einem teilerfremden Interleaver wird die n-te Stelle (das n-te Element) des verschachtelten Vektors des ursprünglichen Vektors unter der Verwendung des Indexes s + np, modulo N, ausgelesen, wobei s ein ganzzahliger Startindex und p ein ganzzahliges Indexinkrement ist. Der Startindex s wird üblicherweise auf Null gesetzt, kann jedoch auch jeder beliebige Index sein. Das Inkrement p muss zur Blockgröße N teilerfremd sein, um sicherzustellen, dass jedes Element einmal und nur einmal ausgelesen wird.
  • Ein Problem bei Interleavern des Standes der Technik ist, dass sie üblicherweise dazu konzipiert sind, eine spezifische Interleaving-Tiefe zu liefern. Das ist kein Problem, wenn kein einziger der Fehler-Bursts die Interleaver-Tiefe überschreitet, ist jedoch verschwenderisch, wenn der Interleaver überkonzipiert (zu lang) ist und die Fehler-Bursts viel kürzer als die Interleaver-Tiefe sind. Zum Beispiel hat ein einfacher 10x10-Matrix-Interleaver eine Interleaving-Tiefe von 10 Elementen. Wenn ein Burst von 10 Fehlern auftritt, dann spreizt der De-Interleaver diese 10 Fehler optimal auf den Block von 100 Elementen. Wenn der Fehler-Burst jedoch 11 Elemente lang ist, dann liegen wieder 2 Fehler nebeneinander. Wenn der Fehler-Burst jedoch nur 2 Elemente lang ist, dann werden diese Fehler nach dem De-Interleaving mit einem Abstand von 10 Elementen angeordnet, sie hätten jedoch auch viel weiter auseinander angeordnet werden können, wenn bekannt wäre dass nur 2 Fehler vorhanden sind. Zum Beispiel hätte ein 2x50-Matrix-Interleaver diese beiden Fehler in einem Abstand von 50 Elementen angeordnet. Natürlich ist dieser Interleaver für lange Fehler-Bursts nicht geeignet. In der Praxis erzeugen die meisten Kanäle üblicherweise Fehlerereignisse einer zufälligen Länge und die durchschnittliche Länge kann mit der Zeit variieren und ist außerdem unbekannt. Dies macht es sehr schwierig, unter der Verwendung der oben erwähnten Verfahren des Standes der Technik optimale Interleaving-Strategien zu konzipieren.
  • Ebenfalls ist es wünschenswert, wenn eine Interleaving-Strategie für Turbo-Codes „Fehler-Bursts" von einem Komponentendecodierer über den ganzen Datenblock für den anderen Komponentendecodierer verteilt. Ein Maß dessen, wie gut ein bestimmter Burst von Elementen von einem Interleaver gespreizt wurde ist die minimale Differenz zwischen den verschachtelten Indexen des ursprünglich betrachteten Bursts von Elementen. Das Problem dabei ist, dass Fehler-Bursts an einer beliebigen Stelle beginnen können und eine zufällige Länge haben. Der beste Interleaver für eine Burst-Länge ist nicht notwendige Weise der beste Interleaver für eine andere Burst-Länge. Gesucht wird eine Interleaving-Strategie, die für eine beliebige Fehler-Burst-Länge geeignet ist.
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen verbesserten Interleaver vorzusehen, der die Tendenz hat, die von einem Fehler-Burst-Kanal oder -Decodierer erzeugten Fehler-Bursts unabhängig von der Fehler-Burst-Länge maximal zu spreizen.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, Inkremente nach dem goldenen Schnitt zu verwenden, um wünschenswerte Spreizeigenschaften zu erzielen.
  • Zur Lösung dieser Aufgaben verwendet die vorliegende Erfindung den goldenen Schnitt, der für eine beliebige Blockgröße einfach zu berechnen ist und für diese Blockgröße eindeutig ist. Mit anderen Worten definiert die Blockgröße in eindeutiger Weise ein Inkrement nach dem goldenen Schnitt gemäß der vorliegenden Erfindung, ohne dass dabei eine zeitraubende Suche nach dem besten Inkrementwert durchgeführt zu werden braucht. Eine Anzahl von Interleaver-Ausführungsformen, die auf diesem Inkrement nach dem goldenen Schnitt basieren, sind erfindungsgemäß vorgesehen. Der Begriff Interleaver wird auch zur Bezeichnung eines De-Interleavers verwendet.
  • Erfindungsgemäß besteht kein Konzept einer Interleaver-Tiefe und keine Notwendigkeit zur Konzeption des Interleavers für einen bestimmten Kanaltyp oder für eine Fehler-Burst-Länge für den schlimmsten Fall. Bei Turbo-Codes ist es auch vorteilhaft, eine gute Spreizung mit einem Abstand von r Elementen zu erhalten, wobei r die Wiederholungsperiode für das Rückkopplungspolynom im RSC-Codierer sowie für benachbarte Elemente ist. Beispielsweise hat ein guter binäre RSC-Codierer mit halber Rate eine Wiederholungsperiode von r = 2m – 1, wobei k und m = k – 1 die Einschränkungslänge bzw. der Speicher des RSC-Codierers sind.
  • Nach einem Aspekt der vorliegenden Erfindung ist ein Interleaving-System zum Umordnen eines Stroms von N Eingabeelementen zu einem Strom von N Ausgabeelementen vorgesehen, wobei das Interleaving-System umfasst:
    • (a) einen Elementspeicher,
    • (b) eine Indexiereinrichtung zum Erzeugen einer Folge von Eingabeindexen und einer Folge von Ausgabeindexen, wobei mindestens eine der Folgen von Indexen anhand eines goldenen Schnitts g gleich (√5 –1)/2 erzeugt wird;
    • (c) ein Eingabemodul, das mit der Indexiereinrichtung gekoppelt ist, zum Schreiben des Stroms von N Eingabeelementen gemäß der Folge von Eingabeindexen in den Elementspeicher; und
    • (d) ein Ausgabemodul, das mit der Indexiereinrichtung gekoppelt ist, zum Lesen des Stroms von N Ausgabeelementen gemäß der Folge von Ausgabeindexen aus dem Elementspeicher.
  • Das Interleaving-System kann ferner einen Indexspeicher zum Speichern einer Folge von Indexzusätzen, die mindestens einer der Folgen von Indexen entspricht, umfassen. Alternativ dazu umfasst die Indexiereinrichtung einen Indexspeicher zum Speichern der mindestens einen der Folgen von Indexen. Eine andere Alternative besteht darin, dass die Indexiereinrichtung umfasst:
    • (i) einen Indexspeicher zum Speichern einer Folge von Eingabeindexzusätzen; und
    • (ii) einen Generator von Basis-Indexen, der mit dem Indexspeicher gekoppelt ist, zum Erzeugen einer Folge von Basis-Eingabeindexen;
    wobei die Indexiereinrichtung die Folge von Eingabeindexen durch Addieren der Folge von Eingabeindexzusätzen zur Folge von Basis-Eingabeindexen erzeugt.
  • Eine weitere Alternative besteht darin, dass die Indexiereinrichtung umfasst:
    • (i) einen Indexspeicher zum Speichern einer Folge von Ausgabeindexzusätzen; und
    • (ii) einen Generator von Basis-Indexen, der mit dem Indexspeicher gekoppelt ist, zum Erzeugen einer Folge von Basis-Ausgabeindexen;
    wobei die Indexiereinrichtung die Folge von Ausgabeindexen durch Addieren der Folge von Ausgabeindexzusätzen zur Folge von Basis-Ausgabeindexen erzeugt.
  • In einer ersten Ausführungsform der vorliegenden Erfindung ist ein goldener, teilungsfremder Interleaver vorgesehen, bei dem die Indexiereinrichtung, die mindestens eine der Folge von Indexen als eine Folge i erzeugt, wobei die Elemente als i(n) = s + np, modulo N, definiert sind, wobei s ein vorgewählter ganzzahliger Startindex ist, p ein ganzzahliges Indexinkrement, das mit N teilerfremd ist, anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt. Die Indexiereinrichtung gibt p einen Wert, der einem reellen Wert c = N(gm + j)/r nahe ist, wobei m eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist. Bei der Bestimmung des Wertes von p besteht eine Vorgehensweise darin, p auf einen eines Paares von Werten unmittelbar über und unter c zu runden. Alternativ dazu wird der Wert von p so ausgewählt, dass ein Mindestabstand zwischen Paaren von Interleaver-Indexen innerhalb i bis zu einer vorgewählten maximalen Anzahl von Elementen maximiert wird. Noch eine weitere Vorgehensweise besteht darin, den Wert von p so zu wählen, dass eine gewichtete Summe von Mindestdifferenzen zwischen Paaren von Interleaver-Indexen innerhalb von i für alle Anzahlen von Elementen von 2 bis zu einer vorgewählten maximalen Anzahlen von Elementen maximiert wird. Vorzugsweise ist r = 1, j = 0 und m eine ganze Zahl ungleich null, die einen absoluten Wert von weniger als 10 hat. Ebenfalls wird vorgezogen, wenn eine Folge dieser Folgen von Indexen von 0 auf N – 1 mit einem Indexinkrement von 1 ansteigt. Die goldenen, teilerfremden Interleaver sind besonders attraktiv, weil sie einfach zu implementieren sind und wenig oder gar keine zusätzliche Rechenleistung oder Speicher im Vergleich mit gar keinem Interleaving benötigen.
  • In einer zweiten Ausführungsform der vorliegenden Erfindung ist ein goldener Vektor-Interleaver vorgesehen, wobei die Indexiereinrichtung umfasst:
    • (i) einen Vektorgenerator zum Erzeugen eines goldenen Vektors v mit als v(n) = s + nc, modulo N, definierten Elementen, wobei s ein vorgewählter Startwert, c ein reeller Inkrementwert, der anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt;
    • (ii) ein Sortiermittel, das auf den Vektorgenerator anspricht, zum Finden eines Sortierungsvektors z, der aus a(n) = v(z(n)) bestimmt wird, für n = 0 ... N – 1, wobei a die Elemente von v enthält, die entweder in eine ansteigende oder eine absteigende Reihenfolge gebracht werden; und
    • (iii) ein Zuweisungsmittel, das auf das Sortiermittel anspricht, zum Zuweisen einer Folge i mit entweder durch i(n) = z(n) oder durch i(z(n)) = n definierten Elementen, für n = 0 ... N – 1, zu einer der Folgen von Indexen.
  • In einem Aspekt dieser zweiten Ausführungsform ist ein Dither-Gold-Vektor-Interleaver vorgesehen, bei dem der Vektorgenerator einen Dither-Vektor d mit einer n-ten reellen Dither-Komponente d(n) einer vorgeschriebenen Verteilung D zum Erzeugen des goldenen Vektors verwendet, so dass v(n) = s + nc + d(n), modulo N. Vorzugsweise ist c = N(gm + j)/r, wobei m eine vorgewählte ganze Zahl ungleich null, r ein ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar von Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist. Alternativ dazu wird der Wert von c auf einen eines Paares ganzzahliger Werte unmittelbar über und unter dem reellen Wert von N(gm + j)/r gerundet. Vorzugsweise ist r = 1, j = 0 und m eine ganze Zahl ungleich 0 mit einem absoluten Wert von weniger als 10. Ebenfalls wird bevorzugt, wenn eine der Folgen von Indexen mit einem Indexinkrement von 1 von 0 auf N – 1 ansteigt. Der Dither-Gold-Vektor-Interleaver hat die wünschenswerten Spreizeigenschaften des Gold-Vektor-Interleavers, weist jedoch auch noch die Zufälligkeit auf, die sich für Turbo-Codes als Vorteil erwiesen hat.
  • In einer praktischen Ausführungsform der vorliegenden Erfindung bildet mindestens ein Interleaving-System einen Teil eines tailbiting Turbo-Code-Codierers, der eine Vielzahl parallel betriebener systematischer tailbiting Faltungs-Codierer umfasst, wobei jedes des mindestens einen Interleaving-Systems an einem Eingang mindestens eines der Vielzahl von systematischen tailbiting Faltungs-Codierern angeordnet ist.
  • In einer anderen praktischen Ausführungsform der vorliegenden Erfindung bildet mindestens ein Interleaver-System einen Teil eines Turbo-Code-Codierers, der eine Vielzahl parallel betriebener systematischer Faltungs-Codierer umfasst, wobei jedes des mindestens einen Interleaving-Systems an einem Eingang mindestens eines der Vielzahl systematischer Faltungs-Codierer angeordnet ist.
  • In einem weiteren Aspekt der vorliegenden Erfindung ist ein Interleaving-Verfahren zum Ändern der Reihenfolge eines Stroms von N Eingabeelementen in einen Strom von N Ausgabeelementen vorgesehen, wobei das Interleaving-Verfahren die folgenden Schritte aufweist:
    • a) Erzeugen einer Folge von Eingabeindexen und einer Folge von Ausgabeindexen, wobei mindestens eine der Folgen von Indexen anhand eines goldenen Schnitts g gleich (√5 – 1)/2 erzeugt wird;
    • (b) Schreiben des Stroms von N Eingabeelementen in einen Elementspeicher gemäß der Folge von Eingabeindexen; und
    • (c) Lesen des Stroms von N Ausgabeelementen aus dem Elementspeicher gemäß der Folge von Ausgabeindexen.
  • Alternative Ausführungsformen dieses Verfahrens sind vorgesehen, die ähnlich eingeschränkt werden können wie das oben definierte Interleaving-System.
  • Es folgt nun eine eingehende Beschreibung beispielhafter Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnungen, bei denen sich dieselben Bezugszeichen auf ähnliche Teile in der Gesamtheit der Figuren beziehen. Es zeigt:
  • 1 in Blockdiagrammform einen Turbo-Code-Codierer unter der Verwendung zweier RSC-Codes mit Punktierung gemäß dem Stand der Technik;
  • 2 in Blockdiagrammform einen Turbo-Code-Decodierer unter der Verwendung zweier Log-MAP-Komponenten-Codierer gemäß dem Stand der Technik;
  • 3 eine Veranschaulichung des Prinzips des goldenen Schnitts;
  • 4 in Blockdiagrammform einen Interleaver (oder einen De-Interleaver), bei dem die Eingabe- und Ausgabeindexe anhand des Wertes g nach dem goldenen Schnitt erzeugt werden, nach einer ersten Ausführungsform der vorliegenden Erfindung;
  • 5 in Blockdiagrammform einen Interleaver (oder einen De-Interleaver), bei dem die Eingabe- und Ausgabeindexe anhand des Wertes g nach dem goldenen Schnitt erzeugt werden und Indexzusätze im Speicher gespeichert werden, nach einer zweiten Ausführungsform der vorliegenden Erfindung;
  • 6 in Fließdiagrammform ein Verfahren, das zum Erzeugen der Indexe für eine goldene, teilerfremde Interleaver-Ausführungsform basierend auf dem in 4 gezeigten Interleaver verwendet wird;
  • 7 in Fließdiagrammform ein Verfahren, das zum Erzeugen der Indexe für eine goldene, Vektor-Interleaver-Ausführungsform verwendet wird, basierend auf dem in 5 gezeigten Interleaver;
  • 8 in Fließdiagrammform ein Verfahren, das zum Erzeugen der Indexe für eine Dither-Gold-Vektor-Interleaver-Ausführungsform verwendet wird, basierend auf dem in 5 gezeigten Interleaver;
  • 9 in einer Kurvendarstellung Mindestabstände zwischen Punkten in Abhängigkeit von der Anzahl von Punkten mit einem Inkrement nach dem goldenen Schnitt, wie in 3 gezeigt;
  • 10 in einer Kurvendarstellung Mindestdifferenzen zwischen Interleaver-Indexen in Abhängigkeit von der Anzahl von Elementen, unter Berücksichtigung eines goldenen, teilerfremden Interleavers, wie in 6 gezeigt, wobei N = 1028, p = 393 und die Fläche unter der Kurve = 4620 ist; und
  • 11 Mindestdifferenzen zwischen Interleaver-Indexen in Abhängigkeit von der Anzahl von Elementen unter Berücksichtigung eines Gold-Vektor-Interleavers, wie in 6 gezeigt, wobei N = 1028, und die Fläche unter der Kurve = 5250.
  • Der goldene Schnitt taucht in vielen interessanten mathematischen Problemen auf. 3 veranschaulicht das Prinzip des goldenen Schnitts unter Bezugnahme auf das hier interessierende Interleaving-Problem. Der Begriff Interleaving wird hier so verwendet, dass er sich auch auf das De-Interleaving bezieht. Bei einer Strecke der Länge 1 besteht das Problem darin, sie in eine lange Strecke der Länge g und eine kürzere Strecke der Länge 1 – g aufzuteilen, sodass das Verhältnis der längeren Strecke zur gesamt Strecke das gleiche ist wie das Verhältnis der kürzeren Strecke zur längeren Strecke.
  • Das heißt,
    Figure 00110001
  • Eine Lösung dieser einfachen quadratischen Gleichung nach g ergibt den Wert des goldenen Schnitts.
  • Figure 00110002
  • Betrachten wir nun Punkte, die unter der Verwendung der modulo-1-Arithmetik erzeugt werden, wenn bei 0 begonnen wird und Inkremente von g addiert werden. Nach dem ersten Inkrement gibt es unter der Verwendung der modulo-1-Arithmetik zwei Punkte bei 0 und g, die um 1 – g auseinander liegen. Modulo-Abstände werden verwendet, um auch den Fall zuzulassen, dass der erste Punkt an einem beliebigen Punkt entlang der Strecke startet. Aus Gleichung (1) ist der Abstand von 1 – g dasselbe wie g2. Nach dem zweiten Inkrement bestimmen der erste und der dritte Punkt den Mindestabstand, und dieser Abstand ist g3. Wieder folgt dies aus der Definition von g in Gleichung (1). Nach dem dritten Inkrement bestimmen der erste und der vierte Punkt den Mindestabstand, und dieser Abstand ist g4. Der Mindestabstand nach dem fünften Punkt ist derselbe. Der Mindestabstand nach dem sechsten Punkt ist g5. Dieser Trend geht weiter, wobei der Mindestabstand nie um mehr als einen Faktor von g abnimmt, wenn er überhaupt abnimmt. Diese Eigenschaft folgt direkt aus der Definition des goldenen Schnitts, wie sie in Gleichung (1) gegeben ist. Dieselben Abstände können auch mit dem Komplementinkrement von (1 – g) = g2 ≈ 0,382 erzeugt werden. Höhere Potenzen von g können ebenfalls für den Inkrementwert verwendet werden, die anfänglichen Mindestabstände werden dadurch jedoch auf den kleineren Inkrementwert verringert.
  • 9 zeigt eine Kurvendarstellung von Mindestabständen in Abhängigkeit von der Anzahl berücksichtigter Punkte, während Punkte unter der Verwendung eines Inkrementes von g mit modulo-1-Arithmetik hinzugefügt werden. 9 zeigt auch eine Obergrenze für jede spezifische Anzahl von Punkten. Das heißt, bei n Punkten, jedoch nur bei n Punkten, könnten sie mit einem Mindestabstand von 1/n gleichmäßig beabstandet werden. Natürlich sind die Inkrementergebnisse nach dem goldenen Schnitt für alle Anzahlen von Punkten gleichzeitig gültig. Dies gilt für die Obergrenze nicht. Trotzdem ist zu sehen, dass die Inkrementergebnisse nach dem goldenen Schnitt die Obergrenze ziemlich nahe zu verfolgen scheinen. Es wird darauf hingewiesen, dass, selbst wenn der Mindestabstand kleiner wird, die meisten Punkte immer noch in einem vorhergehenden Mindestabstand von ihren Nachbarn entfernt sind, wobei der durchschnittliche Abstand zwischen den Punkten gleich der Obergrenze ist.
  • Die in 9 gezeigten Eigenschaften sind für Interleaver allgemein wünschenswert, sind jedoch besonders für Turbo-Code-Interleaver wünschenswert. Es wird nun gezeigt, wie diese Eigenschaft des Inkrements nach dem goldenen Schnitt in praktisch umgesetzten Interleavern gemäß alternativen Ausführungsformen der vorliegenden Erfindung verwendet werden können.
  • 4 veranschaulicht in Blockdiagrammform ein Interleaving-System (das auch als ein Interleaver bezeichnet wird), das Inkremente nach dem goldenen Schnitt verwendet, nach einer ersten Ausführungsform der vorliegenden Erfindung. Dasselbe System ist alternativ auch zum De-Interleaving verwendbar, wie aus der Erörterung weiter unten hervorgeht. In der ersten Ausführungsform wird ein Strom von N Eingabeelementen sin durch Eingabemittel empfangen, bei dieser Ausführungsform das Eingabemodul 1, das an einem Elementspeicher 2 und einen Indexgenerator 4 angeschlossen ist (der auch als eine Indexiereinrichtung bezeichnet wird). Das Eingabemodul schreibt diesen Strom sin in einen Speichervektor x, der im Elementspeicher 2 gespeichert wird, unter der Verwendung einer Folge von Interleaving-Eingabeindexen iin. Ausgabemittel, in dieser Ausführungsform das Ausgabemodul 3, sind ebenfalls mit dem Speicher 2 und der Indexiereinrichtung 4 verbunden. Das Ausgangsmodul 3 liest unter der Verwendung der Folge der Ausgabeindexe iout einen Strom verschachtelter Elemente sout aus dem Speichervektor x aus. Die Indexiereinrichtung 4 erzeugt Interleaving-Index-Folgen iin und iout, von denen mindestens eine anhand eines Wertes g nach dem goldenen Schnitt erzeugt wird, der als g = (√5 – 1)/2 berechnet wird. In dieser bestimmten Ausführungsform wird die Folge von Eingabeindexen iin anhand von g erzeugt, während die Folge von Ausgabeindexen iout unter der Verwendung eines Inkrementes von 1 erzeugt wird; das heißt, dass der Speichervektor x sequentiell ausgelesen wird. In einer alternativen Ausführungsform der vorliegenden Erfindung wird die Folge der Ausgabeindexe iout jedoch anhand von g erzeugt, während die Folge von Eingabeindexen im unter der Verwendung eines Inkrementes von 1 erzeugt wird; das heißt, dass der Speichervektor x sequentiell eingelesen wird.
  • In noch einer weiteren alternativen Ausführungsform der vorliegenden Erfindung werden sowohl sin als auch sout anhand von g erzeugt, und sind möglicherweise von einem Eingabestrom zu einem anderen Eingabestrom zeitvariierend. In einem Beispiel nehmen die Eingabeindexe für eine nachfolgende Eingabefolge die Werte der Ausgabeindexe für die vorhergehende Ausgabefolge an, um eine unmittelbare Wiederverwendung des Speichervektors x zu erleichtern, von Element zu Element, wodurch die Speicherplatzanforderung verringert wird.
  • 5 veranschaulicht in Blockdiagrammform ein Interleaving-System, dass Inkremente nach dem goldenen Schnitt verwendet, nach einem zweiten Ausführungsform der vorliegenden Erfindung. Das selbe System ist alternativ auch zum De-Interleaving verwendbar, wie aus der unten gegebenen Erörterung ersichtlich ist. In der zweiten Ausführungsform hat der Interleaver eine ähnliche Struktur und arbeitet in ähnlicher Weise wie die in 4 dargestellte erste Ausführungsform, jedoch unter Hinzufügung eines Indexspeichers 5, der Folgen von Interleaver-Indexzusätzen oin und oout speichert und in die Indexiereinrichtung 4 eingibt. Die Indexiereinrichtung 4 wird immer noch benötigt, um Basis-Eingabe- und Ausgabe-Indexe unter der Verwendung einfacher Berechnungen zu erzeugen, zu denen die Indexzusätze hinzuaddiert werden, um iin und iout zu berechnen. Indexzusätze werden statt der vollständigen Indexe gespeichert, um Speicherplatz einzusparen. Dies wird unten im Einzelnen ausgeführt. Das in 5 dargestellte Interleaving-System wird verwendet, um Gold-Vektor- wie auch Dither-Gold-Vektor-Interleaver-Ausführungsformen zu implementieren, die im Einzelnen unten beschrieben sind.
  • Die 4 und 5 stellen ebenfalls De-Interleaver dar. Der De-Interleaver, der einem spezifischen Interleaver entspricht, kann in einer Anzahl alternativer Ausführungsformen umgesetzt werden. Zum Beispiel kann der De-Interleaver unter der Verwendung derselben Indexfolgen iin und iout umgesetzt werden, wobei jedoch die Werte von iin und iout vertauscht sind. In einer Ausführungsform gibt der Interleaver sin in den Elementspeicher 2 unter der Verwendung der Schreib-Index-Folge iin ein, die unter der Verwendung eines Indexinkrementes von 1 berechnet wurde, und gibt aus dem Elementspeicher 2 sout unter der Verwendung der Leseindex-Folge iout aus, die anhand des Wertes g nach dem goldenen Schnitt berechnet wurde. Der entsprechende De-Interleaver verwendet Indexe kin = iout zum Schreiben seiner Eingaben und verwendet Indexe kout = iin zum Lesen seiner Ausgaben. Alternativ dazu gibt der De-Interleaver unter der Verwendung von kin = iin ein und verwendet die entsprechende De-Interleaving-Index-Folge kout, die den Interleaving-Prozess rückgängig macht. In diesem Fall ist kout(iout(n)) = n, n = 0 ... N – 1. Mehrere andere Kombinationen von kin und kout sind ebenfalls für mehrere alternative Ausführungsformen des De-Interleavers möglich. In den unten beschriebenen bevorzugten Ausführungsformen wird iin unter Verwendung eines Index-Inkrements von 1 berechnet, und wird die Interleaving-Index-Folge, die tatsächlich das Interleaving durchführt, nämlich iout, einfach als i bezeichnet.
  • 6 zeigt ein Verfahren, das zum Erzeugen der Indexe für eine goldene, teilerfremde Interleaver-Ausführungsform auf der Grundlage des in 4 dargestellten Interleavers verwendet wird. Dieses Verfahren beginnt mit einem ersten Schritt 10 zum Berechnen des Wertes g nach dem goldenen Schnitt, wie in (2) oben definiert, gefolgt von einem Schritt 11 des Berechnens des reellen (nicht ganzzahligen) Inkrements c, wie in (4) unten definiert. Unter der Verwendung dieses reellen Inkrements c wählt ein dritter Schritt 12 ein ganzzahliges Indexinkrement p aus, das mit der Interleaver-Länge N teilerfremd ist, um sicherzustellen, dass jedes Element einmal und nur einmal ausgelesen wird.
  • Die Elemente der Interleaving-Index-Folge i werden wie folgt berechnet: i(n) = s + np, modulo N, n = 0 ... N – 1 (3)wobei s ein ganzzahliger Startindex ist und n ein ganzzahliger Wert hat, der von 0 bis N – 1 beständig ansteigt. Der Startindex s wird vorzugsweise auf 0 gesetzt. In alternativen Ausführungsformen können jedoch auch andere ganzzahlige Werte von s ausgewählt werden. Das ganzzahlige teilerfremde Inkrement p wird „nahe" (wie unten definiert) einem der nicht ganzzahligen Werte von c = N(gm + j)/r (4)gewählt, wobei g ein Wert nach dem goldenen Schnitt, n eine positive ganze Zahl größer null, r der Indexabstand (die Indexentfernung) zwischen nahen Elementen, die maximal zu spreizen sind, und j eine beliebige ganze Zahl, modulo r, ist. Die bevorzugten Werte für m sind 1 und 2. Alternativ dazu hat m einen anderen relativ kleinen ganzzahligen Wert. In einer vereinfachten Umsetzung dieser Ausführungsform wird j auf 0 und r auf 1 gesetzt. Vorzugsweise werden für Turbo-Codes größere Werte von j und r verwendet, um die beste Spreizung für um r auseinander liegende Elemente zu erhalten, wobei r die Wiederholungsperiode für den RSC-Codierer ist, und nicht einfach für nebeneinander liegende Elemente. Wenn dies berücksichtigt wird, sind die bevorzugte Werte für j und r Werte, die für beieinander liegende Elemente ebenso wie für diejenigen, die um r beabstandet sind, zu einer Spreizung in Abständen ungefähr nach dem goldenen Schnitt führen. Zum Beispiel werden j = 9 und r = 15 für einen Memory-4-Turbo-Code mit einer RSC-Code-Wiederholungsperiode von r = 15 bevorzugt.
  • Die Eigenschaft, „nahe" zu sein, wird so definiert, dass sie in ein schmales Fenster fällt, der den exakten reellen Wert von c umgibt, wie oben von dem Wert g nach dem goldenen Schnitt abgeleitet. In der einfachsten Implementierung wird für vorbestimmte Werte von N, m, j, und r das teilerfremde p so ausgewählt, dass es den c am nächsten liegenden Wert hat. In dieser Ausführungsformen, bei denen j = 0 und r = 1 ist, wird das teilerfremde p so ausgewählt, das es Ngm am Nächsten liegt. Das Ergebnis ist ein goldener teilerfremder Interleaver mit einem Quantisierungsfehler. Für große Blöcke ist bei kleinen Fehler-Burst-Längen der Quantisierungsfehler üblicherweise nicht signifikant, kann jedoch nach vielen Inkrementen auf eine signifikante Größe anwachsen. Das Quantisierungsfehlerproblem wird dadurch verringert, dass eine Suche nach dem besten teilerfremden Inkrement p in der Nachbarschaft von Ngm durchgeführt wird, indem eine Mindestdifferenz zwischen Interleaver-Indexen für eine maximale Anzahl von berücksichtigten Elementen als ein Maß für die Spreizqualität des Interleavers verwendet wird. Alternativ dazu wird das beste teilerfremde Inkrement p in der Nachbarschaft von Ngm durch eine Summe (oder eine gewichtete Summe) der Mindestdifferenzen zwischen Interleaver-Indexen für alle Anzahlen von 2 bis zu einer maximalen Anzahl berücksichtigter Elemente bestimmt. In diesem Fall ist die beste Wahl von p in der Nähe von Ngm diejenige, die eine Fläche unter der Mindestabstandskurve maximiert, wie in den 9 und 10 gezeigt.
  • Bei dem oben beschriebenen goldenen teilerfremden Interleaver ist der Speichervektor x nicht physisch verschachtelt, sondern wird gegebenenfalls lediglich in einer verschachtelten Reihenfolge ausgelesen, ohne dass dabei notwendigerweise ein Speicher benötigt wird, um entweder die Interleaver-Indexe oder irgendwelche Interleaver-Ergebnisse zu speichern. Mit anderen Worten wird unter der Verwendung des Interleaving-Indexes i(n), der unter der Verwendung einer Modulo-Arithmetik berechnet wurde, einfach das n-te Element der Interleaver-Ausgabe sout(n) aus dem Speichervektor x ausgelesen. Da das Interleaving einfach im Lesen und Schreiben des Speichervektors x inhärent ist, besteht eine günstige Implementierung der Ausführungsform von 4 darin, einen digitalen Signalenprozessor(DSP)-Chip zu verwenden. Die meisten Altzweck-DSPs, die heutzutage verfügbar sind, bieten diese Art der Modulo-Indexierung zum Implementieren zirkulärer Puffer. Es besteht daher keine Notwendigkeit für eine zusätzliche Verarbeitung oder einen zusätzlichen Speicher, als diejenige, die zum Speichern und Lesen eines nicht verschachtelten Vektors benötigt wird.
  • 10 zeigt die Spreizeigenschaften eines Interleaving-Verfahrens, wie es in 6 gezeigt ist, mit einer Größe N = 1028 (verwendet in einem Turbo-Code-Codierer mit 1024 Informationsbits und 4 Füllbits (Flush Bits) pro Block), j = 0, r = 1, m = 2 und einem teilerfremden Inkrement von p = 393. Der Wert von c = Ng2 ist ungefähr 392,7. Der Wert von p = 393 ist der nächste teilerfremde Wert. Wie zu sehen ist, funktioniert dieser goldene, teilerfremde Interleaver beim Verfolgen der Obergrenze gut, scheint aber nicht so gut wie die in 9 gezeigte Kurve zu sein. Die Fläche unter der gesamten Kurve ist 4620. Dieser Spreizwert wird verwendet, um die Leistung anderer Ausführungsformen, die weiter unten erörtert werden, zu vergleichen.
  • Der entsprechende goldene, teilerfremde De-Interleaver, der auch in 4 dargestellt ist, führt durch Schreiben in x (anstelle von Lesen aus x) und unter Verwendung derselben oben beschriebenen Interleaver-Indexe ein De-Interleaving durch. Alternativ dazu schreibt der De-Interleaver die Elemente mit einem Indexinkrement von 1 und liest die nicht mehr verschachtelten Elemente unter der Verwendung eines Indexinkrementes von q aus, wobei pq = 1, modulo N, ist.
  • Es wird darauf hingewiesen, dass goldene, teilerfremde Interleaver (und De-Interleaver) nicht notwendigerweise einen Speicher benötigen, um die Interleaver-Indexe zu speichern, da die Indexe sich nach Bedarf entweder in Hardware oder in Software leicht berechnen lassen. Dies ist der Grund, warum 4 keinen Indexspeicher zeigt. Alternativ dazu werden die Indexe im Indexspeicher 5, wie in 5 dargestellt, gespeichert.
  • 7 zeigt ein Verfahren, das zum Erzeugen der Indexe für eine goldene Vektor-Interleaver-Ausführungsform, die auf dem in 5 dargestellten Interleaver basiert, verwendet wird. Dieses Interleaving-Verfahren verwendet keine ganzen teilerfremden Zahlen und auch keine ganzzahlige Modulo-Arithmetik, sondern ist vielmehr basiert auf dem Sortieren von Zahlen mit reellen Werten, die mit dem goldenen Schnitt abgeleitet werden. Ein erster Schritt 20 besteht in dem Berechnen des Wertes g nach dem goldenen Schnitt. Zweiter Schritt 21 besteht in dem Berechnen des reellen Inkrementwerts c = N(gm + j)/r, wobei N die Interleaver-Länge, m eine beliebige positive ganze Zahl größer 0, r der Indexabstand (Entfernung) zwischen maximal zu spreizenden in der Nahe liegenden Elementen, und j eine beliebige ganze Zahl, modulo r, ist. Ein dritter Schritt 22 besteht in dem Erzeugen eines Vektors v mit reellem Wert nach dem goldenen Schnitt. Die Elemente von v werden wie folgt berechnet: V(n) = s + nc, modulo N, n = 0 ... N – 1, (5)wobei s ein beliebiger reeller Startwert ist. Der vierte Schritt 23 besteht in dem Sortieren des Vektors v nach dem goldenen Schnitt in eine aufsteigende (oder alternativ dazu absteigende) Reihenfolge und dem Finden des Indexvektors z, der diese Sortierung definiert. Das heißt, dass der Sortierungsvektor z so gefunden wird, dass a(n) = v(z(n)), n = 0 ... N – 1, wobei a = sort(v) ist. Ein fünfter Schritt 24 weist dann die goldenen Vektor-Interleaver-Indexe gemäß i(z(n)) = n, n = 0 ... N – 1 zu. Der Vektor z könnte auch direkt verwendet werden. Tatsächlich ist der Vektor z der De-Interleaver für i.
  • Der Startwert für s wird vorzugsweise auf 0 gesetzt. In alternativen Ausführungsformen können jedoch auch andere reelle Werte von s gewählt werden. Die bevorzugten Werte für m sind 1 und 2. Alternativ dazu hat m einen anderen relativ kleinen ganzzahligen Wert. In einer vereinfachten Implementierung dieser Ausführungsform wird j auf 0 und r auf 1 gesetzt. Vorzugsweise werden für Turbo-Codes größere Werte von j und r verwendet um die beste Spreizung für um r beabstandete Elemente zu erreichen, wobei r die Wiederholungsperiode des RSC-Codierers ist, und nicht einfach für beieinander liegende Elemente. Wenn dies berücksichtigt wird, dann sind die bevorzugte Auswahl für j und r Werte, die für beieinander liegende Elemente sowie auch für diejenigen, die um r beabstandet sind, zu einer Spreizung um ungefähr den Abstand nach dem goldenen Schnitt führen. Zum Beispiel wird j = 9 und r = 15 für einen Memory-4-Turbo-Code mit einer RSC-Code-Wiederholungsperiode von r = 15 bevorzugt.
  • Der in den 5 und 7 veranschaulichte goldene Vektor-Interleaver leidet nicht an sich akkumulierenden Quantisierungsfehlern, wie das bei dem goldenen, teilerfremden Interleaver der Fall ist, der in den 4 und 6 veranschaulicht ist. Im Fall des goldenen Vektor-Interleavers tritt ein Quantisierungsfehler nur bei der letztendlichen Zuordnung der Indexe auf. Auf der anderen Seite kann der goldene Vektor-Interleaver nicht unter der Verwendung des oben für die goldene, teilerfremde Ausführungsform beschriebenen Modulo-Inkrement-Indexierungsverfahrens implementiert werden. Im Gegensatz dazu müssen die goldenen Vektor-Interleaver-Indexe im Voraus berechnet und, wie in 5 gezeigt, für jede interessierende Blockgröße im Indexspeicher 5 gespeichert werden. Wenn die vollständigen Indexe gespeichert werden, dann kann die Größe des Indexspeichers übergroß werden. Zum Beispiel würde ein Interleaver mit einer Länge von 216 Elementen 16 × 216 Bits Indexspeicher benötigen. Zum Vergleich dazu benötigt der Speichervektor x typischerweise nur, dass 8-Bit-Wörter im Elementspeicher 2 gespeichert werden, oder die Hälfte des für den Indexspeicher 5 benötigten Speichers.
  • Die erforderliche Größe des Indexspeichers 5 wird beträchtlich verringert, wenn nur Indexzusätze gespeichert werden. Beispielsweise kann der n-te Index leicht nach Bedarf berechnet werden, indem i(n) = floor[v(n)] + o(n), verwendet wird, wobei die Floor-Funktion den ganzzahligen Teil, der auch als Basis-Index bezeichnet wird, extrahiert, v(n) wird unter der Verwendung der Modulo-N-Arithmetik wie in (5) berechnet, und nach der Definition ist o(n) der benötigte Indexzusatz, der im Indexspeicher 5 gespeichert wird. Die Anzahl von Bits, die zum Speichern des jeweiligen Indexzusatzes benötigt wird, ist lediglich 1 oder 2. Deshalb wird für das oben gegebene Beispiel der Indexspeicher auf 2 × 216 Bits oder ungefähr ein Viertel des für den Speichervektor x benötigten Platzes reduziert. Diese Ausführungsform wird durch 5 dargestellt.
  • 11 zeigt die Spreizungseigenschaften für einen goldenen Vektor-Interleaver mit einer Größe von N = 1028 (verwendet in einem Turbo-Codierer mit 1024 Datenbits und 4 Füllbits pro Block), j = 0, r = 1 und m = 2. Der Wert des reellen Inkrements c = Ng2 ist ungefähr 392,7. Wie aus 11 zu ersehen ist, funktioniert der goldene Vektor-Interleaver beim Nachverfolgen der theoretischen Obergrenze gut und verfolgt sie besser nach als die in 10 dargestellte Kurve für den goldenen, teilerfremden Interleaver. Es wird darauf hingewiesen, dass die Fläche unter der Kurve von 4620 für den goldenen, teilerfremden Interleaver auf 5250 für den goldenen Vektor-Interleaver angewachsen ist, was anzeigt, dass der goldene Vektor-Interleaver zum Spreizen von Fehler-Bursts einer zufälligen Länge besser geeignet ist.
  • Es hat sich bei Turbo-Codes herausgestellt, dass Interleaver mit einem gewissen Grad der Zufälligkeit, insbesondere für große Blockgrößen in der Größenordnung von 1000 oder mehr Bits, tendenziell besser als vollständig durchstrukturierter Interleaver funktionieren. Die Spreizungseigenschaften des goldenen Vektor-Interleavers sind immer noch sehr wünschenswert, sowohl zum Aufrechterhalten eines guten Mindestabstandes (einer steilen Fehlerkurve) und zum sicherstellen einer schnellen Konvergenz durch ein wirkungsvolles Verteilen von Fehler-Bursts auf den Block. Diese beiden Merkmale werden vom Dither-Gold-Vektor-Indexierungsverfahren von 8 abgedeckt. Wieder ist der Interleaver unter der Verwendung der in 5 dargestellten Ausführungsform implementiert. Dieses Verfahren besteht aus dem ersten bis fünften Schritt 30 bis 34, die dem ersten bis fünften Schritt 20 bis 24, die entsprechend in 7 dargestellt sind, ähnlich sind. Der einzige Unterschied zwischen dem Gold-Vektor-Verfahren von 7 und dem Dither-Gold-Vektor-Verfahren von 8 ist die Einführung eines reellen Störungs(Dither-)Vektors d im dritten Schritt 32 von 8, der eine Verteilung D hat, der in einem Vektor v nach dem goldenen Schnitt enthalten ist, der gegeben ist durch: V(n) = s + nc + d(n), modulo N, n = 0 ... N – 1, (6) wobei d(n) die n-te Dither-Komponente ist. Die Verteilung D von d hat vorgeschriebene Parameter (z.B. Breite und Standardabweichung), wobei ihre Parameter mit N skalierbar sind. In einer Ausführungsform gehört der hinzugefügte Dither zu einer gleichmäßigen Zufallsverteilung, die zwischen 0 und NWD eingeschränkt ist, wobei WD die normalisierte Breite der Dither-Verteilung ist. In einer alternativen Ausführungsform ist die Verteilung pseudozufällig und kann unter der Verwendung einer einfachen Formel, wie zum Beispiel derjenigen, die zum Erzeugen von Schieberegisterfolgen maximaler Länge (m-Sequenzen) verwendet wird, ganz einfach berechnet werden. Der Dither-Gold-Vektor v wird sortiert, und die Interleaver-Indexe werden in einer ähnlichen Weise wie bei der oben beschriebenen goldenen Vektor-Ausführungsform erzeugt.
  • Auf der Grundlage experimenteller Ergebnisse für Turbo-Codes besteht ein grober Daumenwert für eine beliebige Blockgröße darin, WD ≈ 0,01 zu verwenden. Das Ergebnis ist, dass für kleine Blöcke in der Großenordnung von 1000 Bits oder kleiner der Effekt der Dither-Komponente klein ist. Für große Blöcke in der Großenordnung von 1000 Bits oder größer vergrößert sich natürlich auch der Effekt der Dither-Komponente mit größer werdender Blockgröße. In der Praxis ist der optimale Dither-Grad für einen spezifischen Turbo-Code eine Funktion der Blockgröße und der Coderate, die mit der Punktierung erreicht wird. In ähnlicher Weise wie bei dem goldenen Vektor-Interleaver erfordert auch der Dither-Gold-Vektor-Interleaver die Verwendung eines Indexspeichers zum Speichern vorberechneter Indexe in ihm und kann daher nicht unter der Verwendung des einfacheren Verfahrens der Modulo-Inkrement-Indexierung implementiert werden. Die Größe des Indexspeichers kann groß sein, wenn vollständige Indexe gespeichert werden, wie zuvor für den goldenen Vektor-Interleaver beschrieben.
  • Wie bei dem goldenen Vektor-Interleaver kann die erforderliche Größe des Indexspeichers beträchtlich verringert werden, wenn lediglich Index-Zusätze gespeichert werden. Beispielsweise kann der n-te Index leicht gegebenenfalls unter der Verwendung von i(n) = floor[v(n)] + o(n) berechnet werden, wobei die Floor-Funktion den ganzzahligen Teil, der auch als der Basis-Index bezeichnet wird, extrahiert wird, v(n) unter der Verwendung der reellen Modulo-N-Arithmetik wie in (6) berechnet wird, und o(n) nach der Definition der erforderliche Indexzusatz ist, der im Indexspeicher 5 von 5 gespeichert wird. Die Anzahl von Bits, die zum Speichern des jeweiligen Indexzusatzes benötigt wird, ist typischerweise 3 oder 4. Auf dieser Weise wird für das oben gegebene Beispiel der Indexspeicher auf 4 × 216 Bits oder ungefähr der Hälfte desjenigen reduziert, der zur Speicherung des Vektors x benötigt wird. Alternativ dazu wird (5) zur Annäherung von v(n) verwendet und ist der Effekt des Dither-Teils in den Indexzusätzen enthalten, ohne dass die Dither-Komponente im Interleaver berechnet zu werden braucht. Die Größe des benötigten Indexspeichers ist dann eine Funktion der Breite der Dither-Verteilung, die Einsparungen an Speicherplatz können jedoch immer noch beträchtlich sein. Wieder ist diese Ausführungsform in 5 dargestellt.
  • Bei dem Dither-Gold-Vektor-Interleaver hat es sich herausgestellt, dass er die meisten der wünschenswerten Spreizeigenschaften der Gold-Vektor-Ausführungsform beibehält, jedoch auch zum Hinzufügen einer Zufälligkeit zum Interleaver fähig ist, um für große Blöcke in der Großenordnung von 1000 oder mehr Bits die Turbo-Code-Leistung zu verbessern. Im Gegensatz dazu ist die goldene teilerfremde Ausführungsform für kleinere Blöcke in der Großenordnung von 1000 oder weniger Bits geeignet, da sie relativ weniger Verarbeitung und einen kleineren Speicher zur Implementierung benötigt und für diese Blockgrößen annähernd dieselbe Leistung wie die Dither-Gold-Ausführungsform liefert.
  • Eine Modifikation des Dither-Gold-Vektor-Interleavers, der in den 5 und 8 dargestellt ist, besteht in der Rundung von c, wie in (4) definiert, entweder nach oben oder nach unten auf den nächsten ganzzahllgen Wert. Diese Einschränkung stellt sicher, dass N mal c, Modulo N, gleich null ist, was wiederum sicherstellt, dass die resultierenden Spreizeigenschaften in einem Modulo-Sinn sowohl für den Interleaver als auch den entsprechenden De-Interleaver gültig sind. Ohne diese Einschränkung leiden die Spreizeigenschaften des De-Interleavers, gemessen mit der Modulo-N-Arithmetik an einer Verschlechterung auf Grund von Randeffekten. Dies ist eine wünschenswerte Einschränkung für tailbiting Turbo-Codes, wobei die Modulo-N-Spreizeigenschaften des De-Interleavers genau so wichtig sind, wie die Modulo-N-Spreizeigenschaften des Interleavers. Es wird darauf hingewiesen, dass diese Einschränkung nicht so streng ist wie die Auswahl der am nächsten liegenden teilerfremden Zahl, wie das für den goldenen teilerfremden Interleaver der Fall ist. Der Dither-Schritt 32 und der Sortierungsschritt 33 stellen sicher, dass ein gültiger Interleaver entsteht, wenn diese Einschränkung wirksam ist.
  • Auch wenn die oben gegebene Beschreibung über Turbo-Codes auf Turbo-Codes mit zwei Konstituenten-RSC-Codierern und einem Interleaver gerichtet ist, können dieselben beschriebenen Interleaver-Techniken auch auf verallgemeinerte Turbo-Codes mit zwei oder mehr unterschiedlichen Interleavern angewendet werden. Im letzteren Fall wird die Interaktion zwischen der unterschiedlichen Interleavern wichtig. Eine Lösung, die eine gute relative Spreizung zwischen allen verschachtelten Folgen ergibt, ist die Verwendung unterschiedlicher kleiner Werte von m (d.h. unterschiedlicher Potenzen von g) für jeden der unterschiedlichen Interleaver.
  • Es versteht sich, dass der größte Teil der oben angegebenen Erörterung, die sich auf den Begriff „Interleaver" bezieht, genauso gut auf den Begriff „De-Interleaver" anzuwenden ist, und das Interleaving und De-Interleaving symmetrische und gegenseitig abhängige Prozesse sind. Daher wird der Begriff „Interleaver" so verwendet, dass er sich auf einen Interleaver oder einen De-Interleaver bezieht.
  • Natürlich können zahlreiche Variationen und Anpassungen an den oben beschriebenen bestimmten Ausführungsformen der Erfindung vorgenommen werden, ohne dass dadurch vom Umfang der Erfindung, der in den Ansprüchen definiert ist, abgewichen wird.

Claims (45)

  1. Interleaving-Verfahren zum Ändern der Reihenfolge eines Stroms von N Eingabeelementen zu einem Strom von N Ausgabeelementen, wobei das Interleaving-Verfahren die folgenden Schritte aufweist: (a) Erzeugen einer Folge von Eingabeindexen und einer Folge von Ausgabeindexen, wobei mindestens eine der Folgen von Indexen anhand eines goldenen Schnitts g gleich (√5 – 1)/2 erzeugt wird; (b) Schreiben des Stroms von N Eingabeelementen in einen Elementspeicher gemäß der Folge von Eingabeindexen; und (c) Lesen des Stroms von N Ausgabeelementen aus dem Elementspeicher gemäß der Folge von Ausgabeindexen.
  2. Interleaving-Verfahren nach Anspruch 1, wobei Schritt (a) einen Schritt des Berechnens mindestens einer der Folgen von Indexen als eine Folge i umfasst, wobei die Elemente als i(n) = s + np, modulo N, definiert sind, wobei s ein vorgewählter ganzzahliger Startindex ist, p ein ganzzahliges Indexinkrement, das mit N teilerfremd ist, anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt.
  3. Interleaving-Verfahren nach Anspruch 2, wobei p einen Wert hat, der einem reellen Wert c = N(gm + j)/r nahe kommt, wobei m eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  4. Interleaving-Verfahren nach Anspruch 3, wobei p auf einen aus einem Paar Werten unmittelbar unter oder über c gerundet wird.
  5. Interleaving-Verfahren nach Anspruch 3, wobei der Wert von p so gewählt wird, dass eine Mindest-Differenz zwischen Paaren von Interleaver-Indexen innerhalb von i bis zu einer vorgewählten maximalen Anzahl von Elementen maximiert wird.
  6. Interleaving-Verfahren nach Anspruch 3, wobei der Wert von p so gewählt wird, dass eine gewichtete Summe von Mindest-Differenzen zwischen Paaren von Interleaver-Indexen innerhalb von i für alle Anzahlen von Elementen von 2 bis zu einer vorgewählten maximalen Anzahl von Elementen maximiert wird.
  7. Interleaving-Verfahren nach Anspruch 3, wobei r = 1, j = 0 und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  8. Interleaving-Verfahren nach Anspruch 2, wobei eine Folge der Folgen von Indexen mit einem Indexinkrementwert von 1 von null bis N – 1 ansteigt.
  9. Interleaving-Verfahren nach Anspruch 1, wobei der Schritt (a) die folgenden Schritte umfasst: (i) Erzeugen eines goldenen Vektors v mit als v(n) = s + nc, modulo N, definierten Elementen, wobei s ein vorgewählter reeller Startwert, c ein reeller Inkrementwert, der anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt; (ii) Finden eines Sortierungsvektors z, der aus a(n) = v(z(n)) bestimmt wird, für n = 0 ... N – 1, wobei a die Elemente von v enthält, die entweder in eine ansteigende oder eine absteigende Reihenfolge gebracht werden; und (iii) Zuweisen einer Folge i mit entweder durch i(n) = z(n) oder durch i(z(n)) = n definierten Elementen, für n = 0 ... N – 1, zu einer der Folgen von Indexen.
  10. Interleaving-Verfahren nach Anspruch 9, wobei der Schritt des Erzeugens eines goldenen Vektors einen Schritt des Berechnens von c als N(gm + j)/r enthält, wobei m eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  11. Interleaving-Verfahren nach Anspruch 10, wobei r = 1, j = 0 und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  12. Interleaving-Verfahren nach Anspruch 9, wobei eine der Folgen von Indexen mit einen Indexinkrementschritt von 1 von null auf N – 1 ansteigt.
  13. Interleaving-Verfahren nach Anspruch 9, wobei der Schritt des Erzeugens eines goldenen Vektors v einen Dither-Vektor d mit einer n-ten reellen Dither-Komponente d(n) einer vorgeschriebenen Verteilung D verwendet, so dass v(n) = s + nc + d(n), modulo N, gilt.
  14. Interleaving-Verfahren nach Anspruch 13, wobei der Schritt des Erzeugens eines goldenen Vektors c als N(gm + j)/r berechnet, wobei m eine vorgewählte ganze Zahl ungleich null, r ein ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar von Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  15. Interleaving-Verfahren nach Anspruch 14, wobei r = 1, j = 0, und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  16. Interleaving-Verfahren nach Anspruch 13, wobei eine der Folgen von Indexen mit einem Indexinkrementwert von 1 von null auf N – 1 ansteigt.
  17. Interleaving-Verfahren nach Anspruch 13, wobei D eine pseudozufällige, gleichmäßige Verteilung mit einer Breite von weniger als N/2 ist.
  18. Interleaving-Verfahren nach Anspruch 13, wobei D eine pseudozufällige Verteilung ist, die mit N skalierbar ist.
  19. Interleaving-Verfahren nach Anspruch 13, wobei der Schritt des Erzeugens eines goldenen Vektors einen Schritt des Rundens von c auf einen eines Paars ganzzahliger Werte unmittelbar über und unter dem reellen Wert von N(gm + j)/r umfasst, wobeim eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar von Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  20. Interleaving-Verfahren nach Anspruch 1, wobei Schritt (a) die folgenden Schritte umfasst: (i) Erzeugen einer Folge von Basis-Indexen, die anhand von g definiert sind; (ii) Lesen einer Folge von Indexzusätzen vom Indexspeicher; und (iii) Kombinieren der Folge von Basis-Indexen mit der Folge von Indexzusätzen, um die mindestens eine der Folgen von Indexen zu erzeugen.
  21. Interleaving-System zum Ändern der Reihenfolge eines Stroms von N Eingabeelementen zu einem Strom von N Ausgabeelementen, wobei das Interleaving-System umfasst: (a) einen Elementspeicher, (b) eine Indexiereinrichtung zum Erzeugen einer Folge von Eingabeindexen und einer Folge von Ausgabeindexen, wobei mindestens eine der Folgen von Indexen anhand eines goldenen Schnitts g gleich (√5 – 1)/2 erzeugt wird; (c) ein Eingabemodul, das mit der Indexiereinrichtung gekoppelt ist, zum Schreiben des Stroms von N Eingabeelementen gemäß der Folge von Eingabeindexen in den Elementspeicher; und (d) ein Ausgabemodul, das mit der Indexiereinrichtung gekoppelt ist, zum Lesen des Stroms von N Ausgabeelementen gemäß der Folge von Ausgabeindexen aus dem Elementspeicher.
  22. Interleaving-System nach Anspruch 21, wobei die Indexiereinrichtung die mindestens eine der Folgen von Indexen als eine Folge i mit als i(n) = s + np, modulo N, definierten Elementen erzeugt, wobei s ein vorgewählter ganzzahliger Startindex ist, p ein ganzzahliges Indexinkrement, das mit N teilerfremd ist, anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt.
  23. Interleaving-System nach Anspruch 22, wobei die Indexiereinrichtung p einen Wert verleiht, der dem reellen Wert c = N(gm + j)/r nahe ist, wobei m eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  24. Interleaving-System nach Anspruch 23, wobei der Wert von p auf einen aus einem Paar Werten unmittelbar über und unter c gerundet wird.
  25. Interleaving-System nach Anspruch 23, wobei der Wert von p so gewählt wird, dass eine Mindest-Differenz zwischen Paaren von Interleaver-Indexen innerhalb von i bis zu einer vorgewählten maximalen Anzahl von Elementen maximiert wird.
  26. Interleaving-System nach Anspruch 23, wobei der Wert von p so gewählt wird, dass eine gewichtete Summe von Mindest-Differenzen zwischen Paaren von Interleaver-Indexen innerhalb von i für alle Anzahlen von Elementen von 2 bis zu einer vorgewählten maximalen Anzahl von Elementen maximiert wird.
  27. Interleaving-System nach Anspruch 23, wobei r = 1, j = 0 und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  28. Interleaving-System nach Anspruch 22, wobei eine Folge der Folgen von Indexen mit einem Indexinkrementwert von 1 von null bis N – 1 ansteigt.
  29. Interleaving-System nach Anspruch 21, wobei die Indexiereinrichtung umfasst: (i) einen Vektorgenerator zum Erzeugen eines goldenen Vektors v mit als v(n) = s + nc, modulo N, definierten Elementen, wobei s ein vorgewählter reeller Startwert, c ein reeller Inkrementwert, der anhand von g definiert ist, und n eine ganze Zahl ist, die fortschreitend von 0 bis N – 1 ansteigt; (ii) Sortiermittel, das auf den Vektorgenerator anspricht, zum Finden eines Sortierungsvektors z, der aus a(n) = v(z(n)) bestimmt wird, für n = 0 ... N – 1, wobei a die Elemente von v enthält, die entweder in eine ansteigende oder eine absteigende Reihenfolge gebracht werden; und (iii) Zuweisungsmittel, das auf das Sortiermittel anspricht, zum Zuweisen einer Folge i mit entweder durch i(n) = z(n) oder durch i(z(n)) = n definierten Elementen, für n = 0 ... N – 1, zu einer der Folgen von Indexen.
  30. Interleaving-System nach Anspruch 29, wobei: c = N(gm + j)/r ist, wobeim eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  31. Interleaving-System nach Anspruch 30, wobei r = 1, j = 0 und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  32. Interleaving-System nach Anspruch 29, wobei eine der Folgen von Indexen mit einem Indexinkrementschritt von 1 von null auf N – 1 ansteigt.
  33. Interleaving-System nach Anspruch 29, wobei der Vektorgenerator einen Dither-Vektor d mit einer n-ten reellen Dither-Komponente d(n) einer vorgeschriebenen Verteilung D zum Erzeugen des goldenen Vektors v mit wie folgt definierten Elementen verwendet: v(n) = s + nc + d(n), modulo N.
  34. Interleaving-System nach Anspruch 33, wobei: c = N(gm + j)/r ist, wobeim eine vorgewählte ganze Zahl ungleich null, r ein ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar von Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  35. Interleaving-System nach Anspruch 34, wobei r = 1, j = 0, und m eine ganze Zahl ungleich null mit einem absoluten Wert ist, der kleiner als 10 ist.
  36. Interleaving-System nach Anspruch 33, wobei eine der Folgen von Indexen mit einem Indexinkrementwert von 1 von null auf N – 1 ansteigt.
  37. Interleaving-System nach Anspruch 33, wobei D eine pseudozufällige, gleichmäßige Verteilung mit einer Breite von weniger als N/2 ist.
  38. Interleaving-System nach Anspruch 33, wobei D eine pseudozufällige Verteilung ist, die mit N skalierbar ist.
  39. Interleaving-System nach Anspruch 33, wobei der Wert von c auf einen eines Paars ganzzahliger Werte unmittelbar über und unter dem reellen Wert von N(gm + j)/r gerundet wird, wobeim eine vorgewählte ganze Zahl ungleich null, r eine ganze Zahl ungleich null, die einen Abstand zwischen einem beliebigen Paar von Eingabeelementen definiert, die maximal zu spreizen sind, und j eine vorgewählte ganze Zahl, modulo r, ist.
  40. Mindestens ein Interleaving-System nach Anspruch 39, das einen Teil eines tailbiting Turbo-Code-Codierers bildet, der eine Vielzahl parallel betriebener tailbiting systematischer Faltungscodierer umfasst, wobei jedes des mindestens einen Interleaving-Systems an einem Eingang mindestens eines der Vielzahl von tailbiting systematischen Faltungscodierern angeordnet ist.
  41. Mindestens ein Interleaving-System nach Anspruch 21, das einen Teil eines Turbo-Code-Codierers bildet, der eine Vielzahl parallel betriebener systematischer Faltungscodierer umfasst, wobei jedes des mindestens einen Interleaving-Systems an einem Eingang mindestens eines der Vielzahl systematischer Faltungscodierer angeordnet ist.
  42. Interleaving-System nach Anspruch 21, ferner umfassend einen Indexspeicher zum Speichern einer Folge von Indexzusätzen, die der mindestens einen der Folgen von Indexen entspricht.
  43. Interleaving-System nach Anspruch 21, wobei die Indexiereinrichtung einen Indexspeicher zum Speichern der mindestens einen der Folgen von Indexen umfasst.
  44. Interleaving-System nach Anspruch 21, wobei die Indexiereinrichtung umfasst: (i) einen Indexspeicher zum Speichern einer Folge von Eingabeindexzusätzen; und (ii) einen Generator von Basis-Indexen, der mit dem Indexspeicher gekoppelt ist, zum Erzeugen einer Folge von Basis-Eingabeindexen; wobei die Indexiereinrichtung die Folge von Eingabeindexen durch Addieren der Folge von Eingabeindexzusätzen zur Folge von Basis-Eingabeindexen erzeugt.
  45. Interleaving-System nach Anspruch 21, wobei die Indexiereinrichtung umfasst: (i) einen Indexspeicher zum Speichern einer Folge von Ausgabeindexzusätzen; und (ii) einen Generator von Basis-Indexen, der mit dem Indexspeicher gekoppelt ist, zum Erzeugen einer Folge von Basis-Ausgabeindexen; wobei die Indexiereinrichtung die Folge von Ausgabeindexen durch Addieren der Folge von Ausgabeindexzusätzen zur Folge von Basis-Ausgabeindexen erzeugt.
DE69936683T 1998-06-01 1999-06-01 Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt Expired - Fee Related DE69936683T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8759198P 1998-06-01 1998-06-01
US87591P 1998-06-01

Publications (2)

Publication Number Publication Date
DE69936683D1 DE69936683D1 (de) 2007-09-13
DE69936683T2 true DE69936683T2 (de) 2008-04-30

Family

ID=22206104

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69936683T Expired - Fee Related DE69936683T2 (de) 1998-06-01 1999-06-01 Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt

Country Status (4)

Country Link
US (3) US6530059B1 (de)
EP (2) EP0963049B1 (de)
CA (3) CA2273592C (de)
DE (1) DE69936683T2 (de)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US7536624B2 (en) 2002-01-03 2009-05-19 The Directv Group, Inc. Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
AU5675499A (en) * 1998-08-17 2000-03-06 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
EP1050110B1 (de) * 1998-08-27 2004-05-26 Hughes Electronics Corporation Verfahren zur generalen turbocodetrellissterminierung
US6665357B1 (en) * 1999-01-22 2003-12-16 Sharp Laboratories Of America, Inc. Soft-output turbo code decoder and optimized decoding method
ES2408118T3 (es) * 1999-05-19 2013-06-18 Samsung Electronics Co., Ltd. Aparato y método de intercalado turbo.
JP3846527B2 (ja) * 1999-07-21 2006-11-15 三菱電機株式会社 ターボ符号の誤り訂正復号器、ターボ符号の誤り訂正復号方法、ターボ符号の復号装置およびターボ符号の復号システム
GB2361855A (en) * 1999-07-21 2001-10-31 Mitsubishi Electric Corp Turbo-code decoding using a Soft Output Viterbi Algorithm (SOVA)
EP1254544B1 (de) * 1999-12-03 2015-04-29 Broadcom Corporation Eingebettete trainingssequenzen für frequenzerfassung und -verfolgung
US6829305B2 (en) * 1999-12-08 2004-12-07 Lg Electronics Inc. Concatenated convolutional encoder and decoder of mobile communication system
US6758435B2 (en) * 1999-12-09 2004-07-06 Rheinmetall W & M Gmbh Guide assembly for a missile
DE10001856A1 (de) 2000-01-18 2001-08-09 Infineon Technologies Ag Verfahren zur Decodierung eines Datensignals
US6898254B2 (en) * 2000-01-31 2005-05-24 Texas Instruments Incorporated Turbo decoder stopping criterion improvement
US6879648B2 (en) * 2000-01-31 2005-04-12 Texas Instruments Incorporated Turbo decoder stopping based on mean and variance of extrinsics
GB0004765D0 (en) 2000-03-01 2000-04-19 Mitel Corp Soft-decision decoding of convolutionally encoded codeword
US7080307B2 (en) * 2000-03-02 2006-07-18 Kawasaki Steel Corporation Error correction decoder with correction of lowest soft decisions
FR2807895B1 (fr) * 2000-04-18 2002-06-07 Canon Kk Procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre
US6757859B1 (en) * 2000-05-01 2004-06-29 Zarlink Semiconductor Inc. Parallel turbo trellis-coded modulation
US6732327B1 (en) * 2000-05-05 2004-05-04 Nokia Networks Oy Scaled-feedback turbo decoder
US6718508B2 (en) 2000-05-26 2004-04-06 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre High-performance error-correcting codes with skew mapping
US6591395B1 (en) * 2000-06-18 2003-07-08 Silicon Integrated Systems Corporation Memory reduction techniques in a viterbi decoder
FR2811169B1 (fr) * 2000-06-28 2002-09-06 Canon Kk Procede et dispositif de decodage et systemes les mettant en oeuvre
FI109162B (fi) 2000-06-30 2002-05-31 Nokia Corp Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
US6944803B2 (en) * 2000-07-06 2005-09-13 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada Code structure, encoder, encoding method, and associated decoder and decoding method and iteratively decodable code structure, encoder, encoding method, and associated iterative decoder and iterative decoding method
JP2002064385A (ja) * 2000-08-18 2002-02-28 Sony Corp 復号装置及び復号方法
US6865710B2 (en) 2000-09-18 2005-03-08 Lucent Technologies Inc. Butterfly processor for telecommunications
US6877125B2 (en) 2000-09-18 2005-04-05 Canon Kabushiki Kaisha Devices and methods for estimating a series of symbols
FR2814299B1 (fr) * 2000-09-18 2003-01-10 Canon Kk Procede et dispositif d'estimation d'une suite de symboles mettant en oeuvre une correction conditionnelle, et systemes associes
US7127664B2 (en) 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
FR2814300B1 (fr) * 2000-09-18 2003-01-24 Canon Kk Dispositif et procede d'estimation d'une suite de symboles a implantation reduite, circuits et systemes correspondants
US7340664B2 (en) * 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US6604220B1 (en) * 2000-09-28 2003-08-05 Western Digital Technologies, Inc. Disk drive comprising a multiple-input sequence detector selectively biased by bits of a decoded ECC codedword
JP2002111512A (ja) * 2000-09-29 2002-04-12 Sony Corp 復号装置及び方法、並びにデータ受信装置及び方法
US6865711B2 (en) * 2000-12-15 2005-03-08 Conexant Systems, Inc. System of and method for decoding trellis codes
US6952457B2 (en) * 2000-12-29 2005-10-04 Motorola, Inc. Method and system for adapting a training period in a turbo decoding device
US7027531B2 (en) * 2000-12-29 2006-04-11 Motorola, Inc. Method and system for initializing a training period in a turbo decoding device
US6799295B2 (en) * 2001-01-02 2004-09-28 Icomm Technologies, Inc. High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
US7076000B2 (en) * 2001-01-18 2006-07-11 Motorola, Inc. Soft-decision metric generation for higher order modulation
FI20010147A (fi) * 2001-01-24 2002-07-25 Nokia Corp Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
US7003045B2 (en) * 2001-01-31 2006-02-21 Motorola, Inc. Method and apparatus for error correction
US6961388B2 (en) 2001-02-01 2005-11-01 Qualcomm, Incorporated Coding scheme for a wireless communication system
US9979580B2 (en) 2001-02-01 2018-05-22 Qualcomm Incorporated Coding scheme for a wireless communication system
JP3540224B2 (ja) * 2001-03-06 2004-07-07 シャープ株式会社 ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
KR100464360B1 (ko) * 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
JP3730885B2 (ja) * 2001-07-06 2006-01-05 株式会社日立製作所 誤り訂正ターボ符号の復号器
US20030115061A1 (en) * 2001-09-11 2003-06-19 Broadcom Corporation MPSK equalizer
US6760883B2 (en) * 2001-09-13 2004-07-06 Agere Systems Inc. Generating log-likelihood values in a maximum a posteriori processor
US20030131306A1 (en) * 2001-12-27 2003-07-10 Yeun-Renn Ting Method for turbo-code block message tailing and turbo-code encoder employing the same
US6967598B2 (en) * 2004-02-20 2005-11-22 Bae Systems Information And Electronic Systems Integration Inc Reduced complexity multi-turbo multi-user detector
US6704376B2 (en) * 2002-01-23 2004-03-09 Bae Systems Information And Electronic Systems Integration Inc. Power and confidence ordered low complexity soft turbomud with voting system
US7092464B2 (en) * 2002-01-23 2006-08-15 Bae Systems Information And Electronic Systems Integration Inc. Multiuser detection with targeted error correction coding
US6831574B1 (en) 2003-10-03 2004-12-14 Bae Systems Information And Electronic Systems Integration Inc Multi-turbo multi-user detector
WO2003088503A1 (fr) * 2002-04-05 2003-10-23 Linkair Communications, Inc. Procede et dispositif de codage turbo frequentiel spatio-temporel
US7107512B2 (en) * 2002-05-31 2006-09-12 Broadcom Corporation TTCM decoder design
US7003703B2 (en) * 2002-06-21 2006-02-21 Sandbridge Technologies, Inc. Method of interleaving/deinterleaving in a communication system
US7073114B2 (en) * 2002-06-24 2006-07-04 Massey Peter C Method of decoding utilizing a recursive table-lookup decoding method
US7577207B2 (en) * 2002-07-03 2009-08-18 Dtvg Licensing, Inc. Bit labeling for amplitude phase shift constellation used with low density parity check (LDPC) codes
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
AU2003249708A1 (en) * 2002-07-03 2004-01-23 Hughes Electronics Corporation Method and system for memory management in low density parity check (ldpc) decoders
US7209527B2 (en) * 2002-07-08 2007-04-24 Agere Systems Inc. Turbo decoder employing max and max* map decoding
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US7864869B2 (en) * 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
JP2004080508A (ja) * 2002-08-20 2004-03-11 Nec Electronics Corp 誤り訂正符号の復号方法、そのプログラム及びその装置
US7154965B2 (en) 2002-10-08 2006-12-26 President And Fellows Of Harvard College Soft detection of data symbols in the presence of intersymbol interference and timing error
US20040092228A1 (en) * 2002-11-07 2004-05-13 Force Charles T. Apparatus and method for enabling use of low power satellites, such as C-band, to broadcast to mobile and non-directional receivers, and signal design therefor
AU2003293212A1 (en) * 2003-04-14 2004-11-19 Bae Systems Information And Electronic Systems Integration Inc. Joint symbol, amplitude, and rate estimator
US7246295B2 (en) * 2003-04-14 2007-07-17 Agere Systems Inc. Turbo decoder employing simplified log-map decoding
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7877670B2 (en) * 2005-12-06 2011-01-25 Ternarylogic Llc Error correcting decoding for convolutional and recursive systematic convolutional encoded sequences
GB0323211D0 (en) * 2003-10-03 2003-11-05 Toshiba Res Europ Ltd Signal decoding methods and apparatus
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
KR100606023B1 (ko) * 2004-05-24 2006-07-26 삼성전자주식회사 고속 터보 복호화 장치
KR100549870B1 (ko) * 2004-07-09 2006-02-06 삼성전자주식회사 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기
JP4321394B2 (ja) * 2004-07-21 2009-08-26 富士通株式会社 符号化装置、復号装置
CN101341659B (zh) * 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
US7565594B2 (en) * 2004-08-26 2009-07-21 Alcatel-Lucent Usa Inc. Method and apparatus for detecting a packet error in a wireless communications system with minimum overhead using embedded error detection capability of turbo code
US7971131B1 (en) * 2005-05-06 2011-06-28 Hewlett-Packard Development Company, L.P. System and method for iterative denoising and error correction decoding
US8006161B2 (en) * 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
JP4436315B2 (ja) * 2005-12-26 2010-03-24 京セラ株式会社 畳み込み符号化器、通信装置、及び畳み込み符号化方法
US20080063105A1 (en) * 2006-09-13 2008-03-13 Via Telecom, Inc. System and method for implementing preamble channel in wireless communication system
US20080092018A1 (en) * 2006-09-28 2008-04-17 Broadcom Corporation, A California Corporation Tail-biting turbo code for arbitrary number of information bits
US20080152044A1 (en) * 2006-12-20 2008-06-26 Media Tek Inc. Veterbi decoding method for convolutionally encoded signal
US7992075B2 (en) * 2007-03-19 2011-08-02 Intel Corporation Arrangements for encoding and decoding digital data
EP1973234A1 (de) 2007-03-20 2008-09-24 Nokia Siemens Networks Gmbh & Co. Kg Optimierte Segmentierung von Kodeblöcken für die Turbo-Kodierung
US8006172B2 (en) * 2007-07-10 2011-08-23 Oracle America, Inc. Auxiliary path iterative decoding
US8375280B2 (en) * 2007-11-02 2013-02-12 Telefonaktiebolaget L M Ericsson (Publ) Optimum distance spectrum feedforward tail-biting convolutional codes
US8127216B2 (en) * 2007-11-19 2012-02-28 Seagate Technology Llc Reduced state soft output processing
US8250448B1 (en) * 2008-03-26 2012-08-21 Xilinx, Inc. Method of and apparatus for implementing a decoder
US8630364B2 (en) * 2008-07-25 2014-01-14 Nokia Siemens Networks Oy Termination techniques for multi-index continuous phase encoders for wireless networks
JP5088304B2 (ja) * 2008-11-27 2012-12-05 富士通株式会社 通信システム
US20100299579A1 (en) * 2009-05-21 2010-11-25 Ternarylogic Llc Methods and Systems for Error-Correction in Convolutional and Systematic Convolutional Decoders in Galois Configuration
US8683555B2 (en) * 2010-02-10 2014-03-25 Raytheon Company Systems and methods to prevent denial of service attacks
WO2011119137A1 (en) 2010-03-22 2011-09-29 Lrdc Systems, Llc A method of identifying and protecting the integrity of a set of source data
US9065485B1 (en) * 2011-01-05 2015-06-23 Altera Corporation Method and apparatus for interleaving using stored initial value
CN103701475B (zh) * 2013-12-24 2017-01-25 北京邮电大学 移动通信系统中8比特运算字长Turbo码的译码方法
US11395353B2 (en) 2020-01-23 2022-07-19 Rockwell Collins, Inc. System and method for 4G automatic link establishment protocol enhancement

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2013002B (en) * 1978-01-05 1982-03-17 Plessey Co Ltd Error correction devices
US4583078A (en) * 1984-11-13 1986-04-15 Communications Satellite Corporation Serial Viterbi decoder
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法
FR2639781B1 (fr) 1988-11-25 1991-01-04 Alcatel Thomson Faisceaux Procede d'entrelacement pour dispositif de transmission numerique
FR2675971B1 (fr) 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US5349589A (en) * 1991-07-01 1994-09-20 Ericsson Ge Mobile Communications Inc. Generalized viterbi algorithm with tail-biting
US5416787A (en) * 1991-07-30 1995-05-16 Kabushiki Kaisha Toshiba Method and apparatus for encoding and decoding convolutional codes
US5369671A (en) 1992-05-20 1994-11-29 Hughes Aircraft Company System and method for decoding tail-biting code especially applicable to digital cellular base stations and mobile units
US5390198A (en) * 1993-05-26 1995-02-14 The Boeing Company Soft decision viterbi decoder for M-ary convolutional codes
US5465275A (en) * 1993-11-16 1995-11-07 At&T Ipm Corp. Efficient utilization of present state/next state registers
FR2724273B1 (fr) * 1994-09-05 1997-01-03 Sgs Thomson Microelectronics Circuit de traitement de signal pour mettre en oeuvre un algorithme de viterbi
DE4437984A1 (de) 1994-10-25 1996-08-14 Philips Patentverwaltung Übertragungssystem mit Soft-Output-Dekodierung
DE59509663D1 (de) * 1995-10-21 2001-11-08 Micronas Gmbh Logischer Block für einen Viterbi-Decoder
US6028899A (en) * 1995-10-24 2000-02-22 U.S. Philips Corporation Soft-output decoding transmission system with reduced memory requirement
US5742621A (en) 1995-11-02 1998-04-21 Motorola Inc. Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
JP3233847B2 (ja) * 1996-02-23 2001-12-04 沖電気工業株式会社 ビタビ復号方法及びビタビ復号回路
US5764649A (en) 1996-03-29 1998-06-09 Amati Communications Corporation Efficient address generation for convolutional interleaving using a minimal amount of memory
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5719875A (en) 1996-06-11 1998-02-17 Lucent Technologies Inc. Systematic convolution interleavers and deinterleavers
US5734962A (en) * 1996-07-17 1998-03-31 General Electric Company Satellite communications system utilizing parallel concatenated coding
GB2317789A (en) 1996-09-26 1998-04-01 Lin Mao Chao Decoding trellis code using Viterbi algorithm
US5933462A (en) * 1996-11-06 1999-08-03 Qualcomm Incorporated Soft decision output decoder for decoding convolutionally encoded codewords
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
CA2245601C (en) * 1997-08-14 2007-06-12 Stewart Crozier High-performance low-complexity error-correcting codes
JP4033245B2 (ja) * 1997-09-02 2008-01-16 ソニー株式会社 ターボ符号化装置およびターボ符号化方法
US6275538B1 (en) * 1998-03-11 2001-08-14 Ericsson Inc. Technique for finding a starting state for a convolutional feedback encoder
US6192501B1 (en) * 1998-08-20 2001-02-20 General Electric Company High data rate maximum a posteriori decoder for segmented trellis code words
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6044116A (en) * 1998-10-29 2000-03-28 The Aerospace Corporation Error-floor mitigated and repetitive turbo coding communication system
US6266795B1 (en) * 1999-05-28 2001-07-24 Lucent Technologies Inc. Turbo code termination

Also Published As

Publication number Publication date
CA2273418A1 (en) 1999-12-01
DE69936683D1 (de) 2007-09-13
CA2273592C (en) 2006-08-22
CA2273418C (en) 2008-03-25
US6530059B1 (en) 2003-03-04
EP0963048A3 (de) 2001-02-07
CA2273592A1 (en) 1999-12-01
EP0963049A3 (de) 2001-03-28
US6460161B1 (en) 2002-10-01
EP0963048A2 (de) 1999-12-08
EP0963049B1 (de) 2007-08-01
CA2273608A1 (en) 1999-12-01
CA2273608C (en) 2007-08-07
EP0963049A2 (de) 1999-12-08
US6510536B1 (en) 2003-01-21

Similar Documents

Publication Publication Date Title
DE69936683T2 (de) Verschachtelung unter Verwendung von Inkrementen basierend auf dem Goldenen Schnitt
DE69838451T2 (de) Verfahren und schaltung zur adaptiven kanalkodierung
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
DE3910739C2 (de)
DE10030407B4 (de) Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem
DE60009973T2 (de) Verschachtelungsverfahren, Verschachtelungsgerät, Turbokodierungsverfahren und Turbokodierer
DE60032441T2 (de) Vorrichtung und verfahren zur turboverschaltelung
DE69722331T2 (de) Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür
DE602005002815T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Low-Density Parity-Check (LDPC) Codes
DE60119387T2 (de) Skalierung demodulierter daten in einem verschachtelungsspeicher
DE69922707T2 (de) Sender und Empfänger mit Ratenanpassung
US6339834B1 (en) Interleaving with golden section increments
DE69934606T2 (de) Turbodekoder und verschachtel-/endschachtelapparat
DE60108892T2 (de) Modul, vorrichtung und verfahren zum hochbitratigen dekodieren eines verketteten codes
DE69936908T2 (de) Iterative dekodierung von produktkoden
DE69907011T2 (de) Verallgemeinerter faltungsver- und -entschachteler
DE69936626T2 (de) Kanalkodierung und -dekodierung für ein kommunikationssystem
DE60002705T2 (de) Binnen-reihen permutationen für turbocode
DE602004012417T2 (de) Dekodierungsvorrichtung und dekodierungsverfahren
WO2003071689A2 (de) Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler
DE69936067T2 (de) Verfahren und Vorrichtung zur Maximum-a-Posteriori Warscheinlichkeits-Dekodierung
DE60316428T2 (de) Verfahren, Kodierer und Kommunikationsvorrichtung zur Kodierung von parallel verketteten Daten
DE60016561T2 (de) Blockverschachtelung für turbokodierung
DE60112445T2 (de) Modifikation eines Verschachtelermusters
DE60111974T2 (de) Abbruchkriterium für einen Turbodekoder

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee