DE69925151T2 - Effiziente normalisierung vom trelliszustandsmetrischem wert - Google Patents

Effiziente normalisierung vom trelliszustandsmetrischem wert Download PDF

Info

Publication number
DE69925151T2
DE69925151T2 DE69925151T DE69925151T DE69925151T2 DE 69925151 T2 DE69925151 T2 DE 69925151T2 DE 69925151 T DE69925151 T DE 69925151T DE 69925151 T DE69925151 T DE 69925151T DE 69925151 T2 DE69925151 T2 DE 69925151T2
Authority
DE
Germany
Prior art keywords
minimum
decoder
registers
state metric
approximate
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
DE69925151T
Other languages
English (en)
Other versions
DE69925151D1 (de
Inventor
J. Elisha ULMER
M. Jeremy STEIN
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22686167&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69925151(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of DE69925151D1 publication Critical patent/DE69925151D1/de
Application granted granted Critical
Publication of DE69925151T2 publication Critical patent/DE69925151T2/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
    • 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/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf Decodierverfahren und insbesondere auf die schnelle Decodierung von Codes unter Verwendung eines Trellis bzw. eines Trellisverfahrens.
  • Hintergrund der Erfindung
  • Die Übertragung oder Sendung von Digitaldaten ist von Natur aus empfindlich gegenüber Störungen bzw. Interferenzen, die Fehler in die übertragenen Daten einführen können. Fehlerdetektionsschemata wurden vorgeschlagen, um so zuverlässig wie möglich festzustellen, ob Fehler in die übertragenen Daten eingeführt wurden.
  • Wenn die übertragenen Daten nicht "on-line" verwendet werden, so ist es möglich, die erneute Übertragung (re-transmission) von fehlerhafter Daten, wenn Fehler detektiert werden, anzufordern. Wenn jedoch die Übertragung "on-line" durchgeführt wird, wie beispielsweise bei Telefonleitungen, Zellentelefonen (Handys), entfernt angeordneten Videosystemen und so weiter, kann es nicht möglich oder praktikabel sein, die erneute Übertragung anzufordern.
  • Faltungs- bzw. Convolution-Codes und andere ähnliche Codes wurden eingeführt, um Empfängern von Digitaldaten zu gestatten, die übertragenen Daten genau oder korrekt zu bestimmen, selbst dann, wenn Fehler während der Übertragung bzw. der Sendung aufgetreten sind. Die Faltungscodes führen in die übertragenen Daten eine Redundanz ein, und zwar dadurch, dass jedes Eingangs- oder Eingabebit von Daten durch mehr als ein codiertes Bit in den gesendeten Daten repräsentiert wird. Normalerweise sind die codierten Bits der übertragenen Daten in Pakete gepackt, in denen der Wert jedes codierten Bits von früheren Bits in der Folge oder Sequenz abhängig ist. Wenn somit einige wenige Fehler auftreten, kann der Empfänger noch immer die ursprünglichen oder Originaldaten ableiten, und zwar durch Zurückverfolgung möglicher Sequenzen in den empfangenen Daten.
  • In einigen Decodierern weist der Empfänger jedem der Signale ein Wort zu, welches einen Wert auf einer Multi-Pegel- oder Multi-Level-Skala besitzt, repräsentativ für die Wahrscheinlichkeit, dass das codierte Bit Eins ist, und zwar geschieht dies anstelle der unmittelbaren Bestimmung ob die Empfangssignale, die in einem einzigen übertragenen codierten Bit ihren Ursprung finden, Null oder Eins sind. Eine beispielhafte Skala, auf die als LLR-Wahrscheinlichkeiten Bezug genommen wird, repräsentiert jedes gesendete oder übertragene codierte Bit durch ein 6-Bit-Wort, was eine ganze Zahl in dem Bereich {–32, 31} repräsentiert. Wenn Worte einer unterschiedlichen Anzahl von Bits verwendet werden, so wird der Bereich dementsprechend eingestellt. Die LLR-Wahrscheinlichkeit eines codierten Bits wird berechnet, und zwar dadurch, dass man den Logarithmus des Verhältnisses der Wahrscheinlichkeit bildet, dass das Bit Eins ist und zwar zur Wahrscheinlichkeit, dass das Bit Null ist, oder aber den Logarithmus des Reziproken des Verhältnisses. Der Wert von 31 kennzeichnet, dass das übertragenen Bit mit sehr hoher Wahrscheinlichkeit Null war und der Wert von –32 bedeutet, dass das übertragene Bit mit einer sehr hohen Wahrscheinlichkeit Eins war. Ein Wert von Null zeigt an, dass der Wert unbestimmt ist.
  • Wenn ein Sender ein codiertes Paket von Bits überträgt, in dem jedes codierte Bit einen definierten Wert von "1" oder "0" besitzt, und zwar über einen "rauschenden" Kanal, so empfängt der Empfänger ein Paket in dem jedes Bit einen variablen Spannungswert besitzt, der als eine LLR-Wahrscheinlichkeit interpretiert werden kann, und zwar in Folge der Interferenz, die durch den Kanal eingeführt wird. Ein Decodierer muss basierend auf dem empfangenen Paket das übertragene oder gesendete Paket bestimmen. Ein einfaches Verfahren umfasst die Bestimmung einer "Differenz" zwischen dem empfangenen Paket und allen möglichen Paketen und die Bestimmung welches mögliche Paket die kleinste Differenz besitzt. Wegen der großen Anzahl unterschiedlicher möglicher Werte der Pakete ist dieses Verfahren jedoch normalerweise nicht praktikabel.
  • Bei Faltungscodierverfahren und anderen verwandten Verfahren wird ein nicht codiertes Eingangspaket in einen Codierer eingespeist, der eine Anzahl von möglichen Zuständen besitzt. Wenn jedes Datenbit des nicht codierten Paketes in den Decodierer eingespeist wird, bewirkt es eine Änderung des Zustands des Codierers und liefert eine Gruppe von einem oder mehreren codierten Ausgangsbits (output coded bits), die eine Funktion des Zustandes und des Eingangs sind. Die Gruppen von codierten Ausgangsbits bilden ein codiertes Paket, welches übertragen wird. Die Anzahl der Bits in jeder Gruppe ist ein Faktor der Redundanz, eingeführt durch den Code und zwar als Folge der Faltung. Ein Code in dem jede Gruppe beispielsweise zwei Bits umfasst, besitzt eine Coderate von 1/2, was bedeutet, dass der tatsächliche Informationsgehalt eines Pakets gleich der Hälfte der Anzahl der codierten Bits im Paket ist.
  • Faltungscodes werden im Allgemeinen gemäß Decodierschemata decodiert, die ein Trellis verwenden, wie beispielsweise MAP-Decodieren (oder APP-Decodieren), SOVA-Decodieren und Viterbi-Decodieren. Ein Decodierer empfängt die Wahrscheinlichkeiten der empfangenen codierten Bits in dem codierten Paket (zusammen mit während der Übertragung eingeführtem Rauschen) und decodiert das codierte Paket durch Zurückverfolgung der Schritte des Codierers. Der Decodierer berechnet für jeden möglichen Zustand des Codierers einen Unterschied oder eine Differenz zwischen den das empfangene Paket repräsentierenden Worten und einem bevorzugten übertragenen Paket, welches den Codierer in diesen Zustand gebracht haben würde. Diese Differenz wird als eine Zustandsmetrik ("state metric") bezeichnet. Für jede Gruppe von Worten, die eine Gruppe von empfangenen Bits repräsentiert, aktualisiert der Decodierer die Zustandsmetrik jedes möglichen Zustands, und zwar entsprechend der Differenz zwischen den Wahrscheinlichkeitswerten der empfangenen Bits und den idealen hypothetischen Werten, die für einen bestimmten oder spezifischen Zustandsübergang (state transition) (als ein "Trellisübergang" bzw. Trellistransition bezeichnet) des Codierers erforderlich wären. Beim Viterbi-Decodieren, wenn die Übergänge (transitions) von unterschiedlichen Zuständen zu dem gleichen resultierenden Zustand führen, herrscht der Übergang der sich aus einer Zustandsmetrik mit der höchsten Wahrscheinlichkeit ergibt vor. Beim MAP- und APP-Decodieren ist der Wert der neuen Zustandsmetrik eine Funktion aller Übergänge (transitions), die in den Zustand führen, und zwar beispielsweise eine Summe davon.
  • Die Zustandsmetrik steigt schnell mit jedem Bit das verarbeitet ist an, kann bei Paketen von Tausenden von Bits Repräsentation mit 15–20 Bits oder selbst mehr erfordern. Wenn das Decodieren in Software ausgeführt wird, beispielsweise in einem Digitalsignalprozessor, bewirken diese Größen an sich kein großes Problem. Da jedoch die Decodierung unter kritischen zeitlichen Einschränkungen ausgeführt werden muss, werden dieser Aufgabe gewidmete Hardwareprozessoren vorzugsweise eingesetzt und verwendet. Bei derartigen Prozessoren ist es notwendig, die Anzahl von Bits zu reduzieren, die verwendet wird, um die Zustandsmetrik zu repräsentieren, und zwar um schnelles Decodieren ohne exzessive Hardwarekosten zu erreichen.
  • Eine übliche Lösung umfasst Folgendes: Verwendung von 8-Bit-Registern zur Speicherung der Zustandsmetriken. Um die Sättigung zu verhindern wird eine Normalisierungsmetrik (NM) periodisch berechnet, die die Minimumzustandsmetrik umfasst, und zwar geschieht dies vorzugsweise nach jedem aufeinanderfolgenden Trellisübergang (trellis transition) und die NM wird von sämtlichen Registern abgezogen. Die Berechnung der minimalen Zustandsmetrik ist jedoch zeitraubend. Im Allgemeinen wird die NM parallel mit dem Betrieb des Decodierers berechnet und die NM wird später an einer verzögerten Stufe subtrahiert, wenn das Minimum bestimmt wird. In der Zwischenzeit können die Register sich sättigen und wertvolle Daten verlieren. Zudem erfordert eine solche Lösung zusätzliche Hardware zur Aufbewahrung der NM, die an einer späteren Stufe verwendet wird und zum Subtrahieren von dem NM an der späteren Stufe, wobei vorherige Werte von der NM bereits von den Zustandsmetrikregistern während der Verzögerung subtrahiert wurden.
  • A. P. Hekstra schlägt in "An Alternative to Metric Rescaling in Viterbi Decoders", IEEE Trans. Commun., Band 37, Nr. 11 (Nov. 1989), Seiten 1220–1222, die Verwendung eines Modularberechnungsverfahrens vor, um die Sättigung der Zustandsmetriken zu verhindern. Um die Sättigung zu verhindern, werden einige wenige zusätzliche Bits dazu verwendet, um die Zustandsmetrik zu repräsentieren, und zwar zusammen mit dem modularen Berechnungsergebnis. Beispielsweise werden für einen Vierzustand, 1/2-Ratencode mit 6-Bit-Datenworten, 11-Bit-Register zur Speicherung der Zustandsmetriken verwendet. Jedes zusätzliche Bit in den Registern benötigt jedoch mehr Rechenzeit und erhöht die Kosten des Decodierers.
  • C. B. Shung, P. H. Siegel, G. Ungerbroeck und H. K. Thapar in "VLSI Architectures for Metric Normalisation in the Viterbi Altorithm", IEEE International Conference on Communications ICC" 90, 15.–19. April 1990, Seiten 1723–1728, beschreiben das subtrahieren einer minimalen Survivor- oder Überlebensmetrik von allen Survivor- oder Überlebensmetriken nachdem eine feste Anzahl von Rekursionen vorgenommen wurde. Ein Subtrahierer ist erforderlich, um die minimale Survivormetrik abzuziehen.
  • Zusammenfassung der Erfindung
  • Es ist ein Ziel einiger Aspekte der vorliegenden Erfindung Verfahren und Vorrichtungen vorzusehen zur schnellen Zustandsnormalisierung in Decodern unter Verwendung eines Trellis.
  • Somit ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren vorgesehen zur Normalisierung einer Vielzahl von Zustandsmetrikregistern in einem Decodierer unter Verwendung eines Trellis, wie in Anspruch 1 angegeben.
  • Gemäß einem zweiten Aspekt wird eine Zustandsmetrikberechnungseinheit zur Verwendung in einem Decodierer vorgesehen, der unter Verwendung eines Trellis, wie in Anspruch 9 angegeben, decodiert.
  • Gemäß einem dritten Aspekt wird ein iterativer Decodierprozessor vorgesehen, der eine Vielzahl von Berechnungseinheiten aufweist, und zwar gemäß dem zweiten Aspekt nach Anspruch 16.
  • In bevorzugten Ausführungsbeispielen der vorliegenden Erfindung berechnet ein ein Trellis verwendender Decodierer, wie beispielsweise ein "A Posteriori-Probability (APP) Decodierer = (oder ein Maximal-A-Posteriori- (MAP-) – Decodierer), ein Viterbi-Decodierer oder ein Soft Output-Viterbi-Algorithmus (SOVA-)-Decodierer, eine Minimumzustandsmetrik, und zwar verwendet bei der Normalisierung nur annähernd. Der Schaden wegen der angenäherten Berechnung ist vernachlässigbar, und zwar relativ zu den Zeiteinsparungen, die sich durch die Annäherung ergeben. Vorzugsweise ist das angenäherte Minimum kleiner als oder gleich dem tatsächlichen Minimum derart, dass dann, wenn das berechnete Minimum von allen Zustandsmetrikregistern abgezogen wird, und zwar unter Verwendung vorzeichenloser Arithmetik, keine Daten verloren gehen.
  • Vorzugsweise wird das angenäherte Minimum berechnet durch Bestimmung des Minimums einiger weniger am meisten signifikanten Bits der Zustandsmetriken. Vorzugsweise ist die Zahl der Bits verwendet zur Berechnung des angenäherten Minimums zwischen 30% und 60% der Bits in den Zustandsmetriken. In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung sind acht Bits in den Zustandsmetrikregistern und die vier am meisten signifikanten Bits (MSBs = most significant bits) werden bei der Berechnung des Minimums zur Normalisierung verwendet.
  • Gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird ein Verfahren zur Normalisierung einer Vielzahl von Zustandsmetrikregistern in einem Decoder vorgesehen, und zwar unter Verwendung eines Trellis einschließlich der Bestimmung eines angenäherten Minimums von entsprechenden Zustandsmetrikwerten, gespeichert in der Vielzahl von Zustandsmetrikregistern, und durch Subtrahieren des angenäherten Minimums von diesen Werten.
  • Vorzugsweise ist das angenäherte Minimum stets gleich oder weniger als ein tatsächliches Minimum der Werte in der Vielzahl von Zustandsmetrikregistern.
  • Die Bestimmung des angenäherten Minimums umfasst Folgendes: Bestimmung des Minimums einer vorbestimmten Anzahl der am meisten signifikanten Bits in der Vielzahl von Zustandsmetrikregistern.
  • Vorzugsweise schließt die vorbestimmte Anzahl der am meisten signifikanten Bits zwischen 30% und 60% der Anzahl der Bits im Register ein.
  • Vorzugsweise umfasst das Verfahren das Berechnen von neuen Zustandsmetrikwerten für die Register, wobei das Subtrahieren des angenäherten Minimums im Wesentlichen gleichzeitig mit der Berechnung der neuen Werte ausgeführt wird.
  • Vorzugsweise umfasst das Verfahren das Speichern in den Zustandsmetrikregistern während einer Vielzahl von aufeinander folgenden Clock- oder Taktzyklen einer Vielzahl von entsprechenden neuen Werten, wobei die Bestimmung des angenäherten Minimums die Bestimmung eines angenäherten Minimums der neuen Werte in im Wesentlichen jedem Zyklus umfasst.
  • Vorzugsweise umfasst die Bestimmung des angenäherten Minimums Folgendes: Bestimmung eines angenäherten Minimums während eines ersten einer Vielzahl von Clock- oder Taktzyklen, und wobei das Subtrahieren des angenäherten Minimums das Subtrahieren während eines zweiten der Vielzahl von Taktzyklen nach dem ersten Taktzyklus umfasst.
  • Vorzugsweise umfasst das Verfahren das Einstellen des angenäherten Minimums ansprechend auf einen Zeitspalt oder eine Zeitunterbrechung zwischen den ersten und zweiten Taktzyklen.
  • Vorzugsweise umfasst das Einstellen des angenäherten Minimums Folgendes: Subtrahieren von dem angenäherten Minimum berechnet während des zweiten Zyklus, das angenäherte Minimum berechnet während des ersten Zyklus.
  • Ferner ist gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung eine Zustandsmetrikberechnungseinheit vorgesehen, und zwar zur Verwendung in einem Decodierer, der unter Verwendung eines Trellis decodiert und zwar Folgendes einschließend: eine Vielzahl von Zustandsmetrikregistern, die entsprechende Zustandsmetrikwerte speichern, eine Minimumberechnungseinheit, die ein angenähertes Minimum der Vielzahl von Registern bestimmt, und eine Vielzahl von Subtrahierern, die das angenäherte Minimum von den Werten in der Vielzahl der Register subtrahiert.
  • Die Minimumberechnungseinheit berechnet das Minimum einer vorbestimmten Anzahl der am meisten signifikanten Bits in den Registern und der Subtrahierer subtrahiert das angenäherte Minimum von der vorbestimmten Anzahl der am meisten signifikanten Bits in den Registern.
  • Vorzugsweise weist die Einheit eine Vielzahl von rekursiven Kombinierern auf, die für jedes Register eine nächste Zustandsmetrik des Registers berechnen, und wobei jeder rekursive Kombinierer einen entsprechenden Subtrahierer der Subtrahierer umfasst.
  • Vorzugsweise ist der Decodierer ein Viterbi-Decodierer, ein APP-Decodierer, ein MAP-Decodierer, ein Trellis-Decodierer und/oder ein Soft-Output-Viterbi-Decodierer.
  • Gemäß einem bevorzugten Ausführungsbeispiel der Erfindung ist ein iterativer Decodierprozessor für die iterative Decodierung einer Sequenz von Signalpaketen codiert gemäß einem Multikomponentencodierschema vorgesehen, und zwar einschließlich einer Vielzahl von Berechnungseinheiten, wie oben beschrieben.
  • Die vorliegende Erfindung wird vollständiger anhand der folgenden detaillierten Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung verstanden, und zwar im Zusammenhang mit den Zeichnungen:
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein schematisches Blockdiagramm eines Codierers 10, der codierte Pakete erzeugt;
  • 2 ist ein schematisches Blockdiagramm eines APP-Decodierers gemäß einem bevorzugten Ausführungsbeispiel der Erfindung;
  • 3 ist ein schematisches Blockdiagramm einer Vorwärtszustandsmetrikberechnungseinheit in dem Decodierer der 2 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung;
  • 4 ist eine graphische Darstellung möglicher Zustandsübergänge (transitions) im Codierer der 1;
  • 5 ist ein Blockdiagramm eines rekursiven Metrikkombinierers in der Zustandsberechnungseinheit der 3, und zwar gemäß einem bevorzugten Ausführungsbeispiel der Erfindung;
  • 6 ist ein Blockdiagramm einer Minimum-Berechnungseinheit in der Zustandsmetrikberechnungseinheit der 3, und zwar gemäß einem bevorzugten Ausführungsbeispiel der Erfindung;
  • 7 ist ein Blockdiagramm eines Decodierprozessors, der zwei Decodierer ähnlich dem Decodierer der 2 aufweist, und zwar gemäß einem bevorzugten Ausführungsbeispiel der Erfindung; und
  • 8 ist ein Blockdiagramm einer Minimum-Berechnungseinheit gemäß einem weiteren bevorzugten Ausführungsbeispiel der Erfindung.
  • Detaillierte Beschreibung bevorzugter Ausführungsbeispiele
  • 1 ist ein schematisches Blockdiagramm eines Codierers 10, der codierte Pakete erzeugt. Der durch den Codierer 10 erzeugte Code besitzt eine Generator- oder Erzeugermatrix (G[D]), gegeben durch die Gleichung (1): G[D] = [1,(1 + D + D2)/(1 + D)] (1)wobei D ein Verzögerungselement 12 repräsentiert.
  • 2 ist ein schematisches Blockdiagramm eines APP-Decodierers 20 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung. Der Decodierer 20 verwendet eine Trellis zur Decodierung des durch den Codierer 10 erzeugten Codes.
  • Der Decodierer 20 weist eine einzige Eingangsleitung auf, durch die ein Eingangs- oder Eingabepaket an den Decodierer geliefert wird. Ein wahlweise oder optionaler Depunktierer (de-puncturer) 24 addiert LLR-Wahrscheinlichkeitsworte mit Null oder Nullwerten (null or zero values) wie erfordert, wenn der Code decodiert durch den Decodierer 20 Punktierung ("Puncturing") verwendete, wie dies im Stand der Technik bekannt ist. Die "Null- oder Zerowerte" zeigen an, dass die Codebits repräsentiert durch die LLR-Worte die gleiche Wahrscheinlichkeit besitzen "1" oder "0" zu sein. Für jede Gruppe von LLR-Worten in dem Eingangs- oder Eingabepaket berechnet eine Zweig- oder Branchmetrik-(BM)-Recheneinheit 26, wie im Stand der Technik bekannt, eine BM (branch metrik, Zweigmetrik) für jeden möglichen hypothetischen Wert der Codebits repräsentiert durch die LLR-Worte in der Gruppe. Für ½-Raten-Codes (d.h. für Codes mit Rate ½), wie beispielsweise den durch den Codierer 10 erzeugten Code, entspricht jede Gruppe zwei codierten Bits und hat daher vier mögliche hypothetische Werte.
  • Vorzugsweise gibt, wie unten weiterhin beschrieben, die Einheit 26 vier 8-Bit-BMs für jede neue Gruppe von LLR-Worten in den Eingang. Jede BM zeigt die Wahrscheinlichkeit an, dass die Gruppe von Bits ursprünglich den entsprechenden hypothetischen Wert hatte. Die BM-Einheit 26 kann beispielsweise eine solche sein, wie sie in der folgenden Literaturstelle beschrieben ist: "Implementation and Performance of a Turbo/MAP-Decoder" von Steven S. Pietrobon im International Journal of Satellite Communications, Band 16 (1998), Seiten 23–46.
  • Eine oder mehrere, vorzugsweise drei, ZustandsmetrikBerechnungseinheiten (SM = state-metric calculation units)-30, 32 und 34 empfangen die BMs und berechnen demgemäß die Zustandsmetriken jedes der Zustände des Codes wie weiter unten beschrieben. Vorzugsweise empfangen die SM-Berechnungseinheiten 30, 32 und 34 die BMs von einer oder mehreren Speichereinheiten 28, wo die Branch- oder Zweigmetriken (BM) gespeichert sind. Ferner besitzt jede SM-Berechnungseinheit ihre eigene BM-Speichereinheit 28, so dass die SM-Berechnungseinheiten parallel arbeiten können, ohne miteinander in Interferenz zu geraten oder sich zu stören. Vorzugsweise unterscheiden sich die SM-Einheiten 30, 32 und 34 in der Richtung, in der das Paket verarbeitet wird. Die Einheit 30 verarbeitet das Paket in einer ersten (Vorwärts-)Richtung und zwar vom Beginn oder Anfang bis zum Ende, wohingegen die Einheiten 32 und 34 das Paket in der entgegengesetzten (umgekehrten; reverse) Richtung vom Ende zum Anfang verarbeiten.
  • Zwei Reverse- oder Umkehreinheiten 32 und 34 sind vorzugsweise in Verwendung, um die Verwendung einer Näherungs- oder Approximationsmethode zu verwenden, die auf der Umkehr von Segmenten des Eingangspaketes basieren anstelle des Umkehrens des gesamten Pakets. Diese Annäherung gestattet die Durchführung der umgekehrten (reverse) Decodierung direkt nach dem jedes Datensegment in dem Paket empfangen wurde, anstelle dass man auf ein ganzes oder gesamtes Paket wartet, das umgekehrt werden muss. Das Verfahren ist in der folgenden Literaturstelle beschrieben: "An Intuitive Justification and Simplified Implementation of the MAP Decoder for Convolutional Codes" von Andrew J. Viterbi, IEEE Journal on Selected Areas in Communications, Band 16, Nr. 2, Seiten 260–264 (Februar 1998). Jede der Einheiten 32 und 34 liefert zuverlässige SMs während der Hälfte der Betriebszeit, so dass sie zusammen zuverlässig SMs für das gesamte Paket liefern. Ein Multiplexer 35 wählt die richtigen Ergebnisse gemäß der Approximationsmethode aus. Eine Speichereinheit 36 wird dazu verwendet, um die Reihenfolge des verarbeiteten Pakets oder der Segmente umzukehren, und zwar zurück zur richtigen Vorwärtsreihenfolge oder Ordnung, so dass die Verwendung zusammen mit den Resultaten von Einheit 30 erfolgen kann. Eine LLR-Berechnungseinheit 40 berechnet einen Ausgangswahrscheinlichkeitswert für jedes LLR-Wort, und zwar basierend auf den SMs von den Einheiten 30, 32 und 34 und auf den BMs von der Einheit 26. Die LLR-Einheit 40 ist vorzugsweise von einer Art, wie sie in dem oben genannten Artikel von Steven S. Pietrobon, oder alternativ, wie es in dem oben genannten Artikel von Anthony J. Viterbi beschrieben ist. Das Resultat oder das Ergebnis von Einheit 40 kann auf einer Ausgangs- oder Ausgabeleitung 42 ausgegeben werden und/oder kann durch einen Punktierer (puncterer) 44 für die weitere Verarbeitung weiter geleitet werden.
  • 3 ist ein schematisches Blockdiagramm einer Vorwärts-SM-Berechnungseinheit 30 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung. Die Umkehr-(Reverse-)-SM-Einheiten 32 und 34 sind ähnlich im Aufbau zur Einheit 30 und zwar mit den notwendigen Modifikationen, wie sie im Stand der Technik bekannt sind. Die Einheit 30 weist vier rekursive Metrikkombinierer 50 auf, und zwar entsprechend jedem der vier möglichen Zustände des Codierers. Jeder der Kombinierer 50 berechnet rekursiv das SM des Zustands. Für jede Bitgruppe (n + 1) im Paket aktualisieren die Kombinierer 50 ihre SMs basierend auf den SMs der vorhergehenden Bitgruppe (n) und auf den entsprechenden BMs, wie weiter unten beschrieben. Die berechneten SMs werden zurück auf Rückkopplungsleitungen 52 geleitet, und zwar für die nächste Berechnungsiteration der nächsten Bitgruppe des Pakets. Vorzugsweise liefern eine Vielzahl von Ausgangsleitungen 54 die SMs an die LLR-Berechnungseinheit 40. Zudem bestimmt eine Minimumberechnungseinheit 56 nach jeder oder nach mehreren rekursiven Iterationen der Kombinierer 50, das Minimum der am meisten signifikanten Bits der SMs. Das berechnete Minimum wird als eine Normalisierungsmetrik (NM) verwendet und wird zurück zu den Kombinierern 50 zur Normalisierung geleitet.
  • Es sei bemerkt, dass in den bevorzugten Ausführungsbeispielen der Erfindung die Einheit 30 mehr als vier Kombinierer 50 umfasst, vorzugsweise 16 Kombinierer entsprechend den 16 Zuständen. Aus Gründen der Klarheit veranschaulichen die 24 ein einfaches Vier-Zustands-Ausführungsbeispiel. Die Erweiterung der hier beschriebenen Konzepte zum Betrieb von 16 oder sogar einer größeren Anzahl von Zuständen ist dem Fachmann unmittelbar einleuchtend.
  • 4 ist eine graphische Darstellung, die mögliche Zustandsübergänge in dem Code decodiert durch den Decodierer 20 zeigt, wobei der Code entsprechend der obigen Gleichung (1) erzeugt wurde. Die Knoten 60 repräsentieren die möglichen Zustände des Codierers für eine Bitgruppe (n) von zwei Bits. Die Knoten 62 repräsentieren die möglichen Zustände des Codierers für eine darauf folgende Bitgruppe (n + 1). Gemäß dem Code kann der Codierer einen Übergang machen, und zwar von einem der Knoten 60 der Bitgruppe (n) auf bestimmte der Knoten 62 der Bitgruppe (n + 1) und zwar nur entlang eines einer Vielzahl von Zweigen (branches) 64. Um einen solchen Übergang zu machen, muss die Bitgruppe (n) den Wert haben, der oben durch den entsprechenden Zweig 64 angegeben ist.
  • Daher gilt, zurückgreifend auf 3 Folgendes: jeder Kombinierer 50 empfängt zwei SMs, die SMs von denjenigen Knoten 60 sind, die zu dem Zustand führen können, der mit dem speziellen Kombinierer assoziiert ist, und zwar repräsentiert durch Knoten 62 des Kombinierers 50. Zudem empfängt jeder Kombinierer 50 zwei BMs, die den BMs der Zweige 64 entsprechen, die von den zwei Knoten 60 zum Knoten 62 entsprechend dem speziellen Kombinierer führen. Beispielsweise entspricht der obere Kombinierer 50 in 2 dem Zustand '00'. Er empfängt daher die SM des Zustands '00' und die BM '00', welches die Bitgruppe des Zweiges (branch) 64 ist, der vom Knoten 60 des Zustandes '00' zum Knoten 62 des Zustands '00' führt. Zudem empfängt der obere Kombinierer 50 die SM des Zustands '01' und die BM '01', welche die Bitgruppe des Zweiges 64 ist, der vom Knoten 60 des Zustandes '01' zum Knoten 62 des Zustandes '00' führt.
  • 5 ist ein schematisches Blockdiagramm des rekursiven Kombinierers 50 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung. Zwei Addierer 70 berechnen jeweils zwei mögliche nächste-Stufe-(n + 1)-Zustandsmetriken des Zustands repräsentiert durch den speziellen Kombinierer 50 und zwar durch Addieren der SM der richtigen oder ordnungsgemäßen Knoten 60 zu entsprechenden BMs der entsprechenden Zweige 64. Ein Subtrahierer 72 subtrahiert die zwei möglichen nächste-Stufe-Zustandsmetriken voneinander und basierend auf dem Vorzeichen der Subtraktion wird die niedrigere Zustandsmetrik durch einen MUX 74 gewählt. Die Zustandsmetrik vom MUX 74 ist vorzugsweise 9 Bits breit. Die Normalisierungsmetrik (NM), berechnet in der Einheit 56, wird von den fünf am meisten signifikanten Bits der gewählten SM in einem Subtrahierer 78 abgezogen. Die vier am wenigsten signifikanten Bits der Zustandsmetrik werden vorzugsweise intakt auf einer Leitung 80 geleitet, und zwar den Subtrahierer 78 umgehend.
  • Vorzugsweise bestimmt eine Nachschautabelle 82 eine Versetzung (offset) basierend auf der Differenz zwischen den zwei möglichen nächste-Stufe-Zustandsmetriken (a, b) und zwar berechnet durch Subtrahierer 72. Vorzugsweise ist die Ausgangsgröße der Nachschautabelle 82 so wie in Gleichung (2) beschrieben: LUT = Const·(In2 – In(1 + e–|a-b|)) (2)in der Folgendes gilt: Const ist eine Skaliervariable abhängig von der Anzahl der Bits, die die SMs repräsentieren oder genauer gesagt abhängig von dem Quantisierungsschritt der SMs. Die Gleichung (2) ist auf dem Gebiet der APP-Decodierer bekannt. Es sei bemerkt, dass Viterbi-Decodierer auch einen Kombinierer ähnlich dem Kombinierer 50 enthalten, aber ohne LUT 82. Die Versetzung (offset) wird der normalisierten Zustandsmetrik am Addierer 84 hinzu addiert, wobei eine korrigierte Zustandsmetrik geliefert wird. Vorzugsweise ist die korrigierte Zustandsmetrik auf 8 Bits gesättigt, und zwar an einer Klammer (clamp) 86 und wird sodann in einem 8-Bit-Register 88 zur Ausgabe vom rekursiven Kombinierer 50 gespeichert.
  • 6 ist ein Blockdiagramm der Minimum-Recheneinheit 56 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung. Die Einheit 56 empfängt vorzugsweise die vier am meisten signifikanten Bits (MSB) der SMs von jedem der rekursiven Kombinierer 50. Auswahleinheiten 90 wählen die vier MSBs aus, die den niedrigsten Wert besitzen, wobei dieser als die Normalisierungsmetrik (NM) ausgegeben wird.
  • 7 ist ein Blockdiagramm eines Decodierprozessors 100 der zwei Decodierer ähnlich dem Decodierer 20 gemäß einem bevorzugten Ausführungsbeispiel der Erfindung verwendet. Der Prozessor 100 ist beispielsweise zweckmäßig bei einer Turbodecodierung und bei einer turboartigen Decodierung, wie dies in der anhängigen Anmeldung mit dem Titel "Efficient Parallel Iterative Decoding" beschrieben ist, die auf den Anmelder der vorliegenden Erfindung übertragen ist. Der Prozessor 100 weist einen ersten Decodierer 102 auf, und zwar ähnlich dem Decodierer 20 zum Decodieren eines ersten Codes und einen zweiten Decodierer 106 ebenfalls ähnlich oder gleich dem Decodierer 20 zum Decodieren eines zweiten Codes, wobei beide zur Codierung von Eingangsdaten angewandt werden. Vorzugsweise sind die ersten und zweiten Codes unterschiedlich. Eine Steuereinheit 104 steuert vorzugsweise den Betrieb der Decodierer. Vorzugsweise wird ein codiertes Paket iterativ zwischen den Decodierern 102 und 106 zurück und vorwärts hindurchgeleitet, bis das Paket hinreichend decodiert ist.
  • Es sei nunmehr bemerkt, dass Decodierer ähnlich oder gleich dem Decodierer 20 in einer großen Verschiedenheit von Decodierprozessoren verwendet werden können, wobei der Prozessor 100 nur eine bevorzugte Bauart des Prozessors ist.
  • 8 ist ein Blockdiagramm einer Minimum-Recheneinheit 108, die anstelle der Einheit 56 verwendet werden kann, und zwar gemäß einem weiteren be vorzugten Ausführungsbeispiel der Erfindung. Eine Vielzahl von Auswahleinheiten 90 bestimmt die NM, wie dies oben unter Bezugnahme auf die Einheit 56 in 6 beschrieben wurde. Die zum Berechnen des Minimums erforderliche Zeit kann jedoch die Zeit eines Takt- oder Clockzyklus übersteigen, der erforderlich ist zur Berechnung der neuen Zustandsmetriken durch die Kombinierer 50. Um daher den Taktzyklus nicht zu verlängern und den Betrieb des Decodierers 20 zu verlangsamen, wird das Minimum durch Einheit 108 in einem einzigen Taktzyklus berechnet aber wird nicht durch die Kombinierer 50 in dem gleichen Zyklus verwendet. Vielmehr verwenden die Kombinierer 50 vorzugsweise eine NM berechnet in einem vorhergehenden Takt- oder Clockzyklus.
  • Vorzugsweise wird die berechnete NM in einem Register 114 gespeichert. In einem darauf folgenden Zyklus werden die Inhalte des Registers 114 zu den Kombinierern 50 geleitet und zwar zur Verwendung bei der Normalisierung. In der Zwischenzeit wurde jedoch das Minimum von dem vorhergehenden Taktzyklus von den Zustandsmetriken in den Kombinierern 50 subtrahiert. Daher bewahrt das Register 114 vorzugsweise das Minimum von dem vorhergehenden Taktzyklus, welches sodann von dem Minimum von dem laufenden Taktzyklus durch einen Subtrahierer 112 subtrahiert wird. Die Differenz im Register 114 wird zu den Kombinierern 50 geleitet. Es sei bemerkt, dass andere Ausbildungen von einem oder mehreren Registern zum Speichern des Minimums alternativ verwendet werden können.
  • Obwohl die obige Beschreibung die Verwendung eines APP-Decodierers eines bestimmten Codes mit nur zwei Codebits in jeder Gruppe verwendet, erkennt der Fachmann, dass die Prinzipien der vorliegenden Erfindung auch auf einen weiten Bereich von iterativen Decodierern angewandt werden können, und zwar einschließlich SOVA- und MAP-Decodierern und ferner auch bei Decodierern, die irgendeine Anzahl von Codebits in jeder Gruppe besitzen.
  • Es sei bemerkt, dass die oben beschriebenen bevorzugten Ausführungsbeispiele Beispiele sind und dass der vollständige Bereich der Erfindung nur durch die Ansprüche begrenzt ist.

Claims (16)

  1. Ein Verfahren zur Normalisierung einer Vielzahl von Zustandsmetrikregistern (30, 32, 34) in einem Decoder (20, 102, 106) unter Verwendung eines Trellis, wobei das Verfahren die folgende Schritte aufweist: Bestimmen eines Minimums von jeweiligen Zustandsmetrikwerten, die in der Vielzahl von Zustandsmetrikregistern (30, 32, 34) gespeichert sind; und Subtrahieren des Minimums von den Werten; dadurch gekennzeichnet, dass: das Minimum ein ungefähres Minimum ist; das Bestimmen das Bestimmen des Minimums einer vorbestimmten Anzahl von höchstwertigen Bits in der Vielzahl von Zustandsmetrikregistern (30, 32, 34) aufweist, wobei die vorbestimmte Anzahl geringer ist als die Gesamtanzahl von Bits in den Registern; und das Subtrahieren das Subtrahieren des ungefähren Minimums von der vorbestimmten Anzahl von höchstwertigen Bits der Register (30, 32, 34) aufweist.
  2. Verfahren gemäß Anspruch 1, wobei das ungefähre Minimum immer gleich oder weniger als ein tatsächliches Minimum der Werte in der Vielzahl von Zustandsmetrikregistern (30, 32, 34) ist.
  3. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die vorbestimmte Anzahl von höchstwertigen Bits zwischen 30% und 60% der Anzahl von Bits in dem Register (30, 32, 34) aufweist.
  4. Verfahren gemäß Anspruch 1, das weiterhin den Schritt des Berechnens neuer Zustandsmetrikwerte für die Register (30, 32, 34) aufweist und wobei das Subtrahieren des ungefähren Minimums im Wesentlichen gleichzeitig mit der Berechnung der neuen Werte ausgeführt wird.
  5. Verfahren gemäß Anspruch 1, das weiterhin den Schritt des Speicherns in den Zustandsmetrikregistern (30, 32, 34) während der Vielzahl von aufein ander folgenden Taktzyklen von einer Vielzahl von jeweiligen neuen Werten aufweist, wobei das Bestimmen des ungefähren Minimums das Bestimmen eines ungefähren Minimums der neuen Werte im Wesentlichen in jedem Zyklus aufweist.
  6. Ein Verfahren gemäß Anspruch 5, wobei das Bestimmen des ungefähren Minimums das Bestimmen eines ungefähren Minimums während einem ersten Zyklus der Vielzahl von Taktzyklen aufweist und wobei das Subtrahieren des ungefähren Minimums das Subtrahieren während eines zweiten Zykluses der Vielzahl von Taktzyklen nach dem ersten aufweist.
  7. Verfahren gemäß Anspruch 6, das weiterhin das Anpassen des ungefähren Minimums ansprechend auf eine Zeitlücke zwischen den ersten und zweiten Taktzyklen aufweist.
  8. Ein Verfahren gemäß Anspruch 7, wobei das Anpassen des ungefähren Minimums das Subtrahieren des ungefähren Minimums, das während des ersten Zykluses berechnet wurde, von dem ungefähren Minimum, das während des zweiten Zykluses berechnet wurde, aufweist.
  9. Eine Zustandsmetrikberechnungseinheit (30, 32, 34) zur Verwendung in einem Decoder (20, 102, 106), der mittels eines Trellis decodiert, wobei die Einheit Folgendes aufweist: Eine Vielzahl vom Zustandsmetrikregistern (30, 32, 34), die jeweilige Zustandsmetrikwerte aufweist; eine Minimumberechnungseinheit (56, 108), die betriebsmäßig ein Minimum der jeweiligen Zustandmetrikwerte bestimmt; und eine Vielzahl von Subtrahierern (78), die betriebsmäßig das Minimum von den Werten subtrahiert; dadurch gekennzeichnet, dass das Minimum ein ungefähres Minimum ist; die Minimumberechnungseinheit (56, 108) betriebsmäßig ist, um das Minimum einer vorbestimmten Anzahl von höchstwertigen Bits in der Vielzahl von Zu standsmetrikregistern (30, 32, 34) zu bestimmen, wobei die vorbestimmte Anzahl geringer ist als die Gesamtanzahl von Bits in den Registern (30, 32, 34); und der Subtrahierer (78) betriebsmäßig ist, um das ungefähre Minimum von der vorbestimmten Anzahl von höchstwertigen Bits der Register (30, 32, 34) abzuziehen.
  10. Einheit (30, 32, 34) gemäß Anspruch 9, die weiterhin eine Vielzahl von Rekursivkombinierern (50) aufweist, die betriebsmäßig für jedes Register (30, 32, 34) eine Metrik für den nächsten Zustand des Registers (30, 32, 34) berechnet und wobei jeder Rekursivkombinierer (50) einen jeweiligen Subtrahierer der Subtrahierer (78) aufweist.
  11. Einheit (30, 32, 34) gemäß Anspruch 9, wobei der Decoder (20, 102, 106) einen Viterbi-Decoder aufweist.
  12. Einheit (30, 32, 34) gemäß Anspruch 9, wobei der Decoder (20, 102, 106) einen APP Decoder aufweist.
  13. Einheit (30, 32, 34) gemäß Anspruch 9, wobei der Decoder (20, 102, 106) einen MAP Decoder aufweist.
  14. Einheit (30, 32, 34) gemäß Anspruch 9, wobei der Decoder (20, 102, 106) einen Trellis-Decoder aufweist.
  15. Einheit (30, 32, 34) gemäß Anspruch 9, wobei der Decoder (20, 102, 106) einen Soft Output Viterbi Decodierer bzw. einen Viterbi-Decodierer mit weicher Ausgabe aufweist.
  16. Ein iterativer Decodierungsprozessor (100) zum iterativen Decodieren einer Sequenz von Signalpaketen, die gemäß einem Multikomponenten-Codierungsschema codiert werden, wobei der Prozessor eine Vielzahl von Berechnungseinheiten (102, 106), wie sie in Anspruch 9 beschrieben sind, aufweist.
DE69925151T 1998-11-05 1999-11-04 Effiziente normalisierung vom trelliszustandsmetrischem wert Expired - Lifetime DE69925151T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US186753 1998-11-05
US09/186,753 US6189126B1 (en) 1998-11-05 1998-11-05 Efficient trellis state metric normalization
PCT/US1999/026102 WO2000027034A1 (en) 1998-11-05 1999-11-04 Efficient trellis state metric normalization

Publications (2)

Publication Number Publication Date
DE69925151D1 DE69925151D1 (de) 2005-06-09
DE69925151T2 true DE69925151T2 (de) 2006-02-16

Family

ID=22686167

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925151T Expired - Lifetime DE69925151T2 (de) 1998-11-05 1999-11-04 Effiziente normalisierung vom trelliszustandsmetrischem wert

Country Status (9)

Country Link
US (1) US6189126B1 (de)
EP (1) EP1127411B1 (de)
JP (1) JP2002529951A (de)
KR (1) KR20010080950A (de)
CN (1) CN1227816C (de)
AU (1) AU1908900A (de)
DE (1) DE69925151T2 (de)
HK (1) HK1054632B (de)
WO (1) WO2000027034A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434203B1 (en) * 1999-02-26 2002-08-13 Qualcomm, Incorporated Memory architecture for map decoder
US6587519B1 (en) * 1999-05-28 2003-07-01 Koninklijke Philips Electronics N.V. Efficient apparatus and method for generating a trellis code from a shared state counter
US6758435B2 (en) * 1999-12-09 2004-07-06 Rheinmetall W & M Gmbh Guide assembly for a missile
US6487694B1 (en) * 1999-12-20 2002-11-26 Hitachi America, Ltd. Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
GB0004765D0 (en) * 2000-03-01 2000-04-19 Mitel Corp Soft-decision decoding of convolutionally encoded codeword
KR100390416B1 (ko) * 2000-10-16 2003-07-07 엘지전자 주식회사 터보 디코딩 방법
WO2003023949A1 (en) * 2001-09-08 2003-03-20 Bermai, Inc. State metric rescaling for viterbi decoding
US7073118B2 (en) 2001-09-17 2006-07-04 Digeo, Inc. Apparatus and method for saturating decoder values
US7069284B2 (en) 2001-09-17 2006-06-27 Digeo, Inc. Apparatus and method for correcting signal imbalances using complex multiplication
US7251294B2 (en) * 2001-09-17 2007-07-31 Digeo, Inc. System and method for concurrently demodulating and decoding multiple data streams
US7167531B2 (en) 2001-09-17 2007-01-23 Digeo, Inc. System and method for shared decoding using a data replay scheme
US7161994B2 (en) * 2001-09-17 2007-01-09 Digeo, Inc. System and method for shared decoding
US7131054B2 (en) * 2001-09-17 2006-10-31 Digeo, Inc. Apparatus and method for efficient decoder normalization
US7382838B2 (en) * 2001-09-17 2008-06-03 Digeo, Inc. Frequency drift compensation across multiple broadband signals in a digital receiver system
US6871316B1 (en) * 2002-01-30 2005-03-22 Lsi Logic Corporation Delay reduction of hardware implementation of the maximum a posteriori (MAP) method
US7111226B1 (en) * 2002-05-31 2006-09-19 Broadcom Corporation Communication decoder employing single trellis to support multiple code rates and/or multiple modulations
US7154965B2 (en) 2002-10-08 2006-12-26 President And Fellows Of Harvard College Soft detection of data symbols in the presence of intersymbol interference and timing error
US7623585B2 (en) * 2003-02-28 2009-11-24 Maher Amer Systems and modules for use with trellis-based decoding
US7515601B2 (en) * 2005-05-31 2009-04-07 Broadcom Corporation Turbo decoding module supporting state n metric value normalization operations
US7441174B2 (en) * 2005-09-07 2008-10-21 The University Of Hong Kong Embedded state metric storage for MAP decoder of turbo codes
US20070234189A1 (en) * 2006-03-31 2007-10-04 Sharon Levy System and method for reducing false alarm in the presence of random signals
KR101154561B1 (ko) * 2007-06-14 2012-06-11 인텔 코오퍼레이션 컨볼루션, 터보 및 ldpc 코드용 통합 디코더
GB0804206D0 (en) * 2008-03-06 2008-04-16 Altera Corp Resource sharing in decoder architectures
US8578255B1 (en) 2008-12-19 2013-11-05 Altera Corporation Priming of metrics used by convolutional decoders
WO2012032371A1 (en) * 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1602818A (de) 1968-12-17 1971-02-01
US5295142A (en) * 1989-07-18 1994-03-15 Sony Corporation Viterbi decoder
US5418795A (en) 1991-09-13 1995-05-23 Sony Corporation Viterbi decoder with path metric comparisons for increased decoding rate and with normalization timing calculation
JP3259387B2 (ja) 1992-12-28 2002-02-25 ソニー株式会社 ビタビ復号器
US5349608A (en) * 1993-03-29 1994-09-20 Stanford Telecommunications, Inc. Viterbi ACS unit with renormalization
US5859861A (en) * 1995-06-21 1999-01-12 Hyundai Electronics Ind. Co., Ltd. High speed viterbi decoder

Also Published As

Publication number Publication date
HK1054632B (zh) 2006-08-04
AU1908900A (en) 2000-05-22
KR20010080950A (ko) 2001-08-25
WO2000027034A9 (en) 2002-03-07
DE69925151D1 (de) 2005-06-09
US6189126B1 (en) 2001-02-13
WO2000027034A1 (en) 2000-05-11
JP2002529951A (ja) 2002-09-10
EP1127411A1 (de) 2001-08-29
CN1426630A (zh) 2003-06-25
HK1054632A1 (en) 2003-12-05
EP1127411B1 (de) 2005-05-04
CN1227816C (zh) 2005-11-16

Similar Documents

Publication Publication Date Title
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
DE60037963T2 (de) Turbo-Dekodierung mit Soft-Output Viterbi Dekoder
DE3910739C2 (de)
DE69838451T2 (de) Verfahren und schaltung zur adaptiven kanalkodierung
DE10139116B4 (de) Kombination aus Reed-Solomon- und Turbo-Codierung
DE69735200T2 (de) Verfahren zu metrikbestimmung in einem übertragungssystem
DE60001988T2 (de) Turbo Dekodierung mit variabler Anzahl von Iterationen
DE69722331T2 (de) Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür
DE602004001548T2 (de) Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem
DE69936908T2 (de) Iterative dekodierung von produktkoden
DE69722571T2 (de) System und Verfahren zur digitalen Übertragung mit einem Produktkode kombiniert mit multidimensionaler Modulation
EP0737389B1 (de) Übertragungssystem mit soft-output-dekodierung bei reduziertem speicherbedarf
DE112004002008B4 (de) Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme
DE10238841B4 (de) Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen
DE60124851T2 (de) Vorrichtung und Verfahren zur Fehlererkennung in einem CRC Code mit invertierten Paritätsbits
WO2003071689A2 (de) Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE4105860A1 (de) Schaltungsanordnung zum erkennen und korrigieren von fehlern in datenworten
DE60104338T2 (de) Vorrichtung und verfahren zur turbo decodierung mit signaturdatenvergleich als abbruchkriterium
DE69823307T2 (de) Digitales Übertragungssystem, Dekoder und Dekodierungsverfahren
WO2002060071A2 (de) Viterbi-decoder
DE60207186T2 (de) Kanal- und ortsinformationsbasierte Skalierung der Viterbi-Dekodierung
DE60118716T2 (de) Log-MAP Dekodierung
DE19520987A1 (de) Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes
EP1626507B1 (de) Decoder und Verfahren zum Durchführen eines Viterbi-Algorithmus

Legal Events

Date Code Title Description
8363 Opposition against the patent
8365 Fully valid after opposition proceedings