DE19542131A1 - Viterbi-Decoder - Google Patents

Viterbi-Decoder

Info

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
Application number
DE1995142131
Other languages
English (en)
Other versions
DE19542131B4 (de
Inventor
Min-Joong Rim
Young-Uk Oh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE19542131A1 publication Critical patent/DE19542131A1/de
Application granted granted Critical
Publication of DE19542131B4 publication Critical patent/DE19542131B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/3961Arrangements of methods for branch or transition metric calculation
    • 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
    • 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/4107Sequence 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory 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)
BM₃(t) = 2p+1-2-BM₀(t)
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:
  • - 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:
  • - 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.
DE1995142131 1994-11-14 1995-11-11 Viterbi-Decoder Expired - Fee Related DE19542131B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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