DE60028906T2 - Viterbi Dekoder - Google Patents

Viterbi Dekoder Download PDF

Info

Publication number
DE60028906T2
DE60028906T2 DE60028906T DE60028906T DE60028906T2 DE 60028906 T2 DE60028906 T2 DE 60028906T2 DE 60028906 T DE60028906 T DE 60028906T DE 60028906 T DE60028906 T DE 60028906T DE 60028906 T2 DE60028906 T2 DE 60028906T2
Authority
DE
Germany
Prior art keywords
path
metrics
state
memory
viterbi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60028906T
Other languages
English (en)
Other versions
DE60028906D1 (de
Inventor
Yukihiro Kyoto-shi Sasagawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60028906D1 publication Critical patent/DE60028906D1/de
Application granted granted Critical
Publication of DE60028906T2 publication Critical patent/DE60028906T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft allgemein einen Viterbi-Decoder, der zum Decodieren von Faltungscodes mittels maximaler Wahrscheinlichkeit benutzt wird.
  • Ein Viterbi-Decoder wird benutzt zum Decodieren von Faltungscodes mittels maximaler Wahrscheinlichkeit, wobei aus einer Mehrzahl von bekannten Codesequenzen von möglichen Eingabecodesequenzen eine Codefrequenz als Codefrequenz maximaler Wahrscheinlichkeit (Pfad maximaler Wahrscheinlichkeit) ausgewählt wird, die gemäß einer Codedistanz am nächsten bei der liegt, die der Faltungscodierer erzeugt hat, und basierend auf der daher in dieser Weise ausgewählten Information werden decodierte Daten erhalten. Die Viterbi-Decodierung besitzt eine große Tauglichkeit zum Korrigieren von zufälligen Fehlern, die in einem Kommunikationskanal auftreten und ermöglicht es, einen besonders hohen Codierungsgewinn in Kombination mit einem soft decision-Decodierungssystem zu erhalten. Zum Beispiel in einem mobilen Kommunikationssystem, in welchem sich Bit-Fehler beträchtlich auf die Kommunikationsqualität auswirken und welches dazu neigt, von Interferenzwellen leicht beeinträchtigt zu werden, werden Faltungscodes als fehlerkorrigierende Codes benutzt und Viterbi-Decodierung zum Decodieren dieser Codes eingesetzt.
  • Dieser Viterbi-Decodierungsalgorithmus wird kurz beschrieben. Angenommen sei beispielsweise ein Faltungscode mit einer Coderate R = 1/2 und einer Bedingungslänge K = 3, dessen erzeugende Polynome durch die folgenden Formeln gegeben sind. G0(D) = 1 + D2 G1(D) = 1 + D + D2
  • 9 zeigt ein strukturelles Beispiel eines Faltungscodierers zum Erzeugen eines solchen Codes. In 9 werden Informationsbits als Eingabedaten sequenziell mittels zweier Verzögerungselemente 901 und 902, wie z. B. Flip-Flops oder dergleichen, verzögert. Die Eingabedaten und Daten von dem Verzögerungselement 902 werden mittels eines Addierers 903 addiert, was dann als eine Ausgabe G0 ausgegeben wird. Die Eingabedaten und Daten von dem Verzögerungselement 901 werden mittels eines Addierers 904 addiert und dann werden Daten von dem Addierer 904 und Daten von dem Verzögerungselement 902 mittels eines Addierers 905 addiert, was dann als Ausgabe G1 ausgegeben wird.
  • Wenn die Inhalte der entsprechenden Verzögerungselemente 901 und 902 in einem solchen Codierer mit S[1] und S[0] bezeichnet werden, können die Zustände S[1:0] des Codierers vier Zustände (00), (01), (10) und (11) umfassen. Es gibt immer zwei mögliche Übergangszustände bezüglich einer Eingabe.
  • Mit anderen Worten, im Fall einer Eingabe "0" wird ein aktueller Zustand, wenn er (00) oder (01) ist, einem Übergang zu dem Zustand (00) unterworfen, und wenn der aktuelle Zustand (10) oder (11) ist, wird er einem Übergang zu dem Zustand (01) unterworfen. Im Fall einer Eingabe "1" wird der aktuelle Zustand, wenn er (00) oder (01) ist, einem Übergang zu dem Zustand (10) unterworfen und wenn der aktuelle Zustand (10) oder (11) ist, wird er einem Übergang zu dem Zustand (11) unterworfen.
  • Als Verfahren zum Illustrieren solcher Zustandsübergänge wird ein Trellisdiagramm benutzt und solche Zustandsübergänge werden mittels eines in 10 gezeigten Trellisdiagramms illustriert. In 10 bezeichnen Pfeile (Zweige) aus durchgezogenen Linien Übergänge im Falle einer Eingabe "0" und Zweige aus gestrichelten Linien bezeichnen Übergänge im Falle einer Eingabe "1". Die entlang der entsprechenden Zweige angegebenen Ziffern sind Codes (G0, G1), die auf die Übergänge der entsprechenden Zweige hin ausgegeben werden.
  • Wie aus 10 ersichtlich ist, werden zwei Zweige beim Übergang zu den entsprechenden Zuständen unweigerlich konfluent. In dem Viterbi-Deeodierungsalgorithmus wird eine Kombination (ein Pfad) von Zweigen maximaler Wahrscheinlichkeit (am wahrscheinlichsten) von den jeweils zwei einen der jeweiligen Zu stände erreichenden Zweige ausgewählt und Information (ein Pfadauswahlsignal) des daher ausgewählten Pfades (eines überlebenden Pfades) wird in einem Speicher gespeichert. Die Pfadauswahl wird so lange durchgeführt, bis eine vorbestimmte Pfadlänge erreicht ist und dann wird der überlebende Pfad maximaler Wahrscheinlichkeit basierend auf dem Inhalt des Pfadauswahlsignalspeichers gesucht (zurückverfolgt). Basierend auf der Änderung der jeweiligen Zustände maximaler Wahrscheinlichkeit, die durch das Zurückverfolgen erhalten werden, wird dem Faltungscodierer eingegebene Information decodiert.
  • Der Viterbi-Decoder zum Decodieren von Faltungscodes, der auf einem solchen Viterbi-Algorithmus basiert, umfasst im Grunde eine Zweigmetrikberechnungseinrichtung, eine Addieren-Vergleichen-Auswählen-Operationseinrichtung ACS, einen Pfadmetrikspeicher, einen Pfadauswahlsignalspeicher und eine Zurückverfolgungseinrichtung. Die Zweigmetrikberechnungseinrichtung berechnet Codedistanzen (Zweigmetriken) zwischen Eingabecodesequenzen und in entsprechenden Zweigen vorhergesagten Codesequenzen. Die ACS-Operationseinrichtung berechnet akkumulierte Werte (Pfadmetriken) von entsprechende Zustände erreichenden Zweigmetriken und wählt überlebende Pfade aus. Der Pfadmetrikspeicher speichert die Pfadmetriken der entsprechenden Zustände und der Pfadauswahlsignalspeicher speichert Information des ausgewählten Pfades. Die Zurückverfolgungseinrichtung sucht überlebende Pfade maximaler Wahrscheinlichkeit basierend auf dem Inhalt des Pfadauswahlsignalspeichers.
  • In der oben genannten ACS-Operationseinheit werden die überlebenden Pfade in entsprechenden Zuständen gemäß eines sogenannten Pfadmetrikübergangsdiagramms ausgewählt, und die Pfadmetrik der überlebenden Pfade werden berechnet. Dieses Pfadmetrikübergangsdiagramm wird basierend auf dem wie in 10 gezeigten Trellisdiagramm erstellt.
  • Die 11A und 11B zeigen Pfadmetrikübergangsdiagramme, wenn durch das in 10 gezeigte Trellisdiagramm bezeichnete Codes benutzt werden. D. h., in dem in 10 gezeigten Trellisdiagramm gibt es zwei Pfade, die im Zustand (00) konfluent werden, von denen einer durch eine Ausgabe eines Codes (00) vom Zustand (00) erzeugt wird, und von denen der andere, einen Code (11) vom Zustand (01) erzeugt. Daher ist die Pfadmetrik PM00(neu) im aktuellen Zustand (00) durch eine der beiden folgenden Formeln ausgedrückt: PM00(neu)a = PM00(alt) + BM00 PM00(neu)b = PM01(alt) + BM11,wobei PM00(alt) und PM01(alt) Pfadmetriken von vorangegangenen Zuständen bezeichnend und BM00 und BM11 Zweigmetriken.
  • Mit anderen Worten wird ein Wert maximaler Wahrscheinlichkeit von zwei Pfadmetriken PM00(neu)a und PM00(neu)b während der ACS-Operation ausgewählt und die daher gewählte Pfadmetrik wird als die Pfadmetrik PM00(neu) des aktuellen Zustands (00) bestimmt.
  • Es gibt zwei Pfade, die im Zustand (10) konfluent werden, von denen einer durch eine Ausgabe eines Codes (11) vom Zustand (00) erzeugt wird und von denen der andere einen Code (00) vom Zustand (01) erzeugt. Daher ist die Pfadmetrik PM10(neu) im aktuellen Zustand durch eine der beiden folgenden Formeln ausgedrückt. PM10(neu)a = PM00(alt) + BM11 PM10(neu)b = PM01(alt) + BM00
  • Weiterhin gibt es zwei Pfade, die im Zustand (01) konfluent werden, von denen einer durch eine Ausgabe eines Codes (01) vom Zustand (10) erzeugt wird und von denen der andere einen Code (10) vom Zustand (11) erzeugt. Daher ist die Pfadmetrik PM01(neu) in aktuellem Zustand durch eine der beiden folgenden Formeln ausgedrückt. PM01(neu)a = PM10(alt) + BM01 PM01(neu)b = PM11(alt) + BM10
  • Weiterhin gibt es zwei Pfade, die im Zustand (11) konfluent werden, von denen einer als eine Ausgabe eines Codes (10) vom Zustand (10) erzeugt wird und von denen der andere einen Code (01) vom Zustand (11) erzeugt. Daher ist die Pfad metrik PM11(neu) im aktuellen Zustand durch eine der beiden folgenden Formeln ausgedrückt. PM11(neu)a = PM10(alt) + BM10 PM11(neu)b = PM11(alt) + BM01
  • Basierend auf dem Vorstehenden kann das Pfadmetrikübergangsdiagramm, wie es in den 11A und 11B gezeigt ist, erstellt werden.
  • Wie aus den vorstehenden Formeln und den in den 11A und 11B gezeigten Pfadmetrikübergangsdiagrammen erkennbar ist, besteht der Unterschied zwischen PM00(neu) und PM10(neu) nur in der Übereinstimmung zwischen PMxx(alt) und BMxx, wenn BM11 und BM00 zu PM00(alt) und PM01(alt) addiert werden.
  • Gleichermaßen besteht der Unterschied zwischen PM01(neu und PM11(neu) auch nur in der Übereinstimmung zwischen PMxx(alt) und BMxx, wenn BM01 und BM10 zu PM10(alt) und PM11(alt) addiert werden.
  • Weiterhin stehen die beiden PMxx(alt) in jedem vorstehend beschriebenen Fall in der Beziehung von benachbarten geradzahligen und ungeradzahligen Zuständen und die beiden PMxx(neu) stehen in der Beziehung von oberen und unteren Zuständen, in welchem sich nur die am meisten signifikanten Bits voneinander unterscheiden.
  • Diese Tatsachen zeigen, dass die beiden PMxx(neu) mit der Beziehung von oberen und unteren Zuständen aus den beiden BMxx und den beiden PMxx(alt) mit der Beziehung von benachbarten geradzahligen und ungeradzahligen Zuständen berechnet werden können.
  • Als nächstes ist die folgende Beschreibung auf das Pfadauswahlsignal und entsprechende Zustandsübergänge gerichtet. In der vorstehenden Beschreibung besitzen das Paar von als aktuelle Zustände zu bestimmende Pfadmetriken die Beziehung, dass nur das am wenigsten signifikante Bit ihrer vorangegangenen Zustände voneinander verschieden sind. Darauf basierend wird Pfadmetrikauswahl information gemäß maximaler Wahrscheinlichkeit (Pfadauswahlsignale) der entsprechenden Zustände mit PS00(neu), PS01(neu), PS10(neu) und PS11(neu) bezeichnet und die Beziehungen zwischen ihren Werten und Pfadmetrikauswahlen werden wie folgt angenommen. PSxx(neu) = 0 → PMxx(neu)a wird ausgewählt. PSxx(neu) = 1 → PMxx(neu)b wird ausgewählt.
  • In diesem Fall sind die Werte der entsprechenden PSxx(neu) gleich denen der am wenigsten signifikanten Bits der zugehörigen Zustände zu dem vorangegangenen Zeitpunkt.
  • Mit anderen Worten wird, wenn ein Zustand zu einem Zeitpunkt n mit S(n) bezeichnet wird und ein Pfadauswahlsignal in dem Zustand S mit PS(S), die Beziehung zwischen den entsprechenden Zuständen zu den Zeitpunkten n und n-1 und dem Pfadauswahlsignal wie folgt ausgedrückt. S(n-1) = {S(n), PS(S)}
  • In der obigen Formel bezeichnet {a, b} eine Operation des Konkatenierens von b an die Seite des am wenigstens signifikanten Bits von a und des Löschens eines Teils der Seite des signifikantesten Bits von a mit einer Breite, die der Bitbreite von b entspricht.
  • Solche Tatsachen zeigen, dass der vorangegangene Zustand eines bestimmten Zustandes aus dem Pfadauswahlsignal des bestimmten Zustandes bestimmt werden kann.
  • Aus der vorstehenden Formel können in dem Fall, in dem der Zustand maximaler Wahrscheinlichkeit zu einem Zeitpunkt n bestimmt wird, wenn eine vorbestimmte Anzahl von Pfadauswahlsignalen gespeichert ist, die Zustände, die in der Vergangenheit ausgewählt worden sind, aus den Werten des Pfadauswahlsignals zu entsprechenden Zeitpunkten bestimmt werden. Diese Operation wird mit "Zurückverfolgen" bezeichnet und ein Beispiel ist in 12 gezeigt.
  • In manchen Fällen kann, um den Zustand maximaler Wahrscheinlichkeit zu einem Zeitpunkt n zu bestimmen, ein Verfahren verwendet werden, in welchem ein zusätzliches Bild (ein Endbit) zu einem Informationsbit hinzugefügt wird, damit der Zustand des Codierers am Ende der Faltungscodesequenz auf einen vorbestimmten Zustand (beispielsweise 00 oder ähnliches) konvergiert.
  • Wie zu Beginn dieser Beschreibung beschrieben, werden die Zustandsübergänge in dem Faltungscodierer durch sukzessive Eingaben von Informationsbits zu den Verzögerungselementen hervorgerufen. Daher bedeutet die Bestimmung der Zustandsübergänge mittels Zurückverfolgens zu den vergangenen Zuständen die direkte Bestimmung der Informationsbits.
  • Mittels der vorstehend geschilderten Prozesse können die Informationsbits durch Viterbi-Decodierung aus der empfangenen Codesequenz dekodiert werden.
  • In einem konventionellen Viterbi-Decoder ist es bekannt, dass die ACS-Operation im Zeitteilverfahren ausgeführt wird und ein RAM (Speicher mit wahlfreiem Zugriff) als Pfadmetriksprecher zum Speichern einer aus einem Resultat einer ACS-Operation erhaltenen Pfadmetrik benutzt wird. In einem solchen Viterbi-Decoder wird die Pfadmetrik, die aus einem Resultat der ACS-Operation erhalten wird, und die für eine ACS-Operation zu einem nachfolgenden Zeitpunkt zu benutzen ist, einer Adresse des RAM zugewiesen. Mit anderen Worten wird eine Pfadmetrik eines Zustandes einer Adresse in einem RAM zugewiesen.
  • In diesem Fall ist es erforderlich, da eine neue Pfadmetrik aus Pfadmetriken von zwei vergangenen Zuständen erzeugt wird, dreimal pro ACS-Operation auf den Speicher zuzugreifen, um zwei vergangene Pfadmetriken auszulesen und eine neue Pfadmetrik zu schreiben. Sogar bei Benutzung einer sogenannten "Dualport-RAM" zum getrennten und nebenläufigen Ausführen des Schreibens und Auslesens wird das Auslesen zweimal benötigt. Daher sind viele Speicherzugriffe nötig und ein schneller RAM wird benötigt, wodurch die Stromverbrauchsreduktion und ein Steigern der Geschwindigkeit behindert wird.
  • Als ein weiteres verbessertes Verfahren offenbart JP 9-232973 A ein Berechnungsverfahren, in welchem, basierend auf der Tatsache, dass die beiden PMxx(neu) mit einer Beziehung von oberen und unteren Zuständen aus den beiden BMxx und den beiden PMxx(alt) mit einer Beziehung von benachbarten geradzahligen und ungeradzahligen Zuständen wie vorstehend beschrieben berechnet werden können, zwei Pfadmetriken ausgelesen und zwei auszugebende Pfadmetriken berechnet werden. In diesem Verfahren sind zwei Speicher für die oberen Grade bzw. die unteren Grade der Pfadmetriken vorgesehen und eine Anordnung zum Auslesen benachbarter gerader und ungerader Zahlen der Pfadmetriken zu einem Zeitpunkt ist vorgesehen, wodurch daher zwei Pfadmetriken durch einmaliges Auslesen und einmaliges Schreiben berechnet werden.
  • In diesem Verfahren ist es jedoch notwendig, zwei Pfadmetrikspeicher für die ACS-Operation bereitzustellen. Im Allgemeinen steigen die Schaltkreisgröße und Schaltkreisfläche, wenn ein Speicher geteilt wird, um mehrere Speicher mit derselben Kapazität zu liefern, was einen Nachteil hinsichtlich der Stromverbrauchsreduktion nach sich zieht.
  • Als nächstes ist die folgende Beschreibung auf das Zurückverfolgen gerichtet. Angesichts der Tatsache, dass der vorangegangene Zustand eines bestimmten Zustandes aus einem Pfadauswahlsignal eines bestimmten Zustandes wie vorstehend beschrieben bestimmt werden kann, ist in 13 eine Konfiguration gezeigt, die zum Ausführen des Zurückverfolgens benutzt wird, indem ermöglicht wird, dass Pfadauswahlsignale für n Zustände (z. B. 16 Zustände = 1 Wort) in einer Adresse eines Speichers (eines Pfadauswahlsignalspeichers), der die Pfadauswahlsignale speichert, gespeichert werden können.
  • In dieser Konfiguration ist es wichtig, dass eine Adresse eines Pfadauswahlsignalspeichers durch einen Viterbi-Zustand bestimmt wird, und weiterhin kann der nächste Viterbi-Zustand aus einem aus dem Speicher ausgelesenen Pfadauswahlsignal bestimmt werden. Mit anderen Worten müssen die Bestimmung einer Adresse und ein Speicherzugriff während einer Verarbeitungseinheit (einem Zyklus) ausgeführt werden. Allgemein werden Operationsverzögerungen in dem Speicher wie in 13B bezeichnet. Die Operationsverzögerungen umfassen anfangs eine durch Verdrahtung hervorgerufene Adressverzögerung, die mit Verzögerung A bezeichnet ist, als nächstes eine Ausgabeverzögerung im Speicher und eine durch Verdrahtung hervorgerufene Datenverzögerung, die als Verzöge rung C bezeichnet sind. Diese Operationsverzögerungen sind im allgemeinen eher lang.
  • Daher wird die obere Grenze der Geschwindigkeit der Zurückverfolgungsoperation wie in 13C gezeigt bestimmt. Zusätzlich zu den oben beschriebenen Verzögerungen A und C sind Verzögerungen B und D aufgenommen, die einen Auswähler zum Extrahieren eines Pfadauswahlsignals für einen Zustand aus einem aus dem Pfadauswahlsignalspeicher ausgelesenen Wort betreffen. Unter Beachtung der Einrichtzeit eines Schieberegisters zum Speichern von Viterbi-Zuständen wird die obere Grenze für die Operationsgeschwindigkeit in Abhängigkeit einer längeren Verzögerung aus den beiden folgenden Verzögerungen bestimmt.
    • (1) Verzögerung um den Pfadauswahlsignalspeicher herum: Verzögerung A + Verzögerung C + Verzögerung D
    • (2) Verzögerung um den Auswähler herum: Verzögerung B + Verzögerung D
  • Wie aus dem Vorstehenden ersichtlich ist, ist die Verzögerung um den Pfadauswahlsignalspeicher herum länger als die andere, was die Geschwindigkeit der Operation begrenzt und daher eine Schwierigkeit beim Zurückverfolgen mit hoher Geschwindigkeit verursacht.
  • Um dieses Problem zu lösen, gibt es ein Verfahren, in welchem eine Hochgeschwindigkeitsoperation unter Benutzung einer Registerdatei als Pfadauswahlsignalspeicher oder ähnliches erreicht wird. Jedoch verursacht ein solches Verfahren ein Ansteigen der Schaltkreisgröße und -fläche und einen Nachteil beim Versuch, Stromverbrauch zu reduzieren.
  • Ein Viterbi-Decoder, der ein Routing-Netzwerk zum Routen von alten Pfadmetriken zu den Eingabelokalspeichern von Addieren-Vergleichen-Auswählen-Operationsabschnitten verwendet, ist in "Area-efficient architectures for the Viterbi algorithm-Part I: Theory", IEEE Trans. on Communications, Vol. 41, No. 4, April 1993, Seiten 636–644, und "Area-efficient architectures for the Viterbi algorithm-Part II: Applications", IEEE Trans. on Communications, Vol. 41, No. 5, Mai 1993, Seiten 802–807, geschrieben von Shung C.B. et al., offenbart. Die unabhängigen Ansprüche sind über diese Dokumente gekennzeichnet.
  • Die vorliegende Erfindung beabsichtigt, einen Viterbi-Decoder zur Verfügung zu stellen, in welchem unter Benutzung von konventionellen Speichern, wie z. B. RAM oder ähnlichen für einen Pfadmetrikspeicher und einen Pfadauswahlsignalspeicher, eine ACS-Operation mit einer reduzierten Anzahl von Speicherzugriffen und ein Zurückverfolgen mit hoher Geschwindigkeit ausgeführt wird. Daher kann eine Reduktion des Stromverbrauchs und ein Steigern der Geschwindigkeit einer Viterbi-Decodieroperation erreicht werden.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Viterbi-Decoder wie in Anspruch 1 beansprucht zur Verfügung gestellt. Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Verfahren zur Viterbi-Decodierung in einem Viterbi-Decoder wie in Anspruch 6 beansprucht zur Verfügung gestellt.
  • Um die vorstehend genannte Aufgabe zu lösen, umfasst ein ferner offenbarter Viterbi-Decoder einen Zweigmetrikoperationsabschnitt, einen Addieren-Vergleichen-Auswählen-Operationsabschnitt (ACS), einen Pfadmetrikpermutationsabschnitt und einen Pfadmetrikspeicher. Der Zweigmetrikoperationsabschnitt berechnet Zweigmetriken basierend auf Eingabecodes. Der ACS-Operationsabschnitt berechnet Pfadmetriken von entsprechenden Zuständen im Zeitteilverfahren, basierend auf den Zweigmetriken, die durch den Zweigmetrikoperationsabschnitt berechnet werden. Der Pfadmetrikpermutationsabschnitt verzögert vorläufig die Pfadmetriken, die sequenziell von dem ACS-Operationsabschnitt berechnet und von diesem ausgegeben werden, und permutiert die Pfadmetriken, um Zeitreihen zu haben, die verschieden sind von denen der Pfadmetriken, die von dem ACS-Operationsabschnitt ausgegeben werden. Der Pfadmetrikspeicher speichert Pfadmetriken, die von dem Pfadmetrikpermutationsabschnitt ausgegeben werden.
  • In dem ferner offenbarten Viterbi-Decoder ist es wünschenswert, dass der Pfadmetrikspeicher Pfadmetriken von benachbarten geradzahligen Zuständen und Pfadmetriken von benachbarten ungradzahligen Zuständen als eine Speichereinheit pro Adresse speichert, ausliest und schreibt.
  • In dem ferner offenbarten Viterbi-Decoder ist es wünschenswert, dass der Pfadmetrikpermutationsabschnitt vorläufig Zeitreihen von mehreren Paaren von Pfadmetriken von oberen Zuständen und Pfadmetriken von unteren Zuständen, die von dem ACS-Operationsabschnitt berechnet werden, verzögert und die Pfadmetriken permutiert, um Zeitreihen von mehreren Paaren von Pfadmetriken von benachbarten geradzahligen Zuständen und Pfadmetriken von benachbarten ungeradzahligen Zuständen zu erhalten.
  • In dem ferner offenbarten Viterbi-Decoder ist es wünschenswert, dass bei Benutzen des Pfadmetrikpermutationsabschnitts zum vorläufigen Verzögern von Zeitreihen von mehreren Paaren von Pfadmetriken von oberen Zuständen und Pfadmetriken von unteren Zuständen, die von dem ACS-Operationsabschnitt berechnet werden, und beim Permutieren der Pfadmetriken, um Zeitreihen von mehreren Paaren von Pfadmetriken von benachbarten geradzahligen Zuständen und Pfadmetriken von benachbarten ungeradzahligen Zuständen zu erhalten, vier Pfadmetriken mittels zweimaligen Auslesens und zweimaligen Schreibens, allein mit Bezug auf den Pfadmetrikspeicher aktualisiert werden.
  • In dem ferner offenbarten Viterbi-Decoder ist es wünschenswert, dass der ACS-Operationsabschnitt auch einen Pfad maximaler Wahrscheinlichkeit auswählt in Kombination mit eine Pfadmetrik zu einem vorangegangenen Zeitpunkt und ein Pfadauswahlsignal erzeugt als Information des daher ausgewählten Pfades, (eines überlebenden Pfades), wobei der ferner offenbarte Viterbi-Decoder weiterhin einen Pfadauswahlsignalspeicher zum Speichern des Pfadauswahlsignals umfasst und einen Zurückverfolgungsoperationsabschnitt zum Suchen vergangener Zustandsübergänge unter Benutzung eines vergangenen Pfadauswahlsignals, das aus dem Pfadauswahlsignalspeicher ausgelesen wird, und zum Ausgeben dekodierter Daten, und wobei der Zurückverfolgungsoperationsabschnitt einen Viterbi-Zustandsspeicher umfasst zum Speichern eines Viterbi-Zustandes, der dem überlebenden Pfad folgt, der auf dem Pfadauswahlsignal, welches von dem Pfadauswahlspeicher erhalten wird, basiert, einen Viterbi-Zustandsvorhersageabschnitt zum Vorhersagen eines Teils des Viterbi-Zustandes, der als nächstes ba sierend auf Inhalten des Viterbi-Zustandspeichers zu aktualisieren ist, und einen Pfadauswahlsignalspeicheradressenberechnungsabschnitt zum Berechnen einer Adresse des Pfadauswahlssignalspeichers, der das Pfadauswahlsignal speichert, das auf dem Teil des Viterbi-Zustandes basiert, der durch den Viterbi-Zustandsvorhersageabschnitt vorhergesagt wird.
  • Es ist auch wünschenswert, dass der Viterbi-Zustandsvorhersageabschnitt einen Auf-/Abzähler zum Wechseln eines Zustandes gemäß einem ausgelesenen Steuersignal des Pfadauswahlsignalsspeichers und eines Umschaltsteuersignals des Viterbi-Zustandspeichers umfasst und einen Auswähler zum Ändern einer Übereinstimmung zwischen dem Inhalt des Viterbi-Zustandspeichers und dem Teil des Viterbi-Zustandes, der als nächstes gemäß einem Wert des Auf-/Abzählers zu aktualisieren ist.
  • Weiterhin ist es wünschenswert, dass Parallelverarbeitung in mindestens einer Stufe benutzt wird, die ausgewählt wird aus einer Stufe, in der der Pfadauswahlsignalspeicheradressenberechnungsabschnitt eine Adresse berechnet, die auf dem Teil des Viterbi-Zustandes basiert, der von dem Viterbi-Zustandsvorhersageabschnitt vorhergesagt wird, einer Stufe, in der basierend auf der daher berechneten Adresse das Pfadauswahlsignal aus dem Pfadauswahlsignalspeicher ausgelesen wird, und einer Stufe, in der basierend auf dem daher ausgelesenen Pfadauswahlsignal der Viterbi-Zustand, der dem überlebenden Pfad folgt, in dem Viterbi-Zustandsspeicher gespeichert wird.
  • Ein Viterbi-Decoder einer anderen Ausführungsform der vorliegenden Erfindung umfasst einen Zweigmetrikoperationsabschnitt, einen Addieren-Vergleichen-Auswählen-Operationsabschnitt (ACS), einen Pfadmetrikpermutationsabschnitt, einen gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher, einen Zurückverfolgungsoperationsabschnitt und einen Adressengenerierungs-/Speichersteuerabschnitt. Der Zweigmetrikoperationsabschnitt berechnet auf Eingabecodes basierende Zweigmetriken. Der ACS-Operationsabschnitt berechnet vorzugsweise ferner Pfadmetriken von jeweiligen Zuständen im Zeitteilverfahren, basierend auf den Zweigmetriken, die von dem Zweigmetrikoperationsabschnitt berechnet werden, wählt einen Pfad maximaler Wahrscheinlichkeit aus in Kombination mit einer Pfadmetrik zu einem vorangegangenen Zeitpunkt, und erzeugt ein Pfadaus wahlsignal als Information des daher ausgewählten Pfades maximaler Wahrscheinlichkeit (eines überlebenden Pfades). Der Pfadmetrikpermutationsabschnitt verzögert vorzugsweise ferner vorläufig Pfadmetriken, die sequenziell durch den ACS-Operationsabschnitt berechnet und von diesem ausgegeben werden, und permutiert die Pfadmetriken, um Zeitreihen zu haben, die verschieden sind von denen der Pfadmetriken, die von dem ACS-Operationsabschnitt ausgegeben werden. Der gemeinsame Pfadmetrik-/Pfadauswahlsignalspeicher speichert Pfadmetriken und Pfadauswahlsignale. Der Zurückverfolgungsoperationsabschnitt sucht einen vergangenen Zustandsübergang, indem er ein vergangenes Pfadauswahlsignal benutzt, das aus dem gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher ausgelesen wird, und gibt dekodierte Daten aus. Der Zurückverfolgungsoperationsabschnitt umfasst einen Viterbi-Zustandsspeicher zum Speichern eines Viterbi-Zustandes, der dem überlebenden Pfad folgt, der auf dem Pfadauswahlsignal basiert, welches von dem gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher erhalten wird, einen Viterbi-Zustandsvorhersageabschnitt zum Vorhersagen eines Teils eines Viterbi-Zustandes, der als nächstes basierend auf Inhalten des Viterbi-Zustandspeichers zu aktualisieren ist, und einen Pfadauswahlsignalspeicheradressenberechnungsabschnitt zum Berechnen einer Adresse des Pfadauswahlsignalspeichers, der das Pfadauswahlsignal speichert, das auf dem Teil des Viterbi-Zustandes basiert, welcher durch den Viterbi-Zustandvorhersageabschnitt vorhergesagt wird. Der Adressengenerierungs-/Speichersteuerabschnitt empfängt Pfadmetriken von dem Pfadmetrikpermutationsabschnitt und das Pfadauswahlsignal von dem ACS-Operationsabschnitt, erzeugt und schreibt eine spezifische Adresse mit Bezug auf den gemeinsamen Pfadmetrik/Pfadauswahlsignalspeicher, liest die Pfadmetrik und das Pfadauswahlsignal aus, die in dem gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher gespeichert sind, und führt die Pfadmetrik dem ACS-Operationsabschnitt und das Pfadauswahlsignal dem Zurückverfolgungsoperationsabschnitt zu. Der ACS-Operationsabschnitt, der Pfadmetrikoperationsabschnitt und der Zurückverfolgungsabschnitt greifen auf den gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher im Zeitteilverfahren mittels des Adressengenerierungs-/Speichersteuerabschnitts zu.
  • Gemäß der oben erwähnten Konfiguration wird die ACS-Operation in dem Viterbi-Decoder im Zeitteilverfahren ausgeführt und die Folgen von Pfadmetrikzuständen, die in dem Pfadmetrikspeicher oder dem gemeinsamen Pfadmetrik-/Pfad auswahlsignalspeicher zu schreiben sind, werden unter Benutzung des Pfadmetrikpermutationsausschnitts geändert. Zusätzlich wird in dem Viterbi-Decoder das Pfadauswahlsignal aus dem Pfadauswahlsignalspeicher oder dem gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher unter Benutzung des Viterbi-Zustandsvorhersageabschnitts mittels Parallelverarbeitung ausgelesen, wobei dadurch die Zurückverfolgungsoperation ausgeführt wird. Als ein Ergebnis wird die Anzahl der Speicherzugriffe in der ACS-Operation reduziert und die Zurückverfolgungsoperation kann mit hoher Geschwindigkeit ausgeführt werden, wodurch ein Reduzieren des Stromverbrauchs und ein Beschleunigen des Viterbi-Decodierprozesses ermöglicht wird.
  • Mit anderen Worten wird die ACS-Operation in dem Viterbi-Decoder im Zeitteilverfahren ausgeführt und die Folgen von Pfadmetrikzuständen, die in dem Pfadmetrikspeicher zu schreiben sind, werden unter Benutzung des Pfadmetrikpermutationsabschnitts verändert. Daher können bei Benutzung eines Speichers vier Pfadmetriken mittels viermaligem Speicherzugriffs berechnet werden. Folglich kann die Anzahl von Speicherzugriffen, die pro Prozess in der ACS-Operation benötigt wird, reduziert werden, die Viterbi-Decodieroperation kann beschleunigt und der Stromverbrauch reduziert werden.
  • Weiterhin ist der Viterbi-Zustandsvorhersageabschnitt in dem Zurückverfolgungsoperationsabschnitt in dem Viterbi-Decoder vorgesehen, um das Auslesen aus dem Pfadauswahlsignalspeicher mittels Parallelverarbeitung auszuführen. Daher kann, während ein konventioneller Speicher, wie z. B. ein RAM oder dergleichen, als der Pfadauswahlsignalspeicher benutzt wird, eine Zurückverfolgungsoperation von hoher Geschwindigkeit erreicht werden, wodurch die Viterbi-Decodieroperation beschleunigt und der Stromverbrauch reduziert wird.
  • Überdies ist ein Adressengenerierungs-/Speichersteuerabschnitt vorgesehen, so dass ein RAM von dem ACS-Operationsabschnitt, dem Pfadmetrikoperationsabschnitt und dem Zurückverfolgungsoperationsabschnitt geteilt wird. Folglich wird ein Viterbi-Decoder erhalten, in dem die Benutzung des RAM minimiert wird.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung und andere, nur zu Illustrationszwecken offenbarte Anordnungen, werden nun nur beispielhaft und mit Bezug auf die begleitenden Zeichnungen beschrieben, in welchen:
  • 1 ein Blockdiagramm darstellt, das eine schematische Konfiguration eines Viterbi-Decoders gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 2A ein Blockdiagramm darstellt, welches Konfigurationen eines ACS-Operationsabschnitts und eines Pfadmetrikpermutationsabschnitts zeigt;
  • 2B ein Ablaufdiagramm darstellt, welches Operationen der entsprechenden in 2A gezeigten Abschnitte zeigt;
  • 3A ein Blockdiagramm darstellt, welches ein spezifisches Konfigurationsbeispiel einer Zurückverfolgungsoperation zeigt;
  • 3B ein Ablaufdiagramm darstellt, welches Betriebsverzögerungen von entsprechenden in 3A gezeigten Signalen zeigt;
  • 3C ein schematisches Diagramm darstellt, welches Betriebsverzögerungen zeigt, die die obere Grenze einer Geschwindigkeit der in 3A gezeigten Zurückverfolgungsoperation bestimmen;
  • 4 ein Diagramm darstellt, welches das Prinzip eines Nächster-Viterbi-Zustandvorhersageabschnitt zeigt;
  • 5A ein Blockdiagramm darstellt, welches ein Konfigurationsbeispiel des Nächster-Viterbi-Zustandvorhersageabschnitt zeigt;
  • 5B eine Tabelle darstellt, welche die Beziehung eines Pfadauswahldatenlesesignals, eines Schieberegisterschiebesignals und eines Wertes des Auf-/Abzählers 502 zeigt;
  • 5C eine Tabelle darstellt, die die Beziehung eines Wertes des Auf-/Abzählers 502 und einer Wortadresse, die durch den Auswählen 501 ausgewählt wird, zeigt;
  • 6 ein Ablaufdiagramm darstellt, das die Zurückverfolgungsoperation zeigt;
  • 7 ein Blockdiagramm darstellt, das eine schematische Konfiguration eines Viterbi-Decoders zeigt, worin ein RAM von jeweiligen Operationen geteilt wird, gemäß einer anderen Ausführungsform der vorliegenden Erfindung;
  • 8 ein Ablaufdiagramm darstellt, welches Operationen des Teilens eines RAM zwischen den jeweiligen Operationsabschnitten zeigt;
  • 9 ein Blockdiagramm darstellt, das ein Beispiel eines Faltungscodierers zeigt;
  • 10 ein Trellisdiagramm zum Erklären der Viterbi-Decodierung darstellt;
  • 11A und 11B Pfadmetrikübergangsdiagramme zum Erklären der Viterbi-Decodierung darstellen;
  • 12 ein Zustandsübergangsdiagramm zum Erklären der Zurückverfolgungsoperation darstellt;
  • 13A ein Blockdiagramm darstellt, das ein spezifisches Konfigurationsbeispiel einer konventionellen Zurückverfolgungsoperation zeigt;
  • 13B ein Ablaufdiagramm darstellt, das Betriebsverzögerungen entsprechender in 13A gezeigte Signale zeigt;
  • 13C ein schematisches Diagramm darstellt, das Betriebsverzögerungen zeigt, die die obere Grenze einer Geschwindigkeit der in 13A gezeigten Zurückverfolgungsoperation zeigt.
  • Bevorzugte Ausführungsformen gemäß der vorliegenden Erfindung werden wie folgt mit Bezug auf die Zeichnungen beschrieben.
  • 1 stellt ein Blockdiagramm dar, das eine schematische Konfiguration eines Viterbi-Decoders gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Im Allgemeinen wählt bei Benutzung eines Viterbi-Algorithmus ein Viterbi-Decoder eine Kombination (einen Pfad) von Zweigen maximaler Wahrscheinlichkeit, (wahrscheinlichsten), die aus zwei entsprechenden Zweigen von entsprechenden Zuständen ausgewählt werden, um einen überlebenden Pfad auszuwählen, so lange, bis seine vorbestimmte Länge erreicht wird, und detektiert einen Pfad maximaler Wahrscheinlichkeit aus den in den jeweiligen Zuständen ausgewählten Pfaden, wodurch empfangene Codes dekodiert werden.
  • Wie in 1 gezeigt, umfasst ein Viterbi-Decoder zum Dekodieren von Faltungscodes basierend auf einem solchen Viterbi-Algorithmus im Grunde eine Zweigmetrikoperationsabschnitt 102, einen ACS- (Addieren-Vergleichen-Auswählen) Operationsabschnitt 103, einen Pfadmetrikpermutationsabschnitt 104, einen Pfadmetrikspeicher 105, einen Pfadausweissignalspeicher 106 und einen Zurückverfolgungsoperationsabschnitt 107. Der Zweigmetrikoperationsabschnitt 102 berechnet Zweigmetriken zwischen Folgen von von einem Terminal 101 empfangenen Daten (empfangene Folgen) und den oben erwähnten entsprechenden Zweigen. Der ACS-Operationsabschnitt 103 wählt überlebende Pfade aus und berechnet Pfadmetriken von den überlebenden Pfaden. Der Pfadmetrikpermutationsabschnitt 104 schiebt vorläufig die Pfadmetriken auf, die sequenziell von dem ACS-Operationsabschnitt 103 berechnet und ausgegeben werden und permutiert die Pfadmetriken, um Zeitreihen zu haben, die verschieden sind von denen der Pfadmetriken, die von dem ACS-Operationsabschnitt 103 ausgegeben werden. Der Pfadmetrikspeicher 105 speichert Pfadmetriken von entsprechenden Zuständen. Der Pfadauswahlsignalspeicher 106 speichert Informationen von ausgewählten Pfaden (Pfadauswahlsignale). Der Zurückverfolgungsoperationsabschnitt 107 sucht einen vergangenen Zustandsübergang und Benutzung vergangener Pfadausweichsignale, die aus dem Pfadauswahlsignalspeicher 106 ausgelesen werden und gibt dekodierte Daten über ein Terminal 108 aus.
  • Als erstes wird eine ACS-Operation in dem ACS-Operationsabschnitt 103 wie folgt beschrieben.
  • Die folgende Beschreibung ist auf ein spezifisches Beispiel von Faltungscodierung und Viterbi-Decodierung gerichtet, wenn die Bedingungslänge K = 9 ist und eine Coderate R = 1/2. Bei einer Bedingungslänge K = 9 beträgt die Anzahl der Zustände 2K–1, d. h. mit K = 9 beträgt die Anzahl der Zustände 28 = 256. Diese 256 Zustände sind mit "00" bis "FF" gekennzeichnet, wobei eine Zwei-Zeichen Hexadezimalnotation benutzt wird, und die Pfadmetrik eines Zustandes xx wird mit PM[xx] bezeichnet. Eine Pfadmetrik eines neuen Zustandes wird mit PM[xx](neu) und eine Pfadmetrik eines Zustandes zu einem vergangenen Zeitpunkt mit PM[xx](alt) bezeichnet.
  • Wenn die Bedingungslänge K = 9 ist und die Coderate R = 1/2, wird in der ACS-Operation ein Pfad maximaler Wahrscheinlichkeit aus zwei Pfaden ausgewählt, die Übergängen zu entsprechenden Zuständen unterworfen sind, z. B. sind, wie in den 11A und 11B gezeigt, Pfade für einen Übergang zu einem neuen Zustand 00 (neu) zwei Pfade von Zuständen 00 (alt) und 01 (alt) zu vorangegangenen Zeitpunkten. Für den Übergang zu dem Zustand 00 (neu) von den vorangegangenen Zuständen 00 (alt) und 01 (alt) müssen die empfangenen Codes (G0, G1) notwendig beispielsweise (00) bzw. (11) sein.
  • Diese erwarteten beiden empfangenen Codes sind eindeutig bestimmt gemäß erzeugender Polynome eines Faltungscodieres mit Bezug auf die jeweiligen Zustände xx (neu). Die beiden empfangenen Codes bezeichnen diese als erwartet "wenn "0" eine Eingabe für den Faltungscodierer als ein Informationsbit ist" und "wenn "1" eine Eingabe für den Faltungscodierer als ein Informationsbit ist".
  • Daher werden in dem Zweigmetrikoperationsabschnitt 102 Metriken (Zweigmetriken) von entsprechenden empfangenen Codemustern bestimmt und in dem ACS-Operationsabschnitt 103 wird eine maximale Wahrscheinlichkeit eines Pfades bestimmt, in Kombination mit einer Metrik (Pfadmetrik) zu einem vorangegangenen Zeitpunkt, um einen überlebenden Pfad auszuwählen, und eine Pfad metrik für den nachfolgenden Zeitpunkt wird in dem Pfadmetrikspeicher 105 gespeichert und gehalten.
  • Wenn Zweigmetriken und Pfadmetriken in dem Fall, in dem "0" und "1" Eingaben für den Faltungscodierer als Informationsbits in dem Zustand xx sind, mit BM0[xx] und BM1[xx] bzw. PM0[xx] und PM1[xx] bezeichnet sind, so wird der Zusammenhang zwischen Pfadmetrik und der maximalen Wahrscheinlichkeit wie folgt bezeichnet:
    große Pfadmetrik → hohe maximale Wahrscheinlichkeit
    kleine Pfadmetrik → niedrige maximale Wahrscheinlichkeit,
    und in dem Fall von Übergängen zu dem Zustand 00 von den Zuständen 00 und 01 werden die Berechnungen in dem oben erwähnten Fall wie folgt beschrieben: PM0[00](neu) = PM[00](alt) + BM0[00] PM1[00](neu) = PM[01](alt) + BM1[00] PM[00](neu) = max(PM0[00](neu), PM1[00](neu)).
  • In der obigen Berechnung bezeichnet max(x, y) eine Operation zum Auswählen eines höheren Wertes aus den Werten x und y.
  • Mit Bezug auf PM[80](neu), in welchem nur die signifikantesten Bits verschieden sind, werden die Berechnungen wie folgt ausgedrückt. PM[80](neu) = PM[00](alt) + BM0[80] PM1[80](neu) = PM[01](alt) + BM1[80] PM[80](neu) = max(PM0[80](neu), PM1[80](neu)).
  • Im Fall von Übergängen zu dem Zustand 01 von den Zuständen 02 und 03 werden die Berechnungen wie folgt ausgedrückt. PM0[01](neu) = PM[02](alt) + BM0[01] PM1[01](neu) = PM[03](alt) + BM1[01] PM[01](neu) = max(PM0[00](neu), PM1[00](neu)).
  • Mit Bezug auf PM[81](neu), in welchem nur die signifikantesten Bits verschieden sind, werden die Berechnungen wie folgt ausgedrückt. PM0[81](neu) = PM[02](alt) + BM0[81] PM1[81](neu) = PM[03](alt) + BM1[81] PM[81](neu) = max(PM0[80](neu), PM1[80](neu)).
  • Weiterhin werden, wenn die erzeugenden Polynome des Faltungscodierers G0(D) = 1 +...+ DK–1 G1(D) = 1 +...+ DK–1,sind, d. h., wenn die erzeugenden Polynome jeweils Elemente 1 und DK–1 enthalten, die Codebits stets mittels der Eingabe von Informationsbits von "0" und "1" logisch invertiert, und daher haben Codedistanzen in dem Fall von Eingaben von "0" und "1" eine symmetrische Beziehung. In diesem Fall gelten, mit Bezug auf die Zweimetriken hinsichtlich der Zustände, in welchen nur ihre signifikantesten Bits verschieden sind, die folgenden Beziehungen. BM0[80] = BM1[00] BM1[80] = BM0[00] BM0[81] = BM1[01] BM1[81] = BM0[01]
  • Unter Benutzung dieser Beziehungen werden die Beziehungen der oben erwähnten Pfadmetriken wie folgt ausgedrückt. PM0[00](neu) = PM[00](alt) + BM0[00] PM1[00](neu) = PM[01](alt) + BM1[00) PM[00](neu) = max(PM0[00](neu), PM1[00](neu)). PM0[80](neu) = PM[00](alt) + BM1[00] PM1[80](neu) = PM[01](alt) + BM0[00] PM[80](neu) = max(PM0[80](neu), PM1[80](neu)). PM0[01](neu) = PM[02](alt) + BM0[01] PM1[01](neu) = PM[03](alt) + BM1[01] PM[01](neu) = max(PM0[00](neu), PM1[00](neu)). PM[81](neu) = PM[02](alt) + BM1[01] PM1[81](neu) = PM[03](alt) + BM0[01] PM[81](neu) = max(PM0[80](neu), PM1[80](neu)).
  • Mit anderen Worten wird aus den vorstehenden Formeln ersichtlich, dass aus vier Pfadmetriken von benachbarten geradzahligen und ungeradzahligen Zuständen PM[00](alt), PM[01](alt), PM[02](alt) und PM[03](alt) zwei Paare von Pfadmetriken erhalten werden können, von denen jedes zwei Pfadmetriken von benachbarten geradzahligen und ungeradzahligen Zuständen aus PM[00](neu) und PM[01](neu) oder PM[80](neu) und PM[81](neu) umfassen.
  • In der vorliegenden Ausführungsform werden unter Benutzung des Pfadmetrikpermutationsabschnitts 104 vier Pfadmetriken, die sequenziell von dem ACS-Operationsabschnitt 103 erhalten werden, zu zwei Paaren von Pfadmetriken permutiert, von denen jedes zwei Pfadmetriken von benachbarten geradzahligen und ungeradzahligen Zuständen umfasst.
  • Überdies ist die vorliegende Ausführungsform so konfiguriert, dass bei Benutzung eines RAM (ein Speicher mit wahlfreiem Zugriff) als Pfadmetrikspeicher 105 die Pfadmetriken von benachbarten geradzahligen und ungeradzahligen Zuständen als eine Speichereinheit pro RAM-Adresse gespeichert werden. Daher werden mit den folgenden vier Speicherzugriffen vier Pfadmetriken aktualisiert.
    • (1) Auslesen von PM[00](alt) und PM[01](alt) und Berechnung von PM[00](neu) und PM[80](neu)
    • (2) Auslesen von PM[02](alt) und PM[03](alt) und Berechnung von PM[01](neu) und PM[81](neu)
    • (3) Schreiben von PM[00](neu) und PM[01](neu)
    • (4) Schreiben von PM[80](neu) und PM[81](neu)
  • Dieses Aktualisieren wird für 256 Zustände mit Bezug auf PM[00] bis PM[FF] durchgeführt.
  • Insbesondere werden Pfadmetriken zum Beispiel wie in 2A gezeigt, aktualisiert.
  • In 2A ist ein Zustand (alt) mit n bezeichnet, ein Zustand (neu) mit m, und ein oberer Zustand und ein unterer Zustand in dem Zustand (neu) sind mit m(U) bzw. m(L) bezeichnet. Der obere Zustand und der untere Zustand sind wie folgt definiert. Wie in 9 gezeigt, ist in dem Fall, in dem die Eingabeseite eines Informationsbits das signifikanteste Bit des Zustandes ist, mit Bezug auf ein Paar von Zuständen, die dieselben Bits mit Ausnahme des signifikantesten Bits besitzen, der "obere Zustand" der Zustand mit einer "1" als signifikantester Bit und der "untere Zustand" der Zustand mit einer "0" als signifikantester Bit. Zum Beispiel ist in den in 11A und 11B gezeigten Pfadmetrikübergangsdiagramm der Zustand "00" nach Zustandsübergabe der untere Zustand und "10" ist der obere Zustand. In diesem Zusammenhang können der obere und untere Zustand auch in dem Fall definiert werden, in dem die Eingabeseite des Informationsbits das am wenigsten signifikante Bit eines Zustandes ist, was mathematisch dasselbe ist wie die oben erwähnte Definition.
  • Anfangs werden Zweigmetriken BM0[m] und BM1[m] von Terminalen 201 und 202 bzw. Pfadmetriken PM[n] und PM[n+1] von benachbarten geradzahligen und ungeradzahligen Zuständen von Terminalen 203 und 204 eingegeben.
  • Als nächstes berechnen Addierer 205, 206, 207 und 208 Pfadmetriken PM0[m(L)] und PM1[m(L)] von unteren Zuständen und PM0[m(U)] und PM1[m(U)] von oberen Zuständen.
  • Subtrahierer 209 und 210 vergleichen PM0[m(L)] mit PM1[m(L)] bzw. PM0[m(U)] mit PM1[m(U)]. In den Subtraktionseregebnissen der Subtrahierern 209 und 210 repräsentieren Codebits die Vergleichsergebnisse. Ein Codebit "Vorzeichen von [m(L)]" des Ergebnisses eines Vergleichs zwischen PM0[m(L)] und PM1[m(L)] und ein Codebit "Vorzeichen von (m(U)]" des Ergebnisses eines Vergleichs zwischen PM0[m(U)] und PM1[m(U)] werden als Auswahlsignale in Auswählern 211 und 212 benutzt, die später beschrieben werden, und auch von Terminalen 217 und 218 als Pfadauswahlsignale PS[m(L)] bzw. PS[m(U)) ausgegeben.
  • Pfadmetriken mit hoher Wahrscheinlichkeit werden als PM[m(L)] und PM[m(U)] mittels der Auswähler 211 und 212 berechnet. Diese Pfadmetriken werden in dem Pfadmetrikpermutationsabschnitt 104 vorläufig mittels Verzögerungselementen 213, 214, 215, von Flip-Flops und dergleichen, aufgeschoben.
  • In ähnlicher Weise werden aus Pfadmetriken PM[n+2] und PM[n+3] von benachbarten geradzahligen und ungeradzahligen Zuständen Pfadauswahlsignale PS[m+1(L)] und PS[m+1(U)] und Pfadmetriken PM[m+1(L)] und PM[m+1(U)] berechnet.
  • Als nächster Schritt werden Pfadmetriken PM[m+1(L)] und PM[m+1(U)] zusammen mit PM[m(L)] und PM[m(U)], welche aufgeschoben worden sind, permutiert und mittels des Auswählers 216 als ein Paar aus PM[m(L)] und PM[m+1(L)] und ein Paar aus PM[m(U)] und PM[m+1(U)] ausgewählt, welche dann von den Terminalen 219 und 220 ausgegeben werden.
  • Die vorstehend erwähnten Operationen sind in einem in 2B gezeigten Ablaufdiagramm illustriert. Aus dem Ablaufdiagramm ist ersichtlich, dass in den vier Zyklusoperationen, Operationen des Auslesens und des Schreibens von Pfadmetriken jeweils in zwei Zyklen ausgeführt werden. Solch eine Konfiguration erlaubt es, die Speicherzugriffshäufigkeit in dem ACS-Operationsabschnitt zu reduzieren.
  • Die Zurückverfolgungsoperation wird wie folgt beschrieben.
  • 3A stellt ein Blockdiagramm dar, das ein spezifisches Konfigurationsbeispiel der Zurückverfolgungsoperation zeigt. In 3A sind Abschnitte außer dem Pfadauswahlsignalspeicher 106 zum Speichern von Pfadauswahlsignalen in den Zurückverfolgungsoperationsabschnitten 107 enthalten. D. h., der Zurückverfolgungsoperationsabschnitt 107 umfasst einen Datenpuffer 302, einen Auswähler 303, ein Schieberegister 304, einen Nächster-Viterbi-Zustandvorhersageabschnitt 305 und einen Adresspuffer 306. Der Datenpuffer 302 schiebt vorläufig Pfadauswahlsignaldaten (mit n Bit Breite) auf, die Pfadauswahlsignale für eine Mehrzahl von Zuständen (n Zustände) enthalten. Der Auswähler 303 extrahiert ein Pfadauswahlsignal (mit einem Bit Breite) für einen Zustand aus den Pfadauswahlsignaldaten. Das Schieberegister 304 aktualisiert einen Viterbi-Zustand mittels des Pfadauswahlsignals. Der Nächster-Viterbi-Zustandvorhersageabschnitt 305 sagt einen Teil eines Viterbi-Zustandes voraus, der als nächstes aufgrund des Viterbi-Zustandes zu aktualisieren ist. Der Adresspuffer 306 schiebt vorläufig eine Pfadauswahlsignalspeicheradresse auf, die durch den Nächster-Viterbi-Zustandvorhersageabschnitt 305 berechnet und durch diesen ausgegeben wird.
  • Das Schieberegister 304 bezeichnet den Viterbi-Zustand genauso wie ein Dekodierbit, das durch einen Übergang des Viterbizustandes erhalten wird.
  • Ein wichtiger Punkt in der vorstehenden Konfiguration ist die folgende Verbesserung. In einer konventionellen Operation ist es in dem Zurückverfolgungsprozeß notwendig, dass basierend auf einem Viterbi-Zustand, der in dem Schieberegister 304 aktualisiert wird, Pfadauswahlsignaldaten aus dem Pfadauswahlsignalspeicher 106 ausgelesen werden und dass das Schieberegister 304 in dem nächsten Zyklus mittels des aus den Pfadauswahlsignaldaten extrahierten Pfadauswahlsignals aktualisiert wird. In der vorliegenden Ausführungsform jedoch wird ein als nächstes zu aktualisierender Viterbi-Zustand vorhergesagt und eine vorhergesagte Pfadauswahlsignalspeicheradresse wird mittels des Nächster-Viterbi-Zustandvorhersageabschnitt 305 berechnet, der zusätzlich in der vorliegenden Ausführungsform vorgesehen ist, wodurch ein Zurückverfolgungsprozeß erhalten wird, der den Adresspuffer 306 und den Datenpuffer 302 zum vorläufigen Aufschieben der Pfadauswahlsignalspeicheradresse bzw. der Pfadauswahlsignaldaten benutzt.
  • Die folgende Beschreibung ist auf Vorteile in der vorstehend erwähnten Verbesserung gerichtet. 3B stellt ein Ablaufdiagramm dar, das die Verzögerungen der entsprechenden Signale in der vorstehend erwähnten Konfiguration zeigt. Das Ablaufdiagramm umfasst sequenziell eine Uhr als Bezug, eine Ausgabe des Nächster-Viterbi-Zustandsvorhersageabschnitts, eine Eingabe der Pfadauswahlsignalspeicheradresse, eine Ausgabe der Pfadauswahlsignalspeicherdaten und eine Ausgabe des Datenpuffers. Die entsprechenden Signale umfassen eine durch Verdrahtung hervorgerufene Adressverzögerung, eine Ausgabeverzöge rung in dem Pfadauswahlsignalspeicher und eine durch Verdtahtung hervorgerufene Datenverzögerung. In diesen Verzögerungen sind die in 3A gezeigten Verzögerungen A und C in einer Paralleloperation wie in 3B gezeigt geteilt durch die Operation des Pfadauswahlsignalspeichers 106 in Synchronisation mit der Uhr, dem Adresspuffer 306 und dem Datenpuffer 302.
  • Daher wird die obere Grenze der Geschwindigkeit der Zurückverfolgungsoperation wie in 3C gezeigt bestimmt. Zusätzlich zu dem vorstehend erwähnten Verzögerungen A und C wird unter Beachtung von Verzögerungen B und D, die den Auswähler 303 und eine Einrichtzeit des Schieberegisters 304 betreffen, die obere Grenze der Operationsgeschwindigkeit in Abhängigkeit der längsten Verzögerung aus den folgenden Verzögerungen bestimmt.
    • – Eine Verzögerung (1) um den Pfadauswahlsignalspeicher 106 herum: Verzögerung A
    • – Eine Verzögerung (2) um den Pfadauswahlsignalspeicher 106 herum: Verzögerung C + Verzögerung D
    • – Eine Verzögerung um den Auwähler 303 herum: Verzögerung B + Verzögerung D
  • In diesem Zusammenhang kann, wie oben beschrieben, die Verzögerungen A und C mittels des Adresspuffers 306 und des Datenpuffers 302 erheblich reduziert werden. Dadurch wird die Operationsgeschwindigkeit durch die Verzögerung um den Auswähler 303 herum begrenzt. Diese Verzögerung um den Auswähler 303 herum ist verglichen mit der konventionellen Verzögerung um den Pfadauswahlsignalspeicher herum sehr kurz. Somit kann eine Zurückverfolgung mit hoher Geschwindigkeit erreicht werden.
  • Als nächstes wird mit Bezug auf 4 wie folgt das Prinzip des Nächster-Viterbi-Zustandsvorhersageabschnitts 305 beschrieben, welcher einen wichtigen Punkt in der vorliegenden Ausführungsform darstellt.
  • Wie vorstehend beschrieben, zeigt der Viterbi-Zustand Inhalte von Verzögerungselementen in dem Faltungscodierer an. Die Inhalte der Verzögerungselemente werden zu jeder Zeit, zu der ein Informationsbit eingegeben wird, um ein Bit ver schoben. Mit anderen Worten, sind eine Verschiebung um ein Bit und Zeitvariation in einem Zyklus äquivalent mit Bezug auf einen Teil des Viterbi-Zustandes. Unter Benutzung dieser Beziehung kann abhängig davon, welcher Bit-Bereich in dem Schieberegister 304 als Teil des Viterbi-Zustandes als eine Pfadauswahlsignalspeicheradresse ausgewählt wird, die Pfadauswahlsignalspeicheradresse, die als nächstes zu aktualisieren ist, vorhergesagt werden.
  • Eine spezifische Schaltkreisstruktur zum Erreichen dieser Operation ist in 5A gezeigt. Ein niederwertiger Teil (auf einer Eingabeseite des Pfadauswahlsignals) eines Viterbi-Zustandes, der dem Nächster-Viterbi-Zustandsvorhersageabschnitt 305 von dem Schieberegister 304 eingegeben wird, wird zu einer Auswahlinformation (eine Bit-Adresse) für einen Auswähler 303 (3A), der ein Pfadauswahlsignal aus dem Pfadauswahlsignaldaten extrahiert. Auf ähnliche Weise wird ein höherwertiger Teil des Viterbi-Zustandes eine Pfadauswahlsignaladresse (eine Wortadresse), ein Auswähler 501 wählt einen Bit-Bereich des Viterbi-Zustandes aus, aus welchem die Wortadresse zu extrahieren ist, und ein Auf-/Abzähler 502 berechnet die durch den Auswähler 501 ausgewählte Information. Der Wert des Auf-/Abzählers 502 ändert sich gemäß einem Lesesignal von Pfadauswahldaten und einem Schiebesignal des Schieberegisters 304.
  • 5B zeigt die Beziehung zwischen dem Lesesignal der Pfadauswahldaten, einem Schiebesignal des Schieberegisters und dem Wert des Auf-/Abzählers 502. In 5B behält der Auf-/Abzähler 502 den vorangegangenen Wert, wenn des Lesesignal "0" (kein Lesen) und das Schiebesignal auch "0" (kein Schieben) ist, oder wenn das Lesesignal "1" (Lesen) und das Schiebesignal "1" (Schieben) ist. Wenn das Lesesignal in "1" (Lesen) und das Schiebesignal "0" (kein Schieben) ist, addiert der Auf-/Abzähler 502 "1". Wenn das Lesesignal "0" (kein Lesen) und das Schiebesignal "1" (Schieben) ist, subtrahiert der Auf-/Abzähler 502 "1".
  • In der Zurückverfolgungsoperation hängt, da das Lesen der Pfadauswahldaten und das Schieben in dem Schieberegister immer auf eins-zu-eins-Basis korrespondieren, der Zustand, indem nur eines aus dem Lesesignal und dem Schiebesignal "1" ist, von der Anzahl der Stufen in der in 3B gezeigten Parallelverarbeitungsstruktur ab. Im Fall des vorliegenden Konfigurationsbeispiels dauert der Zustand, indem das Lesesignal "1" ist und das Schiebesignal "0" ist für drei Zyklen in einer initialen Periode der Zurückverfolgung an und der Zustand, indem das Lesesignal "0" und das Schiebesignal "1" ist, dauert für drei Zyklen am Ende der Zurückverfolgung an. Daher variiert der Wert des Auf-/Abzählers 502, wenn ein Anfangswert des Auf-/Abzählers 502 "0" ist, zwischen "0" und "3".
  • 5C zeigt die Beziehung zwischen einem Wert des Auf-/Abzählers 502 und einer durch den Auswähler 501 auszuwählenden Wortadresse. Wenn der Wert des Auf-/Abzählers 502 ansteigt, d. h. wenn das Lesesignal "1" ist und das Schiebesignal "0", wird eine Operation ausgeführt, um die niederwertige Seite des Viterbi-Zustandes sequenziell als Wortadresse auszuwählen. Diese Operation wird zum Vorhersagen einer Pfadauswahlsignalspeicheradresse ausgeführt, die als nächstes, wie mit Bezug auf 4 beschrieben, zu aktualisieren ist. Diese Vorhersageoperation benutzt einen Teil der Bit-Adresse als die Wortadresse, daher kann die Bit-Breite der maximalen Bit-Adresse als Vorhersagebereich benutzt werden.
  • 6 zeigt eine Folge von Operationstakten in der vorstehend erwähnten Zurückverfolgungsoperation. 6 zeigt, von oben, eine Referenzuhr, eine Ausgabe des Nächster-Viterbi-Vorhersagezuschnitts 305, eine Ausgabe des Adresspuffers 306, eine Ausgabe des Speichers (Pfadauswahlsignalspeicher) 106, ein Pfadauswahlsignal, ein am wenigsten signifikantes Bit des Schieberegisters 304, ein Pfadauswahldatenlesesignal, ein Schieberegisterschiebesignal und einen Wert des Auf-/Abzählers 502. Wie in 6 gezeigt, ermöglicht die Benutzung der Ausgabe des Nächster-Viterbi-Zustandsvorhersageabschnitt 305, die Zurückverfolgung in Parallelverarbeitung auszuführen.
  • Gemäß einer solchen Anordnung kann eine Zurückverfolgung mit hoher Geschwindigkeit erreicht werden, während konventioneller RAM benutzt wird.
  • Mit Bezug auf 7 wird wie folgt ein Viterbi-Decoder gemäß einer anderen Ausführungsform der vorliegenden Erfindung beschrieben. In dem Viterbi-Decoder wird die vorstehend genannte Betriebseinrichtung und ein konventioneller RAM benutzt und die Benutzung des RAM wird minimiert.
  • Ein in 4 gezeigter Viterbi-Decoder umfasst einen Adressgenerierungs-/Speichersteuerabschnitt 706 und einen gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher 705 zusätzlich zu dem vorgenannten Zweigmetrikoperationsabschnitt 102, dem ACS-Operationsabschnitt 103, dem Pfadmetrikpermutationsabschnitt 104 und dem Zurückverfolgungsoperationsabschnitt 107. Der Adressgenerierungs-/Speichersteuerabschnitt 706 ist mit dem ACS-Operationsabschnitt 103, dem Pfadmetrikpermutationsabschnitt 104 und dem Zurückverfolgungsoperationsabschnitt 107 verbunden. Der gemeinsame Pfadmetrik-/Pfadauswahlsignalspeicher 705 ist mit dem Adressgenerierungs-/Speichersteuerabschnitt 706 verbunden.
  • Der Adressgenerierungs-/Speichersteuerabschnitt 706 erzeugt die folgende Speicherzugriffsadresse MEMADR aus Pfadmetrikzustandsnummern n und m und eine Pfadauswahlsignalzustandsnummer j, die auf einer Pfadmetrikspeicherbereichsstartadresse PMSADR basiert, eine Pfadauswahlsignalspeicherbereichsstartadresse PSSADR und ein Speicherbereichszuordnungssignal PMPSSEL. MEMADR = PMPSSEL ? (PMSADR + n):(PMSADR + m):(PSSADR + j)
  • Im Vorstehenden zeigt der Operationsausdruck s ? x:y:z eine Operation zum Ausgeben von x, y und z an, wenn s = 0 bzw. s = 1 bzw. s = 2 ist.
  • Während der Viterbi-Decodieroperation, wie in 8 gezeigt, wird PMPSSEL zu geeigneten Zeitpunkten zu einem Wert aus 0, 1 und 2 geändert, und der ACS-Operationsabschnitt 103 bzw. der Pfadmetrikpermutationsabschnitt 104 bzw. der Zurückverfolgungsoperationsabschnitt 107 arbeiten in Synchronisation mit dem PMPSSEL.
  • Gemäß einer solchen Anordnung kann eine Viterbi-Decodierung erreicht werden, in der konventioneller RAM zwischen den jeweiligen Operationsabschnitten geteilt wird und die Benutzung des RAM minimiert wird.

Claims (6)

  1. Viterbi-Decoder, umfassend: einen Zweigmetrikoperationsabschnitt (102), der zum Berechnen von Zweigmetriken basierend auf Eingabecodes eingerichtet ist; einen Pfadmetrikspeicher (105) zum Speichern, Auslesen und Schreiben von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen als eine Speichereinheit; einen Addieren-Vergleichen-Auswählen-Operationsabschnitt ACS (103) zum gleichzeitigen Berechnen eines ersten Paares von neuen Pfadmetriken eines oberen Zustandes und eines unteren Zustandes mit geradzahligen Zustandsnummern und zum gleichzeitigen Berechnen eines zweiten Paares von neuen Pfadmetriken eines oberen Zustandes und eines unteren Zustandes mit ungeraden Zustandsnummern, das benachbart ist zu dem ersten Paar von neuen Pfadmetriken, wobei der Addieren-Vergleichen-Auswählen-Operationsabschnitt (103) derart eingerichtet ist, dass das erste Paar von neuen Pfadmetriken allein basierend auf einem ersten Paar von alten Pfadmetriken von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen, die aus dem Pfadmetrikspeicher (105) mit Hilfe eines ersten Zugriffes ausgelesen werden, und den durch den Zweigmetrikoperationsabschnitt (102) berechneten Zweigmetriken erhalten wird, und dass das zweite Paar von neuen Pfadmetriken allein basierend auf einem weiteren Paar von alten Pfadmetriken von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen, die aus dem Pfadmetrikspeicher (105) mittels eines zweiten Zugriffs ausgelesen werden, der vom ersten in der zeitlichen Folge verschieden ist, und den durch den Zweitmetrikoperationsabschnitt (102) berechneten Zweigmetriken erhalten wird; und einen Pfadmetrikpermutationsabschnitt (104), der eingerichtet ist, das erste Paar von neuen Pfadmetriken und das zweite Paar von neuen Pfadmetriken, die sequentiell durch den ACS Operationsabschnitt (103) in zeitlicher Reihenfolge als ein Paar von Pfadmetriken von aufeinanderfolgenden geradzahligen oberen und ungeradzahligen oberen Zuständen und ein Paar von Pfadmetriken von aufeinanderfolgenden geradzahligen unteren und ungeradzahligen unteren Zuständen berechnet sind, zu permutieren; wobei die beiden von dem Pfadmetrikpermutationsabschnitt (104) permutierten Paare von Pfadmetriken durch einmaligen Zugriff für jedes Paar zu verschiedenen Zeitpunkten in den Pfadmetrikspeicher (105) geschrieben sind.
  2. Viterbi-Decoder gemäß Anspruch 1, weiterhin umfassend: einen Pfadauswahlsignalspeicher (106); und einen Zurückverfolgungsoperationsabschnitt (107); wobei der ACS Operationsabschnitt (103) eingerichtet ist, auch einen Pfad maximaler Wahrscheinlichkeit in Kombination mit einer Pfadmetrik zu einem vorangegangenen Zeitpunkt auszuwählen und ein Pfadauswahlsignal als Information des daher ausgewählten Pfades maximaler Wahrscheinlichkeit, der ein überlebender Pfad ist, zu generieren; wobei der Pfadauswahlsignalspeicher (106) eingerichtet ist, das Pfadauswahlsignal zu speichern, wobei der Zurückverfolgungsoperationsabschnitt (107) eingerichtet ist, einen vergangenen Zustandsübergang mittels eines vergangenen, aus dem Pfadauswahlsignalspeicher (106) ausgelesenen Pfadauswahlsignals zu suchen, und decodierte Daten ausgibt, und wobei der Zurückverfolgungsoperationsabschnitt (107) umfasst: einen Viterbi-Zustandsspeicher zum Speichern eines Viterbi-Zustandes, der dem auf dem vom Pfadauswahlsignalspeicher erhaltenen Pfadauswahlsignal basierenden überlebenden Pfad folgt, einen Viterbi-Zustandsvorhersageabschnitt (305) zum Vorhersagen eines Teils eines Viterbi-Zustandes, der als nächstes basierend auf dem Inhalt des Viterbi-Zustandsspeicher zu aktualisieren ist; und einen Pfadauswahlsignalspeicheradressenberechnungsabschnitt zum Berechnen einer Adresse des Pfadauswahlsignalspeichers (106), der das auf dem durch den Viterbi-Zustandsvorhersageabschnitt (305) vorhergesagten Teil des Viterbi-Zustandes basierende Pfadauswahlsignal speichert.
  3. Viterbi-Decoder gemäß Anspruch 2, wobei der Viterbi-Zustandsvorhersageabschnitt (305) umfasst: einen Auf-/Ab-Zähler (502) zum Wechseln des Zustandes gemäß einem Auslesesteuersignal des Pfadauswahlsignalspeichers (106) und einem Umschaltsteuersignal des Viterbi-Zustandsspeichers; und einen Auswähler zum Ändern einer Übereinstimmung zwischen dem Inhalt des Viterbi-Zustandsspeichers und dem Teil des Viterbi-Zustandes, der als nächstes gemäß dem Wert des Auf-/Ab-Zählers (502) zu aktualisieren ist.
  4. Viterbi-Decoder gemäß Anspruch 2, umfassend eine Parallelverarbeitungseinrichtung für zumindest eine Stufe ausgewählt aus: einer Stufe, die eine Adresse im Pfadauswahlsignalspeicheradressenberechnungsabschnitt (106) berechnet, wobei die Adresse auf dem Teil des Viterbi-Zustandes basiert, der durch den Viterbi-Zustandsvorhersageabschnitt vorhergesagt wurde; einer Stufe, die das Pfadauswahlsignal aus dem Pfadauswahlsignalspeicher (106) ausliest, wobei das Auslesen auf der berechneten Addresse basiert; und einer Stufe, die den Viterbi-Zustand speichert, der dem überlebenden Pfad im Viterbi-Zustandsspeicher folgt, wobei das Speichern auf dem ausgelesenen Pfadauswahlsignal basiert.
  5. Viterbi-Decoder gemäß Anspruch 1, wobei der Addieren-Vergleichen-Auswählen-Operationsabschnitt ACS (103) eingerichtet ist, Pfadmetriken von entsprechenden Zuständen durch Verarbeitung im Zeitteilverfahren basierend auf den Zweigmetriken, die durch den Zweigmetrikoperationsabschnitt (102) berechnet werden, zu berechnen, einen Pfad maximaler Wahrscheinlichkeit in Kombination mit einer Pfadmetrik zu einem vorangegangenen Zeitpunkt auszuwählen, und ein Pfadauswahlsignal als Information des daher ausgewählten Pfades maximaler Wahrscheinlichkeit, der ein überlebender Pfad ist, zu generieren; wobei der Pfadmetrikpermutationsabschnitt (104) eingerichtet ist, die sequentiell durch den ACS Operationsabschnitt berechneten und durch diesen ausgegebenen Pfadmetriken vorläufig aufzuschieben und die Pfadmetriken zu permutieren, um Zeitreihen zu haben, die verschieden sind von denen der Pfadmetriken, die von dem ACS Operationsabschnitt (103) ausgegeben wurden; wobei der Viterbi-Decoder weiterhin umfasst: einen gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher zum Speichern von Pfadmetriken und Pfadauswahlsignalen; einen Zurückverfolgungsoperationsabschnitt (107) zum Suchen eines vergangenen Zustandsübergangs mittels eines vergangenen Pfadauswahlsignals, das aus dem gemeinsamen Pfadmetrik/Pfadauswahlsignalspeicher (705) ausgelesen wird, und zum Ausgeben decodierter Daten, wobei der Zurückverfolgungsoperationsabschnitt (107) umfasst: einen Viterbi-Zustandsspeicher zum Speichern eines Viterbi-Zustandes, der dem überlebenden Pfad folgt, der auf dem von dem gemeinsamen Pfadmetrik/Pfadauswahlsignalspeicher (705) erhaltenen Pfadauswahlsignal basiert; und einen Viterbi-Zustandsvorhersageabschnitt (305) zum Vorhersagen eines Teils eines Viterbi-Zustandes der als nächstes basierend auf dem Inhalt des Viterbi-Zustandsspeichers zu aktualisieren ist; und einen Pfadauswahlsignalspeicheradressenberechnungsabschnitt zum Berechnen einer Adresse des Pfadauswahlsignalspeichers, der das auf dem durch den Viterbi-Zustandsvorhersageabschnitt (305) vorhergesagten Teils des Viterbi-Zustands basierende Pfadauswahlsignal speichert; und einen Adressengenerierungs-/Speichersteuerabschnitt (706) zum Aufnehmen von Pfadmetriken vom Pfadmetrikpermutationsabschnitt und dem Pfadauswahlsignal des ACS Operationsabschnitts (103), Generieren und Schreiben einer spezifischen Adresse mit Bezug zum gemeinsamen Pfadmetrik-/Pfadauswahlsignalspeicher (705), Auslesen der Pfadmetrik und des Pfadauswahlsignals, die im gemeinsamen Pfadmetrik-/Auswahlsignalspeicher (705) gespeichert sind, und Zuführen der Pfadmetrik zum ACS Operationsabschnitt (103) und des Pfadauswahlsignals zum Zurückverfolgungsoperationsabschnitt (107); wobei der ACS Operationsabschnitt (103), der Pfadmetrikpermutationsabschnitt, und der Zurückverfolgungsoperationsabschnitt eingerichtet sind, auf den gemeinsamen Pfadmetrik-/Auswahlsignalspeicher (705) im Zeitteilverfahren unter Steuerung des Adressgenerierungs-/Speichersteuerabschnitts (706) zuzugreifen.
  6. Viterbi-Decodierungsverfahren in einem Viterbi-Decoder, wobei der Viterbi-Decoderumfasst: einen Pfadmetrikspeicher (105) zum Speichern, Auslesen und Schreiben von Pfadmetriken von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen als eine Speichereinheit, wobei das Verfahren umfasst: Auslesen eines ersten Paares von alten Pfadmetriken von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen aus dem Pfadmetrikspeicher (105) mittels eines ersten Zugriffs; Berechnen eines ersten Paares von Zweigmetriken; gleichzeitiges Berechnen eines ersten Paares von neuen Pfadmetriken eines oberen Zustandes und eines unteren Zustandes mit geradzahligen Zustandsnummern mittels Durchführen einer Addieren-Vergleichen-Auswählen-Operation ACS, die allein auf einem ersten Paar von alten Pfadmetriken und dem ersten Paar von Zweigmetriken basiert; Auslesen eines zweiten Paares von alten Pfadmetriken von aufeinanderfolgenden geradzahligen und ungeradzahligen Zuständen aus dem Pfadmetrikspeicher mittels eines zweiten Zugriffs, der vom ersten Zugriff in der zeitlichen, Folge verschieden ist; Berechnen eines zweiten Paares von Zweigmetriken; gleichzeitiges Berechnen eines zweiten Paares von neuen Pfadmetriken eines oberen Zustandes und eines unteren Zustandes mit ungeraden Zustandsnummern, das benachbart ist zum ersten Paar von neuen Pfadmetriken, mittels Durchführen einer Addieren-Vergleichen-Auswählen-Operation ACS, die allein auf einem weiteren Paar von alten Pfadmetriken und dem zweiten Paar von Zweigmetriken in Zeitreihen, die verschieden sind von denen der Berechnung des ersten Paares von neuen Pfadmetriken, basiert; Permutieren des ersten Pfades von neuen Pfadmetriken und des zweiten Paares von neuen Pfadmetriken in zeitlicher Reihenfolge als ein Paar von Pfadmetriken von aufeinanderfolgenden geradzahligen oberen und ungeradzahligen oberen Zuständen und einem Paar von Pfadmetriken von aufeinanderfolgenden geradzahligen unteren und ungeradzahligen unteren Zuständen; und Schreiben der beiden permutierten Paare von Pfadmetriken in den Pfadmetrikspeicher (105) mittels eines einmaligen Zugriffs für jedes Paar zu verschiedenen Zeitpunkten.
DE60028906T 1999-11-22 2000-11-15 Viterbi Dekoder Expired - Lifetime DE60028906T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP33161299A JP3515720B2 (ja) 1999-11-22 1999-11-22 ビタビ復号器
JP33161299 1999-11-22

Publications (2)

Publication Number Publication Date
DE60028906D1 DE60028906D1 (de) 2006-08-03
DE60028906T2 true DE60028906T2 (de) 2007-02-01

Family

ID=18245612

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60028906T Expired - Lifetime DE60028906T2 (de) 1999-11-22 2000-11-15 Viterbi Dekoder

Country Status (5)

Country Link
US (1) US6324226B1 (de)
EP (1) EP1102408B1 (de)
JP (1) JP3515720B2 (de)
KR (1) KR100426712B1 (de)
DE (1) DE60028906T2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741664B1 (en) 1999-02-05 2004-05-25 Broadcom Corporation Low-latency high-speed trellis decoder
TW447194B (en) * 1999-04-12 2001-07-21 Matsushita Electric Ind Co Ltd Viterbi decoding device and method
US7225393B2 (en) * 1999-10-01 2007-05-29 Matsushita Electric Industrial Co., Ltd. Viterbi decoder and Viterbi decoding method
JP3501725B2 (ja) * 2000-05-12 2004-03-02 日本電気株式会社 ビタビ復号器
US6842490B1 (en) * 2000-10-11 2005-01-11 Feng Qian Viterbi decoder with adaptive traceback
JP3532884B2 (ja) * 2001-05-18 2004-05-31 松下電器産業株式会社 ビタビ復号器
US7830630B2 (en) * 2001-06-28 2010-11-09 Stmicroelectronics, Inc. Circuit and method for detecting the phase of a servo signal
KR100834663B1 (ko) * 2002-03-11 2008-06-02 삼성전자주식회사 직접 메모리 접근을 이용한 비터비 복호기 및 비터비 복호 방법
US6928605B2 (en) * 2002-03-29 2005-08-09 Intel Corporation Add-compare-select accelerator using pre-compare-select-add operation
US7020223B2 (en) 2002-04-16 2006-03-28 Intel Corporation Viterbi decoder and method using sequential two-way add-compare-select operations
US7046747B2 (en) * 2002-04-16 2006-05-16 Intel Corporation Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
CN100477534C (zh) * 2002-08-14 2009-04-08 联发科技股份有限公司 维特比解码器的解码电路与方法
EP1450493A1 (de) * 2003-02-19 2004-08-25 Nokia Corporation Viterbi-Decodierer mit Berechnungen von Pfadmetriken über zwei Gitterspalten und mit Leitweg von Pfadmetriken nach dem Speicher
US7496159B2 (en) * 2003-12-01 2009-02-24 Mediatek Inc. Survivor memory management in a Viterbi decoder
US20060068911A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US7275204B2 (en) * 2004-09-30 2007-09-25 Marvell International Ltd. Distributed ring control circuits for Viterbi traceback
TWI241072B (en) * 2004-12-09 2005-10-01 Ind Tech Res Inst Prediction device and method applied in a Viterbi decoder
US7506239B2 (en) * 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US7603613B2 (en) * 2005-02-17 2009-10-13 Samsung Electronics Co., Ltd. Viterbi decoder architecture for use in software-defined radio systems
US7571369B2 (en) * 2005-02-17 2009-08-04 Samsung Electronics Co., Ltd. Turbo decoder architecture for use in software-defined radio systems
US7933405B2 (en) * 2005-04-08 2011-04-26 Icera Inc. Data access and permute unit
JP4600183B2 (ja) * 2005-06-28 2010-12-15 ソニー株式会社 ビタビ復号装置
US20070266303A1 (en) * 2006-04-27 2007-11-15 Qualcomm Incorporated Viterbi decoding apparatus and techniques
JP2010206570A (ja) * 2009-03-04 2010-09-16 Sony Corp 復号装置、復号方法
JP6551534B2 (ja) * 2015-03-23 2019-07-31 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
KR102693857B1 (ko) * 2016-07-06 2024-08-09 삼성전자주식회사 컨볼루션 디코더 및 컨볼루션 코드들을 디코딩하는 방법
US10069517B2 (en) * 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539757A (en) * 1993-12-22 1996-07-23 At&T Corp. Error correction systems with modified Viterbi decoding
US5497384A (en) * 1993-12-29 1996-03-05 International Business Machines Corporation Permuted trellis codes for input restricted partial response channels
US5530707A (en) * 1994-03-09 1996-06-25 At&T Corp. Area-efficient decoders for rate-k/n convolutional codes and other high rate trellis codes
US5537424A (en) * 1994-08-12 1996-07-16 International Business Machines Corporation Matched spectral null codes with partitioned systolic trellis structures
US5841796A (en) 1995-03-14 1998-11-24 Comsat Corporation Apparatus and method for calculating viterbi path metric using exponentially-weighted moving average
US5859861A (en) 1995-06-21 1999-01-12 Hyundai Electronics Ind. Co., Ltd. High speed viterbi decoder
JPH09232973A (ja) * 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
US5815515A (en) * 1996-03-28 1998-09-29 Lsi Logic Corporation Edge metric calculation method and apparatus using permutations
US5872817A (en) 1997-07-02 1999-02-16 Lucent Technologies Inc. Joint viterbi decoder and decision feedback equalizer

Also Published As

Publication number Publication date
DE60028906D1 (de) 2006-08-03
KR100426712B1 (ko) 2004-04-13
JP2001156651A (ja) 2001-06-08
EP1102408A3 (de) 2003-08-27
EP1102408B1 (de) 2006-06-21
US6324226B1 (en) 2001-11-27
JP3515720B2 (ja) 2004-04-05
KR20010051871A (ko) 2001-06-25
EP1102408A2 (de) 2001-05-23

Similar Documents

Publication Publication Date Title
DE60028906T2 (de) Viterbi Dekoder
DE69333460T2 (de) Arithmetisches Gerät
DE69420470T2 (de) Echtzeitfaltungskodierer mit Blocksynchronisationsfunktion
DE69827915T2 (de) Verarbeitungsverfahren und -vorrichtung
DE69609509T2 (de) Trelliskodierung mit verminderter fehlerverbreitung
EP0229246B1 (de) Verfahren zum Dekodieren von Binärsignalen sowie Viterbi-Dekoder und Anwendungen
DE69231938T2 (de) Iteratives Dekodierungsverfahren, Dekodierungsmodul und Dekoder dafür
DE69809155T2 (de) Viterbi-Dekoder
DE69819287T2 (de) Viterbi-Decodierer und Viterbi-Decodierverfahren
DE69212695T2 (de) Decodierungseinrichtung
DE2816913A1 (de) Decoder fuer konvolutinal codierte daten
DE112004002008B4 (de) Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme
DE69427630T2 (de) Integrierte Schaltung mit Koprozessor zur Viterbi-Dekodierung
DE68907150T2 (de) Sequentieller Dekodierer.
DE69813086T2 (de) Schneller Viterbi Dekodierer
DE60101745T2 (de) Viterbi dekodierung mit pfadmetrikaktualisierung durchgeführt in einheiten von bitscheiben
DE10010238C2 (de) Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
DE19542131A1 (de) Viterbi-Decoder
EP0769853B1 (de) Logischer Block für einen Viterbi-Decoder
EP1393514B1 (de) Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk
KR19990066200A (ko) 비터비 디코더의 스태이트 메트릭 메모리
DE69619966T2 (de) Verfahren zur Erzeugung von Verzweigungsmetriken und ein Empfänger für ein Mobiltelefon
DE10255426B3 (de) Viterbi-Decoder
DE69706639T2 (de) Datenprozessor und Verfahren zur Datenverarbeitung
DE60118716T2 (de) Log-MAP Dekodierung

Legal Events

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

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