DE60124488T2 - Verschachteler und Verschachtelungsverfahren für einen UMTS Turboenkoder - Google Patents

Verschachteler und Verschachtelungsverfahren für einen UMTS Turboenkoder Download PDF

Info

Publication number
DE60124488T2
DE60124488T2 DE60124488T DE60124488T DE60124488T2 DE 60124488 T2 DE60124488 T2 DE 60124488T2 DE 60124488 T DE60124488 T DE 60124488T DE 60124488 T DE60124488 T DE 60124488T DE 60124488 T2 DE60124488 T2 DE 60124488T2
Authority
DE
Germany
Prior art keywords
permutation
row
pattern
value
address
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 - Lifetime
Application number
DE60124488T
Other languages
English (en)
Other versions
DE60124488D1 (de
Inventor
Samsung Electronics Co. Sung-Chul Suwon-city 442-370 Han
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE60124488D1 publication Critical patent/DE60124488D1/de
Application granted granted Critical
Publication of DE60124488T2 publication Critical patent/DE60124488T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations
    • 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • H03M13/2714Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212
    • 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/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft im Allgemeinen einen Turbo-Codierer für ein Funkkommunikationssystem, und im Besonderen betrifft die vorliegende Erfindung einen Interleaver für einen Turbo-Codierer in einem UMTS- (Universal Mobile Telecommunication System) System und ein Verfahren zum Durchführen von Interleaving.
  • Ein Turbo-Codierer, der einen Turbo-Code verwendet, wird im Allgemeinen für ein Funkkommunikationssystem, wie beispielsweise ISDN- (Integrated Services Digital Network), digitale Mobilfunknetz-, W-CDMA- (Wideband Code Division Multiple Access) und IMT-2000-Systeme, verwendet. Der Turbo-Codierer umfasst einen Interleaver, der eine Codewortabstandseigenschaft verbessert, indem er die in den Turbo-Codierer eingegebenen Daten randomisiert. Die Leistung des Turbo-Codierers hängt hauptsächlich von dem Interleaver ab.
  • 1 illustriert einen Aufbau eines herkömmlichen Turbo-Codierers, der allgemein mit der Referenznummer 106 bezeichnet ist. Der Turbo-Codierer 106 umfasst, wie dargestellt, eine erste Codierer-Komponente 102 zum Codieren von Eingangs-Rahmendaten dK in Ausgangs-Rahmendaten Y1K, einen Interleaver 100 zum Verschachteln von Eingangs-Rahmendaten dK, eine zweite Codierer-Komponente 104 zum Codieren der aus dem Interleaver 100 ausgegebenen verschachtelten Daten in Ausgangs-Daten Y2K. Als Ergebnis gibt der Turbo-Codierer 106 die Daten XK, die den nicht-codierten Eingangs-Rahmendaten dK entsprechen, die codierten Daten Y1K sowie die verschachtelten codierten Daten Y2K aus. Der Interleaver 100 gibt Daten aus, die der Größe der Eingangs-Rahmendaten dK entsprechen, und permutiert die Datenbitsequenz, die in die zweite Codierer-Komponente 104 eingegeben wird, um die Korrelation zwischen den Datenbits zu reduzieren.
  • Im Folgenden wird eine ausführliche Beschreibung des Interleavers 100 gegeben. Der Interleaver 100 speichert die Eingangsdaten sequenziell in einem Speicher mit einer Matrixstruktur aus Reihen und Spalten, und initialisiert anschließend die in Übereinstimmung mit der Anzahl der Eingangs-Datenbits bestimmten Interleaving-Parameter. Das heißt, der Interleaver 100 legt verschiedene Parameter, wie beispielsweise den Index der Reihenanzahl der rechteckigen Matrix j und den Index der Spaltenanzahl der rechteckigen Matrix i sowie die Primzahl p und die primitive Wurzel μ für Permutation zwischen Reihen und innerhalb einer Reihe zum Verschachteln der Eingangsdaten sowie die Anzahl R der Reihen und die Anzahl C der Spalten auf Werte fest, die der Anzahl K der Eingangs-Datenbits unter Bezugnahme auf die Tabelle in dem Speicher entsprechen.
  • Wenn beispielsweise die Anzahl der Eingangs-Datenbits K = 40 ist, werden die Parameter als R = 5, C = 8, p = 7 und μ = 3 bestimmt. Der Interleaver 100 ordnet anschließend die Eingangsdaten, wie im Folgenden in der Tabelle 1 dargestellt, in einer 5 × 8-Matrix des Speichers an.
  • Tabelle 1
    Figure 00020001
  • Im Anschluss daran führt der Interleaver 100 zunächst das Interleaving an den Reihen der Eingangsdaten durch, die, wie in Tabelle 1 dargestellt, angeordnet sind. Zu diesem Zeitpunkt bestimmt der Interleaver 100 ein Muster T(j) für Permutation zwischen Reihen, um das Interleaving an den Reihen durchzuführen. Das Muster T(j) für Permutation zwischen Reihen ist eine Funktion zum Verschachteln der Eingangsdaten zwischen Reihen, und wird durch die folgende Gleichung (1) entsprechend der Anzahl K der Eingangs-Datenbits bestimmt.
  • Gleichung (1):
    • T(j) = pat4 (für 40 ≤ K ≤ 159)
    • T(j) = pat3 (für 160 ≤ K ≤ 200)
    • T(j) = pat1 (für 201 ≤ K ≤ 480)
    • T(j) = pat3 (für 481 ≤ K ≤ 530)
    • T(j) = pat1 (für 531 ≤ K ≤ 2280)
    • T(j) = pat2 (für 2281 ≤ K ≤ 2480)
    • T(j) = pat1 (für 2481 ≤ K ≤ 3160)
    • T(j) = pat2 (für 3161 ≤ K ≤ 3210)
    • T(j) = pat1 (für 3211 ≤ K ≤ 5114)
    • wobei pat1 = {19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11}
    • pat2 = {19,9,14,4,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10}
    • pat3 = {9,8,7,6,5,4,3,2,1,0} und
    • pat4 = {4,3,2,1,0}
  • Der Interleaver 100 permutiert die Reihen der Eingangsdaten durch das Kopieren einer T(j)-ten Reihe der ursprünglichen Matrix in eine j-te Reihe der neuen Matrix entsprechend dem Muster T(j) für Permutation zwischen Reihen. Das heißt, da die Anzahl der Eingangs-Datenbits K = 40 ist, wird das Muster für Permutation zwischen Reihen als T(j) = pat4 festgelegt. Die folgende Tabelle 2 stellt eine Matrix der Eingangsdaten dar, die entsprechend der ausgewählten Permutationssequenz der Permutation zwischen Reihen unterzogen wurden. Wie in Tabelle 2 dargestellt, sind die Daten der 4-ten Reihe der ursprünglichen Matrix in der 0-ten Reihe der neuen Matrix neu angeordnet; die Daten der 3-ten Reihe der ursprünglichen Matrix sind in der 1-ten Reihe der neuen Matrix neu angeordnet; die Daten der 2-ten Reihe der ursprünglichen Matrix sind in der 2-ten Reihe der neuen Matrix neu angeordnet; die Daten der 1-ten Reihe der ursprünglichen Matrix sind in der 3-ten Reihe der neuen Matrix neu angeordnet; und die Daten der 0-ten Reihe der ursprünglichen Matrix sind in der 4-ten Reihe der neuen Matrix neu angeordnet.
  • Tabelle 2
    Figure 00040001
  • Im Anschluss daran berechnet der Interleaver 100 entsprechend der folgenden Gleichung (2) sequenziell eine minimale Primzahlsequenz q(j), eine permutierte Primzahlsequenz r(j) sowie eine Basissequenz s(i) für Permutation innerhalb einer Reihe, die Permutationssequenzen für Permutation innerhalb einer Reihe sind:
  • Gleichung 2
    • g.c.d{q(j), p – 1} = 1, q(j) > 6, q(j) > q(j – 1), q = 1,2, ...,R – 1, q(0) = 1 (wobei g.c.d der größte gemeinsame Teiler ist)
    • r[T(j)] = q(j), j = 0,1, ...,R – 1
    • s(i) = [μxs(i – 1)] mod p, i = 1, 2, ..., (p – 2), s(0) = 1
  • Des Weiteren berechnet der Interleaver 100 entsprechend der folgenden Gleichung (3) ein abschließendes Muster Ui(j) für Permutation innerhalb eine Reihe für die Permutation zwischen Reihen/innerhalb einer Reihe unter Verwendung der Basissequenz s(i) für Permutation innerhalb einer Reihe.
  • Gleichung 3
    • 1. Uj(i) = s{[ixr(j)] mod (p – 1)}, i = 0,1,2, ..., p – 2, U(p – 1) = 0 (für C = p)
    • 2. Uj(i) = s{[ixr(j)] mod (p – 1)}, i = 0,1,2, ..., p – 2, U(p – 1) = 0, U(p) = p (für C = p + 1). Wenn K = C × R, wird UR–1(p) nach der Permutation innerhalb einer Reihe durch UR–1(0) ersetzt.
    • 3. Uj(i) = s{[ixr(j)] mod (p – 1)} – 1, i = 0,1,2, ..., p – 2, (für C = p)
  • Das heißt, die Werte Uj(i) des abschließenden Musters für Permutation innerhalb einer Reihe werden für die jeweiligen Spalten entsprechend der folgenden Gleichung (4) berechnet.
  • 1G TS 25.212 V3.3.0 (2000-06) ist eine technische Spezifikation des 3GPPs (Third Generation Partnership Project), die die Eigenschaften der Layer 1-Multiplexing- und Kanalcodierung in dem FDD-Modus von UTRA beschreibt.
  • TSG R1#4(99)513 präsentiert eine Implementierungsanalyse des Prime Interleavers für 3GPP.
  • In Übereinstimmung mit einem weiteren Aspekt der vorliegenden Erfindung wird ein Interleaver für einen Turbo-Codierer in einem UMTS-System bereitgestellt. Der Interleaver umfasst ein Register zum Aktualisieren und Registrieren einer Vielzahl von Parametern zum Einstellen eines Funktionszustandes des Interleavers; eine Steuereinrichtung zum Erzeugen eines Steuersignals zum Steuern einer Funktion des Systems durch das Empfangen des Funktionszustandes von dem Register; eine Adressen-Berechnungseinrichtung zum Erzeugen einer abschließend verschachtelten Adresse unter Verwendung eines Musters T(j) für Permutation zwischen Reihen, eines Schrittanordnungswertes incr(j) eines Musters für Permutation innerhalb einer Reihe und einer Basissequenz s(i) für Permutation innerhalb einer Reihe, die von dem Register entsprechend dem durch die Steuereinrichtung erzeugten Steuersignal bereitgestellt werden; sowie eine Datenspeichervorrichtung zum sequenziellen Speichern von in den Turbo-Codierer eingegebenen Daten und Ausgeben von Daten, die der durch die Adressen-Berechnungseinrichtung erzeugten Adresse entsprechen.
  • Die Adressen-Berechnungseinrichtung umfasst vorzugsweise eine Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe zum Berechnen einer Datensequenz des Musters für Permutation innerhalb einer Reihe unter Verwendung des Schrittanordnungswertes incr(j) des Musters für Permutation innerhalb einer Reihe entsprechend dem von der Steuereinrichtung erzeugten Signal; eine Speicheranordnungsvorrichtung für das Muster für Permutation innerhalb einer Reihe, die Zwischendaten speichert, während die Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe das Muster für Permutation innerhalb einer Reihe berechnet; sowie einen Abschluss-Adressgenerator, der eine Adresse abschließend verschachtelter Daten unter Verwendung des Musters für Permutation zwischen Reihen aus dem Register und der Basissequenz für Permutation innerhalb einer Reihe berechnet, die dem durch die Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe erzeugten Wert des Musters für Permutation innerhalb einer Reihe entspricht.
  • Das Register aktualisiert und registriert vorzugsweise Parameter, die verwendet werden, um ein Muster für Permutation zwischen Reihen/innerhalb einer Reihe der zu verschachtelnden Eingangsdaten zu berechnen, und stellt die Parameter der Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe bereit, um ein Muster für Permutation innerhalb einer Reihe zum Erzeugen eines verschachtelten abschließenden Musters für Permutation innerhalb einer Reihe zu erzeugen.
  • Das Register aktualisiert und registriert vorzugsweise einen Parameter K, der eine Anzahl von Eingangs-Datenbits anzeigt, einen Parameter μ, der eine primitive Wurzel anzeigt, einen Parameter p, der eine Primzahl anzeigt, einen Parameter R, der eine Anzahl von Reihen der Eingangsdaten anzeigt, einen Parameter C, der eine Anzahl von Spalten der Eingangsdaten anzeigt und einen Parameter TypD, der ein Ausnahme-Verarbeitungs-Anforderungssignal anzeigt. Diese Parameter werden verwendet, um das Muster T(j) für Permutation zwischen Reihen, den Schrittanordnungswert incr(j) des Musters für Permutation innerhalb einer Reihe sowie die Basissequenz s(i) für Permutation innerhalb einer Reihe zu berechnen.
  • Die Einrichtung zum Erzeugen des Musters für Permutation vereinfacht eine Funktion unter Verwendung eines Musters TI(j) für inverse Permutation zwischen Reihen, das bestimmt wird, indem das Muster T(j) für Permutation zwischen Reihen invertiert wird, um eine permutierte Primzahlsequenz r(j) in einem Prozess zum Berechnen eines abschließenden Musters Uj(i) für Permutation innerhalb einer Reihe zu berechnen.
  • Die Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe umfasst vorzugsweise einen ersten Addierer zum Addieren eines vorangehenden Schrittwertes für Permutation innerhalb einer Reihe, der aus einem Speicher für Muster für Permutation innerhalb einer Reihe ausgelesen wird, zu dem Schrittanordnungswert incr(j) des Musters für Permutation innerhalb einer Reihe, um so einen ersten addierten Wert auszugeben; einen zweiten Addierer zum Addieren des ersten addierten Wertes, der aus dem ersten Addierer ausgegeben wird, zu einer Primzahl – (p – 1), um so einen zweiten addierten Wert auszugeben; einen ersten Multiplexer zum selektiven Ausgeben des ersten oder des zweiten addierten Wertes aus dem ersten oder dem zweiten Addierer; einen Vorzeichen-Detektor, der mit dem zweiten Addierer und dem ersten Multiplexer verbunden ist, um dem ersten Multiplexer ein Auswähl-Steuersignal bereitzustellen, so dass der erste Multiplexer den zweiten addierten Wert als eine Adresse der Basissequenz s(i) für Permutation innerhalb einer Reihe ausgibt, wenn der zweite addierte Wert einen positiven Wert hat, und den ersten addierten Wert als eine Adresse der Basissequenz für Permutation innerhalb einer Reihe ausgibt, wenn der zweite addierte Wert einen negativen Wert hat; einen zweiten Multiplexer zum Ausgeben eines vorgegebenen Anfangswertes während einer Anfangsfunktion der Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe und zum anschließenden Bereitstellen des Ausgangs für den ersten Multiplexer als eine Leseadresse der Speicheranordnungsvorrichtung für das Muster für Permutation innerhalb einer Reihe für das folgende Muster für Permutation innerhalb einer Reihe.
  • Der Schrittanordnungswert incr(j) wird vorzugsweise in Übereinstimmung mit einer folgenden Gleichung berechnet: incr(j) = r{TI(j)} mod (p – 1)wobei
  • incr(j):
    der Schritt,
    TI(j):
    das Muster für inverse Permutation zwischen Reihen,
    p:
    die Primzahl, und
    r(j):
    die permutierte Primzahlsequenz ist.
  • Eine Speicheranordnungsvorrichtung für das Muster für Permutation innerhalb einer Reihe speichert vorzugsweise sequenziell eine Leseadresse einer Spalte, die von dem zweiten Multiplexer ausgegeben wird, und führt eine zuvor gespeicherte Leseadresse zu dem ersten Addierer zurück.
  • Die voranstehende Aufgabe sowie die voranstehenden Leistungsmerkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden ausführlichen Beschreibung in Zusammenhang mit den angehängten Zeichnungen offensichtlicher, wobei:
  • 1 ein Blockdiagramm ist, das einen Turbo-Codierer in Übereinstimmung mit dem Stand der Technik darstellt.
  • 2 ist ein Blockdiagramm, das einen Interleaver für einen Turbo-Codierer in Übereinstimmung mit einem Ausführungsbeispiel der vorliegenden Erfindung darstellt, und
  • 3 ist ein ausführliches Blockdiagramm, das eine Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe aus 2 darstellt.
  • Im Folgenden wird ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung in Bezug auf die angehängten Zeichnungen beschrieben. In der folgenden Beschreibung werden bekannte Funktionen oder Konstruktionen nicht ausführlich beschrieben, da diese die Erfindung durch unnötige Einzelheiten unverständlich machen würden.
  • 2 illustriert einen Aufbau eines Interleavers für einen Turbo-Codierer in Übereinstimmung mit einem Ausführungsbeispiel der vorliegenden Erfindung. In Bezug auf 2 werden die Anzahl K der Eingangs-Datenbits, sowie die Parameter R, C, p, μ und TypD, die in Abhängigkeit von der Anzahl K der Eingangs-Datenbits bestimmt werden, in einem Register 200 gespeichert. Der Parameter TypD wird auf ‚1' festgelegt, wenn C = p + 1 und K = C·R.
  • Des Weiteren werden ein Muster T(j) für Permutation zwischen Reihen, eine Basissequenz s(i) für Permutation innerhalb einer Reihe und ein Schrittanordnungswert incr(j) eines Musters für Permutation innerhalb einer Reihe in einem Speicher des Registers 200 gespeichert. Das Muster T(j) für Permutation zwischen Reihen, die Basissequenz s(i) für Permutation innerhalb einer Reihe und der Schrittanordnungswert incr(j) eines Musters für Permutation innerhalb einer Reihe werden mit i- und j-Werten von einer Steuereinrichtung (nicht dargestellt) bereitgestellt, und die entsprechenden Werte werden einer Adressen-Berechnungseinrichtung 202 bereitgestellt. Das Muster T(j) für Permutation zwischen Reihen wird durch die Gleichung (1) bestimmt, die Basissequenz s(i) für Permutation innerhalb einer Reihe wird durch die Gleichung (2) bestimmt, der Schrittanordnungswert incr(j) eines Musters für Permutation innerhalb einer Reihe wird durch die folgende Gleichung (5) bestimmt.
  • Gleichung (5)
    • incr(j) = r(j) mod (p – 1), j = 0,1, ...,R – 1
  • In einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Muster TI(j) für inverse Permutation zwischen Reihen, das bestimmt wird, indem das Muster T(j) für Permutation zwischen Reihen invertiert wird, eher als das Muster T(j) für Permutation zwischen Reihen in dem Prozess des Berechnens einer permutierten Primzahlsequenz r(j) verwendet, die in Gleichung (5) verwendet wird. Auf diese Weise ist es möglich, die Funktionen zu reduzieren, die erforderlich sind, um die permutierte Primzahlsequenz r(j), wie in der folgenden Gleichung (6) dargestellt, zu berechnen.
  • Gleichung (6)
    • r(j) = q[TI(j)], j = 0,1, ...,R – 1
  • In diesem Fall entspricht die minimale Primzahlsequenz q(j) derjenigen aus Gleichung (2), und das Muster TI(j) für inverse Permutation zwischen Reihen wird durch die folgende Gleichung (7) bestimmt.
  • Gleichung (7)
    • TI(j) = pat8 (für 40 ≤ K ≤ 159)
    • TI(j) = pat7 (für 160 ≤ K ≤ 200)
    • TI(j) = pat5 (für 201 ≤ K ≤ 480)
    • TI(j) = pat7 (für 481 ≤ K ≤ 530)
    • TI(j) = pat5 (für 531 ≤ K ≤ 2280)
    • TI(j) = pat6 (für 2281 ≤ K ≤ 2480)
    • TI(j) = pat5 (für 2481 ≤ K ≤ 3160)
    • TI(j) = pat6 (für 3161 ≤ K ≤ 3210)
    • TI(j) = pat5 (für 3211 ≤ K ≤ 5114)
    • wobei pat5 = {4,15,5,14,3,6,17,7,11,1,10,19,8,12,2,18,16,13,9,0},
    • pat6 = {4,15,5,14,3,6,16,7,18,1,19,17,8,11,2,13,10,12,9,0},
    • pat7 = {9,8,7,6,5,4,3,2,1,0}, und
    • pat8 = {4,3,2,1,0}.
  • Nach dem Abschluss des Einstellens des Registers 200 erzeugt die Steuereinrichtung in einer Hardwarevorrichtung sequenziell die Gegenwerte i und j zum Steuern der Adressen-Berechnungseinrichtung 202. In diesem Fall beginnen beide Gegenwerte i und j von ‚0', und der Gegenwert i wird um 1 erhöht, wenn der Gegenwert j einen Wert ‚R – 1' erreicht, indem eine Erhöhung jeweils um eins durchgeführt wird. Die Steuereinrichtung wiederholt dieselbe Operation, bis die Gegenwerte i und j ‚C – 1' beziehungsweise ‚R – 1' erreichen.
  • Wenn in der Zwischenzeit ein Muster ai(j) für Permutation innerhalb einer Reihe als die Darstellung [ixr(j)] mod (p – 1) definiert wird, die als Indizes der Basissequenz s(i) für Permutation innerhalb eine Reihe in Gleichung (3) verwendet wird, kann das abschließende Muster Uj(i) für Permutation innerhalb einer Reihe durch die Gleichung (8) repräsentiert werden.
  • Gleichung (8)
    • ai(j) = [ixr(j)] mod (p – 1)
    • Deshalb ist Uj(i) = s[ai(j)], j = 0,1,2, ... R – 1, i = 0,1,2, ..., p – 2.
  • Die vorliegende Erfindung nutzte die Tatsache, dass ein Muster ai(j) für Permutation innerhalb einer Reihe jeder in Gleichung (8) definierten Reihe durch einen Restwert repräsentiert wird, der durch das Dividieren des vorangehenden Wertes ai–1(j) des Musters für Permutation innerhalb einer Reihe durch (p – 1) bestimmt wird. Wenn die Reihenanzahl j festgelegt ist und der Wert i jeweils um Eins beginnend von dem Anfangswert ‚0' erhöht wird, kann das Muster ai(j) für Permutation innerhalb einer Reihe für die j-te Reihe mit der Gleichung (9) berechnet werden, anstatt die Darstellung in Gleichung (8) zu verwenden. Durch das Bestimmen des Schrittanordnungswertes incr(j) des Musters für Permutation innerhalb einer Reihe im Voraus wird das Muster ai(j) für Permutation innerhalb einer Reihe während der tatsächlichen Operation der Hardwarevorrichtung erzeugt, indem lediglich die Addition oder die Modulo-Operationen eher als das Durchführen der Multiplikation durchgeführt werden, und zwar unter Verwendung des Schrittwertes des Musters für Permutation innerhalb einer Reihe, der jeder Reihe entspricht. Dies wird in der folgenden Gleichung (9) dargestellt.
  • Gleichung (9)
    • ai(j) = [ai–1(j) + incr(j)] mod (p – 1)
    • wobei j = 0,1,2, ..., R – 1, i = 1,2, ..., p – 2, a0(j) = 0.
  • Das heißt, das Muster ai(j) für Permutation innerhalb einer Reihe für jedes j kann von einem vorangehenden Muster ai–1(j) für Permutation innerhalb einer Reihe berechnet werden. Da des Weiteren i während des Interleaving-Prozesses nicht verringert wird, ist es nicht erforderlich, den vorangehenden Wert nach dem Berechnen des derzeitigen Wertes zu speichern. Basierend auf dieser Berechnungsmethode speichert eine Einrichtung 204 zum Erzeugen eines Musters [a(j)] für Permutation innerhalb einer Reihe den abschließenden Wert ai(j) für jedes j in einer Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe, immer dann, wenn sie ein Muster ai–1(j) für jedes i und j erzeugt.
  • Während einer Operation der Hardwarevorrichtung erzeugt die Einrichtung 204 zum Erzeugen eines Musters für Permutation innerhalb einer Reihe ein Muster für Permutation innerhalb einer Reihe für jedes von der Steuereinrichtung bereitgestellte i und j. Da es erforderlich ist, die Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe zu initialisieren, wenn i = 0 ist, gibt die Einrichtung 204 zum Erzeugen eines Musters für Permutation innerhalb einer Reihe ‚0' als ein Muster ai(j) für Permutation innerhalb einer Reihe aus und speichert den Anfangswert in der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe. Wenn 0 < i ≤ (p – 2) ist, liest die Einrichtung 204 zum Erzeugen eines Musters für Permutation innerhalb einer Reihe ein j-tes Datenbit aus dem Muster a(j) für Permutation innerhalb einer Reihe aus, addiert es zu einem Schrittwert, der aus dem Schrittanordnungswert incr(j) des Musters für Permutation innerhalb einer Reihe ausgelesen wird, und erzeugt anschließend durch das Durchführen einer Modulo-Operation ein neues Muster für Permutation innerhalb einer Reihe. Das neu erzeugte Muster für Permutation innerhalb einer Reihe wird an einer j-ten Adresse der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe zum Erzeugen des folgenden Musters für Permutation innerhalb einer Reihe gespeichert.
  • Das Muster für Permutation innerhalb einer Reihe ai(j), das durch die Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204 erzeugt wurde, wird einer Speichervorrichtung 208 für die Basissequenz für Permutation innerhalb einer Reihe [s(i)] in dem Register 200 als eine Leseadresse bereitgestellt, und ein Ausgang s[a(j)] der Speichervorrichtung 208 wird einem Abschluss-Adressgenerator 207 bereitgestellt.
  • Der Abschluss-Adressgenerator 207 berechnet zunächst ein abschließendes Muster für Permutation innerhalb einer Reihe Uj(i) durch Verwenden des entsprechenden Wertes [a(j)] der Basissequenz für Permutation innerhalb einer Reihe in Übereinstimmung mit den i- und j-Werten, die von der Steuereinrichtung bereitgestellt werden und berechnet anschließend eine abschließend verschachtelte Adresse xaddr unter Verwendung des berechneten Wertes und des Musters für Permutation zwischen Reihen T(j), das von dem Register 200 bereitgestellt wird. Darüber hinaus führt der Abschluss-Adressgenerator 207 eine Ausnahme-Verarbeitung für den TypD = 1 durch. Der Berechnungsprozess des Abschluss-Adressgenerators 207 wird in den untenstehenden Gleichungen (10) und (11) dargestellt.
  • Gleichung (10)
    • Uj(i) = s[a(j)] (für 0 ≤ i ≤ p – 2)
    • Uj(i) = 0 (für I = p – 1)
    • Uj(i) = p (für I = p)
    • wobei i = 0,1,2, ..., C – 1, j = 0,1,2, ...,R – 1
  • Für den Typ D = 1 wird jedoch die folgende Ausnahme-Verarbeitung durchgeführt.
    • Uj(i) = p (für I = 0 und j = R – 1)
    • Uj(i) = 1 (für I = p und j = R – 1)
  • Gleichung (11)
    • xaddr = C·T(j) + Uj(i)
  • Eine Datenspeichervorrichtung 214 liest Daten entsprechend der abschließend verschachtelten Adresse xaddr, die durch den Abschluss-Adressgenerator 207 erzeugt wurde, und gibt die gelesenen Daten aus.
  • 3 illustriert eine ausführliche Struktur der Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204. Wenn der Parameter i für das Muster für Permutation innerhalb einer Reihe a(j) „0" ist (das heißt i = 0), wählt ein zweiter Multiplexer 402 „0" als einen Anfangswert des Musters für Permutation innerhalb einer Reihe a(j), und der ausgewählte Wert wird als eine Adresse der Basissequenz für Permutation innerhalb einer Reihe s(i) in dem Register 200 bereitgestellt und zur gleichen Zeit einer j-ten Adresse der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe gespeichert.
  • Wenn der Parameter i nicht „0" ist (das heißt, i ≠ 0), werden die Daten entsprechend der j-ten Adresse der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe als ein vorangehender Parameterdatenwert, der den vorangehend gespeicherten Muster für Permutation innerhalb einer Reihe ai – 1(j) entspricht, zu einem ersten Addierer 400 zurückgeführt. Ein Wert der an der j-ten Adresse des Schrittanordnungswertes des Musters für Permutation innerhalb einer Reihe incr(j) gespeichert wird, wird von dem Register 200 einem anderen Eingangsende des ersten Addieres 400 bereitgestellt. Auf diese Weise addiert der erste Addierer das vorangehende Muster für Permutation innerhalb einer Reihe a(j) zu dem Schrittwert incr(j), und ein erster addierter Wert, der von dem ersten Addierer 400 ausgegeben wird, wird einem zweiten Addierer 404 bereitgestellt, der den ersten addierten Wert zu einer Primzahl [ – (p – 1)], wie in Gleichung (5) dargestellt, addiert.
  • Der addierte Wert wird gleichsam einem ersten Multiplexer 408 und einem Vorzeichen-Detektor 406 bereitgestellt. Das heißt, der zweite Addierer 404 gibt einen Restwert [{a(j) + incr(j)} – (p – 1)], der durch Dividieren des ersten addiertes Wertes [a(j) + incr(j)] durch die Primzahl (p – 1) bestimmt wird, aus. Dies wird deshalb getan, da, wie in Gleichung (9) dargestellt, wenn die Summe des vorhergehenden Musters für Permutation innerhalb einer Reihe a(j) und dem Schrittwert incr(j) größer als die Primzahl (p – 1) ist, wird ein Wert, der durch Subtrahieren von (p – 1) von dem ersten addierten Wert bestimmt wird, ein Äquivalent des Restwertes in dem Prozess des Durchführens einer Modulo-Operation unter Verwendung der Primzahl (p – 1).
  • Ein zweiter addierter Wert [{a(j) + incr(j)} – (p – 1)], der von dem zweiten Addierer 404 ausgegeben wird, wird gleichsam dem MSB- (Most Significant Bit – Höchstwertiges Bit) Vorzeichen-Detektor 406 und dem ersten Multiplexer 408 bereitgestellt. Anschließend erfasst der Vorzeichen-Detektor 406 nur das MSB-Bit des zweiten addierten Wertes, der von dem zweiten Addierer ausgegeben wird, und stellt das erfasste MSB-Bit dem ersten Multiplexer 408 als ein Auswähl-Steuersignal bereit. Der erste Multiplexer 408 gibt den ersten addierten Wert a(j) + incr(j), der von dem ersten Addierer 400 ausgegeben wird und den zweiten addierten Wert [{a(j) + incr(j)} – (p – 1)], der von dem zweiten Addierer 404 ausgegeben wird, selektiv entsprechend dem Auswähl-Steuersignal, das von dem Vorzeichen-Detektor 406 ausgegeben wird, aus.
  • Wenn ein durch den Vorzeichen-Detektor 406 erfasstes Vorzeichen „0" ist, bedeutet das, dass der erste addierte Wert gleich oder größer als (p – 1) ist, so dass (p – 1) von dem ersten addierten Wert subtrahiert werden sollte, um einen Ergebniswert der Modulo-Operation zu erhalten. Wenn anderenfalls das Vorzeichen „1" ist, bedeutet das, dass der erste addierte Wert kleiner als (p – 1) ist, so dass der erste addierte Wert einem Ergebniswert der Modulo-Operation entsprechen wird. Dementsprechend wählt der zweite Multiplexer 402 ein korrektes Modulo-Operations-Ergebnis für den ersten addierten Wert und den zweiten addierten Wert aus, die von dem ersten Multiplexer 408 nach dem Anfangswert i = 0 ausgegeben werden; stellt den ausgewählten Wert als eine Adresse der Basissequenz der Permutation innerhalb einer Reihe s(i) in dem Register 200 bereit; und speichert gleichzeitig den ausgewählten Wert an der j-ten Adresse der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe.
  • Es folgt eine Beschreibung einer Operation in der Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204 in Bezug auf Gleichung (4), die zum Berechnen des abschließenden Musters für Permutation innerhalb einer Reihe Ui(i) der Eingangsdaten verwendet wird. Wenn j = 0 und i = 0 sind, wird ein Anfangsadressenwert, das heißt, das Muster für Permutation innerhalb einer Reihe a(j) für die Basissequenz für Permutation innerhalb einer Reihe s(i) auf „0" eingestellt. Anschließend wird der Ausgangswert „0" des Musters für Permutation innerhalb einer Reihe a(j) in der Spei cheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe gespeichert und gleichzeitig als eine Adresse der Basissequenz für Permutation innerhalb einer Reihe s(i) bereitgestellt.
  • Das heißt, wenn i für denselben j-Wert (= '0') um Eins erhöht wird, wird der Wert „0" des vorhergehenden Musters für Permutation innerhalb einer Reihe, der in der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe gespeichert ist, dem ersten Addierer 400 bereitgestellt, der das vorhergehende Muster für Permutation innerhalb einer Reihe „0" zu einem Schrittwert incr(j) „5" addiert. Als Ergebnis wird der erste addierte Wert „5" gleichsam einem Eingangsende des ersten Multiplexers 408 und dem zweiten Addierer 404 bereitgestellt.
  • Anschließend addiert der zweite Addierer 404 den ersten addierten Wert „5" zu der Primzahl – (p – 1) „–6" und gibt einen Wert „–1" zu dem Vorzeichen-Detektor 406 aus. Da der zweite addierte Wert einen negativen Wert hat, erzeugt der Vorzeichen-Detektor 406 ein Auswähl-Steuersignal „1 ", so dass der erste Multiplexer 408 den ersten addierten Wert, der von dem ersten Addierer 400 ausgegeben wird, auswählen sollte. Dementsprechend gibt der erste Multiplexer 408 den ersten addierten Wert „5" aus, und dieser Wert wird über den zweiten Multiplexer 402 als das nächste Muster für Permutation innerhalb einer Reihe a(j) ausgewählt und anschließend in der Speicheranordnungsvorrichtung 206 für das Muster für Permutation innerhalb einer Reihe gespeichert. Das heißt, in diesem Verfahren wird der Adressenwert i der Basissequenz für Permutation innerhalb einer Reihe s(i) ohne Verwendung der komplizierten Gleichung(2) berechnet, wodurch ein Beitrag zu der einfachen Schaltkreisstruktur geleistet wird.
  • Das Register 200 speichert den Parameter μ, der eine primitive Wurzel anzeigt; den Parameter K, der die Anzahl von Eingangs-Datenbits anzeigt; den Parameter R, der die Anzahl der Reihen der Eingangsdaten anzeigt; den Parameter C, der die Anzahl der Spalten der Eingangsdaten anzeigt; den Parameter p, der ein Primzahl anzeigt; und den Parameter TypD, der ein Ausnahme-Verarbeitungs-Anforderungssignal anzeigt, ebenso wie den Schrittwert incr(j) entsprechend der durch die Steuereinrichtung bereitgestellten Anzahl der Eingangs-Datenbits K. Darüber hinaus speichert das Register 200 vorhergehend das Muster für Permutation zwischen Reihen T(j) der Eingangsdaten, das entsprechend der Anzahl der Eingangs-Datenbits K bestimmt wird.
  • Es folgt eine Beschreibung einer Operation des Abschluss-Adressgenerators 207 unter Verwendung der Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204, der Basissequenz für Permutation innerhalb einer Reihe s(i) und der Speichervorrichtung 212 für das Muster für Permutation zwischen Reihen [T(j)]. Das Muster für Permutation innerhalb einer Reihe, das von der Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204 ausgegeben wird, wird als eine Leseadresse der Speichervorrichtung 208 für die Basissequenz für Permutation innerhalb einer Reihe in dem Register 200 bereitgestellt. Dementsprechend stellt die Speichervorrichtung 208 für die Basissequenz für Permutation innerhalb einer Reihe dem Abschluss-Adressgenerator 207 den Wert s[a(j)], der durch die von der Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe 204 bereitgestellten Leseadresse bestimmt wird, bereit.
  • Da der Adressenwert in der Speichervorrichtung 208 für die Basissequenz für Permutation innerhalb einer Reihe, der durch die Leseadresse bestimmt wird, mit dem abschließenden Wert des Musters für Permutation innerhalb einer Reihe Uj(i) der Eingangsdaten übereinstimmt, empfängt der Abschluss-Adressgenerator 207 den Wert s[a(j)], der von der Basissequenz für Permutation innerhalb einer Reihe s(i) gelesen wird und den Wert für das Muster für Permutation zwischen Reihen, das von der Speichervorrichtung für Muster für Permutation zwischen Reihen 212 gelesen wird, und stellt die empfangenen Werte der Datenspeichervorrichtung 214 als eine Leseadresse für das Lesen der verschachtelten Ausgangsdaten bereit. Als Ergebnis werden die in dem Leseadressenbereich in der Datenspeichervorrichtung 214 gespeicherten Eingangsdaten gelesen und als verschachtelte Ausgangsdaten ausgegeben.
  • Zusammenfassend speichert die vorliegende Erfindung die Eingangsdaten, die während der Permutation innerhalb einer Reihe oder der Permutation zwischen Reihen der Eingangsdaten neu angeordnet werden, nicht noch einmal in einer separaten Speichervorrichtung. Stattdessen verwendet das Ausführungsbeispiel der vorliegenden Erfindung eine abschließende innerhalb einer Reihe oder zwischen Reihen permutierte Leseadresse von der Datenspeichervorrichtung, in der Daten sequenziell gespeichert werden, und gibt die Daten entsprechend der Leseadresse aus, wodurch es möglich wird, dieselbe Funktion wie beim herkömmlichen Interleaver auszuführen, der sequenziell Daten von der Speichervorrichtung liest, in der die verschachtelten Daten gesondert gespeichert sind.
  • Dementsprechend kann der Interleaver für einen Turbo-Codierer gemäß der vorliegenden Erfindung eine Verschwendung von Speicher verhindern und weist zudem eine einfache Struktur auf. Darüber hinaus kann der neuartige Interleaver eine Belastung auf dem Turbo-Codierer reduzieren.

Claims (10)

  1. Interleaver für einen Turbo-Codierer in einem UMTS-System, der ein Register (200), eine Adressen-Berechnungseinrichtung (202) und eine Datenspeichervorrichtung (214) umfasst, wobei das Register (200) zum Aktualisieren und Registrieren einer Vielzahl von Parametern zum Einstellen eines Funktionszustandes des Interleavers eingerichtet ist, und die Parameter ein Muster (T(j)) für Permutation zwischen Reihen, einen Schrittwert (incr(j)) eines Musters für Permutation innerhalb einer Reihe und eine Basissequenz (s(i)) für Permutation innerhalb einer Reihe einschließen; die Adressen-Berechnungseinrichtung (202) zum Erzeugen einer abschließend verschachtelten Adresse durch Berechnen eines Wertes (s[a(j)]) der Basissequenz (s(i)) für Permutation innerhalb einer Reihe bei Zwischenwerten (a(j)) des Musters für Permutation innerhalb einer Reihe, die rekursiv berechnet werden, indem der registrierte Schrittwert (incr(j)) des Musters für Permutation innerhalb einer Reihe zu einem vorangehenden Zwischenwert (a(j)) des Musters für Permutation innerhalb einer Reihe addiert wird und dann eine Modulo-Operation angewendet wird, und zum Addieren des berechneten Wertes der Basissequenz (s[a(j)]) für Permutation innerhalb einer Reihe zu dem registrierten Muster (T(j)) für Permutation zwischen Reihen multipliziert mit der Anzahl von Spalten (C) eingerichtet ist; und die Datenspeichervorrichtung (214) zum Speichern von in den Turbo-Codierer eingegebenen Daten und Ausgeben von Daten eingerichtet ist, die der durch die Adressen-Berechnungseinrichtung erzeugten Adresse entsprechen.
  2. Interleaver nach Anspruch 1, wobei die Adressen-Berechnungseinrichtung umfasst: eine Einrichtung (204) zum Erzeugen eines Musters für Permutation innerhalb einer Reihe, die einen Zwischenwert (a(j)) des Musters für Permutation innerhalb einer Reihe unter Verwendung des Schrittwertes (incr(j)) des Musters für Permutation innerhalb einer Reihe berechnet; eine Speicheranordnungsvorrichtung (206) für das Muster für Permutation innerhalb einer Reihe, die Zwischendaten speichert, während die Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe das Muster für Permutation innerhalb einer Reihe berechnet; und einen Abschluss-Adressgenerator (207), der eine Adresse abschließend verschachtelter Daten unter Verwendung des Musters (T(j)) für Permutation zwischen Reihen aus dem Register und der Basissequenz für Permutation innerhalb einer Reihe berechnet, die dem durch die Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe erzeugten Wert (s[a(j)]) des Musters für Permutation innerhalb einer Reihe entspricht.
  3. Interleaver nach Anspruch 1 oder 2, wobei das Register Parameter aktualisiert und registriert, die verwendet werden, um ein Muster für Permutation zwischen Reihen/innerhalb einer Reihe der zu verschachtelnden Eingangsdaten berechnet und die Parameter einer Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe der Adressen-Berechnungseinrichtung bereitstellt, um ein Muster für Permutation innerhalb einer Reihe zum Erzeugen eines verschachtelten abschließenden Musters für Permutation innerhalb einer Reihe zu erzeugen.
  4. Interleaver nach einem der Ansprüche 1–3, wobei das Register einen ersten Parameter, der eine Anzahl von Eingangs-Datenbits anzeigt, einen zweiten Parameter, der eine primitive Wurzel anzeigt, einen dritten Parameter, der eine Primzahl anzeigt, einen vierten Parameter, der eine Anzahl von Reihen der Eingangsdaten anzeigt, einen fünften Parameter, der eine Anzahl von Spalten der Eingangsdaten anzeigt, und einen sechsten Parameter aktualisiert und registriert, der ein Ausnahme-Verarbeitungs-Anforderungssignal anzeigt, wobei die Parameter verwendet werden, um das Muster für Permutation innerhalb einer Reihe, den Schrittwert des Musters für Permutation innerhalb einer Reihe und die Basissequenz für Permutation innerhalb einer Reihe zu berechnen.
  5. Interleaver nach einem der Ansprüche 2–4, wobei die Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe ein Muster für inverse Permutation zwischen Reihen verwendet, das bestimmt wird, indem das Muster für Per mutation zwischen Reihen invertiert wird, um eine permutierte Primzahlsequenz zum Berechnen eines Musters für abschließende Permutation innerhalb einer Reihe zu berechnen.
  6. Interleaver nach einem der Ansprüche 2–5, wobei die Einrichtung zum Erzeugen eines Musters für Permutation innerhalb einer Reihe umfasst: einen ersten Addierer (400) zum Addieren eines vorangehenden Schrittwertes für Permutation innerhalb einer Reihe, der aus einem Speicher für Muster für Permutation innerhalb einer Reihe des Registers ausgelesen wird, zu dem Schrittwert des Musters für Permutation innerhalb einer Reihe addiert, um so einen ersten addierten Wert auszugeben; einen zweiten Addierer (404) zum Addieren des ersten addierten Wertes zu einer Primzahl, um so einen zweiten addierten Wert auszugeben; einen ersten Multiplexer (408) zum selektiven Ausgeben des ersten oder des zweiten addierten Wertes; einen Vorzeichen-Detektor (406), der mit dem zweiten Addierer und dem ersten Multiplexer verbunden ist, um dem ersten Multiplexer ein Auswähl-Steuersignal bereitzustellen, so dass der Multiplexer den zweiten addierten Wert als eine Adresse der Basissequenz für Permutation innerhalb einer Reihe ausgibt, wenn der zweite addierte Wert einen positiven Wert hat, und den ersten addierten Wert als eine Adresse der Basissequenz für Permutation innerhalb einer Reihe ausgibt, wenn der zweite addierte Wert einen negativen Wert hat; und einen zweiten Multiplexer (402) zum Ausgeben eines vorgegebenen Anfangswertes während einer Anfangsfunktion der Einrichtung zum Erzeugen des Musters für Permutation innerhalb einer Reihe und zum anschließenden Bereitstellen des Ausgangs für den ersten Multiplexer als eine Leseadresse der Speicheranordnungsvorrichtung für das Muster für Permutation innerhalb einer Reihe für ein folgendes Muster für Permutation innerhalb einer Reihe.
  7. Interleaver nach einem der Ansprüche 1–6, wobei der Schrittwert gemäß incr(j) = r{TI(j)} mod (p – 1)berechnet wird, wobei incr(j) der Schritt ist, TI(j) das Muster für inverse Permutation innerhalb einer Reihe ist, p die Primzahl ist und r(j) die permutierte Primzahl-Sequenz ist.
  8. Interleaver nach Anspruch 6 oder 7, wobei die Speicheranordnungsvorrichtung für das Muster für Permutation innerhalb einer Reihe sequenziell eine Leseadresse einer Spalte, die von dem zweiten Multiplexer ausgegeben wird, speichert und eine zuvor gespeicherte Leseadresse zu dem ersten Addierer zurückführt.
  9. Verfahren zum Durchführen von Interleaving in einem Turbo-Codierer in einem UMTS-System, das die folgenden Schritte umfasst: Aktualisieren und Registrieren einer Vielzahl von Parametern zum Einstellen eines Funktionszustandes des Interleavers, wobei die Parameter ein Muster (T(j)) für Permutation zwischen Reihen, einen Schrittwert (incr(j)) eines Musters für Permutation innerhalb einer Reihe und eine Basissequenz (s(j)) für Permutation innerhalb einer Reihe einschließen; Erzeugen einer abschließend verschachtelten Adresse durch Berechnen eines Wertes (s[a(j)]) der Basissequenz (s(i)) für Permutation innerhalb einer Reihe bei Zwischenwerten (a(j)) des Musters für Permutation innerhalb einer Reihe, die rekursiv berechnet werden, indem der registrierte Schrittwert (incr(j)) des Musters für Permutation innerhalb einer Reihe zu einem vorangehenden Zwischenwert (a(j)) des Musters für Permutation innerhalb einer Reihe addiert wird und dann eine Modulo-Operation angewendet wird, und Addieren des berechneten Wertes (s[a(j)]) der Basissequenz für Permutation innerhalb einer Reihe zu dem registrierten Muster (T(j)) für Permutation zwischen Reihen multipliziert mit der Anzahl von Spalten (C); und Speichern von in den Turbo-Codierer eingegebenen Daten, und Ausgeben von Daten, die der erzeugten Adresse entsprechen.
  10. Verfahren nach Anspruch 9, das des Weiteren die folgenden Schritte umfasst: sequenzielles Ausgeben von Daten, die der abschließend verschachtelten Adresse entsprechen und so Verschachteln der eingegebenen Daten.
DE60124488T 2000-09-29 2001-09-05 Verschachteler und Verschachtelungsverfahren für einen UMTS Turboenkoder Expired - Lifetime DE60124488T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2000-0057330A KR100393608B1 (ko) 2000-09-29 2000-09-29 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법
KR2000057330 2000-09-29

Publications (2)

Publication Number Publication Date
DE60124488D1 DE60124488D1 (de) 2006-12-28
DE60124488T2 true DE60124488T2 (de) 2007-03-01

Family

ID=19691073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60124488T Expired - Lifetime DE60124488T2 (de) 2000-09-29 2001-09-05 Verschachteler und Verschachtelungsverfahren für einen UMTS Turboenkoder

Country Status (5)

Country Link
US (1) US7155642B2 (de)
EP (1) EP1195910B1 (de)
JP (1) JP3636684B2 (de)
KR (1) KR100393608B1 (de)
DE (1) DE60124488T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100574116C (zh) * 1999-05-19 2009-12-23 三星电子株式会社 涡式交织装置及方法
JP3624874B2 (ja) 2001-11-19 2005-03-02 日本電気株式会社 インターリービング順序発生器、インターリーバ、ターボエンコーダ、及びターボデコーダ
US7091889B2 (en) 2002-09-09 2006-08-15 Telefonaktiebolaget Lm Ericsson (Publ) Speed and memory optimized interleaving
EP1576735B1 (de) * 2002-12-16 2016-04-06 Telecom Italia S.p.A. Adressberechnung für interleaver in turbo encodern und decodern
GB2400776A (en) * 2003-04-14 2004-10-20 Modem Art Ltd method of using an algebraic interleaver for turbo encoding/decoding
JP4265345B2 (ja) * 2003-08-22 2009-05-20 日本電気株式会社 携帯電話機、インターリーブパラメータ演算装置、方法及びプログラム
GB2409133A (en) 2003-12-11 2005-06-15 Motorola Inc Interleaver for a turbo encoder and decoder
KR100561631B1 (ko) * 2003-12-26 2006-03-20 한국전자통신연구원 터보 인터리버의 출력 주소 산출 장치
JP4909498B2 (ja) * 2004-02-27 2012-04-04 日本電気株式会社 インターリーブパラメータ演算方法/プログラム/プログラム記録媒体/装置、携帯電話機
TWI237448B (en) * 2004-04-12 2005-08-01 Benq Corp Method for interleaving data frame and circuit thereof
JP2006031482A (ja) * 2004-07-16 2006-02-02 Toshiba Corp プロファイル管理方法及び管理システム
KR101131323B1 (ko) * 2004-11-30 2012-04-04 삼성전자주식회사 이동통신 시스템에서 채널 인터리빙 장치 및 방법
US7552377B1 (en) * 2005-02-10 2009-06-23 Xilinx, Inc. Method of and circuit for interleaving data in a data coder
US20070011557A1 (en) * 2005-07-07 2007-01-11 Highdimension Ltd. Inter-sequence permutation turbo code system and operation methods thereof
US7797615B2 (en) * 2005-07-07 2010-09-14 Acer Incorporated Utilizing variable-length inputs in an inter-sequence permutation turbo code system
US7856579B2 (en) 2006-04-28 2010-12-21 Industrial Technology Research Institute Network for permutation or de-permutation utilized by channel coding algorithm
US7512863B2 (en) * 2005-10-12 2009-03-31 Qualcomm Corporation Turbo code interleaver for low frame error rate
US8082479B2 (en) * 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US7904761B1 (en) * 2006-03-24 2011-03-08 Xilinx, Inc. Method and apparatus for a discrete power series generator
KR101435830B1 (ko) * 2007-06-20 2014-08-29 엘지전자 주식회사 인터리빙 수행 방법
JP2009077154A (ja) * 2007-09-20 2009-04-09 Mitsubishi Electric Corp ターボ符号化装置、ターボ符号化方法及び通信システム
US8219782B2 (en) * 2008-09-18 2012-07-10 Xilinx, Inc. Address generation
US10022468B2 (en) * 2009-02-02 2018-07-17 Kimberly-Clark Worldwide, Inc. Absorbent articles containing a multifunctional gel
KR101614482B1 (ko) * 2009-08-11 2016-04-21 삼성전자주식회사 터보 인터리버의 인터리빙 주소 결정 장치 및 방법
CN102412850B (zh) 2010-09-25 2014-02-05 中兴通讯股份有限公司 Turbo码并行交织器及其并行交织方法
KR20120071511A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 이동통신 시스템의 데이터 레이트 매칭 방법 및 장치
US8897443B2 (en) * 2010-12-27 2014-11-25 Cleversafe, Inc. Watermarking slices stored in a dispersed storage network
CN104617961B (zh) * 2014-12-30 2018-05-25 中山大学花都产业科技研究院 一种低硬件复杂度的交织器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3415693B2 (ja) 1993-12-23 2003-06-09 ノキア モービル フォーンズ リミテッド インターリーブプロセス
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
JP3257984B2 (ja) 1998-10-30 2002-02-18 富士通株式会社 インタリーブ方法及びデインタリーブ方法並びにインタリーブ装置及びデインタリーブ装置並びにインタリーブ/デインタリーブシステム並びにインタリーブ/デインタリーブ装置並びにインタリーブ機能付きの送信装置,デインタリーブ機能付きの受信装置及びインタリーブ/デインタリーブ機能付きの送受信装置
US6442728B1 (en) 1999-01-11 2002-08-27 Nortel Networks Limited Methods and apparatus for turbo code
CA2298919C (en) * 1999-02-19 2006-04-18 Ntt Mobile Communications Network Inc. Interleaving and turbo encoding using prime number permutations
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
US6543013B1 (en) * 1999-04-14 2003-04-01 Nortel Networks Limited Intra-row permutation for turbo code
JP2001138596A (ja) 1999-11-12 2001-05-22 Toshiba Tec Corp 伝票発行装置及び伝票

Also Published As

Publication number Publication date
JP2002190743A (ja) 2002-07-05
DE60124488D1 (de) 2006-12-28
JP3636684B2 (ja) 2005-04-06
EP1195910B1 (de) 2006-11-15
US7155642B2 (en) 2006-12-26
EP1195910A3 (de) 2004-07-21
US20020091900A1 (en) 2002-07-11
EP1195910A2 (de) 2002-04-10
KR100393608B1 (ko) 2003-08-09
KR20020025477A (ko) 2002-04-04

Similar Documents

Publication Publication Date Title
DE60124488T2 (de) Verschachteler und Verschachtelungsverfahren für einen UMTS Turboenkoder
DE60009973T2 (de) Verschachtelungsverfahren, Verschachtelungsgerät, Turbokodierungsverfahren und Turbokodierer
DE60032441T2 (de) Vorrichtung und verfahren zur turboverschaltelung
DE60028525T2 (de) Vorrichtung und verfahren zur steuerung einem demultiplexeur und demultiplexeur für ratenanpassung in einem mobilen übertragungssystem
DE60020637T2 (de) Ratenanpassung und Kanalverschachtelung für ein Kommunikationssystem
DE60034203T2 (de) Vorrichtung zur übereinstimmung der datenrate und verfahren zur datenübertragung
DE69910989T2 (de) Ver-und entschachtelungsvorrichtung und verfahren für ein kommunikationssystem
DE10325287B4 (de) Scrambler, De-Scrambler und sich darauf beziehendes Verfahren
DE69931751T2 (de) Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers
DE2916710C2 (de)
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
EP0749211A2 (de) Verfahren und Codiereinrichtung zur gesicherten Übertragung von Daten mittels Mehrkomponenten-Codierung
DE60002705T2 (de) Binnen-reihen permutationen für turbocode
DE60016561T2 (de) Blockverschachtelung für turbokodierung
DE3506440A1 (de) Digitale multiplizierschaltung
EP1252734A1 (de) Verfahren und vorrichtung zur erzeugung von ovsf-codeworten
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
DE2045970A1 (de) Anzeigevorrichtung und Anzeigever fahren
DE19708626A1 (de) Nach dem Spreizspektrumverfahren arbeitendes Funkkommunikationssystem
DE60311997T2 (de) Verfahren zur ersten Verschachtelung für einen Sender mit zwei Verschachtelern
DE19960269A1 (de) Übertragungsverfahren mit Kanalcodierung mit wirksamer und modularer Verschachtelung für Turbocodes
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
WO2003088516A1 (de) Verfahren und vorrichtung zur berechnung eines iterierten zustands einer rückgekoppelten schieberegisteranordnung
DE3702697A1 (de) Paritaetserzeugungsschaltung
DE20122022U1 (de) Vorrichtung zur flexiblen Datenratenanpassung durch Einfügen von Zeichen für ein Datenkommunikationssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition