-
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.