DE19542131A1 - Viterbi-Decoder - Google Patents
Viterbi-DecoderInfo
- Publication number
- DE19542131A1 DE19542131A1 DE1995142131 DE19542131A DE19542131A1 DE 19542131 A1 DE19542131 A1 DE 19542131A1 DE 1995142131 DE1995142131 DE 1995142131 DE 19542131 A DE19542131 A DE 19542131A DE 19542131 A1 DE19542131 A1 DE 19542131A1
- Authority
- DE
- Germany
- Prior art keywords
- value
- unit
- state
- storage unit
- output
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3961—Arrangements of methods for branch or transition metric calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Die Erfindung bezieht sich auf einen Viterbi-Decoder nach dem
Oberbegriff des Anspruchs 1. Ein Viterbi-Decoder ist häufig
ein Herzstück eines Decoders mit Vorwärts-Fehlerkorrektur und
enthält unter anderem eine rückverfolgungsdurchführende Vor
richtung zur Speicherverwaltung.
Jüngere Entwicklungen in der Videokompressionstechnologie ha
ben die Übertragung großer Mengen von Videodaten innerhalb
eines schmalen Bandes ermöglicht und die Bedeutung einer Vor
wärts-Fehlerkorrektur erhöht, bei der die Korrektur von in
einem Kanal eingeführten Fehlern am empfängerseitigen Ende
durchgeführt wird, nachdem redundante Codes in ein Signal am
senderseitigen Ende eingefügt wurden. Da sich ein kleiner
Fehler in einem komprimierten Signal zu einem sehr ernsthaf
ten entwickeln kann, wenn das Signal wiederhergestellt wird,
wird zur Übertragung des komprimierten Signals eine sehr ge
ringe Bitfehlerrate benötigt. Die Verwaltung eines Speichers
in einer Rückverfolgungseinheit, welche den größten Teil ei
ner Chipfläche für den Decoder einnimmt, wird daher zu einem
der wichtigsten Faktoren bei der Realisierung eines Viterbi-
Decoders in Silicium.
Herkömmlicherweise besteht die Schwierigkeit, daß ein Adres
senerzeugungsvorgang der Rückverfolgungseinheit für eine
Speicherbank sehr kompliziert ist und eine globale Querver
bindung existiert, die zur Implementierung in einem höchst
integrierten Schaltkreis (VLSI) nicht geeignet ist. Solche
Schwierigkeiten werden schwerwiegender, wenn die Speicherbank
zwecks Reduzierung der Speicherabmessung und der Decodierdau
er in viele Teile unterteilt wird. Wenn eine spezielle Spei
cherbank hinzugefügt wird, wird der Adressenerzeugungsvorgang
vereinfacht. Jedoch ist es nicht leicht, den Adressenerzeu
gungsvorgang zu vereinfachen, wenn die Abmessung des Spei
chers anwächst.
Der Erfindung liegt als technisches Problem die Bereitstel
lung eines Viterbi-Decoders der eingangs genannten Art zu
grunde, dessen rückverfolgungsdurchführende Vorrichtung für
eine VLSI-Implementierung geeignet ist und mit dem sich der
Vorgang zur Speicheradressenerzeugung ohne eine globale Quer
verbindung bewerkstelligen und damit vereinfachen läßt.
Dieses Problem wird durch einen Viterbi-Decoder mit den Merk
malen des Anspruchs 1 oder 2 gelöst.
Bevorzugte Ausführungsformen der Erfindung sowie deren besse
rem Verständnis dienende herkömmliche Ausführungsbeispiele
sind in den Zeichnungen veranschaulicht und werden nachfol
gend beschrieben. Hierbei zeigen:
Fig. 1 ein Übersichtsblockschaltbild eines üblichen Viterbi-
Decoders,
Fig. 2 eine Ansicht zur Veranschaulichung des Prozesses ei
ner Speicherungsaktivität zur Erläuterung des Vor
gangs einer Rückverfolgungsoperation mit niedriger
Geschwindigkeit in dem in Fig. 1 gezeigten Viterbi-
Decoder,
Fig. 3 eine Ansicht zur Veranschaulichung des Prozesses ei
ner Speicherungsaktivität zur Erläuterung des Vor
gangs einer Rückverfolgungsoperation mit hoher Ge
schwindigkeit in dem in Fig. 1 gezeigten Viterbi-
Decoder,
Fig. 4 eine Ansicht zur Veranschaulichung des Prozesses der
Speicherungsaktivität zur Beschreibung eines rückver
folgungsdurchführenden Vorgangs, wenn die Abmessungen
einer Speicheraktivitätsgruppe und einer Speicherbank
in dem herkömmlichen Viterbi-Decoder hoher Geschwin
digkeit gemäß Fig. 3 auf die Hälfte (L/2) reduziert
sind.
Fig. 5 ein genaueres Blockschaltbild zur Veranschaulichung
einer herkömmlichen Rückverfolgungseinheit zur Durch
führung der in Fig. 4 gezeigten Rückverfolgungsopera
tion,
Fig. 6 eine Ansicht zur Erläuterung eines Verfahrens zum
Kennzeichnen von Adressen der in Fig. 5 gezeigten
Speicherbänke,
Fig. 7 ein genaueres Blockschaltbild einer erfindungsgemäßen
Rückverfolgungseinheit, wenn die Abmessung der Spei
cheraktivitätsgruppe L beträgt,
Fig. 8 ein genaueres Blockschaltbild der erfindungsgemäßen
Rückverfolgungseinheit, wenn die Abmessung der Spei
cheraktivitätsgruppe L/2 beträgt,
Fig. 9 eine Ansicht zur Erläuterung der Adressengenerierung
nach LIFO und FIFO im Fall eines Zwei-Phasen-Taktes
und
Fig. 10 eine Ansicht zur Erläuterung der Adressengenerierung
nach LIFO und FIFO im Fall eines Ein-Phasen-Taktes.
Vor der Beschreibung der erfindungsgemäßen Merkmale werden
zunächst der Aufbau und die Funktionsweise einer herkömmli
chen Rückverfolgungseinheit im Detail erläutert. Der in Fig.
1 gezeigte Viterbi-Decoder besitzt eine Zweigmetrikeinheit
(202), eine Additions-Vergleichs-Auswahl-Einheit (204), eine
Minimalpfadmetrikeinheit (206) und eine Rückverfolgungsein
heit (208). Nachfolgend wird die Betriebsweise des Viterbi-
Decoders mit einer solchen Struktur unter Bezugnahme auf Fig.
1 im Detail beschrieben, wobei die Beeinflussungslänge mit K
bezeichnet wird.
Die Zweigmetrikeinheit (202) berechnet Zweigmaße BM₀(t),
BM₁(t), BM₂(t) und BM₃(t) unter Empfangen eines Paars von
Soft-Decision p-Bits (J₁ und J₂) in einem nicht gezeigten di
gitalen Decoder. Die sich bei der Zweigmaßberechnung für die
Fälle, daß J₁J₂ 00 bzw. 11 ist, sich ergebenden Zweigmaße
sind in Gleichung 1 angegeben, und Gleichung 2 gibt die Be
ziehung zwischen Zweigmaßen an:
00: BM₀ (t) = (2p-1-J₂)+(2p-1-J₁)
01: BM₁(t) = (2p-1-J₁)+J₁
10: BM₂(t) = J₂+(2p-1-J₁)
11: BM₃(t) = J₂+J₁ (1)
01: BM₁(t) = (2p-1-J₁)+J₁
10: BM₂(t) = J₂+(2p-1-J₁)
11: BM₃(t) = J₂+J₁ (1)
BM₃(t) = 2p+1-2-BM₀(t)
BM₂(t) = 2p+1-2-BM₁(t) (2)
BM₂(t) = 2p+1-2-BM₁(t) (2)
Wenn die Berechnung jedes Zweigmaßes beendet ist, berechnet
die Additions-Vergleichs-Auswahl-Einheit (204) ein neues
Pfadmaß unter Verwendung der vier Zweigmaße und eines momen
tanen Zweigmaßes. Dabei ist die Nummer des Pfadmaßes (PMn)
entsprechend der Beeinflussungslänge (K) bzw. der Speicher
nummer (M) des konvolutionellen Codes durch Gleichung 3 wie
folgt gegeben.
PMn = 2K-1 = 2M (3)
Wenn die Berechnung des Pfadmaßes abgeschlossen ist, bestimmt
die Minimalpfadmetrikeinheit (206) einen minimalen Wert des
Pfadmaßes unter Verwendung des berechneten Pfadmaßwertes. Die
Rückverfolgungseinheit (208) speichert 2K-1 Bits an Daten aus
der Additions-Vergleichs-Auswahl-Einheit (204) und einen mi
nimalen Pfad aus der Minimalpfadmetrikeinheit (206), sucht
nach einem überlebenden Pfad unter Verwendung der gespeicher
ten Daten, speichert den gefundenen, überlebenden Pfad und
ermittelt durch Rückverfolgung die decodierten Informations
bits. Das bedeutet, die Rückverfolgungseinheit (208) dient
dazu, Daten in einen Speicher einzuschreiben und aus diesem
auszulesen. Der Speicher der Rückverfolgungseinheit (208) be
stimmt dabei den Aufwand für die Implementierung des Decoders
in dem VLSI-Schaltkreis.
Kurz gesagt liest bzw. schreibt die Rückverfolgungseinheit
(208) hauptsächlich Daten aus bzw. in einen Speicher. Die Er
findung bezieht sich speziell auf das Speichermanagement der
Rückverfolgungseinheit (208) in dem Viterbi-Decoder beim Be
trieb mit hoher Geschwindigkeit (50 Mbps oder mehr). Es folgen
ein paar Annahmen zur einfachen Beschreibung der Erfindung.
- (i) Der Viterbi-Decoder erzeugt eine Ausgabe pro Taktzyklus.
- (ii) Jeder Lese- bzw. Schreibvorgang erfolgt in einem einzel nen Speicher während eines Taktzyklus.
- (iii) Die Eingangs- und Ausgangsbreiten in einem RAM sind gleich groß.
In Fig. 2 bezeichnen die schraffierten Abschnitte Bereiche,
in denen Daten in einem Speicher gespeichert sind, während
die vertikale Achse mit Speicherzeilen (400, 402, 404, 406,
408 und 410) die verstrichene Zeitdauer repräsentiert und die
zugehörigen horizontalen Achsen jeweils den Zustand (S) von
zwei 2K-1 Bits repräsentieren, wobei die Pfeile die Datenspei
cherungsrichtung anzeigen. Das Durchführen der Rückverfolgung
schreitet von der Speicherzeile 400 zur Speicherzeile 410
fort, wobei die Speicherzeilen 400, 402, 404, 406, 408 und
410 ein einmaliges Schreiben, ein einmaliges Rückverfolgen,
ein einmaliges Decodieren, ein einmaliges Schreiben, ein ein
maliges Rückverfolgen bzw. ein einmaliges Decodieren anzei
gen.
Unter der oben angegebenen Annahme wird unter Bezugnahme auf
Fig. 2 der rückverfolgungsdurchführende Vorgang in der Rück
verfolgungseinheit (208) innerhalb des Viterbi-Decoders ge
ringer Geschwindigkeit im Detail beschrieben. Primär lassen
sich die grundlegenden Operationen eines Vorgangs zur Durch
führung von Rückverfolgungen in dem Viterbi-Decoder mit Rück
verfolgungstiefe L wie folgt definieren.
Vorgang 1: Schreiben, d. h. eine Operation zum Schreiben von
Daten aus der Minimalpfadmetrikeinheit (206) in einen Spei
cher.
Vorgang 2: Rückverfolgen, d. h. eine Operation zur Erzeugung
der nächsten Zustandsadresse von den aus dem Speicher ausge
lesenen Daten und einer momentanen Zustandsadresse. Die ur
sprüngliche Zustandsadresse wird extern geliefert.
Vorgang 3: Decodieren, d. h. die gleiche Operation wie die
Rückverfolgung mit der Ausnahme, daß die decodierten Ergeb
nisse ausgegeben werden.
Nachdem ein Schreibvorgang zum Abspeichern der von der Mini
malpfadmetrikeinheit (206) gelieferten Daten durchgeführt
wurde (in Reihe 400 von Fig. 2) wird unter Verwendung der L
gespeicherten Daten und der extern gelieferten Zustandsadres
se L-malig eine Rückverfolgung durchgeführt (Reihe 402).
Nachdem die erhaltenen Ergebnisse unter Verwendung der älte
sten Daten decodiert wurden (Zeile 404), werden die gespei
cherten Daten in dem Speicher gelöscht. Die Speicherzeilen
406, 408 und 410 zeigen eine Wiederholung dieser Vorgänge.
In Fig. 3 repräsentiert die vertikale Achse die verstrichene
Zeitdauer (T), und jede horizontale Achse repräsentiert den
Zustand (S) eines Speichers. Die Pfeile zeigen die Richtungen
an, in welche die Vorgänge durchgeführt werden. Jede Spei
cherbank besteht aus einer Mehrzahl von Teilspeicherbänken.
Jede Teilspeicherbank besitzt L Worte, wobei ein Wort aus 2K-1
Bits besteht. Unter Bezugnahme auf Fig. 3 wird nachfolgend
der rückverfolgungsdurchführende Vorgang in einem üblichen
Viterbi-Decoder hoher Geschwindigkeit beschrieben.
Der rückverfolgungsdurchführende Prozeß in dem Viterbi-
Decoder niedriger Geschwindigkeit gemäß Fig. 2 vermag nicht
in jedem Takt eine Ausgabe bereitzustellen, da zu viele Spei
cheroperationen zur Bereitstellung einer Ausgabe benötigt
werden. Zur Reduzierung von Speicheroperationen führt der Vi
terbi-Decoder hoher Geschwindigkeit, wie in Fig. 3 darge
stellt, mit jedem Ausgabevorgang (L Ausgaben) eines Blocks
einen einmaligen Rückverfolgungsvorgang (L Rückverfolgungen)
durch, wobei die L Vorgänge eine Gruppe bilden. So werden in
der Speicherzeile 600 von Fig. 3 L-malige Schreibvorgänge
(Abschnitt 608), L-malige Rückverfolgungen (Abschnitt 610)
und dann L-malige Decodiervorgänge (Abschnitt 612) durchge
führt. Im Ergebnis erfolgen damit L Schreibvorgänge, L Rück
verfolgungen und L Decodiervorgänge zu L Ausgaben, so daß im
Durchschnitt ein einmaliger Schreibvorgang, eine einmalige
Rückverfolgung und ein einmaliger Decodiervorgang auf eine
Ausgabe kommen. Die Bezugszeichen 602 und 604 veranschauli
chen die simultane Durchführung von Schreiben, Rückverfolgen
und Decodieren, um in aufeinanderfolgenden Takten eine Ausga
be pro Taktzyklus bereitzustellen.
Im Fall einer Reduzierung der Speicherbankabmessung, wie in
Fig. 4 dargestellt, lassen sich die Speicheranforderung und
die Decodierungsverzögerung wie folgt beschreiben. Der in
Fig. 3 gezeigte Vorgang zur Rückverfolgungsdurchführung kann
mit drei Speicherbänken realisiert werden, da das Schreiben
und Decodieren unter gemeinsamer Nutzung einer Speicherbank
erfolgen können. Die Abmessung des Speichers beträgt 3L Worte
ohne einen Stapel(LIFO)-Puffer, wobei die Abmessung der Deco
dierverzögerung einschließlich eines Puffers 4L beträgt. Die
Abmessung der Speicheraktivität und der Decodierverzögerung
kann durch Verringern der Abmessung der Speicheraktivitäts
gruppe reduziert werden. Wenn die Abmessung der Speicherakti
vitätsgruppe reduziert wird, erhöht sich die Anzahl an Spei
cheroperationen. Jedoch kann dadurch, daß die Anzahl von
Speicherbänken erhöht und deren Abmessung verringert wird,
d. h. durch erhöhte Parallelisierung, dieselbe Geschwindigkeit
beibehalten werden. Wenn die Speicherbankabmessung reduziert
wird, werden zwei Rückverfolgungszeiger benötigt (jeder Zei
ger weist auf die Speicheradresse, auf die bei der Rückver
folgung zuzugreifen ist), so daß der Grad an Parallelismus
wächst und die erhöhte Anzahl von Speicheroperationen kompen
siert wird.
In Fig. 4 betragen der Speicherbedarf und die Decodierverzö
gerung 5L/2 bzw. 3L. Wenn die Speicherbankabmessung L/n be
trägt, betragen der Speicherbedarf (2n+1)L/n und die Deco
dierverzögerung 2(n+1)L/n. Mit steigendem n verringern sich
der Speicherbedarf und die Decodierverzögerung, jedoch steigt
der indirekte Aufwand für die Hardware-Implementierung an, da
der Speicher in kleine Abschnitte aufgeteilt wird. Eine in
Fig. 5 gezeigte, herkömmliche Rückverfolgungseinheit (208)
beinhaltet eine Speicherbank 0 (1000), eine Speicherbank 1
(1002), eine Speicherbank 2 (1004), eine Speicherbank 3
(1006), eine Speicherbank 4 (1008), eine Verfolgungslogik 1
(1010), eine Verfolgungslogik 2 (1012), eine Verfolgungslogik
3 (1014) sowie einen LIFO-Puffer (1016).
In Fig. 6 bezeichnen die vertikale und die horizontale Achse
die Zeit (T) bzw. den Zustand (S). Jede gezeigte Reihe be
steht aus 5 Speicherbänken, wobei D und TB einen Decodier-
und Schreibvorgang bzw. einen Rückverfolgungsvorgang bezeich
nen. Bezugnehmend auf die Fig. 5 und 6 werden nachfolgend
die Schwierigkeiten erläutert, wenn Viterbi-Decoder mit nied
riger oder hoher Geschwindigkeit oder solche, die auf hohe
Geschwindigkeit konvertiert sind, zur Durchführung der Rück
verfolgung in einen VLSI-Schaltkreis implementiert werden. Da
über einen in Fig. 5 gezeigten Eingangsanschluß IN1 2K-1 Bits
an Information der Reihe nach von der in Fig. 1 gezeigten Ad
ditions-Vergleichs-Auswahl-Einheit in alle Speicherbänke ein
gegeben werden müssen, sollten alle Speicherbänke an einen
Bus angeschlossen sein. Wenn K=7 gewählt ist, besteht eine
Schwierigkeit darin, daß ein Bus mit 64 Bit verschiedene Teile
eines Chips verbindet. Die Verfolgungslogik 1 (1010) und die
Verfolgungslogik 2 (1012) dienen dazu, die Rückverfolgung
durchzuführen, während die Verfolgungslogik 3 (1014) zur De
codierung dient. Der LIFO-Puffer (1016) kehrt die Ausgaberei
henfolge der Verfolgungslogik (1014) in die normale um, wo
nach die decodierten Informationsbits über einen Ausgangsan
schluß (AUS) abgegeben werden.
Um Daten von den fünf in Fig. 5 gezeigten Speicherbänken zu
lesen bzw. in diese zu schreiben, sollten die Bänke gekenn
zeichnet sein. Das Verfahren zur Kennzeichnung dieser Bänke
wird unter Bezugnahme von Fig. 6 beschrieben. Von den Spei
cherzeilen 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214,
1216 und 1218 in Fig. 6 zeigt jede, wie sich Adressen in den
fünf Bänken ändern. Im Fall der ersten Zeile 1200 werden von
links nach rechts in einer ersten Bank 1220 ein Decodier- und
ein Schreibvorgang durchgeführt. In einer dritten (1222) und
einer fünften Bank (1224) werden von links nach rechts Rück
verfolgungen durchgeführt. Hingegen passiert in der zweiten
und in der vierten Bank nichts. Für die Durchführung der Vor
gänge in der ersten Zeile 1200 wird eine Taktdauer von L/2
benötigt. Die zweite Zeile 1202 zeigt eine Adressenänderung
während des nächsten L/2-Taktes. In diesem Fall wird in der
ersten Bank 1226 eine Rückverfolgung von rechts nach links
durchgeführt. Dies bedeutet, daß sich die Adresse um eine pro
Takt verringert. In der zweiten Bank 1228 und der vierten
Bank werden ein Decodier- und Schreibvorgang bzw. eine Rück
verfolgung durchgeführt. In der dritten und der fünften Bank
stagniert der Betrieb. Die Dauer einer Adressengenerierung in
dieser Weise beträgt 5L. Fig. 6 zeigt die Adressengenerierung
während einer einzigen Periode. Jede Bank sollte zeitabhängig
unterschiedliche Operationen durchführen, und es ist nicht
einfach, diese Speicheradressen zu generieren. Außerdem soll
te eine Adresse für den LIFO-Puffer von Fig. 5 erzeugt wer
den.
In der herkömmlichen Rückverfolgungseinheit liegt der Grund
dafür, daß der Speicheradressenerzeugungsprozeß kompliziert
ist und eine globale Querverbindung existiert, darin, daß
sich die Rolle jeder Speicherbank kontinuierlich ändert. Dem
entsprechend unterscheidet sich die rückverfolgungsdurchfüh
rende, erfindungsgemäße Vorrichtung von der herkömmlichen
Vorrichtung dadurch, daß die Rolle der jeweiligen Speicher
bank unverändert bleibt und Daten entlang der Speicherbänke
transferiert werden.
Während bislang der Betrieb der herkömmlichen Rückverfol
gungseinheit erläutert wurde, wird nun die Struktur und Funk
tionsweise eines erfindungsgemäßen Viterbi-Decoders im Detail
unter Bezugnahme auf die zugehörigen Zeichnungen erläutert.
Die in Fig. 7 gezeigte, erfindungsgemäße Rückverfolgungsein
heit beinhaltet einen LIFO-Puffer 1 (1400), eine Verfolgungs
logik 1 (1402), einen FIFO-Puffer (1404), eine Verfolgungslo
gik 2 (1406) sowie einen LIFO-Puffer 2 (1408). Die in Fig. 8
gezeigte Rückverfolgungseinheit beinhaltet eine erste Spei
chereinheit (1600), eine erste Verfolgungslogikeinheit
(1602), eine zweite Speichereinheit (1604), eine zweite Ver
folgungslogikeinheit (1606), eine dritte Speichereinheit
(1608), eine dritte Verfolgungslogikeinheit (1610) und eine
vierte Speichereinheit (1612).
Für die FIFO- und LIFO-Puffer der Fig. 7 und 8 kann die
Verwendung eines Doppelanschluß-RAM angenommen werden und
entsprechend dieser Annahme ist in diesem Fall die gleichzei
tige Durchführung eines einmaligen Lesevorgangs und eines
einmaligen Schreibvorgangs während eines einzigen Taktes ver
fügbar. Wenn die Abmessung der Speicheraktivitätsgruppe L be
trägt, läßt sich die Betriebsweise für die Rückverfolgung ge
mäß der obigen Struktur unter Bezugnahme auf Fig. 7 primär
wie folgt beschreiben.
Die von der Additions-Vergleichs-Auswahl-Einheit (204) von
Fig. 1 erzeugten Daten werden über einen in Fig. 7 gezeigten
Eingangsanschluß IN1 des LIFO-Puffers 1 (1400) eingegeben, um
in ihrer Reihenfolge umgekehrt und danach an den FIFO-Puffer
(1404) und die Verfolgungslogik 1 (1402) ausgegeben zu wer
den. Die Verfolgungslogik 1 (1402) empfängt ein Ausgabesignal
des LIFO-Puffers 1 (1400) sowie über einen Eingang IN2 einen
momentanen Zustand zur Durchführung eines Rückverfolgungsvor
gangs und erzeugt einen ersten Zustand. Der FIFO-Puffer
(1404) empfängt und decodiert ein Ausgangssignal des LIFO-
Puffers 1 (1400) und führt das Ergebnis der Verfolgungslogik
2 (1406) zu. Die Verfolgungslogik 2 (1406) empfängt Ausgangs
signale des FIFO-Puffers (1404) und der Verfolgungslogik 1
(1402) und gibt einen zweiten Zustand ab. Der LIFO-Puffer 2
(1408) empfängt diesen zweiten Zustand und erzeugt Informati
onsbits, in denen Fehler über eine einzelne Busleitung korri
giert sind.
Wenn die Abmessung der Speicheraktivitätsgruppe L/2 beträgt
und die Beeinflussungslänge K ist, wird die von der Additi
ons-Vergleichs-Auswahl-Einheit (204) übertragene Information
mit 2K-1 Bits im Fall von Fig. 8 über einen Eingangsanschluß
IN1 in die erste Speichereinheit (1600) eingespeichert. Die
Information, deren Reihenfolge durch die erste Speicherein
heit (1600) umgekehrt wird, die als ein Speicher zur Durch
führung einer LIFO-Operation ausgeführt sein kann, wird zu
einer zweiten Speichereinheit (1604), die als ein Speicher
zur Durchführung der nachfolgenden FIFO-Operation ausgelegt
sein kann, übertragen und gleichzeitig in die erste Verfol
gungslogikeinheit (1602) eingespeist. Die erste Verfolgungs
logikeinheit (1602) berechnet den nächsten Zustand in jeder
gleichmäßigen Periode unter Verwendung der von der ersten
Speichereinheit (1600) gelieferten Daten und eines momentanen
Zustandswertes, der über einen Eingang IN2 von einer nicht
gezeigten Optimalzustandserkennungseinheit empfangen wird.
Die Eingangssignale und Ausgangssignale der ersten Verfol
gungslogikeinheit (1602) und der zweiten Verfolgungslogikein
heit (1606) bzw. das Eingangssignal der dritten Verfolgungs
logikeinheit (1610) besitzen jeweils eine Länge von K-1 Bits.
Das Ausgangssignal der zweiten Speichereinheit (1604) wird
der dritten Speichereinheit (1608), die als ein Speicher zur
Durchführung einer FIFO-Operation ausgelegt sein kann, und
gleichzeitig der zweiten Verfolgungslogikeinheit (1606) zuge
führt, welche die Rückverfolgungsoperation durchführt. Die
dritte Verfolgungslogikeinheit (1610) gibt einen dritten Zu
stand in Abhängigkeit von den empfangenen Ausgangssignalen
der dritten Speichereinheit (1608) und der zweiten Verfol
gungslogikeinheit (1606) ab. Die vierte Speichereinheit
(1612), die als ein Speicher zur Durchführung einer LIFO-
Operation unter Empfang des Ausgangssignals der dritten Ver
folgungslogikeinheit (1610) ausgelegt sein kann, vervollstän
digt den Decodiervorgang, indem sie die Sequenz der Eingabe
bits in die richtige Reihenfolge bringt. Die vierte Spei
chereinheit (1612) beinhaltet ein RAM mit einer Anzahl von
L/2+1 Ein-Bit-Informationen.
Wie in den Fig. 9 und 10 dargestellt, ist die Adressener
zeugung durch die LIFO- und FIFO-Puffer sehr einfach. Genauer
gesagt erhöht sich im Fall des FIFO-Puffers einfach ein Zähl
wert, wobei ein Modulo-Konzept verwendet wird, bei dem konti
nuierlich die Null auf den maximalen Wert folgt. Im Fall des
LIFO-Puffers beginnt sich der Wert des Zählers zu verringern,
wenn er den maximalen Wert erreicht, und wenn der sich ver
ringernde Wert den Minimalwert erreicht, beginnt sich der
Wert wieder zu erhöhen.
Wie oben beschrieben, hat die erfindungsgemäße Rückverfol
gungseinheit bei Verwendung desselben Betrags an Speicher und
der Benötigung derselben Verfolgungslogik wie die herkömmli
che Rückverfolgungseinheit die Auswirkung, den Aufwand für
die Implementierung des Viterbi-Decoders in einem VLSI-
Schaltkreis dadurch zu verringern, daß die Chipfläche insge
samt reduziert und die Implementierung in dem VLSI-Schalt
kreis vereinfacht und leichter gemacht wird, da die Adres
senerzeugung für einen Speicher einfach ist und keine globale
Querverbindung existiert.
Claims (2)
1. Viterbi-Decoder mit rückverfolgungsdurchführender Vorrich
tung, der in einen VLSI-Schaltkreis implementierbar ist und
eine Zweigmetrikeinheit zur Bestimmung von Zweigmaßwerten
nach Empfang eines Bit-Datenstroms zur Fehlerkorrektur im
Bit-Datenstrom, eine Additions-Vergleichs-Auswahl-Einheit zur
Bestimmung von neuen Pfadmaßwerten aus momentanen Pfadmaßwer
ten entsprechend der Zweigmaßwerte, eine Minimalpfadmetrik
einheit zur Bestimmung eines minimalen Pfadmaßwertes unter
den neuen Pfadmaßwerten und zum temporären Speichern des er
mittelten Wertes sowie eine Rückverfolgungseinheit aufweist,
welche die neuen Pfadmaßwerte und den minimalen Pfadmaßwert
empfängt und einen überlebenden Pfad zum Auffinden decodier
ter Bits ermittelt, wobei eine Beeinflussungslänge von K ein
schließlich Optimalzustanddetektionsmitteln zur Erzeugung
eines momentanen Zustandswertes für jede einheitliche Zeit
periode und eine Abmessung einer Speicheraktivitätsgruppe von
L gegeben ist,
dadurch gekennzeichnet, daß
die rückverfolgungsdurchführende Vorrichtung folgende Elemen te enthält:
dadurch gekennzeichnet, daß
die rückverfolgungsdurchführende Vorrichtung folgende Elemen te enthält:
- - eine erste Speichereinheit (1400) zum Empfangen und Spei chern der neuen Pfadmaßwerte und des minimalen Pfadmaßwertes und zur Ausgabe derart, daß ein zuerst eingegebener Wert spä ter und ein später eingegebener Wert zuerst ausgegeben wer den,
- - eine erste Verfolgungslogikeinheit (1402) zum Empfangen der Ausgangssignale der ersten Speichereinheit sowie des minima len Pfadmaßwertes und zur Erzeugung eines ersten Zustands, welcher den nächsten zu verfolgenden Zustand bildet,
- - eine zweite Speichereinheit (1404) zum Empfangen und Spei chern der Ausgangssignale der ersten Speichereinheit und zur Ausgabe derart, daß ein zuerst eingegebener Wert und ein spä ter eingegebener Wert später ausgegeben werden,
- - eine zweite Verfolgungslogikeinheit (1406) zum Empfangen der Ausgangssignale der zweiten Speichereinheit sowie des er sten Zustands und zur Erzeugung eines zweiten Zustands, wel cher den nächsten zu verfolgenden Zustand bildet, und
- - eine dritte Speichereinheit (1408) zum Empfangen und Spei chern des zweiten Zustands und zur Ausgabe derart, daß ein zuerst eingegebener Wert später und ein später eingegebener Wert zuerst ausgegeben werden, um so die decodierten Bits zu erhalten.
2. Viterbi-Decoder mit rückverfolgungsdurchführender Vorrich
tung, der in einen VLSI-Schaltkreis implementierbar ist und
eine Zweigmetrikeinheit zur Bestimmung von Zweigmaßwerten
nach Empfang eines Bit-Datenstroms zur Fehlerkorrektur im
Bit-Datenstrom, eine Additions-Vergleichs-Auswahl-Einheit zur
Bestimmung von neuen Pfadmaßwerten aus momentanen Pfadmaßwer
ten entsprechend der Zweigmaßwerte, eine Minimalpfadmetrik
einheit zur Bestimmung eines minimalen Pfadmaßwertes unter
den neuen Pfadmaßwerten und zum temporären Speichern des er
mittelten Wertes sowie eine Rückverfolgungseinheit aufweist,
welche die neuen Pfadmaßwerte und den minimalen Pfadmaßwert
empfängt und einen überlebenden Pfad zum Auffinden decodier
ter Bits ermittelt, wobei eine Beeinflussungslänge von K ein
schließlich Optimalzustanddetektionsmitteln zur Erzeugung
eines momentanen Zustandswertes für jede einheitliche Zeit
periode und eine Abmessung einer Speicheraktivitätsgruppe von
L/2 gegeben ist,
dadurch gekennzeichnet, daß
die rückverfolgungsdurchführende Vorrichtung folgende Elemen te enthält:
dadurch gekennzeichnet, daß
die rückverfolgungsdurchführende Vorrichtung folgende Elemen te enthält:
- - eine erste Speichereinheit (1400) zum Empfangen und Spei chern der neuen Pfadmaßwerte und des minimalen Pfadmaßwertes und zur Ausgabe derart, daß ein zuerst eingegebener Wert spä ter und ein später eingegebener Wert zuerst ausgegeben wer den,
- - eine erste Verfolgungslogikeinheit (1602) zum Empfangen der Ausgangssignale der ersten Speichereinheit sowie des mini malen Pfadmaßwertes und zur Erzeugung eines ersten Zustands, welcher den nächsten zu verfolgenden Zustand bildet,
- - eine zweite Speichereinheit (1604) zum Empfangen und Spei chern der Ausgangssignale der ersten Speichereinheit und zur Ausgabe derart, daß ein zuerst eingegebener Wert und ein spä ter eingegebener Wert später ausgegeben werden,
- - eine zweite Verfolgungslogikeinheit (1606) zum Empfangen der Ausgangssignale der zweiten Speichereinheit sowie des er sten Zustands und zur Erzeugung eines zweiten Zustands, wel cher den nächsten zu verfolgenden Zustand bildet,
- - eine dritte Speichereinheit (1608) zum Empfangen und Spei chern der Ausgangssignale der zweiten Speichereinheit und zur Ausgabe derart, daß ein zuerst eingegebener Wert zuerst und ein später eingegebener Wert später ausgegeben werden,
- - eine dritte Verfolgungslogikeinheit (1610) zum Empfangen der Ausgangssignale der dritten Speichereinheit sowie des zweiten Zustands und zur Erzeugung eines dritten Zustands, welcher den nächsten zu verfolgenden Zustand bildet, und
- - eine vierte Speichereinheit (1612) zum Empfangen und Spei chern des dritten Zustands und zur Ausgabe derart, daß der zuerst eingegebene Wert später und der später eingegebene Wert zuerst ausgegeben werden, um so die decodierten Bits zu erhalten.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR94-29806 | 1994-11-14 | ||
KR1019940029806A KR0135796B1 (ko) | 1994-11-14 | 1994-11-14 | 비터비복호기에서 트레이스백 수행장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19542131A1 true DE19542131A1 (de) | 1996-05-15 |
DE19542131B4 DE19542131B4 (de) | 2005-07-07 |
Family
ID=19397847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1995142131 Expired - Fee Related DE19542131B4 (de) | 1994-11-14 | 1995-11-11 | Viterbi-Decoder |
Country Status (6)
Country | Link |
---|---|
US (1) | US5712880A (de) |
JP (1) | JP3293731B2 (de) |
KR (1) | KR0135796B1 (de) |
DE (1) | DE19542131B4 (de) |
SG (1) | SG50369A1 (de) |
TW (1) | TW278287B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19755372C2 (de) * | 1997-02-24 | 2000-06-08 | Samsung Electronics Co Ltd | Verfahren zur Bestimmung des Bereiches einer Datenfehlerkorrektur |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2996615B2 (ja) * | 1996-01-08 | 2000-01-11 | 松下電器産業株式会社 | ビタビ復号装置及びその方法 |
KR100212836B1 (ko) * | 1996-06-14 | 1999-08-02 | 전주범 | 비터비 디코더의 트레이스백 진행 구조 |
GB9622540D0 (en) * | 1996-10-30 | 1997-01-08 | Discovision Ass | Trackback for viterbi decoder |
US6263473B1 (en) | 1997-04-07 | 2001-07-17 | Matsushita Electric Industrial Co., Ltd. | Viterbi decoder and Viterbi decoding method |
US6205186B1 (en) * | 1997-09-03 | 2001-03-20 | Qualcomm Incorporated | Decoding with partial state information on a convolutionally encoded channel |
JP3747604B2 (ja) * | 1997-12-19 | 2006-02-22 | ソニー株式会社 | ビタビ復号装置 |
WO2001013524A1 (en) * | 1999-08-16 | 2001-02-22 | Koninklijke Philips Electronics N.V. | Viterbi-decoder system with trace-back implementation |
US6601215B1 (en) * | 2000-02-01 | 2003-07-29 | Agere Systems Inc. | Traceback buffer management for VLSI Viterbi decoders |
BR0309218A (pt) * | 2002-04-17 | 2005-02-09 | Thomson Licensing Sa | Algoritmo de gerenciamento de memória para decodificadores de treliças |
US7564930B1 (en) * | 2002-08-05 | 2009-07-21 | Altera Corporation | Method and apparatus for implementing a traceback processor for trellis decoding in a Viterbi decoder |
US8185810B1 (en) * | 2007-04-13 | 2012-05-22 | Link—A—Media Devices Corporation | Low power viterbi trace back architecture |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5349608A (en) * | 1993-03-29 | 1994-09-20 | Stanford Telecommunications, Inc. | Viterbi ACS unit with renormalization |
EP0656712A1 (de) * | 1993-11-16 | 1995-06-07 | AT&T Corp. | Viterbi-Entzerrer mit "Traceback" variabler länge |
US5533065A (en) * | 1993-12-28 | 1996-07-02 | At&T Corp. | Decreasing length tracebacks |
US5513139A (en) * | 1994-11-04 | 1996-04-30 | General Instruments Corp. | Random access memory with circuitry for concurrently and sequentially writing-in and reading-out data at different rates |
-
1994
- 1994-11-14 KR KR1019940029806A patent/KR0135796B1/ko not_active IP Right Cessation
-
1995
- 1995-11-08 TW TW84111854A patent/TW278287B/zh not_active IP Right Cessation
- 1995-11-11 DE DE1995142131 patent/DE19542131B4/de not_active Expired - Fee Related
- 1995-11-13 SG SG1995001817A patent/SG50369A1/en unknown
- 1995-11-14 JP JP29582795A patent/JP3293731B2/ja not_active Expired - Fee Related
- 1995-11-14 US US08/557,539 patent/US5712880A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19755372C2 (de) * | 1997-02-24 | 2000-06-08 | Samsung Electronics Co Ltd | Verfahren zur Bestimmung des Bereiches einer Datenfehlerkorrektur |
Also Published As
Publication number | Publication date |
---|---|
TW278287B (de) | 1996-06-11 |
KR0135796B1 (ko) | 1998-04-27 |
DE19542131B4 (de) | 2005-07-07 |
KR960020492A (ko) | 1996-06-17 |
JPH08251038A (ja) | 1996-09-27 |
US5712880A (en) | 1998-01-27 |
JP3293731B2 (ja) | 2002-06-17 |
SG50369A1 (en) | 1998-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69420470T2 (de) | Echtzeitfaltungskodierer mit Blocksynchronisationsfunktion | |
EP0229246B1 (de) | Verfahren zum Dekodieren von Binärsignalen sowie Viterbi-Dekoder und Anwendungen | |
DE69333460T2 (de) | Arithmetisches Gerät | |
DE60028906T2 (de) | Viterbi Dekoder | |
EP0301161B1 (de) | Verfahren zur Aufbereitung eines Faltungscodes zur Übertragung sowie dessen empfangsseitige Rückwandlung sowie Anordnung hierzu | |
DE69935357T2 (de) | Vorrichtung zur Faltungsverschachtelung | |
DE19542131B4 (de) | Viterbi-Decoder | |
DE10133595A1 (de) | Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder | |
DE3586291T2 (de) | Zeitbasiskorrektionsschaltung. | |
DE69819287T2 (de) | Viterbi-Decodierer und Viterbi-Decodierverfahren | |
EP0306713B1 (de) | Verfahren und Anordnung zur Aufbereitung von Daten | |
DE69305371T2 (de) | Verfahren zur Maximalwahrscheinlichkeitsdekodierung mit unterabgetastetem Dekodierungstrellis und entsprechende Dekodierungsvorrichtung | |
DE112004002008T5 (de) | Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme | |
DE69619356T2 (de) | Verfahren und Vorrichtung zur Kodierung/Dekodierung von digitalen Informationen | |
DE69425313T2 (de) | Viterbi-Entzerrer mit Rechenleistungsparendem Trace-Back-Verfahren | |
DE3689282T2 (de) | CRC-Rechenmaschine und Methode zur CRC-Berechnung. | |
DE69130717T2 (de) | Maximalwahrscheinlichkeitssequenzdetektor | |
DE10010238C2 (de) | Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer | |
EP0769853B1 (de) | Logischer Block für einen Viterbi-Decoder | |
EP0380509A1 (de) | Messverfahren und messeinrichtung zur störungsanalyse digitaler übertragungswege. | |
DE2933830C2 (de) | Programmierbarer Polynomgenerator | |
EP0439649B1 (de) | Einrichtung zur Fehlermustergenerierung bei Soft-Decision-Decodierung von Blockcodes | |
DE3122763A1 (de) | Schaltungsanordnung zur demodulation eines digitaleninformationssignals | |
DE3017830A1 (de) | Datenfehler-korrektursystem | |
DE69914241T2 (de) | Addier- Vergleichs- Auswahl- Schaltung für einen Viterbi Dekodierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8128 | New person/name/address of the agent |
Representative=s name: PATENTANWAELTE RUFF, WILHELM, BEIER, DAUSTER & PAR |
|
8110 | Request for examination paragraph 44 | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |