DE10310812B4 - Dekodiervorrichtung, Trellis-Prozessor und Verfahren - Google Patents
Dekodiervorrichtung, Trellis-Prozessor und Verfahren Download PDFInfo
- Publication number
- DE10310812B4 DE10310812B4 DE10310812A DE10310812A DE10310812B4 DE 10310812 B4 DE10310812 B4 DE 10310812B4 DE 10310812 A DE10310812 A DE 10310812A DE 10310812 A DE10310812 A DE 10310812A DE 10310812 B4 DE10310812 B4 DE 10310812B4
- Authority
- DE
- Germany
- Prior art keywords
- decoding
- turbo
- decoding device
- memory
- data path
- 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 - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6569—Implementation on processors, e.g. DSPs, or software implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
mit einem ersten Datenpfad (40, 41, 42, 44) zur Viterbi-Dekodierung eines Faltungs-Codes und mit einem zweiten Datenpfad (40-45) zur Dekodierung eines Turbo-Codes, wobei zumindest Teile des ersten Datenpfades (40-42, 44) und des zweiten Datenpfades (40-45) gemeinsam sowohl zur Turbo-Dekodierung als auch zur Viterbi-Dekodierung nutzbar sind;
mit einem gemeinsamen Speicher (21), der eine Vielzahl von einzelnen Speicherbereichen (31-34) aufweist, vorgesehen ist, wobei zumindest ein Speicherbereich (31-34) sowohl über den ersten Datenpfad (40-42, 44) im Viterbi-Mode als auch über den zweiten Datenpfad (40-45) im Turbo-Mode allokierbar ist.
Description
- Die Erfindung betrifft eine Dekodiervorrichtung mit einem Dekodierer sowohl für eine Turbo-Dekodierung als auch eine Viterbi-Dekodierung, einen Trellis-Prozessor sowie ein Verfahren zum Betreiben der Dekodiereinrichtung.
- In Kommunikationssystemen, beispielsweise in Mobilfunksystemen, wird das zu übertragende Signal sendeseitig nach einer Aufbereitung einer Kanalkodierung unterzogen. Die Kanalkodierung dient dem Zweck, dem zu übertragenden Signal eine Redundanz zuzufügen, mit deren Hilfe das Signal nach der Übertragung über einen gestörten Kanal möglichst fehlerfrei zurückgewonnen werden kann. Dabei wird durch gezieltes Einbringen von Redundanzen in das zu übertragende Signal ein effektiver Fehlerschutz realisiert.
- Zur Kodierung bzw. Dekodierung der zu übertragenden Signale existieren verschiedene Kodier-/Dekodierverfahren:
- Herkömmliche Faltungs-Kodierer bzw. Faltungs-Dekodierer (Viterbi-Dekodierer)
- Bei herkömmlichen Faltungs-Dekodierern wird zwischen Symbolschätzern – die nach einem symbolweisen Algorithmus arbeiten – und Folgenschätzern unterschieden. Eine spezielle Form eines Symbolschätzers ist ein sogenannter MAP-Symbolschätzer (MAP = Maximum A Posteriori), der nach dem sogenannten MAP-Algorithmus arbeitet. MAP-Symbolschätzer weisen den Vorteil auf, dass mit ihnen ein geringst mögliches Bit-Fehlerverhältnis realisierbar ist.
- Ein Entzerrer (bzw. ein Rake-Empfänger) liefert Schätzwerte der übertragenen Symbole oder Bits, die als Soft-Input-Werte (ein Vorzeichen-Bit plus eine Zuverlässigkeitsinformation) an den Dekodierer geliefert werden. Die Soft-Inputwerte enthalten dann immer noch eine Redundanz, aus denen der Dekodierer die ursprünglichen nicht-kodierten Werte ohne Redundanz zurückzugewinnen versucht. Dabei können harte Dekodier-Entscheidungswerte geliefert werden (Hard Outputs), die sich aus der Bitfolge des Maximum-Likelihood-Pfads ergeben. Darüber hinaus können auch weiche Dekodier-Entscheidungswerte (Soft-Outputs), bei denen die Bitfolge des Maximum-Likelihood-Pfads in Relation zu anderen, eventuell vorhanden konkurrierenden Pfaden gesetzt wird, geliefert werden. Es gibt auch weiche Dekodier-Entscheidungswerte, die aufgrund eines Symbol-Schätzers gewonnen werden und dementsprechend auch konkurrierende Übergänge berücksichtigen.
- Turbo-Kodierer:
- Ein erst in den vergangenen Jahren entwickeltes und eingesetztes Kanalkodierverfahren verwendet binäre, verkettete, rekursive systematische Faltungscodes, für die sich die Bezeichnung „Turbo-Code" eingebürgert hat. Insbesondere bei der Übertragung sehr großer Datenblöcke mit mehr als 1.000 Bits (Symbolen) kann mit Turbo-Kodierern ein erheblich verbesserter Fehlerschutz als mit den üblicherweise verwendeten Faltungs-Kodierern erzielt werden.
- Zum Dekodieren solcher Turbo-Codes wird empfängerseitig ein iterativer Turbo-Code-Dekodierer – nachfolgend auch als Turbo-Dekodierer bezeichnet – eingesetzt. Ein Turbo-Dekodierer besteht aus einer Verkettung von mindestens zwei binären, rekursiven Faltungsdekodieren, die rückkopplungsartig miteinander verschachtelt sind. Der Turbo-Dekodierer macht die Turbo-Kodierung rückgängig und benutzt die der systematischen Information aufgeprägten Redundanzwerte, um die systematische Information nach der Übertragung über einen gestörten Ausbreitungspfad möglichst fehlerfrei zurückzugewinnen.
- Der genaue Aufbau und die genaue Funktionsweise eines vorstehend beschriebenen Turbo-Dekodierers ist zum Beispiel aus dem als nächstliegenden Stand der Technik angesehenen Buch von Peter Jung „Analyse und Entwurf digitaler Mobilfunksysteme", Stuttgart, B. G. Täubner, 1997, insbesondere auf den Seiten 343 bis 368, beschrieben.
- Turbo-Codes weisen die folgenden Vorteile auf:
- 1. Turbo-Codes erlauben selbst für kurze Datenblöcke eine sehr gute Übertragungsqualität und sind daher insbesondere für die Sprachübertragung geeignet.
- 2. Mittels Turbo-Codes lässt sich bei der Übertragung sehr großer Datenmengen ein erheblich verbesserter Fehlerschutz realisieren.
- 3. Turbo-Codes sind besonders für solche Kommunikationssysteme geeignet, die viele unterschiedliche Dienste und Anwendungen flexibel bereitstellen müssen, wie dies bei digitalen zellularen Mobilfunksystemen der Fall ist.
- Turbo-Codes haben im Vergleich zu herkömmlichen Kodierern jedoch folgende Nachteile:
- 1. Die Dekodierung von Turbo-Codes ist sehr viel aufwendiger als die Dekodierung herkömmlicher Faltungs-Codes, bei denen keine rekursiven Iterationsschritte vorgenommen werden.
- 2. Bei einem Turbo-Dekodierverfahren, das die einzelnen Faltungsdekodierer nach dem (LOG)MAP Prinzip (MAP = Maximum a-Posteriori) auslegt, müssen die möglicherweise zeitvariante Amplitude des Empfangssignals als auch die mögli cherweise zeitvariante Varianz des Störsignals absolut bekannt sein, bzw. mit hinreichender Genauigkeit geschätzt werden, damit die gewünschte Übertragungsqualität realisierbar ist. Für einen MAX-LOG-MAP-Dekodierer ist nur eine relative Kenntnis dieser Größen erforderlich, was allerdings mit einem Performance-Verlust einhergeht. Die Amplituden und die Varianz der additiven weißen normalverteilten Störung müssen dem Turbo-Dekodierer bekannt sein, damit die gewünschte Dekodierqualität realisierbar ist. Dies ist im Mobilfunk wegen der Zeitvarianz des Mobilfunkkanals nicht immer möglich. Sind die Amplituden und die Varianz jedoch nicht genau bekannt, reduzieren sich die mit Turbo-Codes gegenüber konventionellen Faltungs-Codes erreichbare Verbesserungen der Dekodierqualität signifikant.
- Aus den genannten Gründen sollte eine Dekodiervorrichtung bei modernen Mobilfunksystemen in der Lage sein, sowohl Turbo-Codes zu dekodieren als auch herkömmliche Faltungs-Codes.
- Dieses Problem wird bislang dadurch gelöst, dass für jede unterschiedliche Dekodierung ein eigens dafür vorgesehener Dekodierer bereitgestellt wird. Jeder dieser Dekodierer weist seinen eigenen Datenpfad, in dem die Elemente des Dekodierers angeordnet sind, und einen eigenen Speicher, der jeweils nur von eben diesem Dekodierer allokierbar ist, auf. Neben diesen Elementen enthüllt ein jeweiliger Dekodierer einen ihm zugeordneten eigenen Dateneingang und typischerweise auch einen eigenen Datenausgang auf. Schließlich sind auch andere Funktionselemente des Dekodierers jeweils getrennt voneinander vorgesehen.
- An heutige und zukünftige Mobilfunksysteme werden jedoch die Anforderungen gestellt, Systeme mit immer größerer Funktionalität auf immer kleinerem Raum zu integrieren um damit ein kostengünstiges System bereitzustellen. Dies resultiert aus der Tatsache, dass der Kostendruck insbesondere bei Mobil funksystemen mittlerweile der bestimmende Faktor ist, mit dem sich im Wesentlichen funktions- und qualitätsgleiche Systeme auf dem Markt voneinander unterscheiden. Aus diesem Grunde ist es kontraproduktiv und zunehmend nicht mehr akzeptabel, ein System bereitzustellen, bei dem unerwünschte Redundanzen gewissermaßen dadurch entstehen, dass für unterschiedliche Datenkanäle funktionsgleiche Einheiten mehrfach vorhanden sind. Insbesondere bei sehr großen zu übertragenden Datenmengen ist dies bei Speichern besonders gravierend, da diese Speicher somit sehr groß dimensioniert sein müssten. Solche Speicher sind damit der Chipflächen bestimmende Faktor auf dem Halbleiterchip. Es besteht daher der Bedarf, solche Chipflächen bestimmenden Funktionsblöcke zumindest teilweise gemeinsam zu nutzen.
- In der Druckschrift US 2002/0119803 A1 ist eine Dekodiervorrichtung beschrieben, die sowohl einen Turbodekodierer als auch einen konventionellen, beispielsweise als Viterbi-Dekodierer ausgebildeten Dekodierer aufweist. Diese getrennt ausgebildeten Dekodierer greifen jeweils auf unterschiedliche Speicherbereiche zu und nutzen auch unterschiedliche Datenpfade.
- Auch die WO 02/21699 A2 und die
EP 653847 A2 - Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine schaltungstechnisch vereinfachte Dekodiereinrichtung zur Verfügung zu stellen sowie ein Verfahren zum Betreiben dieser Dekodiereinrichtung anzugeben.
- Erfindungsgemäß wird diese Aufgabe durch eine Dekodiereinrichtung mit den Merkmalen des Patentanspruchs 1, ein Trellis-Prozessor mit den Merkmalen des Patentanspruchs 20 sowie zwei Verfahren mit den Merkmalen der Patentansprüche 21 und 22 gelöst.
- Demgemäß ist vorgesehen:
- – Eine Dekodiervorrichtung, die zumindest einen Dekodierer sowohl für eine Turbo-Dekodierung als auch für eine Viterbi-Dekodierung aufweist, mit einem ersten Datenpfad zur Viterbi-Dekodierung eines Faltungs-Codes und mit einem zweiten Datenpfad zur Dekodierung eines Turbo-Codes, wobei zumindest Teile des ersten Datenpfades und des zweiten Datenpfades gemeinsam sowohl zur Turbo-Dekodierung als auch zur Viterbi-Dekodierung nutzbar sind; mit einem gemeinsamen Speicher, der eine Vielzahl von einzelnen Speicherbereichen aufweist, vorgesehen ist, wobei zumindest ein Speicherbereich sowohl über den ersten Datenpfad im Viterbi-Mode als auch über den zweiten Datenpfad im Turbo-Mode allokierbar ist.
- – Ein Trellis-Prozessor für eine Dekodiervorrichtung nach wenigstens einem der vorstehenden Ansprüche, bei dem der Trellis-Prozessor sowohl in einem Viterbi-Dekodiermodus für einen Faltungscode als auch in einem Dekodiermodus für einen Turbo-Code betreibbar ist und bei dem der Trellis-Prozessor bei den verschiedenen Betriebsmodi sowohl die Datenpfade wie auch die Speicherbereiche zumindest teilweise gemeinsam nutzt.
- – Ein Verfahren zum Betreiben einer solchen Dekodiereinrichtung, bei dem zumindest eine erste Dekodierung unter Verwendung eines exakten Viterbi-Algorithmus implementiert wird und/oder zumindest eine zweite Dekodierung unter Verwendung des MAP-Algorithmus oder eines Turbo-Codes implementiert wird. (Patentanspruch 21)
- – Ein Verfahren zum Betreiben einer solchen Dekodiereinrichtung, bei dem die Traceback-Werte des gesamten Trellis-Diagrammes in einem Speicher abgespeichert werden. (Patentanspruch 22)
- Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind den Unteransprüchen sowie der Beschreibung unter Bezugnahme auf die Zeichnung entnehmbar.
- Die der vorliegenden Erfindung zugrunde liegende Idee besteht darin, alle verschiedenen Dekodierer-Funktionen auf einen gemeinsamen lokalen Speicherbereich operieren zu lassen. Zusätzlich oder alternativ kann auch vorgesehen sein, dass zumindest ein Teil der unterschiedlichen Dekodierer-Funktionen der verschiedenen Betriebsmodi gemeinsam genutzt werden. Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass verschiedene Dekodierer-Funktionen redundant sind, das heißt bei verschiedenen Dekodier-Modi doppelt vorhanden sind.
- Darüber hinaus ist bei der Dekodier-Einrichtung stets lediglich ein Dekodier-Modus aktiv, so dass auch lediglich ein einziger Speicher für eben den aktiven Dekodier-Modus vorhanden sein muss. Auf das doppelte oder mehrfache Vorsehen eines jeweiligen Speichers für die unterschiedlichen Dekodier-Betriebsmodi kann so verzichtet werden. Es ist lediglich darauf zu achten, dass die Speichergröße auf die maximal erforderliche Speichergröße, typischerweise für die Speichergröße der Turbo-Dekodierung, ausgelegt ist.
- Darüber ist eine Steuereinrichtung vorgesehen, über die die Speicherplatzbelegung auf die unterschiedlichen Betriebs-Dekodier-Modi ausgelegt ist. Insbesondere müssen hier eigens für die verschiedenen Dekodierer-Funktionen vorgesehene Speicherbereiche den einzelnen Dekodier-Modi zugeordnet sein. Neben der Verwendung eines gemeinsamen Speichers für die Dekodier-Einrichtung ist es damit möglich, ohnehin vorhandene Hardware-Datenpfade, wie zum Beispiel ACS-Einheiten (ACS = Add-Compare-Select) und Einheiten zur Übergangsmetrik-Bestimmung sowohl für Turbo-Dekodierung als auch für Viterbi-Dekodierung gemeinsam zu nutzen, was sich bei einer hoch parallelisierten Implementierung auf die Reduzierung der Chipfläche auswirkt.
- In einer vorteilhaften Ausgestaltung ist insbesondere der Datenpfadbereich des Dekodierers in fest verdrahteter Logik ausgebildet. Denkbar wäre jedoch auch eine andere Ausgestaltung, zum Beispiel eine Implementierung dieser Elemente in einer Programm gesteuerten Einheit.
- Der erste Datenpfad ist für eine Viterbi-Dekodierung und der zweite Datenpfad für eine Turbo-Dekodierung ausgelegt.
- In einer ersten Ausgestaltung kann der erste Datenpfad zur sogenannten Hard-Output-Viterbi-Algorithmus-Dekodierung ausgelegt sein. In einer besonders vorteilhaften Ausgestaltung kann vorgesehen sein, dass hier ein exakter Hard-Output-Viterbi-Algorithmus vorgesehen ist, bei dem somit keine Fenster basierte Dekodierung vorgenommen wird. In einer zweiten Ausgestaltung kann der erste Datenpfad auch zur Soft-Output-Viterbi-Algorithmus-Dekodierung ausgelegt sein. Unter SOVA und HDVA ist demnach eine spezielle Form einer Viterbi-Dekodierung zu verstehen.
- In einer Ausgestaltung kann der zweite Datenpfad in einem Log-MAP-Modus bzw. in einem MAX-Log-MAP-Modus als Bestandteil der Turbo-Dekodierung betrieben werden. Der MAP-Dekodiermodus besteht aus einer Vorwärts- und Rückwärtsrekursion, wobei hier symbolweise geschätzt wird. Der MAP-Dekodiermodus ist somit Bestandteil eines Turbo-Dekodierers, der zwischen zwei MAP-Schritten zusätzlich noch ein Turbo-Block-Interleaving bzw. Turbo-Block-Deinterleaving durchführt. Unter einem MAP, LOG-MAP bzw. MAX-Log-MAP ist demnach eine spezielle Form einer Turbo-Code-Dekodierung zu verstehen.
- Bei den gemeinsam genutzten Elementen der Datenpfade der Dekodiereinrichtung kann es sich beispielsweise um ACS-Einheiten oder BM-Einheiten (BM = Branch Metric) handeln, die der Übergangsmetrik-Bestimmung dienen. Bei den gemeinsam genutzten Speicherbereichen, die sowohl im Turbo-Dekodier-Modus als auch im Viterbi-Dekodier-Modus verwendet werden, kann es sich zum Beispiel um Speicherbereiche zur Abspeicherung von Soft-Input-Daten, von Übergangsmetrik-Daten und von sogenannten Log-Likelihood-Ratio-Daten handeln. Darüber hinaus wäre selbstverständlich auch eine andere Speicherbereichaufteilung denkbar.
- In einer Ausgestaltung der Erfindung ist ein Speicherbereich des gemeinsamen Speichers zur Abspeicherung von Traceback-Werten ausgelegt. In einer vorteilhaften Weiterbildung werden dort die Traceback-Werte des gesamten Trellis-Diagramms abgelegt, so dass im Fall einer BTFD (Blind Transport Format Detection; zu BTFD siehe 3GPP-Spezifikation unter 3GPP TS 25.212, „Multiplexing and channel coding", Abschnitt 4.3, insbesondere Seite 10) lediglich der Traceback-Schritt von verschiedenen Startzeitpunkten im Trellis-Diagramm erfolgen kann. Eine Vorwärtsrekursion mit der Ermittlung neuer State-Metriken braucht nur einmal ausgeführt werden.
- In einer Ausgestaltung der Erfindung ist eine Steuereinrichtung vorgesehen, die den Betriebmodus des Dekodierers festlegt. Über die Speichereinrichtung ist somit eine für einen jeweiligen Betriebsmodus vorher festgelegte Speicheraufteilung implementiert. Diese geschieht typischerweise durch ein Steuersignal, welches von der Steuereinrichtung dem jeweiligen Speicher zugeführt wird. Über die Steuereinrichtung ist darüber hinaus der jeweilige Betriebsmodus des Dekodierers festgelegt. Zu diesem Zwecke enthält die Steuereinrichtung und/oder der Speicher einen Multiplexer oder weist die Funktionalität eines Multiplexers auf. Über diesen Multiplexer ist dem Speicher die jeweilige Speicheraufteilung in Abhängigkeit des jeweiligen Betriebsmodus zuweisbar. Typischerweise, jedoch nicht notwendigerweise, ist der Multiplexer in fest verdrahteter Logik ausgebildet und Bestandteil des Dekodierers.
- In einer alternativen Ausgestaltung kann die Funktionalität des Multiplexers auch in der als Programm gesteuerte Einheit ausgebildeten Steuereinrichtung implementiert sein. Eine solche Programm gesteuerte Einheit kann beispielsweise ein Mikrocontroller, ein Mikroprozessor, ein Signalprozessor oder dergleichen sein.
- Die Speicherbereichbelegung des Speichers ist in einer vorteilhaften Ausgestaltung über die Steuereinrichtung für einen jeweiligen Datenpfad und damit für einen jeweiligen Betriebsmodus fest vorgegeben.
- In einer besonders vorteilhaften Ausgestaltung ist die erfindungsgemäße Dekodiereinrichtung zumindest teilweise, vorteilhafterweise sogar ganz, in Hardware ausgebildet.
- In einer weiteren besonders vorteilhaften Ausgestaltung kann in Folge der erfindungsgemäßen Dekodiereinrichtung ein exakter Viterbi-Algorithmus implementiert werden, der sogenannte Traceback-Informationen des gesamten Trellis-Diagrammes speichert, ohne die limitierte Speichergröße zu überschreiten. Die Verwendung eines derartigen exakten, d.h. nicht fenster-basierten Viterbi-Algorithmus hat die folgenden Vorteile:
- – Basierend auf der Maximum-Likelihood-Sequenz, die mit Hilfe des herkömmlichen Hard-Decision-Viterbi-Algorithmus gewonnen werden, können in einem weiteren Durchlauf durch das Zustandsdiagramm (Trellis-Diagramm) Zuverlässigkeitsinformationen – sogenannte Soft-Output-Informationen – gewonnen werden. Im Gegensatz zum ursprünglichen, Fenster basierten Soft-Output-Viterbi-Algorithmus müssen hier lediglich die Zuverlässigkeitsinformationen entlang des einzigen konkurrierenden Datenpfades zum Maximum-Likelihood-Datenpfad aktualisiert werden. Der konkurrierende Pfad wird für jede Zeiteinheit im Trellis-Diagramm neu bestimmt.
- – Im BTFD-Betriebsmodus (BTFD = Blind Transfer Format Detection) ist dem im Viterbi-Mode betriebenen Empfänger das momentan gesendete Transportformat bestehend aus Transportblockgröße und Anzahl der Transportblöcke unbekannt. Dies muss vielmehr aus einer bekannten Menge von möglichen Transportformaten durch Kanaldekodierung mit anschließender CRC-Kodierung (CRC = Cyclic Redundancy Check) ermittelt werden. Für den im Viterbi-Mode betriebenen Empfänger bedeutet dies, dass von mehreren Endpositionen im Trellis-Diagramm eine Rückkopplung (Traceback) mit anschließender CRC-Dekodierung durchgeführt wird. Dies ist aber bei Verwendung eines exakten Viterbi-Algorithmus vorteilhafterweise besonders einfach, da die Traceback-Informationen über das gesamte Zustandsdiagramm bereits abgespeichert sind. Insbesondere benötigt die Ermittlung der Maximum-Likelihood-Sequenz nach der Bestimmung des korrekten Transportformates nur einen weiteren „Traceback" und keine erneute Dekodierung mit Metric-Akkumulation. Die herkömmliche Fenster basierte, d.h. nicht exakte Viterbi-Dekodierung müsste in diesem Falle nach der Ermittlung des korrekten Transportformates zusätzlich noch einen Viterbi-Durchlauf (mit Metric-Akkumulation) starten, da diese Traceback-Informationen nur über jeweils einem Fenster abgespeichert wurden.
- Dieses erfindungsgemäße Verfahren benötigt somit deutlich weniger Zeit und ist darüber hinaus auch hinsichtlich der verwendeten Systemressourcen leistungssparender als herkömmliche Verfahren.
- Die Erfindung wird nachfolgend anhand der in den Figuren der Zeichnung angegebenen Ausführungsbeispiele näher erläutert. Es zeigt dabei:
-
1 eine schematische Darstellung der Luftschnittstelle eines Mobilfunksystems mit zwei Sendern und einem Empfänger; -
2 ein Blockschaltbild einer im Empfänger aus1 angeordneten, erfindungsgemäßen Dekodiereinrichtung; -
3(a) eine schematische Darstellung eines in verschiedenen Speicherbereiche aufgeteilten Speichers für eine erfindungsgemäße Dekodiereinrichtung gemäß2 sowie eine beispielhafte Allokierung dieses Speichers im Falle einer Viterbi-Dekodierung (3(b) ) und im Falle einer Turbo-Code-Dekodierung (3(c) ). - In den Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente – sofern nichts anderes angegeben ist – mit gleichen Bezugszeichen versehen worden.
-
1 zeigt eine schematische Darstellung der Luftschnittstellen eines Mobilfunksystems. - In
1 ist mit Bezugszeichen1 ein Mobilfunksystem bezeichnet. Das Mobilfunksystem kann zum Beispiel ein UMTS-System (Universal Mobile Telecommunications System) oder ein GSM-System (Global System for Mobile Communications) sein, jedoch sei die Erfindung nicht auf derartige Mobilfunksysteme beschränkt. Das Mobilfunksystem1 besteht hier aus zwei Sendern2 ,3 und einem Empfänger4 . Die Sender2 ,3 bzw. der Empfänger4 können sowohl einer Basisstation als auch einer Mobilstation zugeordnet sein. Jeweils ein Sender2 ,3 weist einen Kodierer5 ,6 , einen Modulator7 ,8 sowie eine Sendeantenne9 ,10 auf. Der Empfänger weist eine Empfangsantenne11 , einen Demodulator12 und eine erfindungsgemäße Dekodiereinrichtung13 auf. Zwischen den beiden Sendern2 ,3 und dem Empfänger4 ergeben sich somit die beiden Übertragungskanäle14 ,15 . - Im vorliegenden Fall sei angenommen, dass der Kodierer
5 im ersten Sender2 ein Turbo-Kodierer ist, der das Eingabesignal U1 in ein turbo-kodiertes Ausgabesignal D1 umwandelt. Gleichermaßen sei angenommen, dass der Kodierer6 im zweiten Sender3 ein konventioneller Faltungskodierer ist, der zum Beispiel das Eingabesignal U2 in ein faltungskodiertes Ausgabesignal D2 wandelt. - Ein jeweiliger Kodierer
5 ,6 nimmt ein digitales Eingabesignal U1, U2 in Form einer Folge von Datensymbolen (Bits) entgegen. Das Eingabesignal U1, U2 trägt beispielsweise eine zu übertragende Sprachnachricht. Der jeweilige Kodierer5 ,6 fügt dem digitalen Eingabesignal U1, U2 eine Redundanz zur Fehlerschutzkodierung hinzu. Am Ausgang des Kodierers5 ,6 liegt ein Fehlerschutz kodiertes Datensignal D1, D2 vor, welches anschließend in nicht dargestellter Weise verschachtelt und in Blöcke vorgegebener Länge unterteilt wird. Ein jeweiliger Modulator7 ,8 moduliert das so Fehlerschutz kodierte Datensignal auf ein Trägersignal auf, welches ebenfalls in nicht dargestellter Weise von einem Sendefilter spektral geformt und von einem Sendeverstärker verstärkt wird, bevor es als Funksignal über die jeweiligen Antennen9 ,10 abgestrahlt wird. - Die Empfangsantenne
11 empfängt das durch Umgebungseinflüsse und Interferenzen mit Funksignalen im Übertragungskanal14 ,15 gestörte Funksignal und führt es dem Demodulator12 zu. Der empfängerseitige Demodulator12 besteht im einfachsten Fall aus einer Hochfrequenzstufe, die das über die Empfangsantenne11 empfangene Funksignal entgegen nimmt und es in üblicher Weise durch Heruntermischen in ein analoges Empfangssignal umwandelt. Das analoge Empfangssignal wird von einem Analog/Digital-Umsetzer (AD-Wandler) mit einer ausreichend hohen Abtastfrequenz digitalisiert und ggf. mittels eines nachgeschalteten, digitalen Filters Bandbreiten begrenzt. Der Demodulator12 entzerrt das empfangene Funksignal unter Berücksichtigung der im Funkkanal erlittenen Signalstörungen. - Das am Ausgang des Demodulators
12 anliegende entzerrte Datensignal D' liegt in Form einer Symbolfolge vor, deren Elemente werte-kontinuierliche Schätzwerte der Symbole des gesendeten Fehlerschutz kodierten Datensignals sind. Das entzerrte Datensignal D' wird der erfindungsgemäßen Dekodiereinrichtung13 zugeführt, an deren Ausgang ein dekodiertes Ausgabesignal U' anliegt. Zusätzlich ist es auch möglich, in dem Kanal-Dekodierer13 eine Zuverlässigkeitsinformation zu erzeugen und vorteilhafter Weise bei der Quellendekodierung auszunutzen. - Der Aufbau und die Funktionsweise eines in
1 dargestellten Mobilfunksystems ist in dem Buch von Peter Jung, „Analyse und Entwurf digitaler Mobilfunksysteme", insbesondere in Figur Bild 4.24, beschrieben. Diese Druckschrift wird insbesondere hinsichtlich des Aufbaus und der Funktionsweise der verwendeten Kodierer, der Dekodierer sowie des Übertragungskanals vollinhaltlich in die vorliegende Patentanmeldung mit einbezogen. - Der Aufbau und die Funktionsweise einer erfindungsgemäßen Dekodiereinrichtung
13 soll nachfolgend anhand der2 und3 näher erläutert werden.2 zeigt das Blockschaltbild einer im Empfänger aus1 angeordneten, erfindungsgemäßen Dekodiereinrichtung. - Die erfindungsgemäße Dekodiereinrichtung
13 weist einen Datenpfadbereich20 , eine Speichereinrichtung21 sowie eine Steuereinrichtung22 auf. Der Dekodierer13 weist ferner einen Eingang23 auf, über den sogenannte Soft-Input-Eingangssignale D' des vorgeschalteten Demodulators12 einkoppelbar sind. Der Ausgang bzw. die Ausgänge der Dekodiereinrichtung13 sind in2 der Übersichtlichkeit halber nicht dargestellt worden. - Die Speichereinrichtung
21 weist eine Multiplexer-Schaltung30 auf, die gewissermaßen als Schnittstelle zwischen der Speichereinrichtung21 einerseits und dem Datenpfadbereich20 , dem Eingang23 und dem Ausgang der Dekodiereinrichtung13 andererseits vorgesehen ist. Die Speichereinrichtung21 weist ferner verschiedene Speicherbereiche31 -34 auf, die über den Datenpfadbereich20 bzw. den Eingang23 allokierbar sind. - Im vorliegenden Ausführungsbeispiel ist der Speicherbereich
31 zur Zwischenspeicherung von Soft-Input-Eingangsdaten D' von dem vorgeschalteten Demodulator12 ausgelegt. Der Speicherbereich32 ist ein sogenannter Trace-Back-Speicher. In diesen werden für jeden Zustand jeder Zeiteinheit die Entscheidungsresultate bei einem ACS-Schritt abgelegt (das heißt der Zeiger auf den günstigsten Übergang in den betreffenden Zustand der aktuellen Zeiteinheit), so dass nach einem Durchlauf des gesamten Trellis-Diagramms mit Hilfe dieser Entscheidungsresultate der Maximum-Likelihood-Pfad durch den sogenannten Traceback-Schritt ermittelt werden kann. In dem Speicherbereich33 werden die im Rahmen der Dekodierung berechneten Zustandsmetriken abgelegt. Der Speicherbereich34 ist ein sogenannter LLR-Speicher (Log-Likelihood-Ratio), in dem zum Beispiel A-Priori-Daten bzw. Zuverlässigkeitsdaten, die im Rahmen der Turbo-Code-Dekodierung gewonnen werden, abgelegt werden. Darüber hinaus kann die Speichereinrichtung21 zusätzlich oder alternativ noch weitere Speicherbereiche enthalten, in denen beispielsweise Daten zur Eingangs- und Ausgangspufferung abgelegt sind oder bei denen im Rahmen der unterschiedlichen Dekodierverfahren gewonnenen Informationen jeweils für das jeweilige Dekodierverfahren spezifisch abgelegt werden. Speicherbereiche für die ermittelten möglichen Übergangsmetriken innerhalb einer Zeiteinheit müssen ebenfalls berücksichtigt werden, sind aber hier nicht aufgeführt. - Über die Steuereinrichtung
22 kann die jeweilige Speichereinteilung und damit der Betriebsmodus der Dekodiereinrichtung13 gesteuert werden. Im vorliegenden Fall wird über das Steuersignal X, welches von der Steuereinrichtung22 in die Multiplexereinrichtung30 eingekoppelt wird, eine spezifische Speicherbelegung voreingestellt. Eine derartige Speicherbelegung kann zum Beispiel hinsichtlich einer Turbo-Dekodierung oder einer SOVA-Dekodierung spezifisch gewählt werden. - Im vorliegenden Ausführungsbeispiel ist die Multiplexer-Einrichtung
30 Bestandteil der Speichereinrichtung21 und liegt somit in fest verdrahteter Steuerlogik vor. - Die Steuereinrichtung
22 ist vorzugsweise eine Programm gesteuerte Einheit, beispielsweise ein Mikrocontroller, Mikroprozessor, Signalprozessor oder dergleichen. In einer alternativen Ausgestaltung könnte die Funktionalität des Multiplexers30 in der Steuereinrichtung21 mitintegriert sein. Alternativ wäre es allerdings auch denkbar, dass die Funktionalität der Steuereinrichtung21 in fest verdrahteter Steuerlogik vorliegt. - Im Datenpfadbereich
20 der Dekodiereinrichtung13 ist eine sogenannte Branch-Metric-Einheit40 ,41 angeordnet. Diese Branch-Metric-Einheit40 ,41 ist über den Soft-Input-Speicherbereich31 mit dem Eingang23 zur Einkopplung von Eingangsdaten gekoppelt. Die Branch-Metric-Einheit40 ,41 enthält eine Einheit40 zur Berechnung der Branch-Metric-Daten, der die Einheit41 zur Auswahl der Branch-Metric-Daten nachgeschaltet ist. Bei den Branch-Metric-Einheiten40 ,41 handelt es sich somit um Einheiten zur Übergangsmetrik-Bestimmung für die Turbo-Code- und Viterbi-Code-Dekodierung, in denen die Metriken pro Trellis-Zeiteinheit berechnet werden, wobei jeweils eine Metrik auf die nachgeschaltete ACS-Einheit42 gemappt wird. Es erfolgt hier also eine Zuordnung der ausgewählten Daten. - Den Branch-Metric-Einheiten
40 ,41 ist eine sogenannte ACS-Einheit42 (ACS = Add-Compare-Select) nachgeschaltet. In der ACS-Einheit ist die Berechnung des optimalen Pfades zwischen zwei Zuständen mit Hilfe eines Trellis-Diagramms implementiert, bei dem jeweils für jeden Knoten des Trellis-Diagramms Daten addiert, miteinander verglichen und dann der optimale Pfad ausgewählt wird. Die ACS-Einheit42 speichert den Zeiger auf den optimalen Übergang zu dem betrachteten Zustand der aktuellen Zeiteinheit (das heißt das Ergebnis der Additions- und Vergleichsoperationen der ACS-Einheit42 ) in Form von Traceback-Daten für alle Zustände und für alle Trellis-Zeiteinheiten in dem Speicherbereich32 ab. Im Speicherbereich33 werden die bei der ACS-Operation ermittelten Zustandsmetriken abgelegt, die von Zeiteinheit zu Zeiteinheit mit neuen Werten überschrieben werden können. - Es sei angemerkt, dass für den Betrieb einer Dekodiervorrichtung im Log-MAP-Modus die ACS-Einheit geringfügig modifiziert werden müsste. Eine solche Modifizierung ist dem Fachmann jedoch hinreichend bekannt (siehe Steven S. Pietrobon, „Implementation and performance of a Turbo/MAP decoder", International Journal of Sattelite Communications, Ausgabe 16, Seiten 23-46, 1998). Für eine Berechnung der neuen Zustandsmetriken ist die herkömmliche ACS-Einheit mit einer weiteren Addition eines Wertes ausgestattet, der sich als spezielle Funktion der berechneten Differenz aus der Vergleichsoperation (compare) ergibt. Diese spezielle Funktion ist üblicherweise als Lookup-table implementiert. Wird die Lookup-table mit Nullen vorbelegt, ergibt sich die normale ACS-Funktionalität, wie sie für den MAX-Log-MAP, HDVA oder SOVA Modus benötigt wird.
- Der ACS-Einheit
42 ist eine sogenannte LLR-Einheit43 nachgeschaltet angeordnet. In der LLR-Einheit43 werden geschätzte Daten auf der Basis des Log-Likelihood-Ratio-Verfahrens berechnet. Die LLR-Einheit berechnet Zuverlässigkeitsinformationen, die in dem Speicherbereich34 abgelegt werden und bei Bedarf über den Turbo-Rückkopplungspfad45 rückgekoppelt werden. Die ACS-Einheit42 ist mit der LLR-Einheit43 über das Iterationsnetzwerk44 zur Vorwärts- und Rückwärts-Rekursion gekoppelt. - Die LLR-Einheit
43 ist ausgangsseitig mit dem LLR-Speicherbereich34 gekoppelt, in dem die entsprechenden, von der LLR-Einheit43 berechneten Daten abgelegt werden. Zusätzlich ist eine Turbo-Rückkopplungsschleife45 vorgesehen, über die in dem LLR-Speicherbereich34 abgelegte Soft-Daten in die Branch-Metric-Einheit40 rückgekoppelt werden. - Die ACS-Einheit
42 ist ausgangsseitig über das Iterationsnetzwerk44 sowohl mit dem Traceback-Speicherbereich32 als auch mit dem State-Metric-Speicherbereich33 verbunden, in denen somit von der ACS-Einheit42 berechnete Daten (Metrik-Werte der einzelnen Zustände im Trellis) ablegbar sind. Der State-Metric-Speicherbereich33 ist darüber hinaus über das Iterationsnetzwerk44 mit dem Eingang der ACS-Einheit42 gekoppelt, so dass hier wiederum eine Verwendung der bereits berechneten und abgespeicherten Daten (State-Metriken) im nachfolgenden Schritt für die nächste Zeiteinheit im Trellis-Diagramm erfolgt. Im herkömmlichen Viterbi-Algorithmus beschreibt die Verwendung von bereits berechneten State-Metriken der vergangenen Zeiteinheit im Trellis die Vorwärtsrekursion. Im Turbo- oder auch MAP-Dekodierer wird die Wiederverwendung der bereits berechneten State-Metriken in der Vorwärts und in der Rückwärtsrekursion durchgeführt. Die Funktion der Vorwärts- und Rückwärts-Rekursion innerhalb des Iterationsnetzwerkes45 , die insbesondere bei der Turbo-Code-Dekodierung eine besondere Rolle spielt, sind dem Fachmann allgemein bekannt und wird daher nachfolgend nicht detailliert erläutert (siehe hierzu das Buch von Peter Jung). - Die erfindungsgemäße Dekodiereinrichtung
13 ist sowohl zur Dekodierung turbo-kodierter Daten als auch zur herkömmlichen Dekodierung mittels des Viterbi-Algorithmus ausgelegt. Es ergeben sich damit folgende beiden Datenpfade innerhalb des Datenpfadbereiches20 : - Erster Datenpfad für den Turbo-Code:
- Im Falle einer Turbo-Codierung werden eingehende zu dekodierende Daten über den Eingang
23 zunächst im Soft-Input-Speicherbereich31 abgelegt. Zusätzlich oder alternativ könnten eingehende dekodierende Daten (Channel Soft-Inputs) auch direkt, gewissermaßen "on the fly" verarbeitet werden, so dass für diese Applikationen (zum Beispiel für hard-decision Viterbi ohne nachfolgende BTFD-Applikation) die Softinput-Daten gar nicht zwischen gespeichert werden müssten. - Diese im Speicher
31 abgelegten Daten werden bei Bedarf aus dem Soft-Input-Speicherbereich31 ausgelesen und in den Datenpfadbereich20 eingekoppelt. Der Turbo-Code-Datenpfad innerhalb des Datenpfadbereiches20 ergibt sich somit aus den Branch-Metric-Einheiten40 ,41 , der ACS-Einheit42 , dem Iterationsnetzwerk44 sowie der LLR-Einheit43 . Dieser Datenpfad umfasst darüber hinaus die State-Metric-Speichereinheit33 , die der LLR-Einheit43 nachgeschaltete LLR-Speichereinheit34 sowie die Rückkopplungs-Turbo-Schleife45 . - Zweiter Datenpfad für Viterbi-Dekodierung
- Der Datenpfad für die Viterbi-Dekodierung umfasst neben dem Eingang
23 und dem Soft-Input-Speicherbereich31 ebenfalls die Branch-Metric-Einheiten40 ,41 und die diesen nachgeschaltete ACS-Einheit42 . Darüber hinaus enthält der Viterbi-Datenpfad Teile des Iterationsnetzwerkes44 , über welches die Daten in die Speicherbereiche32 ,33 abgelegt werden bzw. wieder in den Datenpfad (Daten des Speicherbereichs33 ) insbesondere in die ACS-Einheit eingeführt werden. -
3(a) zeigt eine schematische Darstellung einer erfindungsgemäßen Speichereinrichtung21 , die im vorliegenden Fall in acht Speichersegmente unterteilt ist. Die acht Segmente der Speichereinrichtung21 sind hier mit Bezugszeichen51 -58 bezeichnet worden. Über das Steuersignal X, welches von der Steuereinrichtung22 bereitgestellt wird, kann ein Betriebsmodus der Speichereinrichtung21 voreingestellt werden. - Im vorliegenden Falle sei lediglich von zwei Betriebsmodi ausgegangen: Im ersten Betriebsmodus werden eingekoppelte Daten über eine Turbo-Dekodierung abgelegt, während im zweiten Betriebsmodus hierzu ein Viterbi-Algorithmus vorgesehen ist. Die Erfindung sei jedoch nicht auf eben diese beiden Dekodiermodi beschränkt, sondern lässt sich selbstverständlich auch auf andere Dekodiermodi bzw. mehr als zwei Dekodiermodi erweitern.
- Die Speichereinrichtung
21 ist über bidirektionale Datenleitungen mit dem Eingang23 bzw. mit den entsprechenden Elementen40 ,42 ,43 ,44 im Datenpfadbereich20 der Dekodiereinrichtung13 , die der Übersichtlichkeit halber in3 nicht dargestellt wurden, verbunden. Nachfolgend wird die unterschiedliche Speicheraufteilung der Speichersegmente51 -58 im Falle des Viterbi-Dekodier-Modus (3(b) ) und im Falle des Turbo-Dekodier-Mode (3(c) ) näher erläutert: - Viterbi-Modus (
3(b) ) - Im Viterbi-Mode werden Soft-Input-Daten in die Speichersegmente
51 ,54 abgelegt, die somit den Speicherbereich31 bilden. State Metric-Daten werden hier in die Speichersegmente52 ,53 abgelegt, die den Speicherbereich33 bilden. Im Viterbi-Dekodier-Mode werden ferner Traceback-Daten in die Speichersegmente55 -58 abgelegt, die den Speicherbereich32 bilden. Im Hard-Decision Viterbi-Dekodier-Mode ist somit kein LLR-Speicherbereich34 vorgesehen. - Turbo-Modus (
3(c) ): - Im Turbo-Mode werden Soft-Input-Daten über den Eingang
23 in die Speichersegmente51 ,53 abgelegt. Diese Speichersegmente51 ,53 bilden den Speicherbereich31 . State Metric-Daten werden im Speichersegment52 abgelegt, der den Speicherbereich33 bildet. LLR-Daten werden in die Speichersegmente54 -58 abgelegt, die den Speicherbereich34 bilden. Im Turbo- Dekodier-Mode ist somit kein Trace-Back-Speicherbereich32 vorgesehen. - Die in den
3(a) -(c) angegebene Speicherplatzsegmentierung sei lediglich beispielhaft angegeben, kann aber selbstverständlich auch auf beliebig andere Weise ausgebildet sein. - In den
3(b) und3(c) fällt auf, dass die Speichersegmente51 ,52 sowohl im Viterbi- als auch im Turbo-Mode funktionsgleich genutzt werden. Daraus wird ersichtlich, dass insbesondere die Branch-Metric-Einheit40 ,41 die ACS-Einheit42 und Teile des Iterationsnetzwerkes44 im Datenpfadbereich20 gemeinsam sowohl im Turbo-Dekodiermodus als auch im Viterbi-Dekodier-Modus verwendet werden. - Die
3(b) ,3(c) zeigen ferner, dass zwar einzelne Speicherbereiche31 ,33 innerhalb der Speichereinrichtung21 gemeinsam genutzt werden, jedoch muss deren Größe nicht notwendigerweise sowohl im Turbo-Dekodier-Modus als auch im Viterbi-Dekodier-Modus gleich groß sein. Vielmehr können die einzelnen Speicherbereiche für die unterschiedlichen Dekodier-Modi unterschiedlich groß ausgestaltet sein. - Darüber hinaus werden auch die übrigen Speichersegmente in beiden Dekodiermodi gemeinsam genutzt. Dies wird durch eine jeweils für den gewählten Betriebsmodus spezifische Speicherbelegung festgelegt. Auf diese Weise können die Ressourcen des Speichers
21 optimal genutzt werden, indem der Speicher für den maximal erforderlichen Speicherplatzbedarf eines der verwendeten Betriebsmodi ausgelegt wird. Der bzw. die jeweils anderen Dekodier-Betriebsmodi benötigen einen geringeren Speicherplatzbedarf, der somit stets vorhanden ist. - Typischerweise, jedoch nicht notwendigerweise, ist der Turbo-Dekodier-Mode hinsichtlich des Speicherplatzbedarfes der bestimmende Faktor, so dass bei der Auslegung der Speichergröße der Speichereinrichtung
21 zumeist von dem Speicherplatzbedarf im Turbo-Dekodier-Modus ausgegangen werden muss. Nachfolgend sei anhand eines typischen Zahlenbeispiels diese Speicherplatzeinsparung im Vergleich zu einem herkömmlichen Dekodierer, der sowohl für Viterbi- als auch Turbo-Code-Dekodierung ausgelegt ist, dargelegt. - Ohne die erfindungsgemäße Dekodiervorrichtung
13 werden folgende Speicherressourcen (unter der Annahme von 6 Bits für die Soft-Input Auflösung und UMTS-spezifische Codierer und unter der Annahme einer Fensterlänge für Viterbi/SOVA = 5 constraint length) benötigt:159 000 Bits Turbo-Modus 21 000 Bits Fenster-basierter Viterbi-Modus 138 000 Bits SOVA basierend auf fenster-basiertem Viterbi 318 000 Bits Gesamt - Da mittels des erfindungsgemäßen Verfahrens bzw. der erfindungsgemäßen Dekodiereinrichtung der Speicher lediglich auf die größte Bitanzahl, nicht aber auf die Summe der Bitanzahl ausgelegt sein muss, ergibt sich eine erfindungsgemäße Speichergröße von 159 000 Bits, so dass der Speicher im dargestellten Beispiel etwa um den Faktor ½ kleiner ausgelegt sein kann.
- In der vorstehenden Beschreibung der Erfindung wurde die erfindungsgemäße Dekodiereinrichtung anhand eines Mobilfunksystems beschrieben. Die Erfindung sei aber nicht darauf beschränkt, sondern ist in allen Systemen mit Kodier- und Dekodiereinrichtungen sehr vorteilhaft einsetzbar.
- Die Erfindung sei nicht auf eine herkömmliche Viterbi-Dekodierung bzw. eine herkömmliche Turbo-Dekodierung beschränkt, sondern lässt sich auf sämtliche, wie auch immer ausgebildete Dekodierarten, die Daten auf der Basis eines Maximum Likelihood (ML)-Log-MAP- bzw. MAX-Log-MAP Algorithmus dekodieren, erweitert werden. Solche Dekodier- bzw. Trellis-Prozessor-Modi sind zum Beispiel neben dem herkömmlichen Viterbi-Dekodiermodus und Turbo-Dekodier-Modus auch die folgenden, wie bereits erwähnten Dekodiermodi: HDVA, SOVA, Log-MAP, MAX-Log-MAP. Die letzteren drei Dekodiermodi können sowohl zur Soft-Output-Dekodierung von herkömmlichen, unverketteten Faltungscodes, als auch zur Dekodierung von parallel verketteten Faltungscodes (d. h. klassische Turbocodes) oder auch von seriell verketteten Faltungscodes verwendet werden. Des Weiteren ist eine Anwendung auf eine ML-, MAP-, Log-MAP- oder MAX-Log-MAP-Entzerrung bzw. auch die iterative Turbo-Entzerrung denkbar und möglich.
- Zusammenfassend kann festgestellt werden, dass durch die Erfindung eine sowohl im Turbo-Dekodier-Mode als auch im Viterbi-Dekodier-Mode betreibbare Dekodiereinrichtung bereitgestellt wird, bei der auf sehr elegante, jedoch nichts desto trotz sehr einfache Weise Speicherplatzressourcen und Systemressourcen durch gemeinsame Nutzung in beiden Betriebsmodi eingespart werden können.
- Die vorliegende Erfindung wurde anhand der vorstehenden Beschreibung so dargelegt, um das Prinzip der Erfindung und dessen praktische Anwendung bestmöglichst zu erklären, jedoch lässt sich die Erfindung bei geeigneter Abwandlung selbstverständlich in mannigfaltigen anderen Ausführungsformen realisieren.
-
- 1
- Mobilfunksystem
- 2, 3
- Sender
- 4
- Empfänger
- 5, 6
- Kodierer
- 7, 8
- Modulator
- 9, 10
- Sendeantennen
- 11
- Empfangsantenne
- 12
- Demodulator
- 13
- Dekodier-Einrichtung
- 14, 15
- Übertragungskanäle
- 20
- Datenpfadbereich
- 21
- Speichereinrichtung
- 22
- Steuereinrichtung
- 23
- Eingang
- 30
- Multiplexer
- 31
- (Soft-Input-)Speicherbereich
- 32
- (Trace-Back-)Speicherbereich
- 33
- (State Metric-)Speicherbereich
- 34
- LLR-Speicherbereich
- 40, 41
- Branch-Metric-Einheiten
- 42
- ACS-Einheit
- 43
- (LLR-)Einheit
- 44
- Iterationsnetzwerk
- 45
- Rückkopplungs-Turbo-Schleife
- 51-58
- Speichersegmente
- D1, D2
- sendeseitig kodierte Datensignale
- D'
- Datensignale
- U1, U2
- Eingabesignale
- U'
- Ausgabesignal
- X
- Steuersignal (für Betriebsmodus)
Claims (22)
- Dekodiervorrichtung, die zumindest einen Dekodierer (
13 ) sowohl für eine Turbo-Dekodierung als auch für eine Viterbi-Dekodierung aufweist, mit einem ersten Datenpfad (40 ,41 ,42 ,44 ) zur Viterbi-Dekodierung eines Faltungs-Codes und mit einem zweiten Datenpfad (40 -45 ) zur Dekodierung eines Turbo-Codes, wobei zumindest Teile des ersten Datenpfades (40 -42 ,44 ) und des zweiten Datenpfades (40 -45 ) gemeinsam sowohl zur Turbo-Dekodierung als auch zur Viterbi-Dekodierung nutzbar sind; mit einem gemeinsamen Speicher (21 ), der eine Vielzahl von einzelnen Speicherbereichen (31 -34 ) aufweist, vorgesehen ist, wobei zumindest ein Speicherbereich (31 -34 ) sowohl über den ersten Datenpfad (40 -42 ,44 ) im Viterbi-Mode als auch über den zweiten Datenpfad (40 -45 ) im Turbo-Mode allokierbar ist. - Dekodiervorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Speichergröße des gemeinsamen Speichers (
21 ) auf die für eine Turbo-Dekodierung erforderliche Speichergröße ausgelegt ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Dekodierer (
13 ), insbesondere dessen Datenpfade (20 ), in fest verdrahteter Logik ausgebildet sind. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der erste Datenpfad (
40 -42 ,44 ) zur Hard-Output-Viterbi-Algorithmus Dekodierung, insbesondere zur exakten Hard-Output-Viterbi-Algorithmus Dekodierung, ausgelegt ist. - Dekodiervorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der erste Datenpfad (
40 -42 ,44 ) zur Soft-Output-Viterbi-Algorithmus Dekodierung ausgelegt ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der zweite Datenpfad (
40 -45 ) in einem Log-MAP-Modus, insbesondere in einem MAX-Log-MAP-Modus, als Bestandteil der Turbo-Dekodierung betreibbar ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest eine der gemeinsam genutzten Elemente der Datenpfade (
20 ) des Dekodierers (13 ) eine ACS-Einheit (42 ) ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest eine der gemeinsam genutzten Elemente der Datenpfade (
20 ) des Dekodierers (13 ) eine Branch-Metric-Einheit (40 ,41 ) zur Übergangsmetrikbestimmung ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein gemeinsam genutzter Speicherbereich (
31 ) zur Abspeicherung von Soft-Input-Daten vorgesehen ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein gemeinsam genutzter Speicherbereich (
32 ,33 ) zur Abspeicherung von Traceback-Werten und/oder Zustandsmetriken vorgesehen ist. - Dekodiervorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass in dem Speicherbereich (
32 ) zur Abspeicherung von Traceback-Werten die Traceback-Werte des gesamten Trellis-Diagrammes ablegbar sind. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein gemeinsam genutzter Speicherbereich (
34 ) zur Abspeicherung von Log-Likelihood-Ratio-Daten aus der Turbodekodierung vorgesehen ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass eine Steuereinrichtung (
22 ) vorgesehen ist, die den Betriebsmodus des Dekodierers (13 ) festlegt, die somit festlegt, dass eine Dekodierung über den ersten Datenpfad (40 -42 ,44 ) oder über den zweiten Datenpfad (40 -45 ) erfolgt. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass eine Steuereinrichtung (
22 ) vorgesehen ist, die den Betriebsmodus des Dekodierers (13 ) festlegt und die eine für den jeweiligen Betriebsmodus vorher festgelegt Speicheraufteilung vornimmt. - Dekodiervorrichtung nach einem der Ansprüche 13 oder 14, dadurch gekennzeichnet, dass die Steuereinrichtung (
22 ) und/oder der Speicher (21 ) einen Multiplexer (30 ) enthält oder die Funktionalität eines Multiplexers (30 ) aufweist. - Dekodiervorrichtung einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, dass der Multiplexer (
30 ) und/oder die Steuereinrichtung (22 ) in festverdrahteter Logik ausgebildet sind und Bestandteil des Dekodierers (13 ) sind. - Dekodiervorrichtung nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, dass als Steuereinrichtung (
22 ) eine Programm gesteuerte Einheit, insbesondere ein Mikrocontroller oder ein Mikroprozessor, vorgesehen ist, die die Funktionalität des Multiplexers aufweist. - Dekodiervorrichtung nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet, dass die Speicherbereichbelegung des Speichers (
13 ) für den jeweiligen Datenpfad (40 -45 ) über die Steuereinrichtung (22 ) fest vorgegeben ist. - Dekodiervorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Dekodiereinrichtung zumindest teilweise, insbesondere ganz, in Hardware ausgebildet ist.
- Trellis-Prozessor für eine Dekodiervorrichtung nach einem der vorstehenden Ansprüche, bei dem der Trellis-Prozessor sowohl in einem Viterbi-Dekodiermodus für einen Faltungscode als auch in einem Dekodiermodus für einen Turbo-Code betreibbar ist und bei dem der Trellis-Prozessor bei den verschiedenen Betriebsmodi sowohl die Datenpfade wie auch die Speicherbereiche zumindest teilweise gemeinsam nutzt.
- Verfahren zum Betreiben einer Dekodiereinrichtung (
13 ) bzw. eines Trellis-Prozessors nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest eine erste Dekodierung unter Verwendung eines exakten Viterbi-Algorithmus implementiert wird und/oder zumindest eine zweite Dekodierung unter Verwendung des MAP-Algorithmus oder eines Turbo-Codes implementiert wird. - Verfahren zum Betreiben einer Dekodiereinrichtung (
13 ) bzw. eines Trellis-Prozessors nach einem der Ansprüche 1 bis 20, dadurch gekennzeichnet, dass die Traceback-Werte des gesamten Trellis-Diagrammes in einem Speicher (32 ) abgespeichert werden.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10310812A DE10310812B4 (de) | 2003-03-12 | 2003-03-12 | Dekodiervorrichtung, Trellis-Prozessor und Verfahren |
US10/799,099 US7269777B2 (en) | 2003-03-12 | 2004-03-12 | Decoding apparatus, trellis processor, and method for operating the decoder |
CNB2004100330898A CN100392987C (zh) | 2003-03-12 | 2004-03-12 | 解码装置、网格处理器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10310812A DE10310812B4 (de) | 2003-03-12 | 2003-03-12 | Dekodiervorrichtung, Trellis-Prozessor und Verfahren |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10310812A1 DE10310812A1 (de) | 2004-10-28 |
DE10310812B4 true DE10310812B4 (de) | 2007-11-22 |
Family
ID=33038729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10310812A Expired - Fee Related DE10310812B4 (de) | 2003-03-12 | 2003-03-12 | Dekodiervorrichtung, Trellis-Prozessor und Verfahren |
Country Status (3)
Country | Link |
---|---|
US (1) | US7269777B2 (de) |
CN (1) | CN100392987C (de) |
DE (1) | DE10310812B4 (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2409134B (en) * | 2003-12-11 | 2005-11-09 | Motorola Inc | A decoder |
KR20070029744A (ko) * | 2004-05-18 | 2007-03-14 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 터보 디코더 입력 재배치 |
US7502412B2 (en) * | 2004-05-20 | 2009-03-10 | Qisda Corporation | Adaptive channel estimation using decision feedback |
US8046662B2 (en) * | 2004-08-20 | 2011-10-25 | Broadcom Corporation | Method and system for decoding control data in GSM-based systems using inherent redundancy |
FR2883434B1 (fr) * | 2005-03-21 | 2007-04-20 | Commissariat Energie Atomique | Methode et dispositif de demodulation a deux niveaux. |
KR100706608B1 (ko) * | 2005-07-19 | 2007-04-13 | 한국전자통신연구원 | 이중 스트림 전송에 적합한 부호기 추정 방법 및 이를이용한 부호화 장치 |
US8065588B2 (en) * | 2007-01-17 | 2011-11-22 | Broadcom Corporation | Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave |
US8739009B1 (en) * | 2007-12-27 | 2014-05-27 | Marvell International Ltd. | Methods and apparatus for defect detection and correction via iterative decoding algorithms |
CN102158235B (zh) * | 2011-04-26 | 2016-11-23 | 中兴通讯股份有限公司 | turbo译码的方法及装置 |
US8873420B2 (en) | 2011-12-01 | 2014-10-28 | Broadcom Corporation | Detecting extended acquisition indicators |
US20130142057A1 (en) | 2011-12-01 | 2013-06-06 | Broadcom Corporation | Control Channel Acquisition |
US9048990B2 (en) | 2011-12-01 | 2015-06-02 | Broadcom Corporation | Power efficient paging channel decoding |
RU2516624C1 (ru) * | 2012-12-10 | 2014-05-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) | Способ декодирования сверточных кодов |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0653847A2 (de) * | 1993-11-16 | 1995-05-17 | AT&T Corp. | Digitalprocessor und Viterbi-Dekoder mit gemeinsamem Speicher |
WO2002021699A2 (en) * | 2000-09-08 | 2002-03-14 | Avaz Networks | Programmable and multiplierless viterbi accelerator |
US20020119803A1 (en) * | 2000-12-29 | 2002-08-29 | Bitterlich Stefan Johannes | Channel codec processor configurable for multiple wireless communications standards |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100195745B1 (ko) * | 1996-08-23 | 1999-06-15 | 전주범 | 비터비 복호화기의 가산 비교 선택 장치 |
US7031408B2 (en) * | 1997-12-10 | 2006-04-18 | Adtran Inc. | Mechanism for reducing recovery time after path loss in coded data communication system having sequential decoder |
EP1540848B1 (de) * | 2000-08-03 | 2009-02-11 | Infineon Technologies AG | Flexible tdma systemarchitektur |
JP2003018047A (ja) * | 2001-07-02 | 2003-01-17 | Kawasaki Microelectronics Kk | Cdma受信装置及び誤り訂正符号のシンボル軟判定方法 |
US7139305B2 (en) * | 2001-08-02 | 2006-11-21 | Infineon Technologies Ag | Configurable terminal engine |
EP2317736A3 (de) * | 2002-10-07 | 2011-07-06 | Panasonic Corporation | Kommunikationsvorrichtung und verfahren zum umkonfigurieren der kommunikationsvorrichtung |
WO2004034227A2 (en) * | 2002-10-11 | 2004-04-22 | Quicksilver Technology, Inc. | Reconfigurable bit-manipulation node |
-
2003
- 2003-03-12 DE DE10310812A patent/DE10310812B4/de not_active Expired - Fee Related
-
2004
- 2004-03-12 CN CNB2004100330898A patent/CN100392987C/zh not_active Expired - Fee Related
- 2004-03-12 US US10/799,099 patent/US7269777B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0653847A2 (de) * | 1993-11-16 | 1995-05-17 | AT&T Corp. | Digitalprocessor und Viterbi-Dekoder mit gemeinsamem Speicher |
WO2002021699A2 (en) * | 2000-09-08 | 2002-03-14 | Avaz Networks | Programmable and multiplierless viterbi accelerator |
US20020119803A1 (en) * | 2000-12-29 | 2002-08-29 | Bitterlich Stefan Johannes | Channel codec processor configurable for multiple wireless communications standards |
Also Published As
Publication number | Publication date |
---|---|
US7269777B2 (en) | 2007-09-11 |
DE10310812A1 (de) | 2004-10-28 |
CN1531212A (zh) | 2004-09-22 |
US20040199858A1 (en) | 2004-10-07 |
CN100392987C (zh) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1005733B1 (de) | Verfahren zur paketübertragung mit einem arq-protokoll auf übertragungskanälen in einem digitalen übertragungssystem | |
DE19736625C1 (de) | Verfahren zur Datenübertragung auf Übertragungskanälen in einem digitalen Übertragungssystem | |
DE69810485T2 (de) | Kommunikationssysteme und verfahren mit paralleler verschachtelungsloser kodierung | |
EP1005735B1 (de) | Verfahren und einrichtung zur abschätzung der dienstqualität auf übertragungskanälen in einem digitalen übertragungssystem | |
DE69736881T2 (de) | Parallel verketteter tail-biting-faltungskode und dekoder dafür | |
DE3910739C3 (de) | Verfahren zum Verallgemeinern des Viterbi-Algorithmus und Einrichtungen zur Durchführung des Verfahrens | |
DE69930467T2 (de) | Iterative Demodulation und Dekodierungeines Mehrpegel-Signals | |
DE69024282T2 (de) | Verallgemeinernder Viterbi-Dekodier-Algorithmus | |
DE10310812B4 (de) | Dekodiervorrichtung, Trellis-Prozessor und Verfahren | |
DE112010003449T9 (de) | Iterative Decodierung von Signalen, die über einen verrauschten Kanal empfangen werden, unter Verwendung von Vorwärts- und Rückwärts-Rekursionen mit einer Hochfahrinitialisierung | |
EP1005734B1 (de) | Verfahren zur datenübertragung in einem digitalen übertragungssystem bei paketvermitteltem dienst | |
DE60003071T2 (de) | Verfahren zur dekodierung von mit einem entropie-code kodierten daten, entsprechende dekodierungsvorrichtung und übertragungssystem | |
DE10196688B3 (de) | Ein Decodierer für eine trellis-basierte Kanalcodierung | |
EP1236281B1 (de) | Turbo-code-decoder und turbo-code-decodierverfahren mit iterativer kanalparameterschätzung | |
DE60111974T2 (de) | Abbruchkriterium für einen Turbodekoder | |
DE102005010006B4 (de) | Verfahren und Vorrichtung zum Terminieren einer iterativen Turbo-Dekodierung | |
EP1269633B1 (de) | Optimierter turbo-decodierer | |
DE69908820T2 (de) | Verfahren und system zur schnellen maximale-a-posteriori-dekodierung | |
EP1249074B1 (de) | Verfahren zur decodierung eines datensignals | |
EP1269632B1 (de) | Turbo-decodierer und turbo-decodierverfahren | |
DE19725275C2 (de) | Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen | |
DE69908366T2 (de) | SOVA Turbodekodierer mit kleinerer Normalisierungskomplexität | |
DE10000932C2 (de) | Verfahren und Vorrichtung zum Decodieren einer Folge von Codewörtern variabler Länge, Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Decodieren eines Datenstroms | |
DE4327778C1 (de) | Verfahren und System zum Übertragen von Signalen | |
WO2021083748A2 (de) | MAßNAHMEN ZUR ERMÖGLICHUNG EINER KANALNACHFÜHRUNG BEI DIGITALER ÜBERTRAGUNG |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R081 | Change of applicant/patentee |
Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE Effective date: 20130306 Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS TECHNOLOGY GMBH, 85579 NEUBIBERG, DE Effective date: 20130306 Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES DELTA GMBH, 85579 NEUBIBERG, DE Effective date: 20130306 Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES DELTA GMBH, 85579 NEUBIBERG, DE Effective date: 20130306 Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE Effective date: 20130306 Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS TECHNOLOGY GMBH, 85579 NEUBIBERG, DE Effective date: 20130306 |
|
R081 | Change of applicant/patentee |
Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |