DE69819287T2 - Viterbi-Decodierer und Viterbi-Decodierverfahren - Google Patents

Viterbi-Decodierer und Viterbi-Decodierverfahren Download PDF

Info

Publication number
DE69819287T2
DE69819287T2 DE69819287T DE69819287T DE69819287T2 DE 69819287 T2 DE69819287 T2 DE 69819287T2 DE 69819287 T DE69819287 T DE 69819287T DE 69819287 T DE69819287 T DE 69819287T DE 69819287 T2 DE69819287 T2 DE 69819287T2
Authority
DE
Germany
Prior art keywords
ram
follow
path
rams
selection information
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
DE69819287T
Other languages
English (en)
Other versions
DE69819287D1 (de
Inventor
Toshiyuki Shinagawa-ku Miyauchi
Masayuki Shinagawa-ku Hattori
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of DE69819287D1 publication Critical patent/DE69819287D1/de
Application granted granted Critical
Publication of DE69819287T2 publication Critical patent/DE69819287T2/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • H03M13/4176Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback using a plurality of RAMs, e.g. for carrying out a plurality of traceback implementations simultaneously
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management

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

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die Erfindung betrifft einen Viterbi-Decodierer und ein Viterbi-Decodierverfahren, wie bei einem Decodierverfahren mit maximaler Wahrscheinlichkeit mit einem Faltungscode verwendet, wie z. B. bei Satellitenrundfunk oder dergleichen verwendet.
  • Beschreibung der einschlägigen Technik
  • Als Verfahren zum Decodieren eines Faltungscodes ist ein Viterbi-Decodierverfahren bekannt. Das Viterbi-Decodierverfahren ist ein Decodierverfahren mit maximaler Wahrscheinlichkeit für einen Faltungscode, und durch Auswählen einer Reihe, die am nächsten bei einer empfangenen Codereihe liegt (nachfolgend wird eine derartige Reihe als Pfad maximaler Wahrscheinlichkeit bezeichnet) unter Codereihen, die von einem Codierer auf der Sendeseite erzeugt werden können, wird eine Fehlerkorrektur ausgeführt. D.h., dass als Vorbedingung ein Übergangsdiagramm (nachfolgend als Codegitter bezeichnet), das auf Grundlage eines Codierverfahrens vom Codierer auf der Sendeseite erzeugt wird, verwendet wird, und als Pfad maximaler Wahrscheinlichkeit wird aus Übergängen, wie sie im Übergangsdiagramm auftreten können, ein Pfad ausgewählt, dessen Hamming-Abstand gegenüber der empfangenen Codeserie der kürzeste ist.
  • Ein Viterbi-Decodierer zum Ausführen eines Viterbi-Decodierverfahrens weist Folgendes auf: eine Verzweigungsmaß-Berechnungsschaltung zum Berechnen eines Verzweigungsmaßes, d. h. eines Hamming-Abstands zwischen einem Pfad, der jeden Zustand auf dem Codegitter erreicht, und der empfangenen Codeserie entsprechend einem Taktsignal; eine ACS-Schaltung zum Berechnen von Zustandsmaßen auf Grundlage des Verzweigungsmaßes, zum Vergleichen von Werten des Zustandsmaßes und zum Auswählen eines Pfads maximaler Wahrscheinlichkeit; eine Normierungsschaltung zum Normieren der Werte des Zu standsmaßes; eine Zustandsmaß-Speicherschaltung zum Speichern der Werte des Zustandsmaßes; und eine Pfad-Speicherschaltung zum Decodieren der Daten entsprechend einem Auswählergebnis durch die ACS.
  • Als Pfad-Speicherschaltung sind zwei Arten von Schaltungen bekannt: nämlich eine Schaltung zum Ausführen eines Registerübergangsverfahrens zum Transferieren des Pfadauswahlinhalts unter Verwendung einer Registerkette; und eine Schaltung zum Ausführen eines Verfahrens des Abspeicherns des Pfadauswahlinhalts unter Verwendung von RAMs, des Verfolgens des gespeicherten Inhalts und des Decodierens. Diese zwei Verfahrensarten werden nun nachfolgend beschrieben.
  • Beim Registerübergangsverfahren, das allgemein in Viterbi-Decodierern verwendet wird, sind Speicherzellen mit jeweils einem Selektor und einem Register auf dem Codegitter in der Pfad-Speicherschaltung angeordnet, und der Inhalt im Register wird auf Grundlage von der ACS-Schaltung ausgegebenen Pfadauswählinformation übertragen. Ein Beispiel für den Aufbau der Speicherzelle ist in der 1 dargestellt. Ein Beispiel für die Anordnung der Speicherzellen für den Fall, dass die Begrenzungslänge = 3 beträgt, ist in der 2 dargestellt (in der 2 ist eine Speicherzelle als MS dargestellt). Bei einem derartigen Aufbau wird einem Überlebenspfad ausgehend von jedem Zustand entsprechende Information im Register jeder Speicherzelle aufbewahrt. In der Speicherzelle ist eine Anzahl von Registerstufen angeordnet, die einer Beschneidungslänge entspricht. Unter den Ausgangssignalen der Endstufen wird das Ausgangssignal des Zustands maximaler Wahrscheinlichkeit ausgewählt, um dadurch die Information für den Pfad maximaler Wahrscheinlichkeit auszuwählen und Decodierdaten auszugeben.
  • Obwohl ein derartiges Registerübergangsverfahren den Vorteil zeigt, dass Hochgeschwindigkeitsbetrieb ausgeführt werden kann, besteht der Nachteil, dass der Schaltungsumfang extrem groß ist, wenn die Beschneidungslänge lang wird. Insbesondere wird die Vergrößerung des Schaltungsumfangs ein schwerwiegendes Problem, seit in den letzten Jahren Anwendungen dahingehend aufgetreten sind, dass die Beschneidungslänge 100 überschreitet.
  • In den letzten Jahren wurde daher aktiv dasjenige Verfahren untersucht, gemäß dem Pfadinformation unter Verwendung von sovielen RAMs (Direktzugriffsspeichern) abgespeichert wird, wie sie der Beschneidungslänge entsprechen, und die abgespeicherte Information verfolgt wird. Ein derartiges Verfahren wird nachfolgend als Rückverfolgungsverfahren bezeichnet.
  • Für das Rückverfolgungsverfahren kann eine Pfad-Speicherschaltung konstruiert werden, deren Schaltungsumfang ziemlich kleiner als der beim Registerübergangsverfahren ist. Jedoch weist bei der herkömmlichen Vorrichtung zum Ausführen des Rückverfolgungsverfahrens die Pfad-Speicherschaltung immer noch einen großen Schaltungsumfang auf.
  • Im Artikel "An area-efficient path memory structure for VLSI implementation of high speed Viterbi decoders" von E. Paaske, S. Pedersen und J. Sparso, Integration, The VLSI Journal, Vol. 12, No. 1, Seiten 79–91, NL, North-Holland Publishing Company, Amsterdam, 01. November 1991 ist im Punkt 2.2 ein Rückverfolgungsalgorithmus beschrieben. Während jeder Periode von L Taktsignalzyklen werden Entscheidungen vom ACS-Modul in einen der RAM-Blöcke eingeschrieben, in einem der RAM-Blöcke wird eine eröffnende Rückverfolgung ausgeführt, und in einem der RAM-Blöcke wird eine abschließende Rückverfolgung ausgeführt. Im Punkt 2.3 des Artikels wird ein kombinierter Registeraustausch- und Blockrückverfolgungs-Algorithmus eingeführt. Der Registeraustauschalgorithmus wird zum Erzeugen kleiner Blöcke (Segmente) der Länge L der überlebenden Pfade verwendet, und dann wird eine Rückverfolgung auf Grundlage von Blöcken der Länge L anstelle von Bits in einem RAM ausgeführt. Die sich aus dieser Prozedur ergebende Rückverfolgung liefert in jedem Schritt L Bits, im Vergleich zu einem Bit bei TBA.
  • Im US-Patent 4,905,317 für Suzuki et al. ist ein Pfadspeicher-Steuerverfahren für Viterbi-Decodierer beschrieben. Gemäß dieser Erfindung werden, wenn bei der Rückverfolgung zu einer Endstufe im Überlebenspfad mehrere Schritte erforderlich sind, mehrere decodierte Daten, deren Anzahl der Anzahl der betroffenen Decodierschritte entspricht, als Ausgangssignal geliefert, nicht nur ein decodierter Datenwert. Zu diesem Zweck ist der Pfadspeicher in eine Anzahl N+ von Intervallen unterteilt, und es sind N+ Rückverfolger vorhanden, um die entsprechend unterteilten Intervalle unabhängig rückzuverfolgen. Eine andere mögliche Lösung besteht im Handhaben der Zustandsübergangsinformation über einen Bereich mehrerer Vorgänge und einen Rücksprung über mehrere Stufen durch einen Speicherzugriff auszuführen.
  • In der europäischen Patentanmeldung EP 0 798 867 A2 ist ein Viterbi-Decodierer zum Erzeugen decodierter Daten maximaler Wahrscheinlichkeit als Ergebnis einer Analyse von in einer Speichereinheit abgespeicherter Überlebenssequenzeninformation durch Ausführen einer Rückverfolgung angegeben. Um die Decodiergeschwindigkeit zu verbessern, wird eine Verschachtelungsopera tion hinsichtlich zwei RAMS ausgeführt. Der erste Speicher dient zum Abspeichern der Hälfte der Überlebenssequenzeninformation entsprechend einem ersten Taktsignal, und der zweite Speicher dient zum Abspeichern der Hälfte der Überlebenssequenzeninformation entsprechend einem zweiten Taktsignal, wobei die Phase des zweiten Taktsignals gegenüber der des ersten invertiert ist.
  • Im Artikel "Architectural tradeoffs for survivor sequence memory management in Viterbi decoders" von G. Feygin und P. G. Gulak, IEEE Transactions On Communications, Vol. 41, No. 3, Seiten 425–429, März 1993 sind vier alternative Rückverfolgungsalgorithmen beschrieben. Im Abschnitt C dieses Artikels ist der sogenannte 1-Zeiger-Algorithmus beschrieben. Anstatt k Lesezeiger zum Ausführen der erforderlichen k Lesevorgänge für jede Spaltenschreiboperation zu verwenden, wird ein einzelner Lesezeiger verwendet, jedoch werden die Leseoperationen beschleunigt, so dass jedesmal dann, wenn der Schreibzähler um eine Spalte vorrückt, ein Lesevorgang für k Spalten erfolgt. Die 3 zeigt eine Implementierung des 1-Zeiger-Algorithmus unter Verwendung von vier Einzelports-Speicherbänken.
  • Es ist eine Aufgabe der Erfindung, einen Viterbi-Decodierer und ein Viterbi-Decodierverfahren zu schaffen, bei denen der Schaltungsumfang klein ist und Hochgeschwindigkeitsbetrieb ausgeführt werden kann.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung des Anspruchs 1 ist ein Viterbi-Decodierer mit einem Pfadspeicher zum Speichern von Auswählinformation für einen Pfad in jedem Übergangszustand eines Faltungscodes unter Verwendung eines umschreibbaren Speichers, wobei die im Pfadspeicher aufbewahrte Information in einem einer Beschneidungslänge entsprechenden Umfang verfolgt wird, um dadurch eine Viterbi-Decodierung auszuführen, wobei mehrere umschreibbare Speicher und Speichersteuereinrichtungen zum Steuern von Zugriffsvorgängen auf die mehreren umschreibbaren Speicher vorhanden sind, und wobei Verfolgungsoperationen entsprechend mehreren Vorgängen für eine Zeitperiode eines Taktsignals und eine Decodierung ausgeführt werden.
  • Die Erfindung des Anspruchs 7 ist ein Viterbi-Decodierverfahren zum Speichern von Auswählinformation für einen Pfad in jedem Übergangszustand eines Faltungscodes und zum Verfolgen der abgespeicherten Information mit einem einer Beschneidungslänge entsprechenden Umfang, um dadurch eine Viterbi- Decodierung auszuführen, mit einem Verfolgungsschritt, in dem Verfolgungsoperationen entsprechend mehreren Vorgängen für die Zeitperiode eines Taktsignals unter Verwendung mehrerer umschreibbarer Speicher in einem Pfadspeicher ausgeführt werden.
  • Gemäß der oben genannten Erfindung kann die Gesamtanzahl der Wörter im RAM dadurch verringert werden, dass die Decodierung dadurch ausgeführt wird, dass die Verfolgungsoperation entsprechend mehreren Vorgängen für die Zeitperiode eines Taktsignals ausgeführt wird.
  • Wenn die Pfad-Auswählinformation geschrieben wird, wird sie sequenziell in mehrere umschreibbare Speicher eingeschrieben. Bei der Verfolgung können durch sequenzielles Auslesen der Information aus den mehreren Speichern und durch Ausführen der Verfolgungsoperation entsprechend den mehreren Vorgängen soviele Nachfahroperationen ausgeführt werden, wie es den mehreren Vorgängen entspricht, während die Anzahl der Zugriffe auf jeden Speicher für jedes Taktsignal auf einmal eingestellt wird.
  • Ferner wird, unter den Ausgangssignalen der mehreren Speicher, die Information für einen Zustand mit einer Wahrscheinlichkeit, dass ihm nachgefahren wird, vorab auf Grundlage des Nachfahr-Startzustands ausgewählt, und die Nachfahroperation wird hinsichtlich der ausgewählten Information für den Zustand ausgeführt. So kann eine Zunahme der Verzögerung selbst dann minimiert werden, wenn so viele Nachfahroperationen ausgeführt werden, wie es den mehreren Vorgängen entspricht.
  • Die obigen, sowie andere, Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung derselben, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, leicht erkennbar werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein schematisches Diagramm zum Erläutern einer Speicherzelle eines Pfadspeichers bei einem Registerübergangsverfahren;
  • 2 ist ein schematisches Diagramm zum Erläutern einer Anordnung der Speicherzellen im Pfadspeicher beim Registerübergangsverfahren;
  • 3 ist ein Blockdiagramm zum Erläutern des Gesamtaufbaus einer Ausfüh rungsform der Erfindung;
  • 4 ist ein schematisches Diagramm zum Erläutern eines Übergangsdiagramms für den Fall einer Begrenzungslänge = 4;
  • 5 ist ein schematisches Diagramm zum Erläutern eines Nachfahrprinzips bei einem Nachfahrverfahren;
  • 6 ist ein schematisches Diagramm zum Erläutern des Verfahrens einer Pfadverfolgung beim Nachfahrverfahren;
  • 7A bis 7D sind schematische Diagramme zum Erläutern der Rolle jedes RAM bei einem üblichen Nachfahrverfahren, wie es herkömmlicherweise verwendet wurde;
  • 8 ist ein schematisches Diagramm zum Erläutern der Speicheroperation beim üblichen Nachfahrverfahren, wie es herkömmlicherweise verwendet wurde;
  • 9 ist ein Blockdiagramm zum Erläutern einer Pfad-Speicherschaltung bei einer Ausführungsform der Erfindung;
  • 10 ist ein schematisches Diagramm zum Erläutern der Speicheroperation bei der Ausführungsform der Erfindung;
  • 11A bis 11F sind schematische Diagramme zum spezielleren Erläutern der Speicheroperation bei der Ausführungsform der Erfindung;
  • 12A bis 12G sind schematische Diagramme zum spezielleren Erläutern der Speicheroperation bei der Ausführungsform der Erfindung;
  • 13 ist ein schematisches Diagramm zum Erläutern von Zuständen mit einer solchen Wahrscheinlichkeit, dass ihnen nachgefahren wird;
  • 14 ist ein Blockdiagramm zum Erläutern einer Nachfahrschaltung bei der Ausführungsform der Erfindung;
  • 15 ist ein Blockdiagramm zum Erläutern einer Pfad-Speicherschaltung bei einer anderen Ausführungsform der Erfindung;
  • 16 ist ein schematisches Diagramm zum Erläutern der Speicheroperation bei der anderen Ausführungsform der Erfindung;
  • 17A bis 17F sind schematische Diagramme zum spezielleren Erläutern der Speicheroperation bei der anderen Ausführungsform der Erfindung;
  • 18A bis 18G sind schematische Diagramme zum spezielleren Erläutern der Speicheroperation bei der anderen Ausführungsform der Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nachfolgend wird nun die erste Ausführungsform der Erfindung unter Bezugnahme auf die Zeichnungen beschrieben. Als Erstes wird nun unter Bezugnahme auf die 3 der Gesamtaufbau der ersten Ausführungsform der Erfindung beschrieben. Die erste Ausführungsform der Erfindung weist Folgendes auf: eine Verzweigungsmaß-Berechnungsschaltung 701; eine ACS-Schaltung 702; eine Normierungsschaltung 703; eine Zustandsmaß-Speicherschaltung 704 und eine Pfad-Speicherschaltung 705. Wenn die über einen Übertragungspfad empfangenen Daten von der Sendeseite her eingegeben werden, wird aus einer Codeserie, die von einem Codierer auf der Sendeseite erzeugt werden kann, ein Pfad maximaler Wahrscheinlichkeit ausgewählt, und auf Grundlage des Auswahlinhalts werden Decodierdaten erzeugt.
  • D. h., dass als Vorbedingung z. B. ein Übergangsdiagramm (nachfolgend als Codegitter bezeichnet), wie es in der 4 dargestellt ist, das auf Grundlage eines Codierverfahrens vom Codierer auf der Sendeseite erzeugt wird, verwendet wird, und dass z. B. ein Pfad, dessen Hamming-Abstand von der empfangenen Codeserie der kürzeste ist, als Pfad maximaler Wahrscheinlichkeit aus den Übergängen ausgewählt wird, die im Übergangsdiagramm auftreten können.
  • Wenn ein Empfangsdatensignal s701 eingegeben wird, berechnet die Verzweigungsmaß-Berechnungsschaltung 701 ein Verzweigungsmaß für die Empfangsdaten, und sie gibt ein Rechenergebnis als Verzweigungsmaßsignal s702 aus. Die ACS-Schaltung 702 addiert, auf Grundlage des Verzweigungsmaßsignals s702 und eines Zustandsmaßsignals s705, das von der Zustandsmaß-Speicherschaltung 704 eingegeben wird, das Verzweigungsmaß und das Zustandsmaß zu jedem von zwei Pfaden, die einen bestimmten Zustand gemeinsam haben, sie vergleicht deren Additionswerte, sie wählt den Additionswert mit der höheren Wahrscheinlichkeit auf Grundlage des Vergleichsergebnisses aus, und sie stellt ihn als neuen Zustandsmaß ein.
  • Der Inhalt einer derartigen Auswahl wird als Pfad-Auswählinformations 706 ausgegeben. Die Anzahl der Zustände mit minimalem Zustandsmaß wird als Signal s707 für den Zustand maximaler Wahrscheinlichkeit ausgegeben. Das neu erhaltene Zustandsmaß wird als neues Zustandsmaßsignal s703 ausgegeben.
  • Nun wird ein Auswählverfahren für den Pfad hinsichtlich eines Falls beschrieben, bei dem die Begrenzungslänge beispielsweise 4 beträgt. Das Codegitter der 2 zeigt ein Beispiel eines Codegitters für den Fall, dass acht Zustände 000, 001, 010, 011, 100, 101, 110 und 111 und die Begrenzungslänge = 4 vorliegen. Ein Pfeil kennzeichnet einen Pfad, wie er in jedem Zeitschlitz auftreten kann. Ein dem Decodierdatenwert '0' entsprechender Pfad ist durch eine gestrichelte Linie dargestellt. Ein dem Decodierdatenwert '1' entsprechender Pfad ist durch eine durchgezogene Linie dargestellt. In allen Zuständen in jedem Zeitschlitz existieren zwei Pfade, die verbunden sind. Daher werden für jeden der zwei Pfade, die in einem bestimmten Zustand verbunden sind, der Hamming-Abstand (Verzweigungsmaß) zwischen dem Empfangssignal und dem Pfad sowie eine Akkumulierungssumme (Zustandsmaß) der bisherigen Zweigmaße addiert und verglichen. Der Pfad mit höherer Wahrscheinlichkeit wird auf Grundlage des Vergleichsergebnisses ausgewählt.
  • Die Normierungsschaltung 703 normiert unter Verwendung eines Verfahrens, gemäß dem das minimale Zustandsmaß vom neuen Zustandsmaßsignal s703, wie es von der ACS-Schaltung 702 oder dergleichen ausgegeben wird, subtrahiert wird, um dadurch einen Wert innerhalb eines voreingestellten Bereichs einzustellen und ihn als normiertes Zustandsmaßsignal s704 auszugeben. Die Zustandsmaß-Speicherschaltung 704 speichert das von der Normierungsschaltung 703 ausgegebene normierte Zustandsmaßsignal s704 und liefert es als Zustandsmaßsignal s705 an die ACS-Schaltung 702 zurück.
  • Die Pfad-Speicherschaltung 705 führt die Decodieroperation gemäß dem Viterbi-Decodierverfahren aus, und sie ist so aufgebaut, dass sie die Fläche der RAMs im Vergleich zum üblichen Pfadspeicher zum Ausführen des Nachfahrverfahrens, wie oben beschrieben, verringert. Bevor die Pfad-Speicherschaltung 705 beschrieben wird, wird nun, um das Verständnis zu erleichtern, die Nachfahroperation beim üblichen Nachfahrverfahren für einen Fall beschrieben, bei dem die Begrenzungslänge beispielsweise 4 beträgt. In der 5 wird der Fall des Nachfahrens ausgehend vom Zustand 01 betrachtet. Zustände mit einer Wahrscheinlichkeit für einen Übergang in den Zustand 001 sind der Zustand 000 und der Zustand 100. '0' wurde dann in den Pfadspeicher eingespeichert, wenn der Pfad seitens des Zustands 000 ausgewählt wurde. '1' (d. h. das höchstsignifikante Bit des Vorzustands) wurde in den Pfadspeicher eingespeichert, wenn der Pfad seitens des Zustands 100 ausgewählt wurde.
  • Selbst im Fall eines Übergangs von einem beliebigen Zustand ist die Eingangsgröße 1, und dies wird durch das geringstsignifikante Bit des Zustands 001 ausgedrückt. Gemäß der obigen Beschreibung reicht es aus, die Nachfahroperation wie folgt auszuführen. Es wird nämlich, wie es in der 6 dargestellt ist, das geringstsignifikante Bit eines Nachfahr-Startzustands zum Starten des Nachfahrvorgangs als Decodierbit verwendet. Die Nummer des nächsten Nachfahrzustands, auf den folgend auf den Nachfahr-Startzustand nachzufahren ist, wird dadurch erzeugt, dass das Bit im Pfadspeicher als höchstsignifikantes Bit für einen Bereich vom höchstsignifikanten Bit bis zum zweitniedrigsten Bit des Nachfahr-Startzustands neu addiert wird. Durch eine solche Operation kann dem ausgewählten Pfad vom Zustand mit dem minimalen Zustandsmaß nachgefahren werden.
  • Damit der Viterbi-Decodierer mit hoher Geschwindigkeit arbeitet, kann der Zugriff auf den RAM nur einmal pro Taktsignal ausgeführt werden. Die Operation der Pfad-Speicherschaltung zum Ausführen einer Decodierung durch einmaligen Zugriff auf jeden RAM wird nun für einen Fall beschrieben, bei dem beispielhaft vier Einzelportspeicher verwendet werden. In der folgenden Beschreibung gelten die Codebegrenzungslänge = 4 und die Beschneidungslänge = 6. In diesem Fall werden als die vier Einzelportspeicher Speicher mit jeweils so vielen Bits, wie es der Anzahl der Zustände (8 Bits in diesem Fall) entspricht, und so vielen Wörtern verwendet, wie es der Beschneidungslänge (in diesem Fall sechs Wörter) entspricht. Die der Anzahl der Zustände entsprechende Pfad-Auswählinformation wird mit jedem Taktsignal von der ACS-Schaltung in den Pfadspeicher eingegeben. In den vier RAMs werden die folgenden vier Rollen (1) bis (4) sequenziell mit jedem Taktsignal (hier sechs Taktsignale) entsprechend der Beschneidungslänge umgeschaltet (siehe die 7A und 7D).
    • (1) Die Pfad-Auswählinformation wird sequenziell geschrieben.
    • (2) Das Nachfahren wird sequenziell auf Grundlage der geschriebenen Pfad-Auswählinformation ausgeführt. Es wird keine Decodierung ausgeführt.
    • (3) Kein Zugriff.
    • (4) Das Nachfahren wird sequenziell ausgehend vom Nachfahrergebnis in (2) ausgeführt und es wird ein Decodierbit ausgegeben.
  • Die Operation jedes RAM auf Grundlage einer derartigen Schaltoperation ist in der 8 dargestellt. Durch die oben genannte Speicheroperation kann ein Viterbi-Decodierer aufgebaut werden, der selbst unter Verwendung von RAMs eine Hochgeschwindigkeits-Decodierung ausführen kann. Gemäß einem derartigen üblichen Nachfahrverfahren kann der Schaltungsumfang im Vergleich zu dem ziemlich verringert werden, gemäß dem das Registerübergangsverfahren ausgeführt wird. Da jedoch 4 RAMs mit so vielen Wörtern, wie sie der Beschneidungslänge entsprechen, erforderlich sind, entspricht die Gesamtanzahl der Wörter der RAMs (Beschneidungslänge) × 4, und es ist immer noch ein großer Schaltungsumfang erforderlich. Daher versucht die Ausführungsform der Erfindung, den Schaltungsumfang der Pfad-Speicherschaltung weiter zu verringern.
  • Unter Bezugnahme auf die 9 wird nun die Pfad-Speicherschaltung 705 bei der Ausführungsform der Erfindung beschrieben. Die Pfad-Speicherschaltung 705 ist eine solche mit drei Doppelport-RAMs für 1-Schreiben und 1-Lesen der Bitanzahl = 8 und der Wortanzahl = 4, und sie führt für die Zeitperiode eines Taktsignals eine dreimalige Nachfahroperation aus, wenn eine Decodierung für die Beschneidungslänge = 6 für einen Code mit der Begrenzungslänge = 4 ausgeführt wird.
  • Von der ACS-Schaltung ausgegebene Pfad-Auswählinformation s102 wird mit jedem Taktsignal entsprechend der Reihenfolge RAM 12 → RAM 11 → RAM 10 RAM 12 → RAM 11 → ... auf Grundlage des von einer Steuerschaltung 101 ausgegebenen Schreibsteuersignals s103 sequenziell in die RAMs eingespeichert. Auf ein von der Steuerschaltung 101 erzeugtes Lesesteuersignal s104 hin wird die Pfad-Auswählinformation mit jedem Taktsignal aus allen RAMs 10, 11 und 12 ausgelesen, und die gelesene Pfad-Auswählinformation s105, s106 und s107 wird in eine Nachfahrschaltung 102 eingegeben.
  • Die Zeitpunkte für die Speicheroperation auf Grundlage der Steuerschaltung 101 sind in der 10 dargestellt. Die Nachfahrschaltung 102 führt entsprechend der von den RAMs 10, 11 und 12 ausgegebenen gelesenen Pfad-Auswählinformation s105, s106 und s107 und der von der Steuerschaltung 101 erzeugten Nachfahrstart-Zustandsinformation s108 eine dreimalige Nachfahroperation aus. Das Ergebnis wird als Nachfahrergebnissignal s109 in die Steuerschaltung s101 eingegeben. Während der Nachfahr-Startzustand mit jeweils Beschneidungslänge/2 Taktsignalen auf Grundlage des Nachfahrergebnissessignals s109 und eines Signals s101 für den Zustand maximaler Wahr scheinlichkeit initialisiert wird, ermittelt die Steuerschaltung s101 den Nachfahr-Startzustand für das nächste Taktsignal.
  • Eine derartige Speicheroperation wird nun unter Bezugnahme auf die 11A bis 11F sowie die 12A bis 12G spezieller erläutert. Die 11A bis 11F und die 12A bis 12G zeigen Schreib/Lese-Operationen für die RAMs 10, 11 und 12 zu kontinuierlichen Zeitpunkten. Wie oben angegeben, sind die drei RAMs Doppelport-RAMs mit der Bitanzahl = 8 und der Wortanzahl = 4. Wegen der Begrenzung des Zeichenraums sind in den 11A bis 11F die Zustände zu den Zeitpunkten 1 bis 6 dargestellt, und in den 12A bis 12G sind die Zustände zu den Zeitpunkten 7 bis 13 dargestellt. Nun wird angenommen, dass alle Adressen in jedem Speicher sequenziell von links her zu 0, 1, 2 und 3 zugeordnet werden. Die Pfad-Auswählinformation wird bis zu den Zeitpunkten 1, 2, 3, ... und 9 sequenziell in jedem RAM eingeschrieben, und hinsichtlich jedes RAM werden zum Zeitpunkt 9 drei Adressen geschrieben.
  • Der Betrieb zum Zeitpunkt 10 und zu folgenden Zeitpunkten ist in der 10 dargestellt. Im Kopftaktsignal in der 10, der dem Zeitpunkt 10 entspricht, wird der Speicherinhalt (drei Pfad-Auswählinformationen 9, 8, 7) aus der Adresse 3 in jedem RAM ausgelesen, und das Nachfahren wird ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 10 in die Adresse 0 im RAM 12 eingeschrieben. In den 11A bis 11F sowie den 12A bis 12G kennzeichnet ein zu einem Lesepfeil hinzugefügtes 't', dass das Nachfahren ausgeführt wird, und 'd' zeigt an, dass das Nachfahren und das Decodieren ausgeführt werden.
  • Beim zweiten Taktsignal in der 10, entsprechend dem Zeitpunkt 11, wird der Speicherinhalt (drei Pfad-Auswählinformationen 6, 5, 4) aus den Adressen 2 in den RAMs ausgelesen, und das Nachfahren wird ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 11 in die Adresse 0 im RAM 11 eingeschrieben. Ferner wird im dem Zeitpunkt 12 entsprechenden dritten Taktsignal in der 10 der Speicherinhalt (Pfad-Auswählinformation 3, 2, 1) aus den Adressen 1 in den RAMs ausgelesen, und das Nachfahren wird ausgeführt. Danach werden die den Pfad-Auswählinformationen 1 bis 9 entsprechenden Decodieroperationen ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 12 in die Adresse 0 im RAM 12 eingeschrieben. Im dem Zeitpunkt 13 entsprechenden vierten Taktsignal in der 10 wird der Speicherinhalt (drei Pfad-Auswählinformationen 10, 11, 12) aus den Adressen 0 in den RAMs ausgelesen, und das Nachfahren und die Initialisierung des Nachfahr-Startzustands werden ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 13 in die Adresse 1 im RAM 12 eingeschrieben.
  • Wie oben angegeben, werden das Decodieren und das Initialisieren des Nachfahr-Startzustands dem darauf folgenden Taktsignal einmal für jeweils drei Taktsignale ausgeführt. Die folgende Pfad-Auswählinformation wird im Umfang einer Adresse bei jedem Taktsignal eingegeben.
  • Andererseits wird die Nachfahrstart-Zustandsinformation s108 auch in einen Ausgangspuffer 103 eingegeben. Im Ausgangspuffer 103 werden die unteren drei Bits der Nachfahrstart-Zustandsinformation s108 nach dem Ausführen des Nachfahrens in einem der Beschneidungslänge entsprechenden Umfang oder mehr als Decodierbits eingespeichert, und sie werden entsprechend der charakteristischen Reihenfolge der Zeitserie umgeordnet. Danach werden sie als Decodierbitsignal s110 ausgegeben. Durch den oben genannten Aufbau kann, hinsichtlich des Zugriffs auf jeden RAM, während der Zugriff auf einem pro Taktsignal gehalten wird, die Gesamtanzahl der Wörter im RAM in der Pfad-Speicherschaltung auf (Beschneidungslänge) × 2 eingestellt werden. Demgemäß kann der Schaltungsumfang des Viterbi-Decodierers verringert werden.
  • Nun wird die Nachfahrschaltung 102 beschrieben. Da das Nachfahren entsprechend der Reihenfolge RAM 10 → RAM 11 → RAM 12 ausgeführt wird, wird die Pfad-Auswählinformation, deren Zustand aus der Pfad-Auswählinformation s105 ausgewählt wird, durch die Nachfahrstart-Zustandsinformation s108 bestimmt. Die Anzahl der Kandidaten der Zustände, die aus den Pfad-Auswählinformationen s106 und s107 auszuwählen sind, kann durch die Nachfahrstart-Zustandsinformation s108 auf zwei bis vier herabgedrückt werden (siehe die 13). Die Nachfahrschaltung 102 wird unter Verwendung dieser Eigenschaft aufgebaut.
  • Die 14 zeigt eine Konstruktion der Nachfahrschaltung 102. Die aus den RAMs 10, 11 und 12 eingegebenen Pfad-Auswählinformationen s105, s106 und s107 werden in Auswählschaltungen 401, 402 bzw. 403 eingegeben. Andererseits wird die Nachfahrstart-Zustandsinformation s107 ebenfalls in die Auswählschaltungen 401, 402 und 403 eingegeben. Die Auswählschaltung 401 wählt die Pfad-Auswählinformation für den nachzufahrenden Zustand aus der Pfad-Auswählinformation s104 entsprechend der Nachfahrstart-Zustandsinformation s107 aus, und sie gibt eine Nachfahrergebnis-Information s104 aus. Die Auswählschaltung 402 wählt die Pfad-Auswählinformation für zwei Zustände mit der Möglichkeit, dass ein Nachfahren erfolgt, aus der Pfad-Auswähl information s105 entsprechend der Nachfahrstart-Zustandsinformation s107 aus und gibt sie als Vor-Nachfahrinformation s402 aus.
  • Die Vor-Nachfahrinformation s402 wird in die Auswählschaltung 404 eingegeben. Die Nachfahrergebnis-Information s401 wird ferner in die Auswählschaltung 404 eingegeben. Die Auswählschaltung 404 wählt die Pfad-Auswählinformation für den nachzufahrenden Zustand entsprechend der Nachfahrergebnis-Information s401 aus und gibt sie als Nachfahrergebnis-Information s403 aus. Die Auswählschaltung 403 wählt die Pfad-Auswählinformation für vier Zustände mit der Möglichkeit, dass ein Nachfahren erfolgt, aus der Pfad-Auswählinformation s106 entsprechend der Nachfahrstart-Zustandsinformation s107 aus und gibt sie als Vor-Nachfahrinformation s404 aus. Die Vor-Nachfahrinformation s404 wird in die Auswählschaltung 405 eingegeben. Die Nachfahrergebnis-Informationen s401 und s403 werden ferner in die Auswählschaltung 405 eingegeben. Die Auswählschaltung 405 wählt die Pfad-Auswählinformation für den nachzufahrenden Zustand entsprechend den Nachfahrergebnis-Informationen s401 und s403 aus und gibt sie als Nachfahrergebnis-Information s405 aus. Schließlich werden die Nachfahrergebnis-Informationen s401, s403 und s405 auf einmal in 3 Bits als Nachfahrergebnis-Signal s101 ausgegeben.
  • Beim oben angegebenen Aufbau der Nachfahrschaltung 102 gemäß der Ausführungsform der Erfindung tritt selbst dann, wenn die Nachfahroperation entsprechend mehreren Vorgängen ausgeführt wird, lediglich eine zwei Stufen von Selektoren entsprechende Verzögerung auf, im Vergleich zum Fall des Ausführens des Nachfahrens für einmal. Die Betriebsgeschwindigkeit beim Decodieren kann kaum beeinträchtigt werden.
  • Die oben genannte Ausführungsform der Erfindung nutzt eine Pfad-Speicherschaltung mit drei Doppelport-RRMs für 1-Schreiben und 1-Lesen, und sie führt das Nachfahren für die Zeitperiode eines Taktsignals dreimal aus. Andererseits ist auch eine andere Ausführungsform der Erfindung unter Verwendung einer Pfad-Speicherschaltung mit anderem Aufbau möglich. Die 15 zeigt den Aufbau der Pfad-Speicherschaltung gemäß einer anderen Ausführungsform der Erfindung. Die Pfad-Speicherschaltung ist eine Schaltung mit vier Einzelport-RAMs (RAM 50, RAM 51, RAM 52 und RAM 53) mit der Bitanzahl = 8 und der Wortanzahl = 3, und sie führt das Nachfahren für eine Zeitperiode eines Taktsignals dreimal aus, wenn ein Decodieren für die Beschneidungslänge = 6 für einen Code der Begrenzungslänge = 4 ausgeführt wird.
  • Pfad-Auswählinformation s502, wie sie von der ACS-Schaltung eingegeben wird, wird mit jedem Taktsignal entsprechend der Reihenfolge RAM 53 → RAM 52 → RAM 51 → RAM 50 → RAM 53 → ... auf ein Schreibsteuersignal s503 hin sequenziell in die RAMs eingespeichert. Hinsichtlich der RAMs 50, 51, 52 und 53 wird die Pfad-Auswählinformation mit jedem Taktsignal auf ein Lesesteuersignal s504 hin aus den drei RAMs ausgelesen, und es wird Pfad-Auswählinformation s505, s506, s507 und s508 ausgegeben. Die Pfad-Auswählinformation s505, s506, s507 und s508 wird in eine Nachfahrschaltung 502 eingegeben. Das Schreibsteuersignal s503 und das Lesesteuersignal s504 werden durch eine Steuerschaltung 501 gebildet und in die RAMs 50, 51, 52 und 53 eingegeben. Das Timing der Speicheroperation auf Grundlage der Steuerschaltung 501 ist in der 16 dargestellt.
  • In der Nachfahrschaltung 502 wird das Nachfahren dreimal entsprechend der von den RAMs 50, 51, 52 und 53 ausgegebenen Pfad-Auswählinformation s505, s506, s507 und s508 und der durch die Steuerschaltung 501 gebildeten Nachfahrstart-Zustandsinformation s509 ausgeführt, und das zugehörige Ergebnis wird als Nachfahrergebnis-Signal s510 in die Steuerschaltung 501 eingegeben. Die Nachfahrschaltung 502 kann dadurch aufgebaut werden, dass z. B. die Auswählschaltungen kombiniert werden, wie sie in der Nachfahrschaltung 104 der in der 14 dargestellten Ausführungsform der Erfindung verwendet sind. In der Steuerschaltung 501 wird der Nachfahr-Startzustand des nächsten Taktsignals erhalten, während der Nachfahr-Startzustand alle (Beschneidungslänge)/2 auf Grundlage des Nachfahrergebnis-Signals s510 und eines Signals s501 für den Zustand maximaler Wahrscheinlichkeit initialisiert wird.
  • Nun wird eine derartige Speicheroperation speziell unter Bezugnahme auf die 17A bis 17F sowie die 18A bis 18G erläutert. Die 17A bis 17F und die 18A bis 18G zeigen Schreib/Lese-Operationen für die RAMs 50, 51, 52 und 53 zu kontinuierlichen Zeiten. Wie oben angegeben, sind diese vier RAMs Einzelport-RAMs mit der Bitanzahl = 8 und der Wortanzahl = 3. Zum Einsparen von Zeichenraum sind die Zustände zu den Zeitpunkten 1 bis 6 in den 17A bis 17F dargestellt, und die Zustände zu den Zeitpunkte 7 bis 13 sind in den 18A bis 18G dargestellt. Nun sei angenommen, dass allen Adressen in jedem Speicher die Werte 0, 1 und 2 entsprechend der Reihenfolge von links her zugeordnet sind. Die Pfad-Auswählinformation wird bis zu den Zeitpunkten 1, 2, 3, ..., 9 sequenziell in jeden RAM eingeschrieben. Zum Zeitpunkt 9 ist Information in zwei Adressen hinsichtlich jedes RAMs eingeschrieben.
  • In der 16 ist die Operation nach dem Zeitpunkt 10, folgend auf den obigen Zustand, dargestellt. Im dem Zeitpunkt 10 entsprechenden Kopftaktsignal in der 16 wird der Speicherinhalt (Pfad-Auswählinformationen 9, 8, 7) aus den Adressen 2 in den drei RAMs (d. h. dem RAM 50, RAM 51, RAM 52) ausgelesen, und das Nachfahren wird ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 10 in die Adresse 0 in einem RAM (d. h. dem RAM 53) eingeschrieben. Der zu einem Lesepfeil hinzugefügte Buchstabe 't' zeigt, dass das Nachfahren ausgeführt wird, und 'd' zeigt, dass das Nachfahren und das Decodieren ausgeführt werden.
  • Im dem Zeitpunkt 11 entsprechenden zweiten Taktsignal der 16 wird der Speicherinhalt (Pfad-Auswählinformation 6, 5, 4) aus den Adressen 2 in den drei RAMs (d. h. dem RAM 50, RAM 51, RAM 53) ausgelesen und das Nachfahren wird ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 11 in die Adresse 0 in einem RAM (d. h. dem RAM 51) eingeschrieben. Die Leseoperation wird in diesem Fall hinsichtlich den Adressen 1 in Bezug auf die zwei RAMs (RAM 50, RAM 51) ausgeführt, und sie erfolgt hinsichtlich der Adresse 2 für den anderen RAM (RAM 53).
  • Ferner wird in dem dem Zeitpunkt 12 entsprechenden dritten Taktsignal in der 16 der Speicherinhalt (Pfad-Auswählinformation 3, 2, 1) aus den Adressen 2 in den drei RAMs (d. h. dem RAM 50, RAM 52, RAM 53) ausgelesen, und das Nachfahren wird ausgeführt. Danach werden die den Pfad-Auswählinformationen 1 bis 9 entsprechenden Decodieroperationen ausgeführt. Gleichzeitig wird die folgende Pfad-Auswählinformation 12 in die Adresse 0 im anderen RAM (d. h. dem RAM 51) eingeschrieben. Die Leseoperation wird in diesem Fall hinsichtlich den Adressen 1 in Bezug auf die zwei RAMs (RAM 52, RAM 53) ausgeführt, und sie wird hinsichtlich der Adresse 0 für den anderen RAM (RAM 51) ausgeführt.
  • Im dem Zeitpunkt 13 entsprechenden vierten Taktsignal in der 16 wird der Speicherinhalt (Pfad-Auswählinformation 10, 11, 12) aus den Adressen 0 in den drei RAMs (d. h. dem RAM 51, RAM 52, RAM 53) ausgelesen, und es werden das Nachfahren und das Initialisieren des Nachfahr-Startzustands ausgeführt. Zum selben Zeitpunkt wird die folgende Pfad-Auswählinformation 13 in die Adresse 0 im anderen RAM (d. h. dem RAM 50) eingeschrieben.
  • Das Decodieren und das Initialisieren des Nachfahr-Startzustands im auf das Decodieren folgenden Taktsignal werden einmal pro drei Taktsignale ausge führt, wie oben angegeben. In jedem der Taktsignale wird die folgende Pfad-Auswählinformation für eine Adresse eingegeben.
  • Andererseits wird die Nachfahrstart-Zustandsinformation s509 auch in einen Ausgangspuffer 503 eingegeben. Der Ausgangspuffer 503 speichert die unteren drei Bits der Nachfahrstart-Zustandsinformation s507, nachdem das Nachfahren über die Beschneidungslänge ausgeführt wurde, als Decodierbits, und er ordnet sie entsprechend der charakteristischen Zeitserie um und gibt sie danach als Decodierbitsignal s511 aus.
  • Wie oben angegeben, kann selbst bei dieser anderen Ausführungsform der Erfindung, hinsichtlich der Zugriffe auf jeden RAM, die Gesamtanzahl der Wörter im RAM des Pfadspeichers auf (Beschneidungslänge) × 2 eingestellt werden, während die Anzahl der Zugriffe auf einmal für jedes Taktsignal eingestellt wird. Entsprechend der Pfad-Speicherschaltung bei der anderen Ausführungsform der Erfindung kann, da nur Einzelportspeicher verwendet werden, der Schaltungsumfang weiter im Vergleich zur Ausführungsform der Erfindung verringert werden, die unter Bezugnahme auf die 9 oder dergleichen oben beschrieben wurde. Ferner kann in der Nachfahrschaltung 502 durch eine Vorabbeschränkung der Anzahl der Kandidaten der Zustände auf ähnliche Art wie bei der Nachfahrschaltung 102 in der Pfad-Speicherschaltung 705 bei der Ausführungsform der Erfindung die Zunahme der Verzögerung minimiert werden.
  • Obwohl die Ausführungsform der Erfindung und die andere Ausführungsform der Erfindung, wie oben angegeben, für den Fall beschrieben wurden, dass Begrenzungslänge = 4 und Beschneidungslänge = 6 gelten, sind die Begrenzungslänge und die Beschneidungslänge nicht auf diese Werte begrenzt, sondern sie können auf wahlfreie Werte eingestellt werden. Obwohl die Ausführungsform und dergleichen der Erfindung beispielhaft für den Fall angegeben wurden, dass der Nachfahrvorgang dreimal pro Taktsignal ausgeführt wird, sind verschiedene Modifizierungen möglich, wie das Ausführen des Nachfahrens viermal pro Taktsignal, mittels einer Konstruktion mit vier Doppelport-RAMs, das Ausführen des Nachfahrvorgangs viermal pro Taktsignal durch einen Aufbau mit fünf Einzelport-RAMs und dergleichen.
  • Wie oben angegeben, kann, gemäß der Erfindung, da ein Nachfahrvorgang mehrmals für eine Zeitperiode eines Taktsignals ausgeführt wird und das Decodieren ausgeführt wird, die Gesamtanzahl der Wörter des RAM in der Pfad-Speicherschaltung verringert werden. Daher ist es möglich, zu einer Ver kleinerung des Schaltungsumfangs der Vorrichtung beizutragen.
  • Da die Anzahl der Zugriffe auf jeden RAM bei jedem Taktsignal den Wert 1 hat und da die Zunahme der Verzögerung durch die vorstehende Konstruktion der Nachfahrschaltung minimiert ist, kann eine Hochgeschwindigkeits-Decodieroperation ausgeführt werden.
  • Daher kann, gemäß der Erfindung, ein Viterbi-Decodierer geschaffen werden, dessen Schaltungsumfang klein ist und der eine Hochgeschwindigkeitsoperation ausführen kann.

Claims (12)

  1. Viterbi-Decodierer zum Decodieren eines empfangenen Datensignals (s701), mit: – einer Addier-Vergleichs-Auswähl-Schaltung (702) zum Berechnen von Zustandsmaßen, zum Vergleichen von Werten der Zustandsmaßen und zum Auswählen eines Pfads maximaler Wahrscheinlichkeit; – einer Pfad-Speicherschaltung (705) mit einer vorbestimmten Anzahl von RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) zum Speichern von Pfad-Auswählinformation (s102, s502) und zum Ausführen der Decodieroperation durch das Nachfahrverfahren, bei dem der Pfad-Auswählinformation (s102, s502) in der Pfad-Speicherschaltung (705) in einem Umfang nachgefahren wird, der durch eine Beschneidungslänge bestimmt ist, und bei dem die Nachfahroperation mehrmals für die Zeitperiode eines Taktsignals ausgeführt wird; dadurch gekennzeichnet, dass – die Pfad-Speicherschaltung (705) die Pfad-Auswählinformation (s102, s502) mit jedem Taktsignal entsprechend einer rotierenden Reihenfolge der RAMs in einen anderen der RRMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) einspeichert.
  2. Vorrichtung nach Anspruch 1, bei der die RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) auf solche Weise gesteuert werden, dass Pfad-Auswählinformation (s102, s502) beim Nachfahren sequenziell aus den RAMs ausgelesen wird.
  3. Vorrichtung nach einem der vorstehenden Ansprüche, bei der dann, wenn die Pfad-Auswählinformation (s102, s502) sequenziell aus der vorbestimmten Anzahl von RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) ausgelesen wird und die Nachfahroperationen ausgeführt werden, die Anzahl der Kandidaten der aus der Pfad-Auswählinformation (s102, s502) auszuwählenden Zustände entsprechend einer Nachfahrstart-Zustandsinformation verringert wird.
  4. Vorrichtung nach einem der vorstehenden Ansprüche, bei der der Pfad-speicher eine vorbestimmte Anzahl von Doppelport-RAMs (RAM10, RAM11, RAM12) für 1-Schreiben und 1-Lesen aufweist und für die Zeitperiode eines Taktsignals eine Anzahl von Nachfahroperationen ausgeführt wird, die der Anzahl der Doppelport-RRMs entspricht.
  5. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der der Pfadspeicher über eine vorbestimmte Anzahl von Einzelport-RAMs (RAM 50, RAM 51, RAM 52, RAM 53) verfügt, und für die Zeitperiode eines Taktsignals eine Anzahl von Nachfahroperationen ausgeführt wird, die um eins kleiner als die Anzahl der Einzelport-RAMs ist.
  6. Vorrichtung nach einem der vorstehenden Ansprüche, bei der die Anzahl der Zugriffe auf jeden RAM in jedem Taktsignal eins ist.
  7. Viterbi-Decodierverfahren zum Berechnen von Zustandsmaßen, zum Vergleichen von Werten der Zustandsmaße und zum Auswählen eines Pfads maximaler Wahrscheinlichkeit bei dem Pfad-Auswählinformation (s102, s502) in eine Pfad-Speicherschaltung (705) mit einer vorbestimmten Anzahl von RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) eingespeichert wird, die Decodieroperation durch das Nachfahrverfahren ausgeführt wird und Nachfahroperationen ausgeführt werden, um der Pfad-Auswählinformation (s102, s502) in einem Umfang nachzufahren, der durch eine Beschneidungslänge bestimmt ist, wobei die Nachfahroperation für die Zeitperiode eines Taktsignals mehrmals ausgeführt wird, gekennzeichnet durch sequenzielles Einspeichern der Pfad-Auswählinformation (s102, s502) mit jedem Taktsignal entsprechend einer rotierenden Reihenfolge der RAMs in einen anderen der RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53).
  8. Verfahren nach Anspruch 7, bei dem im Nachfahrschritt eine Leseoperation sequenziell aus den RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) ausgeführt wird.
  9. Verfahren nach Anspruch 7 oder Anspruch 8, ferner gekennzeichnet durch ein Verringern der Anzahl der aus der Pfad-Auswählinformation (s102, s502) auszuwählenden Kandidaten von Zuständen entsprechend einer Nachfahrstart-Zustandsinformation, wenn die Pfad-Auswählinformation (s102, s502) sequenziell aus der vorbestimmten Anzahl von RAMs (RAM10, RAM11, RAM12, RAM 50, RAM 51, RAM 52, RAM 53) ausgelesen wird und die Nachfahroperationen ausgeführt werden.
  10. Verfahren nach einem der Ansprüche 7 bis 9, bei dem, im Nachfahrschritt, für die Zeitperiode eines Taktsignals eine Anzahl von Nachfahroperationen ausgeführt wird, die der Anzahl der Doppelport-RAMs (RAM10, RAM11, RAM12) für 1-Schreiben und 1-Lesen entspricht.
  11. Verfahren nach einem der Ansprüche 7 bis 9, bei dem, im Nachfahrschritt, für die Zeitperiode eines Taktsignals, eine Anzahl von Nachfahroperationen ausgeführt wird, die um eins kleiner als die Anzahl von Einzel-port-RAMs (RAM 50, RAM 51, RAM 52, RAM 53) ist.
  12. Verfahren nach einem der Ansprüche 7 bis 11, bei dem die Anzahl der Zugriffe auf jeden RAM in jedem Taktsignal eins ist.
