DE60109344T2 - Hochgeschwindigkeitscodierer für Faltungscodes - Google Patents

Hochgeschwindigkeitscodierer für Faltungscodes Download PDF

Info

Publication number
DE60109344T2
DE60109344T2 DE60109344T DE60109344T DE60109344T2 DE 60109344 T2 DE60109344 T2 DE 60109344T2 DE 60109344 T DE60109344 T DE 60109344T DE 60109344 T DE60109344 T DE 60109344T DE 60109344 T2 DE60109344 T2 DE 60109344T2
Authority
DE
Germany
Prior art keywords
bit
input
shift register
sequence
bits
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
DE60109344T
Other languages
English (en)
Other versions
DE60109344D1 (de
Inventor
Kazuhiro Kyotanabe-shi Okabayashi
Minoru Suita-shi OKAMOTO
Masayuki Daito-shi Yamasaki
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60109344D1 publication Critical patent/DE60109344D1/de
Application granted granted Critical
Publication of DE60109344T2 publication Critical patent/DE60109344T2/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Die vorliegende Erfindung betrifft eine Codiervorrichtung zum Erzeugen einer Faltungscodesequenz, die hauptsächlich in der Telekommunikation verwendet wird.
  • Auf dem Gebiet der Mobilkommunikation wird oft ein Faltungscode verwendet. Der Grund ist, dass Bitfehler, die häufig während des Übertragens von Information auftreten, eine Fehlerkorrekturcodierung erfordern, nachdem die Information empfangen worden ist. Andererseits ist es für heutige mobile Telekommunikationseinheiten unverzichtbar, eine Signalverarbeitung unter Verwendung eines digitalen Signalprozessors (DSP) durchzuführen.
  • In EP-A-0 750 401 wird ein Faltungscodierer beschrieben. Ein Schieberegister speichert eine Vielzahl von Datenbits, die logischen Operationen unterliegen, um dadurch eine Faltungscodierung durchzuführen. Mehrfach angezapfte Register, die parallel zu dem Schieberegister vorhanden sind, geben Bitpositionen von Daten in dem Schieberegister an, die bei der Berechnung der jeweiligen Vielzahl von Ausgabedatenbits verwendet werden. Das Schieberegister wird mit Daten von einem Eingangs-Schieberegister oder von einem Speicherblock versorgt.
  • Ein Faltungscodebit wird erzeugt, indem Addition Modulo 2 auf einem Eingangsbit und einer Anzahl vorangehender Bits durchgeführt wird. Wenn z. B. die Anzahl vorangehender Bits K – 1 ist, ist die Einschränkungslänge K. Und wenn eine Anzahl n von Bits in Bezug auf ein einzelnes Eingangsbit erzeugt wurde, beträgt die Coderate (hierin einfach als "Rate" bezeichnet) 1/n. 2 veranschaulicht eine Konfiguration für eine bekannte Faltungscodiervorrichtung. In dem in 2 gezeigten Beispiel weist die Faltungscodiervorrichtung eine Einschränkungslänge von 4 und eine Rate von 1/2 auf.
  • Um ein Faltungscodebit zu erzeugen, sollte ein exklusive logische Summe für eine Bitsequenz gewonnen werden, die aus der Zahl K von Bits besteht, d. h. ein Eingangsbit und eine Zahl K – 1 vorangehender Bits. Um ein Programm durch einen bekannten DSP unter Verwendung normaler Anweisungen zur Ausführung zu bringen, bedarf es gewöhnlich mehrerer Verarbeitungsschritte, um ein Eingangsbit zu codieren und ein Codebit zu gewinnen.
  • In letzter Zeit hat ein Turbo-Codierschema viel Aufmerksamkeit als ein neues Codierverfahren erregt, das sich der Shannon-Grenze nähern kann. 4 ist ein Blockschaltbild, das eine Konfiguration einer Codiervorrichtung veranschaulicht, die eine Turbo-Codesequenz er zeugt. Wie in 4 gezeigt, umfasst die Vorrichtung einen Verschachteler 403 und rekursive, systematische Faltungs-(RSC)Codierer 401 und 402. Jeder der RSC-Codierer 401 und 402 kann eine Konfiguration wie z. B. die in 5 veranschaulichte aufweisen.
  • Die japanische Laid-Open Veröffentlichtlichung Nr. 11-46148 offenbart ebenfalls einen Prozessor, der Faltungs- und Turbo-Codesequenzen ausreichend schnell erzeugen kann. 8 ist ein Blockschaltbild, das einen Prozessor veranschaulicht, wie in der vorerwähnten Veröffentlichung offenbart. 9 ist ein Schaltbild, das eine detaillierte Konfiguration der in 8 gezeigten Mehreingang-Exklusiv-ODER-Schaltung 780 veranschaulicht.
  • In dem in 9 gezeigten Prozessor speichert ein Register 760 Bitauswahldaten, aus denen eine Faltungscodesequenz erzeugt werden wird. Die jeweiligen Bits der Bitauswahldaten werden in einen Bitselektor 770 eingegeben. Die Mehreingang-Exklusiv-ODER-Schaltung 780 enthält Dreieingang-Einausgang-Selektoren 781. Die Ausgänge des Bitselektors 770 werden als Auswählsignale an diese Dreieingang-Einausgang-Selektoren 781 geliefert.
  • Wie ebenfalls in 9 gezeigt, speichert ein Schieberegister 740 eine Anzahl vorangehender Bits, die jeweils in die Mehreingang-Exklusiv-ODER-Schaltung 780 eingegeben werden. Der Ausgang der Mehreingang-Exklusiv-ODER-Schaltung 780 ist die erzeugte Faltungscodesequenz, die in dem in 8 gezeigten Schieberegister 790 gespeichert werden wird.
  • Der In 9 gezeigte, bekannte Prozessor benötigt jedoch den Bitselektor 770. Ferner besteht die Mehreingang-Exklusiv-ODER-Schaltung 780 aus Einheitskonstruktionsblöcken 783, wobei jeder ein einzelnes Exklusiv-ODER-Gatter 782 und einen einzelnen Dreieingang-Selektor 781 enthält. Wenn die Einschränkungslänge K ist, muss der Prozessor folglich die Codierung durchführen, indem er eine Anzahl K – 1 von Einheitskonstruktionsblöcken 783 zusammen kaskadiert.
  • Eine Schaltung dieses Typs erhöht ihre Größe, wenn die Einschränkungslänge K zunimmt. Da die Einheitskonstruktionsblöcke 783 kaskadiert werden, ist außerdem die Zahl von Gatterstufen zwischen ihren Eingangs- und Ausgangsanschlüssen übermäßig groß. Aus diesen Gründen ist die Schaltung auf Hochgeschwindigkeits-Verarbeitung nicht wirkungsvoll anwendbar.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine verbesserte Codiervorrichtung bereitzustellen, die eine effiziente Erzeugung einer Faltungscodesequenz gestattet.
  • Diese Aufgabe wird die Merkmale von Anspruch 1 erfüllt.
  • Eine weitere Ausführung ist Gegenstand des abhängigen Anspruchs 2.
  • In der erfinderischen Vorrichtung werden logische Produkte von mehrfachen aneinandergrenzenden Bits einer Eingangs-Bitsequenz und ihre zugehörigen Koeffizienten in den Termen auf jeweiligen Ordnungen eines Generatorpolynoms parallel erlangt. Folglich kann jedes Bit einer Codesequenz in einer viel kürzeren Zeit erlangt werden, und der Faltungscodierprozess kann weit effizienter durchgeführt werden. Außerdem sind die in dem Eingangsregister gespeicherten Werte frei änderbar, um ein Faltungscodebit entsprechend einem beliebigen Generatorpolynom zu erzeugen.
  • Die erfinderische Vorrichtung enthält weiter ein zweites Schieberegister, um die eingegebene Bitsequenz darin zu speichern. Das zweite Schieberegister führt eine Bitverschiebung auf der eingegebenen Bitsequenz aus und gibt ein Bit der eingegebenen Bitsequenz nach dem anderen an das erste Schieberegister aus.
  • Der logische Operationsabschnitt gibt des Weiteren die Codesequenz an das zweite Schieberegister aus. Und das zweite Schieberegister teilt vorzugsweise ein Bit der Codesequenz nach dem anderen einer Bitposition zu, wobei als Ergebnis der Bitverschiebung kein Bit der eingegebenen Bitsequenz mehr gespeichert ist.
  • Vorzugsweise umfasst die Vorrichtung des Weiteren einen Speicher, um die eingegebene Bitsequenz zu speichern und dann auszugeben. Und der logische Operationsabschnitt erlangt vorzugsweise die in dem Speicher gespeicherte Codesequenz.
  • 1 ist ein Blockschaltbild, das eine Anordnung für eine Codiervorrichtung nach einer ersten Ausführung der vorliegenden Erfindung veranschaulicht.
  • 2 ist ein Blockschaltbild, das eine begriffliche Konfiguration einer Faltungscodiervorrichtung veranschaulicht.
  • 3 ist ein Schaltbild, das die Codiervorrichtung der ersten Ausführung veranschaulicht.
  • 4 ist ein Blockschaltbild, das eine Grundkonfiguration für eine Codiervorrichtung zum Erzeugen einer Turbo-Codesequenz veranschaulicht.
  • 5 ist ein Blockschaltbild, das eine begriffliche Konfiguration für einen rekursiven, syste matischen Faltungscodierer veranschaulicht.
  • 6 ist ein Schaltbild, das eine Codiervorrichtung nach einer zweiten Ausführung der vorliegenden Erfindung veranschaulicht.
  • 7 ist ein Blockschaltbild, das schematisch einen DSP darstellt, der die in 3 gezeigte Codievorrichtung enthält.
  • 8 ist ein Blockschaltbild, das einen bekannten Prozessor veranschaulicht.
  • 9 ist ein Schaltbild, das eine detaillierte Konfiguration der in 8 gezeigten Mehreingang-Exklusiv-ODER-Schaltung veranschaulicht.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGEN
  • Im Folgenden werden bevorzugte Ausführungen der vorliegenden Erfindung mit Verweis auf die begleitenden Zeichnungen beschrieben.
  • AUSFÜHRUNG 1
  • 1 ist ein Blockschaltbild, das eine Anordnung für eine Codiervorrichtung nach einer ersten Ausführung der vorliegenden Erfindung veranschaulicht. Die in 1 gezeigte Vorrichtung führt eine Faltungscodierung auf Eingabedaten (genauer eine eingegebene Bitsequenz) aus, um eine Faltungscodesequenz zu erzeugen und auszugeben. Wie in 1 gezeigt, enthält die Vorrichtung einen Datenspeicher 110, einen Adresszähler 120, ein Eingangsregister 140, ein erstes und zweites Schieberegister 160 und 180 sowie einen Logikoperationsabschnitt 170. Das heißt, die in 1 gezeigte Vorrichtung enthält nicht nur Komponenten, die normalerweise für einen Universal-DSP bereitgestellt werden, sondern auch den Logikoperationsabschnitt 170. In 1 befindet sich die Arithmetik- und Logikeinheit (ALU) 150 in keiner direkten Verbindung mit der Codierverarbeitung. Das Eingangsregister 140 gibt seine gespeicherten Daten an die ALU 150 aus und kann für die ALU 150 als ein Eingangsregister fungieren.
  • In der folgenden Beschreibung werden in jedem Register und Schieberegister gespeicherte höchst- und niedrigstwertige Bits einfach als "MSB" bzw. "LSB" bezeichnet.
  • 2 ist ein Blockschaltbild, das eine begriffliche Konfiguration für eine Faltungscodiervorrichtung veranschaulicht. Wie in 2 gezeigt, wird eine Eingangs-Bitsequenz i ein Bit nach dem anderen als zu codierende Daten in das LSB eines 4-Bit Schieberegisters 260 eingege ben. Außerdem wird jedes Mal ein Bit neu in das Schieberegister 260 eingegeben, und die Daten, die in dem Schieberegister 260 gespeichert wurden, werden um eine Stelle nach links verschoben (d. h. in Richtung auf das MSB).
  • In 2 wird ein Faltungscodebit X1 erzeugt, indem eine exklusive logische Summe des ersten, zweiten und vierten MSB des Schieberegisters 260 entsprechend einem Generatorpolynom 1 + D2 + D3, wo D ein Verzögerungsoperator ist, gewonnen wird. In der gleichen Weise wird ein weiteres Faltungscodebit X2 erzeugt, indem eine exklusive logische Summe des ersten und vierten MSB des Schieberegisters 260 entsprechend einem anderen Generatorpolynom 1 + D3 gewonnen wird.
  • 3 ist ein Schaltbild, das einen Teil der in 1 gezeigten Codiervorrichtung in weiteren Details veranschaulicht. Im folgenden Beispiel wird beschrieben, wie die in 3 gezeigte Codiervorrichtung 100 die in 2 gezeigten Faltungscodebits X1 und X2 erzeugt.
  • Zuerst wird das Faltungscodebit X1 in der folgenden Weise erzeugt. Der Datenspeicher 110 speichert eine zu codierende Eingangs-Bitsequenz. Der Adresszähler 120 zählt zwei Adressen P0 und P1. Das heißt, der Adresszähler 120 definiert die Adresse an der Spitze eines Speicherbereiches, in dem der Datenspeicher 110 nun die Eingangs-Bitsequenz speichert, als die Adresse P0. Der Adresszähler 120 definiert auch die oberste Adresse eines Speicherbereiches, in dem das erzeugte Faltungscodebit X1 gespeichert wird, als die zusätzliche Adresse P1.
  • Das Eingangsregister 140 speichert die Koeffizienten von jeweiligen Termen des Generatorpolynoms 1 + D2 + D3, das zum Erzeugen des in 2 gezeigten Faltungscodebits X1 verwendet wird, darin in dieser Reihenfolge (d. h. "1", "0", "1" und "1"), sodass der Koeffizient des Terms höchster Ordnung als das MSB davon gespeichert wird.
  • Der Datenspeicher 110 liest ein Datenwort beginnend bei der Adresse P0, wie durch den Adresszähler 120 angegeben, und gibt es aus, sodass das Datenwort durch den Datenbus 130 übertragen und dann in dem zweiten Schieberegister 180 gespeichert wird. Dann erhöht der Adresszähler 120 die Adresse P0 um eins.
  • Jedes Mal, wenn das Datenwort eingegeben wird, gibt das zweite Schieberegister 180 das MSB der darin gespeicherten Daten aus. Das MSB wird dem ersten Schieberegister 160 zugeführt, sodass das MSB an der LSB-Position davon gespeichert wird, nachdem die in dem ersten Schieberegister 160 gespeicherten Bits um eine Stelle nach links verschoben worden sind. Das heißt, das MSB ist das Bit, das momentan in das erste Schieberegister 160 eingegeben wird. Der Logikoperationsabschnitt 170 benötigt vier Bits, einschließlich des momentanen, aus der Eingangs-Bitsequenz. Das erste Schieberegister 160 kann folglich drei Bits speichern, die ihm in den vorherigen drei Zyklen eingegeben wurden, bevor das MSB des zweiten Schieberegisters 180 als das momentane eingegeben wird. Das erste Schieberegister 160 speichert für Initialisierungszwecke Nullbits an all diesen drei Bitpositionen.
  • Wie in 3 gezeigt, enthält der Logikoperationsabschnitt 170 UND-Gatter 171, 172, 173 und 174 und Exklusiv-ODER-Gatter 176, 177 und 178. Der Logikoperationsabschnitt 170 führt die Faltungscodierung auf dem momentan in das erste Schieberegister 169 eingegebenen Bit und den drei momentan in dem ersten Schieberegister 160 gespeicherten Bits entsprechend dem Generatorpolynom für das Eingangsregister 140 durch, um das Faltungscodebit X1 zu erzeugen und auszugeben.
  • Das heißt, das UND-Gatter 171 empfängt die MSBs des Eingangsregisters 140, erlangt ein logisches Produkt dieser Bits und gibt dann das Produkt an das Exklusiv-ODER-Gatter 176 aus. Das UND-Gatter 172 empfängt das zweithöchstwertige Bit des Eingangsregisters 140 und des ersten Schieberegisters 160, erlangt ein logisches Produkt dieser Bits und gibt dann das Produkt an das Exklusiv-ODER-Gatter 176 aus.
  • In der gleichen Weise empfängt das UND-Gatter 173 das dritthöchstwertige Bit des Eingangsregisters 140 und des ersten Schieberegisters 160, erlangt ein logisches Produkt dieser Bits und gibt dann das Produkt an das Exklusiv-ODER-Gatter 177 aus. Das UND-Gatter 174 empfängt das LSB des Eingangsregisters 140 und das gegenwärtig von dem zweiten Schieberegister 180 ausgegebene Bit, erlangt ein logisches Produkt dieser Bits und gibt dann das Produkt an das Exklusiv-ODER-Gatter 177 aus.
  • Jedes der Exklusiv-ODER-Gatter 176 und 177 gewinnt eine exklusive logische Summe der zwei Eingänge und gibt dann die erhaltene Summe an das Exklusiv-ODER-Gatter 178 aus. Als Reaktion gewinnt das Exklusiv-ODER-Gatter 178 eine exklusive logische Summe dieser zwei Ausgänge und gibt dann die Summe als das Faltungscodebit X1 an das zweite Schieberegister 180 aus.
  • Das heißt, jedes in dem Eingangsregister 140 oder dem ersten Schieberegister 160 gespeicherte Bit wird in ein zugehöriges der UND-Gatter 171 bis 174 eingegeben. Die Ausgänge dieser UND-Gatter 171 bis 174 werden in die Exklusiv-ODER-Gatter 176 und 177 eingegeben, deren Ausgänge dann in das Exklusiv-ODER-Gatter 178 der letzten Stufe eingegeben werden. Mit anderen Worten, diese drei Exklusiv-ODER-Gatter 176 bis 178 bilden ein einziges Exklusiv-ODER-Gatter zum Erlangen einer exklusiven logischen Summe der jeweiligen Ausgänge der UND-Gatter 171 bis 174 und Ausgeben der Summe als das Faltungscodebit X1. Auf diese Weise kann der Ausgang des Logikoperationsabschnitts 170 ein Faltungscodebit X1 für die Eingangs-Bitsequenz i sein.
  • Beim Gewinnen einer exklusiven logischen Summe der UND-Gatter 171 bis 174 unter Verwendung mehrfacher Exklusiv-ODER-Gatter sollte die Zahl von Gattern zwischen einem UND-Gatter 171, 172, 173 oder 174 und dem Letztstufen-Exklusiv-ODER-Gatter 178, das das Faltungscodebit X1 ausgibt, sich von der Zahl von Gattern zwischen einem anderen UND-Gatter 171, 172, 173 oder 174 und dem Exklusiv-ODER-Gatter um eins oder weniger unterscheiden. Dann ist es möglich, die Zeit zu verkürzen, die nötig ist, um das Faltungscodebit X1 nach dem Schieben der Schieberegister 160 und 180 zu erhalten.
  • Wenn das Faltungscodebit X1 erlangt ist, verschiebt das erste Schieberegister 160 die gespeicherten Bits eine Stelle nach links (d. h. auf das MSB zu). Demzufolge wird das Bit, das gerade von dem zweiten Schieberegister 180 ausgegeben wurde (d. h. das MSB des zweiten Schieberegisters 180) als das LSB des ersten Schieberegisters 160 gespeichert. Das zweite Schieberegister 180 verschiebt ebenfalls die gespeicherten Bits um eine Stelle nach links. Dann ist kein Bit der Eingangs-Bitsequenz mehr als das LSB des zweiten Schieberegisters 180 gespeichert. Das von dem Logikoperationsabschnitt 170 ausgegebene Faltungscodebit X1 wird folglich als das LSB des zweiten Schieberegisters 180 gespeichert.
  • Wie zu sehen ist, wird, wenn das erste und zweite Schieberegister 160 und 180 ihre Bits um eine Stelle zu einer Zeit verschieben, das Bit, das als das MSB des zweiten Schieberegisters 180 gespeichert wurde, das nächste Mal in das erste Schieberegister 160 eingegeben. Als Reaktion führt der Logikoperationsabschnitt 170 die Faltungscodierung auf diesem Eingangsbit durch, um das nächste Faltungscodebit X1 zu erzeugen und auszugeben. Aus diese Weise wird jedes Mal, wenn das erste und zweite Schieberegister 160 und 180 ihre Bits um eine Stelle verschieben, der Logikoperationsabschnitt 170 ein Faltungscodebit X1 nach dem anderen ausgeben, indem danach ähnliche Operationen wiederholend durchgeführt werden.
  • Sobald das zweite Schieberegister 180 die Eingangs-Bitsequenz durch Verschieben der Bits eine Anzahl von Malen ausgeschoben hat, überträgt das zweite Schieberegister 180 das gespeicherte Faltungscodebit X1 zu dem Datenspeicher 110, um das Bit X1 an der Adresse P1 des Speichers 110 speichern zu lassen. Das zweite Schieberegister 180 gewinnt dann erneut ein anderes Datenwort beginnend bei der durch den Adresszähler 120 angegebenen Adresse P0 aus dem Datenspeicher 110 zurück und speichert das Datenwort. Indem diese Operationen zahlreiche Male durchgeführt werden, erzeugt die in 3 gezeigte Codiervorrichtung 100 aufeinanderfolgend Faltungscodebits X1 eines nach dem anderen.
  • In der vorangehenden illustrativen Ausführung wird jedes von dem Logikoperationsabschnitt 170 ausgegebene Faltungscodebit X1 einmal in dem zweiten Schieberegister 180 gespeichert. Alternativ kann stattdesen jedes Codebit X1 direkt im Datenspeicher 110 gespeichert werden. In diesem Fall wird das Faltungscodebit X1 an der Adresse P1 im Datenspeicher 110, wie durch den Adresszähler 120 angegeben, gespeichert. Wenn z. B. ein im Datenspeicher 110 gespeichertes Datenwort aus 16 Bits besteht, werden Nullbits als die höchst- bis fünfzehntköchstwertigen Bits jedes Datenwortes gespeichert, und das erzeugte Faltungscodebit X1 wird als das LSB davon gespeichert. Nach dem Speichern des Faltungscodebits X1 im Datenspeicher 110 erhöht der Adresszähler 120 die Adresse P1 um eins.
  • Um das in 2 gezeigte Faltungscodebit X2 zu erzeugen, speichert das Eingangsregister 140 die Koeffizienten von jeweiligen Termen des Generatorpolynoms 1 + D3, das zum Erzeugen des Faltungscodebits X1 benutzt wird, in dieser Reihenfolge (d. h. "1", "0", "0" und "1"), sodass der Koeffizient des Terms höchster Ordnung als das MSB davon gespeichert wird. In anderer Hinsicht arbeitet die Codiervorrichtung 100 in der gleichen Weise wie beim Erzeugen des Faltungscodebits X1.
  • Aus diese Weise kann die in 3 gezeigte Codiervorrichtung 100 ein Faltungscodebit entsprechend jedem beliebigen Generatorpolynom durch Speichern des Koeffizienten in dem Eingangsregister 140 erzeugen.
  • Wie oben beschrieben, gibt die Codiervorrichtung 100 die in dem Eingangsregister 140 gespeicherten Bits und die zugehörigen Bits des ersten Schieberegisters 160 in die UND-Gatter 171 bis 174 ein, um so die Bitauswahl zu verwirklichen. Aus diesem Grund ist, verglichen mit dem in 9 gezeigten Prozessor, wo die Einheitskonstruktionsblöcke 783 kaskadiert sind, die erfinderische Codiervorrichtung mit einer reduzierten Schaltungsgröße implementierbar. Außerdem sind die Exklusiv-ODER-Gatter 176 bis 178 miteinander parallel geschaltet, und die UND-Gatter 171 bis 174 sind ebenfalls parallel geschaltet. Die Anzahl benötigter Gatterstufen kann folglich verringert und die Verarabeitung beschleunigt werden.
  • AUSFÜHRUNG 2
  • 4 ist ein Blockschaltbild, das eine Grundkonfiguration einer Codiervorrichtung zum Erzeugen einer Turbo-Codesequenz zeigt. Wie in 4 gezeigt, enthält die Vorrichtung rekursive, systematische Faltungs-(RSC)Codierer 401 und 402 sowie einen Verschachteler 403.
  • In der in 4 gezeigten Vorrichtung führt der RSC-Codierer 401 eine rekursive, systematische Codierung auf einer Eingangs-Bitsequenz i durch, um ein RSC-Codebit X21 zu erzeugen und auszugeben. Der Verschachteler 403 verschachtelt, oder ordnet um, die in der Eingangs-Bitsequenz i enthaltenen Bits und gibt die verschachtelte Bitsequenz an den RSC-Codierer 402 aus. Als Reaktion führt der RSC-Codierer 402 eine rekursive, systematische Codierung auf der eingegebenen verschachtelten Bitsequenz durch, um ein weiteres RSC-Codebit X22 zu erzeugen. Danach werden die Eingangs-Bitsequenz i und die RSC-Codebits X21 und X22 der Dezimierung und Multiplexierung unterzogen, deren Ergebnis als eine Turbo-Codesequenz ausgegeben wird.
  • 5 ist ein Blockschaltbid, das eine begriffliche Konfiguration des RSC-Codierers 401 veranschaulicht. In 5 stellt jedes Quadrat ein Bit eines Schieberegisters dar. Das RSC-Codebit X21 kann z. B. entsprechend einem Generatorpolynom (1 + D2 + D3)/(1 + D + D3) erzeugt werden. Der andere RSC-Codierer 402 weist ebenfalls eine ähnliche Konfiguration auf, die ihrem zugehörigen Generatorpolynom entspricht. Wie aus 5 zu sehen ist, enthalten die RSC-Codierer 401 und 402 je eine Rückkopplungsschleife.
  • 6 ist ein Schaltbild, das eine Codiervorrichtung nach einer zweiten Ausführung der vorliegenden Erfindung zeigt. Im folgenden Beispiel wird beschrieben, wie die in 6 gezeigte Vorrichtung das in 5 gezeigte RSC-Codebit X21 erzeugt. Wie in 6 gezeigt, enthält die Vorrichtung einen Datenspeicher 610, einen Adresszähler 620, ein erstes und zweites Eingangsregister 641 und 640, ein erstes und zweites Schieberegister 660 und 680 und einen ersten und zweiten logischen Operationsabschnitt 690 und 670.
  • Der Datenspeicher 610, der Adresszähler 620. das erste und zweite Schieberegister 660 und 680 und der zweite logische Operationsabschnitt 670 sind die gleichen wie die Gegenstücke 110, 120, 160, 180 und 170 der in 3 gezeigten Vorrichtung 100, und die Beschreibung derselben wird hier weggelassen.
  • Das heißt, die in 6 gezeigte Codievorrichtung enthält nicht nur Komponenten, die normalerweise für einen Universal-DSP bereitgestellt werden, sondern auch den ersten und zweiten logischen Operationsabschnitt 690 und 670.
  • Das zweite Eingangsregister 640 speichert die Koeffizienten von jeweiligen Termen eines Generatorpolynoms 1 + D2 + D3 in dieser Reihenfolge (d. h. "1", "0", "1" und "1"), sodass der Koeffizient des Terms höchster Ordnung als das MSB gespeichert wird. Das erste Eingangsregister 641 speichert die Koeffizienten von jeweiligen Termen eines anderen Generatorpolynoms 1 + D + D3 in dieser Reihenfolge außer dem Term 0-ter Ordnung (d. h. "1", "0" und "1"), sodass der Koeffizient des Terms höchster Ordnung als das MSB davon gespeichert wird. In einem Polynom, das eine Rückkopplung darstellt, ist der Koeffizient des Terms 0-ter Ordnung immer eins. Der Koeffizient dieses Terms wird folglich nicht in das erste Eingangsregister 641 eingegeben.
  • Der Datenspeicher 610 liest ein Datenwort beginnend bei der Adresse P0, wie durch den Adresszähler 620 angegeben, aus und gibt es aus, sodass das Datenwort durch den Datenbus 630 übertragen und dann im zweiten Schieberegister 680 gespeichert wird. Dann erhöht der Adresszähler 620 die Adresse P0 um eins.
  • Das zweite Schieberegister 680 gibt das MSB der darin gespeicherten Daten aus. Das MSB wird dann in den ersten logischen Operationsabschnitt 690 eingegeben. Das heißt, das MSB ist das Bit, das momentan in den ersten logischen Operationsabschnitt 690 eingegeben wird. Der erste logische Operationsabschnitt 690 gibt ein Bit, das das Ergebnis der Operation darstellt, an das erste Schieberegister 660 aus. Das erste Schieberegister 660 kann drei Bits speichern, die in den vorherigen drei Zyklen eingegeben wurden, bevor das Ergebnis der Operation eingegeben wird. Das erste Schieberegister 660 speichert zu Initialisierungszwecken Nullbits in all diesen drei Bitpositionen.
  • Wie in 6 gezeigt, enthält der erste logische Operationsabschnitt 690 UND-Gatter 691, 692 und 693 sowie Exklusiv-ODER-Gatter 696, 697 und 698. Der erste logische Operationsabschnitt 690 erlangt logische Produkte der drei in dem ersten Schieberegister 660 gespeicherten Bits und der im ersten Eingangsregister 641 gespeicherten zugehörigen Bits. Als Nächstes gewinnt der erste logische Operationsabschnitt 690 eine exklusive logische Summe der erhaltenen logischen Produkte und des momentan in den ersten logischen Operationsabschnitt 690 eingegebenen Bits und gibt dann die Summe an das erste Schieberegister 660 aus.
  • Das heißt, das UND-Gatter 691 empfängt die MSBs des ersten Eingangsregisters 641 und des ersten Schieberegisters 660, gewinnt ein logisches Produkt dieser Bits und gibt das Produkt an das Exklusiv-ODER-Gatter 696 aus. Das UND-Gatter 692 empfängt die zweithöchstwertigen Bits des ersten Eingangsregisters 641 und des ersten Schieberegisters 660, ge winnt ein logisches Produkt dieser Bits und gibt das Ergebnis an das Exklusiv-ODER-Gatter 696 aus. Das UND-Gatter 693 empfängt die dritthöchstwertigen Bits des ersten Eingangsregisters 641 und des ersten Schieberegisters 660, gewinnt ein logisches Produkt dieser Bits und gibt dann das Produkt an das Exklusiv-ODER-Gatter 697 aus.
  • Das Exklusiv-ODER-Gatter 696 gewinnt eine exklusive logische Summe der zwei Eingänge und gibt dann die gewonnene Summe an das Exklusiv-ODER-Gatter 697 aus. In der gleichen Weise gewinnt das Exklusiv-ODER-Gatter 697 eine exklusive logische Summe der zwei Eingänge und gibt dann die gewonnene Summe an das Exklusiv-ODER-Gaater 698 aus. Das MSB des zweiten Schieberegisters 680 wird in das Exklusiv-ODER-Gatter 698 eingegeben. Das Exklusiv-ODER-Gatter 698 gewinnt eine exklusive logische Summe der zwei Eingänge und gibt dann die gewonnene Summe an das erste Schieberegister 660 und den zweiten logischen Operationsabschnitt 670 aus.
  • Der zweite logische Operationsabschnitt 670 ist der gleiche wie das in 3 gezeigte Gegenstück, und seine Beschreibung wird hierin weggelassen. Der Ausgang des zweiten logischen Operationsabschnitts 670 ist ein RSC-Codebit X21 der Eingangsdaten. Der zweite logische Operationsabschnitt 670 gibt das RSC-Codebit X21 an das zweite Schieberegister 680 aus.
  • Wenn das RSC-Codebit X21 gewonnen ist, schiebt das erste Schieberegister 660 die Bits eine Stelle nach links. Demzufolge wird das Bit, das gerade von dem ersten logischen Operationsabschnitt 690 ausgegeben wurde, als das LSB des ersten Schieberegisters 660 gespeichert. Das zweite Schieberegister 680 schiebt ebenfalls die Bits eine Stelle nach links. Dann wird kein Bit der Eingangs-Bitsequenz mehr als das LSB des zweiten Schieberegisters 680 gespeichert. Das von dem zweiten logischen Operationsabschnitt 670 ausgegebene RSC-Codebit X21 wird folglich als das LSB des zweiten Schieberegisters 680 gespeichert.
  • Wie zu sehen ist, wird, wenn das erste und zweite Schieberegister 660 und 680 die Bits um eine Stelle zu einer Zeit verschieben, das Bit, das als das MSB des zweiten Schieberegisters 680 gespeichert wurde, das nächste Mal in den ersten logischen Operationsabschnitt 690 eingegeben. Als Reaktion führen der erste und zweite logische Operationsabschnitt 690 und 670 die rekursive, systematische Faltungscodierung auf diesem Eingabebit durch, um das nächste RSC-Codebit X21 zu erzeugen und auszugeben. Auf diese Weise wird jedes Mal, wenn das erste und zweite Schieberegister 660 und 680 die Bits um eine Stelle verschieben, der zweite logische Operationsabschnitt 670 ein RSC-Codebit X21 nach dem anderen ausgeben, indem danach ähnliche Operationen wiederholend durchgeführt werden.
  • Sobald das zweite Schieberegister 680 die Eingangs-Bitsequenz durch wiederholtes Schieben der Bits ausgeschoben hat, überträgt das zweite Schieberegister 680 das gespeicherte RSC-Codebit X1 zu dem Datenspeicher 610, um das Bit X21 an der Adresse P1 im Speicher 610 speichern zu lassen. Dann gewinnt das zweite Schieberegister 680 erneut ein anderes Datenwort beginnend bei der durch den Adresszähler 620 angegebenen Adresse P0 aus dem Datenspeicher 610 zurück und speichert das Datenwort. Indem diese Operationen zahlreiche Male durchgeführt werden, erzeugt die in 6 gezeigte Codiervorrichtung aufeinanderfolgend RSC-Codebits X21 eines nach dem anderen.
  • In der vorangehenden illustrativen Ausführung wird das von dem zweiten logischen Operationsabschnitt 670 ausgegebene RSC-Codebit X21 einmal in dem zweiten Schieberegister 680 gespeichert. Alternativ kann stattdessen das Codebit X21 direkt im Datenspeicher 610 gespeichert werden. In diesem Fall arbeitet die in 6 gezeigte Codiervorrichtung in der gleichen Weise wie das in 3 gezeigte Gegenstück.
  • Um das RSC-Codebit X22 zu erzeugen, speichern das erste und zweite Eingangsregister 641 und 640 die jeweiligen Koeffizienten eines Generatorpolynoms, das dem Codebit X22 entspricht. In anderer Hinsicht arbeitet die Codiervorrichtung in der gleichen Weise wie beim Erzeugen des RSC-Codebits X21.
  • Auf diese Weise kann die in 6 gezeigte Codiervorrichtung ein RSC-Codebit entsprechend jedem beliebigen Generatorpolynom durch Speichern der Koeffizienten des Polynoms in dem ersten und zweiten Eingangsregister 641 und 640 erzeugen.
  • Wie oben beschrieben, gibt die in 6 gezeigte Codiervorrichtung die in dem Eingangsregister 641 gespeicherten Bits und die zugehörigen Bits des ersten Schieberegisters 660 in die UND-Gatter 691 bis 693 ein, um so die Bitauswahl zu verwirklichen. Aus diesem ist, verglichen mit dem in 9 gezeigten, bekannten Prozessor, wo die Einheitskonstruktionsblöcke 783 kaskadiert werden, die erfinderische Codiervorrichtung mit einer verringerten Schaltungsgröße implementierbar. Außerdem sind die Exklusiv-ODER-Gatter 696 bis 698 miteinander parallel geschaltet, und die UND-Gatter 691 bis 693 sind ebenfalls parallel geschaltet. Die Anzahl benötigter Gatterstufen kann folglich verringert und die Verarbeitung beschleunigt werden.
  • 7 ist ein Blockschaltbild, das schematisch einen DSP zeigt, der die in 3 gezeigte Codiervorrichtung 100 enthält. Wie in 7 gezeigt, enthält der DSP die Codiervorrichtung 100, und der DSP und die Codiervorrichtung 100 sind gemeinsam auf dem gleichen Halbleiter substrat integriert, um einen einzigen Chip zu bilden. Der in 7 gezeigte DSP verschiebt die Bits des ersten und zweiten Schieberegisters 160 und 180 um eine Stelle zu einer Zeit durch Ausführen einer einzigen Anweisung. Der DSP kann folglich ein Faltungscodebit erzeugen, indem er nur einen einzigen Verarbeitungsschritt durchführt.
  • Alternativ kann der in 7 gezeigte DSP die in 6 gezeigte Codiervorrichtung anstelle der Codiervorrichtung 100 enthalten. In diesem Fall verschiebt der in 7 gezeigte DSP die Bits des ersten und zweiten Schieberegisters 660 und 680 um eine Stelle zu einer Zeit durch Ausführen einer einzigen Anweisung. Der DSP kann folglich ein RSC-Codebit erzeugen, indem er nur einen einzigen Verarbeitungsschritt durchführt.
  • Um ein Programm durch einen bekannten DSP, der normale Befehle verwendet, zur Ausführung zu bringen, bedarf es gewöhnlich mehrerer Verarbeitungsschritte, um ein Eingangsbit zu codieren und ein Codebit zu gewinnen. Im Gegensatz dazu benötigt die in 3 oder 6 gezeigte Codiervorrichtung dafür nur einen Verarbeitungsschritt und kann die Codierung viel schneller durchführen.
  • In den vorangehenden Ausführungen ist die vorliegende Erfindung mit einigen spezifizischen Generatorpolynomen beschrieben worden. Man sollte jedoch beachten, dass verschiedene Generatorpolynome anders als diese für diese Ausführungen ebenfall verwendet werden können.
  • Wie aus der vorangehenden Beschreibung ersichtlich ist, macht es die vorliegende Erfindung möglich, eine Faltungscodesequenz in einer verringerten Zahl von Verarbeitungsschritten unter Verwendung einer Schaltung mit einer reduzierten Größe zu erzeugen.

Claims (2)

  1. Kodiervorrichtung zum Erzeugen einer Faltungs-Code-Sequenz, die umfasst: ein erstes Schieberegister (160, 660), das Bitverschiebung an einer Eingangs-Bitsequenz durchführt und ein Bit der Eingangs-Bitsequenz nach dem anderen speichert; ein Eingangsregister (140, 640, 641), das Koeffizienten von Termen in entsprechenden Größenordnungen eines Generatorpolynoms speichert; und einen Logikoperationsabschnitt (170, 670, 690), der logische Produkte der entsprechenden Bits, die in dem ersten Schieberegister (160, 660) gespeichert sind, und damit verknüpfter Bits, die in dem Eingangsregister (140, 640, 641) gespeichert sind, sowie ein logisches Produkt jedes Bits, das in das erste Schieberegister (160, 660) eingegeben wird, und eines damit verknüpften Bits, das in dem Eingangsregister (140, 640, 641) gespeichert ist, ermittelt, so dass, je früher ein Bit der Eingangs-Bitsequenz eingegeben wurde, das Eingangsbit mit einem der Koeffizienten in den Termen des Polynoms um so höherer Größenordnung verknüpft wird, der eine exklusive logische Summe der ermittelten logischen Produkte herleitet und dann die Summe als ein Bit der Code-Sequenz ausgibt, wobei sie des Weiteren ein zweites Schieberegister (180, 680) zum Speichern der Eingangs-Bitsequenz darin umfasst, und das zweite Schieberegister (180, 680) Bitverschiebung an der Eingangs-Bitsequenz durchführt und ein Bit der Eingangs-Bitsequenz nach dem anderen an das erste Schieberegister (160, 660) ausgibt, dadurch gekennzeichnet, dass: der Logikoperationsabschnitt (180, 670, 690) die Code-Sequenz an das zweite Schieberegister (180, 680) ausgibt; und das zweite Schieberegister (180, 680) ein Bit der Code-Sequenz nach dem anderen einer Bitposition zuordnet, an der aufgrund der Bitverschiebung kein Bit der Eingangs-Bitsequenz mehr gespeichert ist.
  2. Codiervorrichtung nach Anspruch 1, die des Weiteren einen Speicher (110, 610) umfasst, der die Eingangs-Bitsequenz speichert und dann ausgibt und die Code-Sequenz speichert.
DE60109344T 2000-04-13 2001-04-11 Hochgeschwindigkeitscodierer für Faltungscodes Expired - Lifetime DE60109344T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000111751A JP2001298370A (ja) 2000-04-13 2000-04-13 符号化装置
JP2000111751 2000-04-13

Publications (2)

Publication Number Publication Date
DE60109344D1 DE60109344D1 (de) 2005-04-21
DE60109344T2 true DE60109344T2 (de) 2005-08-11

Family

ID=18624027

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60109344T Expired - Lifetime DE60109344T2 (de) 2000-04-13 2001-04-11 Hochgeschwindigkeitscodierer für Faltungscodes

Country Status (4)

Country Link
US (1) US6751773B2 (de)
EP (1) EP1146652B1 (de)
JP (1) JP2001298370A (de)
DE (1) DE60109344T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084590A1 (en) * 2001-04-11 2002-10-24 Applied Minds, Inc. Knowledge web
EP1322042B1 (de) * 2001-12-20 2009-04-08 Texas Instruments Inc. Faltungskodierer wobei ein geänderter Multiplizierer verwendet wird
US20030195834A1 (en) * 2002-04-10 2003-10-16 Hillis W. Daniel Automated online purchasing system
US8069175B2 (en) * 2002-04-10 2011-11-29 Google Inc. Delegating authority to evaluate content
US7844610B2 (en) * 2003-12-12 2010-11-30 Google Inc. Delegated authority evaluation system
US7318189B2 (en) * 2002-08-01 2008-01-08 Zarbana Digital Fund Llc Parallel convolutional encoder
US8012025B2 (en) * 2002-12-13 2011-09-06 Applied Minds, Llc Video game controller hub with control input reduction and combination schemes
US20050131918A1 (en) * 2003-12-12 2005-06-16 W. Daniel Hillis Personalized profile for evaluating content
JP5137370B2 (ja) * 2006-09-27 2013-02-06 株式会社半導体エネルギー研究所 記憶装置、記憶装置を有する半導体装置、及び記憶装置の駆動方法
US8200733B1 (en) 2008-04-15 2012-06-12 Freescale Semiconductor, Inc. Device having interleaving capabilities and a method for applying an interleaving function
JP5708210B2 (ja) * 2010-06-17 2015-04-30 富士通株式会社 プロセッサ
US20150363263A1 (en) * 2014-06-12 2015-12-17 HGST Netherlands B.V. ECC Encoder Using Partial-Parity Feedback

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4626711A (en) * 1984-05-11 1986-12-02 National Semiconductor Corporation Exclusive or gate circuit
JPH0618358B2 (ja) * 1985-04-09 1994-03-09 沖電気工業株式会社 誤り制御符号化方式
US5193094A (en) 1990-03-07 1993-03-09 Qualcomm Incorporated Method and apparatus for generating super-orthogonal convolutional codes and the decoding thereof
GB2302633B (en) * 1995-06-24 2000-02-16 Motorola Ltd Convolutional coder
JP3452345B2 (ja) * 1997-05-30 2003-09-29 松下電器産業株式会社 演算処理装置とその利用装置
JP3238128B2 (ja) * 1998-06-02 2001-12-10 松下電器産業株式会社 リードソロモン符号化装置および方法

Also Published As

Publication number Publication date
EP1146652A2 (de) 2001-10-17
EP1146652A3 (de) 2003-04-02
DE60109344D1 (de) 2005-04-21
JP2001298370A (ja) 2001-10-26
US6751773B2 (en) 2004-06-15
US20020002694A1 (en) 2002-01-03
EP1146652B1 (de) 2005-03-16

Similar Documents

Publication Publication Date Title
DE60109344T2 (de) Hochgeschwindigkeitscodierer für Faltungscodes
DE69331568T2 (de) Arithmetisches Gerät
DE3879373T2 (de) Residuen-arithmetische Rechenschaltung.
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE2916710C2 (de)
DE3852423T2 (de) Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode.
DE2135590A1 (de) Vorrichtung und Verfahren zur Er zeugung trigonometrischer und anderer Funktionen
DE69117857T2 (de) Gerät und Verfahren zur Parallelgeneration von zyklischen redundanten Prüfungskoden
DE2159108A1 (de) Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen
DE69212695T2 (de) Decodierungseinrichtung
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE2758130A1 (de) Binaerer und dezimaler hochgeschwindigkeitsaddierer
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
WO2001058070A1 (de) Verfahren und vorrichtung zur erzeugung von ovsf-codeworten
DE69026414T2 (de) Binäres Addiergerät
DE3789266T2 (de) Fehlerkorrekturgerät.
DE69315018T2 (de) Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes
DE69327421T2 (de) Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten
DE69815541T2 (de) Verfahren und vorrichtung zur viterbi-dekodierung von punktierten codes
DE19644688A1 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2 APPROX )
DE69008896T2 (de) Fehlerkorrekturkodierer/-dekodierer für numerische Übertragungsanlage.
DE69713868T2 (de) Digitaler Bildprozessor zur Bewegtbildkompression/-dekompression
DE60118716T2 (de) Log-MAP Dekodierung
DE69026363T2 (de) Multipositionsverschieber mit Paritätsbitgenerator
DE69901566T2 (de) Schnelle metrikberechnung für einen viterbi- dekoder

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP