DE10214393A1 - Verfahren zur iterativen Decodierung von verketteten Codes - Google Patents
Verfahren zur iterativen Decodierung von verketteten CodesInfo
- Publication number
- DE10214393A1 DE10214393A1 DE10214393A DE10214393A DE10214393A1 DE 10214393 A1 DE10214393 A1 DE 10214393A1 DE 10214393 A DE10214393 A DE 10214393A DE 10214393 A DE10214393 A DE 10214393A DE 10214393 A1 DE10214393 A1 DE 10214393A1
- Authority
- DE
- Germany
- Prior art keywords
- iterations
- siso
- buffers
- decoding
- codes
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- 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
- H03M13/2975—Judging correct decoding, e.g. iteration stopping criteria
-
- 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
- H03M13/2978—Particular arrangement of the component decoders
- H03M13/2987—Particular arrangement of the component decoders using more component decoders than component codes, e.g. pipelined turbo iterations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Der Erfindung, die ein Verfahren zur iterativen Decodierung von verketteten Codes betrifft, liegt die Aufgabe zugrunde, den Datendurchsatz der iterativen Decodierschaltung bei Einsatz eines Iterationsabbruchkriteriums zu erhöhen. Dies wird dadurch gelöst, dass die Eingangsdaten in einer geeigneten Art und Weise gepuffert werden. Dadurch kann bei Bedarf eine höhere als die mittlere Iterationszahl durchgeführt werden, obwohl der Datendurchsatz nur für die mittlere Iterationszahl dimensioniert werden muss.
Description
- Die Erfindung betrifft ein Verfahren zur iterativen Decodierung von verketteten Codes bei dem Zuverlässigkeitsinformationen zwischen den Teildecodern ausgetauscht werden. Bei diesem Verfahren wird das Codewort durch die Kombination von mehreren Untercodes gebildet.
- Iterative Decodierverfahren sind beispielsweise aus der US 5 446 747, US 5 563 897 und der EP 1085 660 A1 bekannt. In der DE 195 26 416 A1, US 6182261 B1 und DE 196 30 343 A1 wird die Verwendung eines adaptiven Abbruchkriteriums beim iterativen Decodieren übertragener, multidimensional codierter Information beschrieben.
- Iterativ decodierte Codes sind z. B. Turbo-Codes, seriell verkettete Codes und Produktcodes. Zur Decodierung der Teilcodes werden in der Regel Soft-In-Soft-Out Symbol- oder Sequenzschätzer verwendet, die Zuverlässigkeitsinformaticnen untereinander austauschen.
- Bei einem Verfahren zur iterativen Decodierung von verketteten Codes, bei dem Zuverlässigkeitsinformationen (L-Werte) zwischen verschiedenen Teildecodern ausgetauscht werden, wird das Codewort durch die Kombination mehrerer Untercodes gebildet. Die Decodierung dieser Codes erfolgt in der Regel iterativ, d. h. es besteht eine Rückkopplung zwischen den Teildecodern. Dabei werden nacheinander die Teilcodes decodiert und das Decodierergebnis, die sogenannte extrinsic Information, als a-priori Information den anderen Decodern zur Verfügung gestellt. Beispiele für iterativ decodierte Codes sind Turbo-Codes und seriell verkettete Codes. Turbo-Codes wurden erstmalig in G. Berrou, A. Glavieux, P. Thitimajshima, "Near Shannon limit error-correcting coding: Turbo codes" Proc. 1993 International Conference Communication, Genf, Mai 1993, Seiten 1064-1070, vorgestellt. Seriell verkettete iterativ decodierte Codes sind in 5. Benedetto, G. Montorsi, "Serial concatenation of block and convolutional codes" Electron. Lett., vol. 32, no. 10, Seiten 887-888, Mai 1996 beschrieben.
- Turbo-Codes werden seit wenigen Jahren eingesetzt und sind als grundlegendes Verfahren zur Kanalcodierung für den Mobilfunkstandard der dritten Generation "IMT-2000" vorgeschlagen worden. Turbo-Codes haben den Vorteil eines hohen Codiergewinnes und können flexibel an die Kanalerfordernisse angepasst werden.
- Zur iterativen Decodierung werden Decoder für die Teilcodes verwendet, welche neben den Zuverlässigkeitswerten des übertragenen Codeworts außerdem a-priori Informationen nutzen können. Als Decodierergebnis wird eine extrinsic Information berechnet, welche den Decodern der anderen Teilcodes wiederum als a-priori Information zur Verfügung steht. Diese Decoder werden allgemein SISO (Sofl-In-Soft-Out) genannt.
- Realisierungen eines SISO-Decoders sind z. B. MAP oder SOVA-Decoder. Der MAP- Algorithmus wurde in L. Bahl, J. Cocke, F. Jelinek, and J. Raviv, "Optimal decoding of linear codes for minimizing symbol error rate" IEEE Transactions on Information Theory, Seiten 284-287, März 1974 beschrieben. Der SOVA-Algorithmus wurde in J. Hagenauer et al. "Iterative ("Turbo") decoding of systematic convolutional codes with MAP and SOVA algorithms", ITG Fachtagung "Codierung", München, Okt. 1994, beschrieben.
- Der Decodiergewinn steigt mit der Anzahl der Iterationen bis eine Sättigung erreicht wird. Ab einer Anzahl von 8 Iterationen wird typischerweise nur noch ein relativ geringer Zuwachs am Decodiergewinn erzielt, so dass für eine Vielzahl an Anwendungen 8 Iterationen die Obergrenze darstellt. Die Tatsache, dass die volle Iterationsanzahl jedoch nur für eine relative geringe Menge an Codeworten notwendig ist - viele Codeworte werden schon nach wenigen Iterationen korrekt decodiert - führte zu Verfahren, die eine korrekte Information erkennen und somit die Iteration schon vor der maximalen Iterationszahl abbrechen können. Verfahren zum vorzeitigen abbrechen der Iterationen sind z. B. in R. Y. Shao, S. Lin, and M. P. C. Fossorier "Two Simple Stopping Criteria for Turbo Decoding", IEEE Transactions on Communications, Seiten 1117-1120, August 1999, beschrieben. Ein Verfahren zum vorzeitigen Abbrechen der Iteration ist z. B. das Überprüfen einer dem Codewort beigefügten CRC nach jeder ganzen oder halben Iteration. Wenn die CRC ein korrektes Ergebnis signalisiert, wird die Iteration abgebrochen. Durch das vorzeitige Abbrechen der Iterationen ist die mittlere Iterationszahl geringer als die maximale Iterationszahl.
- Die mittlere Iterationszahl eines Turbo-Decoders ist stark von der Blocklänge und dem SNR abhängig. Typisch beträgt die mittlere Iterationszahl 0.5 bis 5 Iterationen.
- Der Vorteil des Abbrechens des Iterationsprozesses liegt in dem verringerten Stromverbrauch des Decoders, da die Decodierschaltung für die nicht benötigten Iterationen in einem stromsparenden Ruhemodus verharren kann.
- Der Datendurchsatz des Decoders wird durch das Abbrechen des Iterationsprozesses nicht erhöht, da auf den nächsten Empfangsblock gewartet werden muß. Der Datendurchsatz der bekannten Verfahren mit einer SISO-Einheit ist demzufolge von der maximalen Iterationsanzahl abhängig. Bei parallelen Decoderrealisierungen mit je einer SISO-Einheit für eine halbe Iteration entspricht der Datendurchsatz der gesamten Decoderschaltung dem Durchsatz der SISO-Einheit.
- Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur iterativen Decodierung von verketteten Codes anzugeben, dessen Datendurchsatz von der maximalen Iterationsanzahl unabhängig ist und gleichzeitig eine erhebliche Steigerung des Durchsatzes bewirkt.
- Gemäß der Erfindung wird diese Aufgabe durch ein Verfahren in Verbindung mit den im Oberbegriff des Anspruchs 1 genannten Merkmalen dadurch gelöst, dass
- - die Eingangsdaten blockweise in einer bestimmten Anzahl an Eingangspuffern gespeichert werden, wobei ein Eingangspuffer jeweils einen Empfangsblock speichert und die Anzahl der Eingangspuffer mindestens dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht.
- - die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
- - ein Iterationsabbruchkriterium ausgewertet wird, und
- - der iterative Decodiervorgang abgebrochen wird, wenn entweder die maximale Iterationsanzahl erreicht wird oder wenn alle Eingangspuffer mit Eingangsdaten gefüllt sind oder dass Iterationsabbruchkriterum erfüllt wird.
- Weiterhin erfindungsgemäß wird die Aufgabe durch ein Verfahren in Verbindung mit den im Oberbegriff des Anspruchs 6 genannten Merkmalen dadurch gelöst, dass
- - die Eingangsdaten in einem Ringpuffer gespeichert werden und
- - die Größe des Ringpuffers mindestens einer Anzahl an Empfangsblöcken entspricht, die dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht,
- - die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
- - ein Iterationsabbruchkriterium ausgewertet wird, und
- - der iterative Decodiervorgang abgebrochen wird, wenn die maximale Iterationsanzahl erreicht wird oder wenn der verbleibende freie Platz in dem Ringpuffer einen bestimmten Wert unterschritten hat oder dass Iterationsabbruchkriterum erfüllt wird.
- Vorteilhafte Verfahrensvarianten sind Gegenstand der abhängigen Unteransprüche.
- Jeweils zwei SISO-Decoder Operationen werden normalerweise als eine Iteration bezeichnet. Mit einer bestimmten Datenrate des SISO-Decoders dSISO wird eine bestimmte Kanaldatenrate dKanal unterstützt. Der Zusammenhang ergibt sich aus der maximalen Iterationsanzahl.
dKanal = dSISO /(2.Imax)
- Bei dem erfindungsgemäßen Verfahren wird der Decoder nicht mit der maximalen Iterationsanzahl dimensioniert, sondern mit einer Iterationsanzahl, welche nur leicht über der mittleren Iterationsanzahl und unterhalb der maximalen Iterationsanzahl liegt. Diese Iterationsanzahl wird als garantierte Iterationsanzahl bezeichnet, da der Decoder diese Iterationsanzahl auf jeden Fall ausführen kann. Die Kanaldatenrate beträgt bei dem erfindungsgemäßen Verfahren
dKanal = dSISO /(2.Igar),
es gibt sich eine höhere Kanaldatenrate, da Igar < Imax.
- Damit sich die Leistungsfähigkeit der Decodierung nicht verschlechtert, muß jedoch auch manchmal ein Empfangsrahmen mit der maximalen Iterationsanzahl decodiert werden. Dieses Problem wird bei dem erfindungsgemäßen Verfahren mit zusätzlichem Speicherplatz gelöst. Wenn ein Empfangsrahmen mehr Iterationen als die garantierte Iterationsanzahl benötigt, wird der nächste Empfangsrahmen nicht sofort decodiert sondern zunächst zwischengespeichert. Es erfolgt also ein Austausch zwischen Datendurchsatz des SISO- Decoders und der erforderlicher Puffergröße.
- Bei Verwendung von Eingangspuffern mit einer Größe die jeweils einem Empfangsrahmen entspricht, ergibt sich die notwendige Pufferanzahl aus dem Verhältnis zwischen maximaler Iterationsanzahl und garantierter Iterationsanzahl.
- Der notwendige Puffer kann aber auch als Ringpuffer anstatt als auch aus mehreren einzelnen Puffern bestehen. Die Größe entspricht dann der Summe der einzelnen Puffer.
- Die erforderliche Puffergröße ist außerdem abhängig von der Datenübergabe an den Turbo- Decoder. Die obigen Angaben bezogen sich auf einen Burstmodus, wo die Daten in einem kurzen Zeitintervall zum Turbo-Decoder übertragen werden. Werden die Daten anstatt im Burstmodus kontinuierlich zum Turbo-Decoder übertragen, ist die Puffergröße um einem Empfangsrahmen größer zu dimensionierten.
- Bei dem Verfahren muss der Datendurchsatz nur für eine garantierte Anzahl an Iterationen dimensioniert werden, die etwas über der mittleren Iterationsanzahl liegen sollte. Durch die erfindungsgemäße Zwischenspeicherung der empfangenen Daten und den gesteuerten Zugriff auf diese kann bei Bedarf eine höhere oder eine niedere als die mittlere vorgegebene Anzahl an Iterationsschritten durchgeführt werden. Ein Überlauf der Daten wird vermieden.
- Der Iterationsprozess wird abgebrochen, wenn entweder die maximale Iterationsanzahl erreicht ist, das Iterationsabbruchkriterium erfüllt ist oder der Zwischenpuffer mit Daten gefüllt ist.
- Dazu wird mittels einer Steuerung ständig der Zustand der Puffer geprüft und die Rückmeldung von der SISO-Einheit über einen Iterationsabbruch abgefragt.
- Vorteilhaft wird als Iterationsabbruchkriterium die korrekte Decodierung der CRC- Information herangezogen oder ein zweimal aufeinanderfolgendes, identisches Decodierergebnis verwendet.
- Es können auch mehrere SISO-Decoder parallel betrieben werden, wobei dann die Zuordnung der Eingangsdaten zu den Puffern und der Puffer zu den SISO-Decodern flexibel mittels einer Kontrollschaltung gestaltet wird. Die Ausgabe der Teilcodes aus den SISO-Decodern wird vorteilhaft einer Sortierung unterzogen, die der Reihenfolge des Eingangs in die Puffer entspricht.
- Der Vorteil der Erfindung besteht darin, dass der Durchsatz der Decodierschaltung erhöht werden kann, da der Durchsatz nach dem erfindungsgemäßen Verfahren nunmehr von der mittleren Iterationszahl abhängig ist.
- Das Verfahren kann prinzipiell für alle iterativen Decodierverfahren verwendet werden.
- Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen näher erläutert. In den zugehörigen Zeichnungen zeigen:
- Fig. 1 ein Blockschaltbild eines Turbo-Code Encoders
- Fig. 2 ein Blockschaltbild eines Turbo-Code Decoders
- Fig. 3 der zeitliche Ablauf des herkömmlichen Verfahrens mit einem SISO-Decoder
- Fig. 4 der zeitliche Ablauf des erfindungsgemäßen Verfahrens mit einem SISO-Decoder
- Fig. 5 ein Blockschaltbild der herkömmlichen Decodierung mit einer SISO-Einheit
- Fig. 6 ein Blockschaltbild des erfindungsgemäßen Verfahrens mit einer SISO-Einheit
- Fig. 7 in Blockschaltbild des erfindungsgemäßen Verfahrens mit n SISO-Einheiten
- Fig. 8 eine Darstellung der Simulationsergebnisse.
- Im Bereich der Kanalcodierung spielen Turbo-Codes aufgrund des hohen erzielbaren Codierungsgewinns eine wichtige Rolle. Turbo-Codes sind parallel verkettete rekursive systematische Faltungscodes. Die Struktur eines herkömmlichen Turbo-Code Encoders mit zwei Faltungscodes der Einflußlänge von drei Symbolen ist in Fig. 1 dargestellt. Ein Faltungscoder verwendet die Informationssymbole uk direkt während der anderer Faltungscoder diese Informationssymbole verschachtelt (interleavt) verarbeitet. Die Redundanzsymbole des ersten Faltungscoders werden als up k1 und die Redundanzsymbole des zweiten Faltungscoders werden als up k2 bezeichnet. Die Redundanzsymbole können mittels eines optionalen Punktierungsblocks selektiv gelöscht werden, um eine bestimmte Coderate zu erzielen. Die verbleibenden Redundanzsymbole bilden zusammen mit den Informationssymbolen das zu übertragende Codewort.
- Der iterative Turbo-Decoder ist eine Decoderanordnung, die für die Decodierung von Turbo- Codes geeignet ist und dort Anwendung findet. Fig. 2 zeigt eine herkömmliche Turbo- Decoder Struktur. Die vom Demodulator kommenden Daten werden den einzelnen SISO- Faltungsdecodern, die den jeweiligen Encodern entsprechen, zugeführt. Der Decodiervorgang erfolgt iterativ, d. h. nach der Decodierung eines Teilecodes erfolgt die Decodierung des anderen Teilcodes unter Einbeziehung des Decodierergebnisses (extrinsic Information) des vorherigen Prozesses. Der Turbo-Decoder kann mit einem einzigen SISO-Decoder, der zeitmultiplex betrieben wird, oder parallel (zwei SISO für eine Iterationsstufe) aufgebaut werden. Auch Mischformen sind möglich.
- Zur Decodierung der einzelnen Faltungscodes wird generell ein Soft-Input-Soft-Output Decoder (SISO) verwendet. Dieser kann durch verschiedene Algorithmen realisiert werden (MAP, Max-Log-MAP, SOVA).
- Für die Softwerte werden allgemein logarithmierte Wahrscheinlichkeitsverhältnisse (L-Werte) verwendet. Der Betrag |L( ≙k)| gibt die Zuverlässigkeit der Entscheidung an, das Vorzeichen sign (L( ≙k)) stellt die harte Entscheidung dar. Als Decodierergebnis des SISO-Decoders wird die extrinsic Information Le( ≙k) für das Informationssymbol uk bereitgestellt, welche zwischen den Decodern der einzelnen Teilcodes ausgetauscht werden. Die abwechselnde Decodierung der Teilcodes kann auch mit einer einzigen SISO-Einheit realisiert werden. Diese decodiert dann zeitmultiplex die beiden Teilcodes. Da für eine sogenannte Iteration immer beide Teilcodes decodiert werden müssen, ergibt sich für eine Decodierung mit N Iterationen mit einem Turbo-Decoder der nur aus einer einzigen SISO-Einheit besteht, demzufolge 2 N Arbeitsschritte für die SISO-Einheit.
- Während des Decodierprozesses wird ständig auf die Eingangsdaten zugegriffen und diese Zugriffe können wegen des Interleavers auch verwürfelt erfolgen. Deswegen wird bei einem Übertragungssystem mit kontinuierlichem Datenempfang neben dem Datenpuffer für die Decodierung ein weiterer Empfangspuffer benötigt, der die aktuell empfangenen Daten aufnimmt. Diese beiden Puffer werden dann wechselseitig umgeschaltet. In Fig. 5 ist dieses Konzept dargestellt. Die vom Kanal empfangenen Daten werden in Puffer 1 abgelegt während der Decoder die bereits empfangenen Daten aus Puffer 2 decodiert.
- Der zeitliche Ablauf dieses Prozesses ist in Fig. 3 dargestellt. Am Beginn wird der Puffer 1 mit den empfangenen Daten gefüllt. Nach dem Ende dieses Arbeitschrittes kann mit der Decodierung des ersten Blocks begonnen werden, während der zweite Block empfangen wird und in den Puffer 2 abgelegt wird. In dem skizzierten Ablauf werden maximal 8 Iterationen unterstützt. Durch den Einsatz eines Iterationsabbruchkriterums wie in der zitierten Literatur beschrieben, kann die Iteration auch vor dem maximalen Ende abgebrochen werden. Der Decoder befindet sich dann bis zum Umschaltzeitpunkt der Puffer in Ruhe.
- Die obigen Ausführungen beziehen sich auf den Stand der Technik. Das erfindungsgemäße Verfahren verwendet neben den bereits beschriebenen Datenpuffern weitere Puffer. In dem hier beschriebenen Ausführungsbeispiel wird ein weiterer Puffer eingesetzt. Dadurch wird eine größere Flexibilität in bezug auf die maximale Iterationszahl erzielt. Die Anzahl an mindestens notwendigen Puffern ergibt sich aus dem Verhältnis aus maximaler Iterationsanzahl zu garantierter Iterationsanzahl zuzüglich eines weiteren Puffers, da im Beispiel kontinuierlich Daten empfangen werden, also 8/4+1 = 3 Puffer. In Fig. 6 ist die entsprechende Schaltung skizziert. Eine Kontrollschaltung erhält die Information über einen Iterationsabbruch von dem SISO-Decoder und kann dann eine flexible Umschaltung zwischen den Puffern vornehmen (np ist die Zahl an zusätzlichen Puffern). Der zeitliche Ablauf des erfindungsgemäßen Verfahrens ist in Fig. 4 dargestellt. Der Decoder ist in dem gewählten Beispiel nur für 4 Iterationen ausgelegt (garantierte Iterationen). Da aber wegen dem zusätzlichen Puffer die Daten länger gültig bleiben, können in dem beschriebenen Beispiel auch maximal 8 Iterationen durchgeführt werden. Dies ist im Beispiel Fig. 4 für Block Nr. 2 der Fall. Für das gezeigte Ausführungsbeispiel ist hier die Pufferkapazität erschöpft und die weiteren Blöcke können nur noch mit maximal 4 Iterationen decodiert werden. Erst wenn die Pufferkapazität durch Iterationen kleiner als 4 Iterationen wieder erhöht wird, ist wieder eine höhere Iterationszahl möglich. Das Verfahren ist besonders vorteilhaft, wenn die mittlere Iterationszahl unter der dauerhaft garantierten Iterationszahl (4 in diesem Beispiel) liegt.
- In einem weiteren Ausführungsbeispiel können mehrere Empfangsblöcke durch den Einsatz mehrerer SISO-Decoder parallel decodiert werden. In Fig. 7 ist eine entsprechende Anordnung mit n Decodern dargestellt. Für die n SISO-Decoder werden auch n Puffer benötigt. Ein Puffer wird mit den Empfangsdaten beschrieben und mindestens 1 Puffer wird für die Erhöhung der Iterationszahl verwendet. Somit werden insgesamt mindestens n+2 Puffer benötigt. Eine Steuerung verbindet mit einem n-Schalter jeweils einen Puffer mit einem SISO-Decoder. Die SISO-Decoder melden einen eventuellen Iterationsabbruch wie im vorherigen Beispiel der Steuerung. Dem SISO-Decoder, der als erster die Decodierung beendet hat, wird der nächste Eingangspuffer zugewiesen. Als Puffer für die Empfangsdaten wird ein Puffer benutzt, welcher aktuell von keinem SISO-Decoder benutzt wird. Sind alle Puffer in Benutzung, wird durch die Steuerung die Decodierung in dem SISO-Decoder beendet, welcher die höchste Iterationszahl erreicht hat. Da die SISO-Decoder durch die unterschiedliche Iterationszahl die Daten im Extremläll in einer falschen Reihenfolge abliefern, wird am Ausgang ein weiterer Puffer benötigt. Die Steuerung stellt durch einen geordneten Zugriff auf diesen Puffer die richtige Reihenfolge der decodierten Daten wieder her.
- Das erfindungsgemäße Verfahren erzielt einen höheren Datendurchsatz als herkömmliche Verfahren bei einer unwesentlichen Verschlechterung der Decodierleistung. Als Beispiel ist in Fig. 8 das Simulationsergebnis der Bitfehlerrate (BER) mit und ohne dem erfindungsgemäßen Verfahren dargestellt. Für die Simulation der Bitfehlerrate wurde ein Turbo-Code mit dem Generatorpolynom (gfeedback, gparity) = (13oct, 15oct) der Teilcodes, die Blocklänge 5114 bits, ein AWGN-Kanal und als SISO-Decoder ein MAP Decoder verwendet. Zur Decodierung wird ein Decoder mit einer SISO-Einheit verwendet.
- Das erfindungsgemäße Verfahren wurde für eine dauerhafte Iterationszahl von 5 Iterationen und maximal 10 Iterationen dimensioniert. Zum Vergleich wurden die BER-Kurven des herkömmlichen Verfahrens mit maximal 5 Iterationen und mit maximal 10 Iterationen dargestellt. Weiterhin ist der Verlauf der mittleren Iterationszahl dargestellt. Es ist zu erkennen, dass das erfindungsgemäße Verfahren bis zu 0.4 dB keinen Vorteil zum herkömmlichen Verfahren hat. Ab 0.5 dB ist das erfindungsgemäße Verfahren jedoch annähernd so leistungsfähig wie das herkömmliche Verfahren mit 10 Iterationen. Das bedeutet, dass der Datendurchsatz des erfindungsgemäßen Verfahrens bei annähernd gleicher Leistungsfähigkeit doppelt so hoch ist, wie bei den herkömmlichen Verfahren.
Claims (10)
1. Verfahren zur iterativen Decodierung von verketteten Codes, bei dem nacheinander die
einzelnen Teilcodes des Empfangsblocks mit einem ISO-Decoder decodiert werden,
dadurch gekennzeichnet, dass
die Eingangsdaten blockweise in einer bestimmten Anzahl an Eingangspuffern gespeichert werden, wobei ein Eingangspuffer jeweils einen Empfangsblock speichert und die Anzahl der Eingangspuffer mindestens dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht.
die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
ein Iterationsabbruchkriterium ausgewertet wird, und
der iterative Decodiervorgang abgebrochen wird, wenn entweder die maximale Iterationsanzahl erreicht wird oder wenn alle Eingangspuffer mit Eingangsdaten gefüllt sind oder dass Iterationsabbruchkriterum erfüllt wird.
die Eingangsdaten blockweise in einer bestimmten Anzahl an Eingangspuffern gespeichert werden, wobei ein Eingangspuffer jeweils einen Empfangsblock speichert und die Anzahl der Eingangspuffer mindestens dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht.
die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
ein Iterationsabbruchkriterium ausgewertet wird, und
der iterative Decodiervorgang abgebrochen wird, wenn entweder die maximale Iterationsanzahl erreicht wird oder wenn alle Eingangspuffer mit Eingangsdaten gefüllt sind oder dass Iterationsabbruchkriterum erfüllt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass als Iterationsabbruchkriterium
die korrekte Decodierung der CRC-Information herangezogen wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass als Iterationsabbruchkriterium
ein zweimal aufeinanderfolgendes, identisches Decodierergebnis verwendet wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass mehrere
SISO-Decoder parallel betrieben werden und die Zuordnung der Eingangsdaten zu den
Puffern und der Puffer zu den SISO-Decodern flexibel mittels einer Kontrollschaltung
gestaltet wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Ausgabe des
Decodierergebnisses aus den SISO-Decodern einer Sortierung unterzogen wird, die der
Reihenfolge des Eingangs in die Puffer entspricht.
6. Verfahren zur iterativen Decodierung von verketteten Codes, bei dem nacheinander die
einzelnen Teilcodes des Empfangsblocks mit einem SISO-Decoder decodiert werden,
dadurch gekennzeichnet, dass
die Eingangsdaten in einem Ringpuffer gespeichert werden und
die Größe des Ringpuffers mindestens einer Anzahl an Empfangsblöcken entspricht, die dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht,
die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
ein Iterationsabbruchkriterium ausgewertet wird, und
der iterative Decodiervorgang abgebrochen wird, wenn die maximale Iterationsanzahl erreicht wird oder wenn der verbleibende freie Platz in dem Ringpuffer einen bestimmten Wert unterschritten hat oder dass Iterationsabbruchkriterum erfüllt wird.
die Eingangsdaten in einem Ringpuffer gespeichert werden und
die Größe des Ringpuffers mindestens einer Anzahl an Empfangsblöcken entspricht, die dem Verhältnis von der maximalen Iterationsanzahl zu der garantierten Iterationsanzahl entspricht,
die garantierte Iterationsanzahl unter der maximalen Iterationsanzahl liegt,
ein Iterationsabbruchkriterium ausgewertet wird, und
der iterative Decodiervorgang abgebrochen wird, wenn die maximale Iterationsanzahl erreicht wird oder wenn der verbleibende freie Platz in dem Ringpuffer einen bestimmten Wert unterschritten hat oder dass Iterationsabbruchkriterum erfüllt wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass als Iterationsabbruchkriterium
die korrekte Decodierung der CRC-Information herangezogen wird.
8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass als Iterationsabbruchkriterium
ein zweimal aufeinanderfolgendes, identisches Decodierergebnis verwendet wird.
9. Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass mehrere
SISO-Decoder parallel betrieben werden und die Zuordnung der Eingangsdaten zu den
Puffern und der Puffer zu den SISO-Decodern flexibel mittels einer Kontrollschaltung
gestaltet wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Ausgabe des
Decodierergebnisses aus den SISO-Decodern einer Sortierung unterzogen wird, die der
Reihenfolge des Eingangs in die Puffer entspricht.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10214393A DE10214393A1 (de) | 2001-03-27 | 2002-03-26 | Verfahren zur iterativen Decodierung von verketteten Codes |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10116179 | 2001-03-27 | ||
DE10214393A DE10214393A1 (de) | 2001-03-27 | 2002-03-26 | Verfahren zur iterativen Decodierung von verketteten Codes |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10214393A1 true DE10214393A1 (de) | 2003-02-06 |
Family
ID=7679956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10214393A Withdrawn DE10214393A1 (de) | 2001-03-27 | 2002-03-26 | Verfahren zur iterativen Decodierung von verketteten Codes |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10214393A1 (de) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2859332A1 (fr) * | 2003-08-28 | 2005-03-04 | Agence Spatiale Europeenne | Architecture pour un decodeur iteratif |
EP1422830A3 (de) * | 2002-11-23 | 2005-05-25 | Samsung Electronics Co., Ltd. | Turbodekodereinganssteuerverfahren und Apparat |
FR2890804A1 (fr) * | 2005-09-12 | 2007-03-16 | St Microelectronics Sa | Traitement de blocs dans un dispositif de decodage par blocs |
WO2008077421A1 (en) * | 2006-12-22 | 2008-07-03 | Micronas Gmbh | Channel decoder with variable number of decoding iterations |
EP2048790A1 (de) * | 2006-08-02 | 2009-04-15 | Fujitsu Limited | Empfängervorrichtung und dekodierungsverfahren dafür |
US7725798B2 (en) | 2004-02-27 | 2010-05-25 | Joanneum Research Forschungsgesellschaft Mbh | Method for recovering information from channel-coded data streams |
WO2012094179A1 (en) * | 2011-01-07 | 2012-07-12 | Marvell World Trade Ltd. | Low latency simd architecture for multiple iterative decoders arranged parallel |
EP2819310A1 (de) * | 2013-06-26 | 2014-12-31 | Alcatel Lucent | Iterativer Fehlekorrekturdecodierer mit verketteten Dekodierblöcken und einem rückgekoppelten Dekodierblock |
US9071279B2 (en) | 2004-05-18 | 2015-06-30 | Nxp, B.V. | Turbo decoder input reordering |
-
2002
- 2002-03-26 DE DE10214393A patent/DE10214393A1/de not_active Withdrawn
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1422830A3 (de) * | 2002-11-23 | 2005-05-25 | Samsung Electronics Co., Ltd. | Turbodekodereinganssteuerverfahren und Apparat |
US7505535B2 (en) | 2002-11-23 | 2009-03-17 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling turbo decoder input |
EP1528688A2 (de) * | 2003-08-28 | 2005-05-04 | Agence Spatiale Europeenne | Architektur für einen iterativen Dekodierer |
EP1528688A3 (de) * | 2003-08-28 | 2005-06-08 | Agence Spatiale Europeenne | Architektur für einen iterativen Dekodierer |
US7275203B2 (en) | 2003-08-28 | 2007-09-25 | Agence Spatiale Europeenne | Architecture for an iterative decoder |
FR2859332A1 (fr) * | 2003-08-28 | 2005-03-04 | Agence Spatiale Europeenne | Architecture pour un decodeur iteratif |
US7725798B2 (en) | 2004-02-27 | 2010-05-25 | Joanneum Research Forschungsgesellschaft Mbh | Method for recovering information from channel-coded data streams |
US9071279B2 (en) | 2004-05-18 | 2015-06-30 | Nxp, B.V. | Turbo decoder input reordering |
FR2890804A1 (fr) * | 2005-09-12 | 2007-03-16 | St Microelectronics Sa | Traitement de blocs dans un dispositif de decodage par blocs |
US7640482B2 (en) | 2005-09-12 | 2009-12-29 | Stmicroelectronics Sa | Block processing in a block decoding device |
EP2048790A1 (de) * | 2006-08-02 | 2009-04-15 | Fujitsu Limited | Empfängervorrichtung und dekodierungsverfahren dafür |
EP2048790A4 (de) * | 2006-08-02 | 2011-09-21 | Fujitsu Ltd | Empfängervorrichtung und dekodierungsverfahren dafür |
US8464139B2 (en) | 2006-08-02 | 2013-06-11 | Fujitsu Limited | Receiving device and decoding method thereof |
WO2008077421A1 (en) * | 2006-12-22 | 2008-07-03 | Micronas Gmbh | Channel decoder with variable number of decoding iterations |
WO2012094179A1 (en) * | 2011-01-07 | 2012-07-12 | Marvell World Trade Ltd. | Low latency simd architecture for multiple iterative decoders arranged parallel |
CN103155420A (zh) * | 2011-01-07 | 2013-06-12 | 马维尔国际贸易有限公司 | 用于并联布置的多个迭代解码器的低延时simd架构 |
US8908814B2 (en) | 2011-01-07 | 2014-12-09 | Marvell World Trade Ltd. | Low latency SIMD architecture for iterative decoders |
CN103155420B (zh) * | 2011-01-07 | 2017-10-27 | 马维尔国际贸易有限公司 | 用于并联布置的多个迭代解码器的低延时simd架构 |
EP2819310A1 (de) * | 2013-06-26 | 2014-12-31 | Alcatel Lucent | Iterativer Fehlekorrekturdecodierer mit verketteten Dekodierblöcken und einem rückgekoppelten Dekodierblock |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19736625C1 (de) | Verfahren zur Datenübertragung auf Übertragungskanälen in einem digitalen Übertragungssystem | |
DE19736676C1 (de) | Verfahren zur Paketübertragung mit einem ARQ-Protokoll auf Übertragungskanälen in einem digitalen Übertragungssystem | |
DE69736881T2 (de) | Parallel verketteter tail-biting-faltungskode und dekoder dafür | |
DE69838451T2 (de) | Verfahren und schaltung zur adaptiven kanalkodierung | |
DE102005010006B4 (de) | Verfahren und Vorrichtung zum Terminieren einer iterativen Turbo-Dekodierung | |
DE19736626C1 (de) | Verfahren zur Datenübertragung in einem digitalen Übertragungssystem bei paketvermitteltem Dienst | |
WO2003071689A2 (de) | Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler | |
DE112004002008B4 (de) | Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme | |
DE60211413T2 (de) | Verfahren und Vorrichtung zur Optimierung der Größe von codierten Datenblöcken | |
DE60111974T2 (de) | Abbruchkriterium für einen Turbodekoder | |
DE10214393A1 (de) | Verfahren zur iterativen Decodierung von verketteten Codes | |
DE10310812B4 (de) | Dekodiervorrichtung, Trellis-Prozessor und Verfahren | |
DE19934646C2 (de) | Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes | |
EP1029404B1 (de) | Verfahren und einrichtung zur datenübertragung in einem digitalen übertragungssystem mit arq | |
He et al. | On the application of turbo codes to the robust transmission of compressed images | |
DE60209196T2 (de) | Verfahren und Vorrichtung zur Optimierung, unter Leistungsgebundenheiten, der Grösse von kodierten Datenblöcken | |
DE19725275C2 (de) | Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen | |
DE102015205290B4 (de) | Verfahren zur Übertragung von binären Daten über einen Kanal, insbesondere über einen optischen Freiraum-Datenübertragungskanal | |
DE19520987A1 (de) | Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes | |
WO2007098814A1 (de) | Codierung und decodierung mit trellis-codierter modulation | |
DE102014216143B4 (de) | Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten | |
WO1998052362A2 (de) | Kanalcodierungsverfahren | |
DE60026109T2 (de) | Kombinierte Kanal - und Entropiedekodierung | |
DE60224862T2 (de) | Ver- und Entschachtellungsapparat und Verfahren | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: VOGT, JOERG, PROF. DR., 01277 DRESDEN, DE |
|
8139 | Disposal/non-payment of the annual fee |