DE69819287T 1997-12-19 1998-12-08 Viterbi-Decodierer und Viterbi-Decodierverfahren Expired - Lifetime DE69819287T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP35143597 1997-12-19
JP35143597A JP3747604B2 (ja) 1997-12-19 1997-12-19 ビタビ復号装置

Publications (2)

Publication Number Publication Date
DE69819287D1 DE69819287D1 (de) 2003-12-04
DE69819287T2 true DE69819287T2 (de) 2004-07-22

Family

ID=18417274

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69819287T Expired - Lifetime DE69819287T2 (de) 1997-12-19 1998-12-08 Viterbi-Decodierer und Viterbi-Decodierverfahren

Country Status (7)

Country Link
US (1) US6651215B2 (de)
EP (1) EP0926836B1 (de)
JP (1) JP3747604B2 (de)
KR (1) KR100528424B1 (de)
CN (1) CN1130028C (de)
DE (1) DE69819287T2 (de)
MY (1) MY118800A (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507921A (ja) * 1999-08-16 2003-02-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ トレースバック実行を伴うビタビ復号器システム
US6654929B1 (en) 1999-10-01 2003-11-25 Matsushita Electric Industrial Co., Ltd. Viterbi decoder and Viterbi decoding method
US7225393B2 (en) 1999-10-01 2007-05-29 Matsushita Electric Industrial Co., Ltd. Viterbi decoder and Viterbi decoding method
US6999521B1 (en) * 1999-12-23 2006-02-14 Lucent Technologies Inc. Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques
KR100335146B1 (ko) * 2000-03-09 2002-05-04 서평원 비터비 디코더의 트레이스 백 장치
KR100510640B1 (ko) * 2000-03-09 2005-08-31 엘지전자 주식회사 비터비 디코더의 트래이스 백 장치
US6842490B1 (en) * 2000-10-11 2005-01-11 Feng Qian Viterbi decoder with adaptive traceback
JP3532884B2 (ja) * 2001-05-18 2004-05-31 松下電器産業株式会社 ビタビ復号器
WO2005101669A1 (ja) * 2004-04-07 2005-10-27 Matsushita Electric Industrial Co., Ltd. パスメモリ回路
EP1755228A4 (de) * 2004-05-27 2008-04-16 Matsushita Electric Ind Co Ltd Viterbi-decodierungsvorrichtung und viterbi-decodierungsverfahren
KR100686170B1 (ko) * 2004-11-30 2007-02-23 엘지전자 주식회사 디코딩 장치 및 이를 이용한 디코딩 방법
TWI241072B (en) * 2004-12-09 2005-10-01 Ind Tech Res Inst Prediction device and method applied in a Viterbi decoder
US7607072B2 (en) * 2005-01-28 2009-10-20 Agere Systems Inc. Method and apparatus for-soft-output viterbi detection using a multiple-step trellis
JP4729938B2 (ja) * 2005-02-16 2011-07-20 日本電気株式会社 ビタビ復号器及びそれを用いる移動体通信装置、基地局装置、移動体通信端末
JP4600183B2 (ja) * 2005-06-28 2010-12-15 ソニー株式会社 ビタビ復号装置
US20070230606A1 (en) * 2006-03-31 2007-10-04 Anders Mark A Viterbi traceback
US7697604B2 (en) * 2006-04-17 2010-04-13 Techwell, Inc. Dual pDFE system with forward-backward viterbi
US7697642B2 (en) * 2006-04-17 2010-04-13 Techwell, Inc. Reducing equalizer error propagation with a low complexity soft output Viterbi decoder
US7673224B2 (en) * 2006-09-12 2010-03-02 Agere Systems Inc. Low power viterbi decoder using a novel register-exchange architecture
CN101257313B (zh) * 2007-04-10 2010-05-26 深圳市同洲电子股份有限公司 一种基于fpga实现的解卷积交织器及解卷积交织方法
TW200929259A (en) * 2007-12-31 2009-07-01 Ind Tech Res Inst Memory architecture and operating method for viterbi decoder
JP2010206570A (ja) * 2009-03-04 2010-09-16 Sony Corp 復号装置、復号方法
US8533388B2 (en) * 2009-06-15 2013-09-10 Broadcom Corporation Scalable multi-bank memory architecture
TWI394378B (zh) * 2010-05-17 2013-04-21 Novatek Microelectronics Corp 維特比解碼器及寫入與讀取方法
US10069517B2 (en) 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法
KR0135796B1 (ko) * 1994-11-14 1998-04-27 김광호 비터비복호기에서 트레이스백 수행장치
US5822341A (en) * 1995-04-06 1998-10-13 Advanced Hardware Architectures, Inc. Multiport RAM for use within a viterbi decoder
JPH09266448A (ja) * 1996-03-28 1997-10-07 Sony Corp ビタビ復号化装置およびビタビ復号化方法

Also Published As

Publication number Publication date
EP0926836A3 (de) 2001-03-28
KR100528424B1 (ko) 2006-02-09
EP0926836B1 (de) 2003-10-29
DE69819287D1 (de) 2003-12-04
US20010049809A1 (en) 2001-12-06
JPH11186920A (ja) 1999-07-09
JP3747604B2 (ja) 2006-02-22
CN1130028C (zh) 2003-12-03
KR19990063226A (ko) 1999-07-26
MY118800A (en) 2005-01-31
CN1220523A (zh) 1999-06-23
EP0926836A2 (de) 1999-06-30
US6651215B2 (en) 2003-11-18

Similar Documents

Publication Publication Date Title
DE69819287T2 (de) Viterbi-Decodierer und Viterbi-Decodierverfahren
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
DE2515696C2 (de) Datenverarbeitungssystem
DE19740695C2 (de) Datenspeicher mit Mehrebenenhierarchie
DE60028906T2 (de) Viterbi Dekoder
DE3688640T2 (de) Suchgerät.
DE2163342C3 (de) Hierarchische binäre Speichervorrichtung
DE2646163B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE3209679C2 (de)
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE2145709A1 (de) Datenverarbeitungsanlage
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2353635A1 (de) Datenverarbeitungssystem und verfahren zur datenverarbeitung
DE3144563C2 (de)
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE10128770A1 (de) Verfahren zum Übertragen von Daten in ein Speicherzellenfeld und Schaltungsanordnung
DE2617485B2 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2425574C2 (de) Schaltungsanordnung zur Aus- bzw. Eingabe eines Zeichens aus dem bzw. in den wortorganisierten Speicher einer datenverarbeitenden Anlage
DE60101745T2 (de) Viterbi dekodierung mit pfadmetrikaktualisierung durchgeführt in einheiten von bitscheiben
EP0075893B1 (de) Schaltungsanordnung zum Ausrichten von Speicheroperanden für dezimale und logische Befehle
DE10027097A1 (de) Halbleiterspeichervorrichtung und eine solche Halbleiterspeichervorrichtung verwendender Sensor
DE2459476C3 (de)
DE69206604T2 (de) Schnelle Addierkette.
DE3009121C2 (de) Mikroprogramm-Steuereinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition