DE69732153T2 - Verfahren und Vorrichtung zur Dekodierung von Blockcodes - Google Patents

Verfahren und Vorrichtung zur Dekodierung von Blockcodes Download PDF

Info

Publication number
DE69732153T2
DE69732153T2 DE69732153T DE69732153T DE69732153T2 DE 69732153 T2 DE69732153 T2 DE 69732153T2 DE 69732153 T DE69732153 T DE 69732153T DE 69732153 T DE69732153 T DE 69732153T DE 69732153 T2 DE69732153 T2 DE 69732153T2
Authority
DE
Germany
Prior art keywords
vector
permutation
reliability
generator matrix
received
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69732153T
Other languages
English (en)
Other versions
DE69732153D1 (de
Inventor
Amer A. Kirkland Hassah
Ali S. Apex Khayrallah
Harro Osthoff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson Inc
Original Assignee
Ericsson Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Inc filed Critical Ericsson Inc
Publication of DE69732153D1 publication Critical patent/DE69732153D1/de
Application granted granted Critical
Publication of DE69732153T2 publication Critical patent/DE69732153T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3944Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes for block codes, especially trellis or lattice decoding thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits

Description

  • HINTERGRUND DER ERFINDUNG
  • Technisches Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf die Dekodierung von digitalen Daten, die über einen Kommunikationskanal übertragen werden, und insbesondere auf einen Decoder, der verrauschte Sektionen eines empfangenen Signals (die potenziell eine Häufung von Fehlern inkludieren) erfasst, und dann die Codesymbole des empfangenen verrauschten Signals permutiert, um die Häufung von Fehlern vor Durchführung von entweder sequenzieller Dekodierung oder einer anderen suboptimalen Dekodierungstechnik zu zerstreuen.
  • Beschreibung des Standes der Technik
  • Es existieren viele Anwendungen, wo große Volumina digitaler Daten in einer im wesentlichen fehlerfreien Art und Weise übertragen und empfangen werden müssen. In Telekommunikationssystemen ist es insbesondere zwingend, dass der Empfang von digitalen Daten so zuverlässig wie möglich bewerkstelligt wird. Zuverlässige Kommunikation von digitalen Daten ist jedoch schwierig, da die Kommunikationskanäle (inkludierend Funkfrequenz, Faseroptik, Koaxialkabel und verdrillter Kupferdraht), die für Datenübertragung genutzt werden, von fehlereinführenden Faktoren heimgesucht werden. Z. B. können derartige Fehler transienten Bedingungen in dem Kanal (wie Rauschen oder Mehrfachpfadschwund) zuschreibbar sein. Der Einfluss derartiger Faktoren führt zu Fällen, wo die digitalen Daten nicht richtig übertragen werden oder nicht zuverlässig empfangen werden können.
  • Der Überwindung dieses Problems und Verringerung der Zahl von Fehlern, die es nach sich zieht, wenn Daten übertragen werden, wurde beträchtliche Beachtung geschenkt. Eine Option involviert Erhöhung von Senderleistung. Dies ist jedoch typischerweise wegen Begrenzungen bezüglich Senderelektronik, Regulierungen in Spitzenleistungsübertragung und dem hinzugefügten Aufwand, der bei Erhöhung von Leistungspegeln involviert ist, nicht praktisch. Eine alternative Option zum Bekämpfen von Rauschen in dem Kommunikationskanal ist, Redundanz in der übertragenen Nachricht einzuführen, die in dem Empfänger verwendet wird, eingeführte Fehler zu korrigieren. Derartige Redundanz wird typischerweise durch die Verwendung von Fehlersteuerungskodierung (Kanalcodes) implementiert.
  • Die Fehler, die während der Übertragung von Daten über einen Kommunikationskanal typischerweise auftreten, können allgemein als einer von zwei Typen klassifiziert werden. Der erste Typ, der als ein "zufälliger" Fehler bezeichnet wird, tritt auf, wenn die fehlerbehafteten Symbole über das Codewort ausgebreitet sind. Der zweite Typ, der als ein "Häufungs"-Fehler bezeichnet wird, tritt auf, wenn Cluster (Anhäufungen) von Symbolen innerhalb eines Codewortes fehlerhaft sind. Die leistungsfähigsten Fehlersteuerkodiertechniken sind jene, die ausgelegt sind, zufällige Fehler an Stelle von häufungsartigen Fehlern zu erfassen und zu korrigieren, obwohl einige derartige Techniken die Fähigkeit zum Korrigieren kurzer Häufungsfehler haben. Es wäre ein Vorteil, falls leistungsfähige Zufallsfehlersteuerkodiertechniken verwendet werden könnten, um effektive Fehlererfassung und Korrektur ebenso für Fälle von Häufungsfehlern vorzusehen.
  • Es existieren Dekodierungsalgorithmen, deren Berechnungskomplexität mit Empfangssignalqualität variiert. D. h. der Dekodierungsalgorithmus sucht ausführlicher nach dem korrekten übertragenen Signal, wenn das empfangene Signal schwach ist. Ein Problem, auf das man mit derartigen Dekodierungsalgorithmen trifft, besteht darin, dass sie nicht verwendet werden können, wenn die Coderate, die für Übertragung über den Kanal benötigt wird, die Abgrenzungsrate für diesen Kanal überschreitet. Ein anderes Problem besteht darin, dass derartige Dekodierungsalgorithmen ineffektiv sind, sogar für Coderaten unterhalb der Abgrenzungsrate, wenn das empfangene Signal sehr verrauscht ist. Der Grund dafür besteht darin, dass der Decoder die Fähigkeit hat, in Fällen, wenn die aktuelle Schätzung entlang eines Dekodierungstrellis als unzuverlässig erachtet wird, zurück zu verfolgen, und es entsprechend für eine besonders verrauschte Sektion eine lange Zeit braucht, bevor der Rückverfolgungsprozess befriedigend abgeschlossen ist und eine Schätzung des übertragenen Signals ausgegeben ist. Bei Durchführung dieser Rückverfolgungsverarbeitungsoperation kann jedoch der Decoder seinen Speicher und/oder Verarbeitungsressourcen erschöpfen, bevor eine befriedigende Feststellung erreicht wird, und kann somit stecken bleiben und versagen, eine Übertragungssignalausgabeschätzung zu erzeugen. Es würde von Vorteil sein, falls ein Dekodierungsalgorithmus variabler Berechnungskomplexität effizient implementiert werden könnte, um vorzugsweise in Verbindung mit den leistungsfähigsten verfügbaren Zufallsfehlersteuerkodiertechniken Fälle von häufungsartigen Fehlern innerhalb von Datenkommunikationen, die über verrauschte Kommunikationskanäle übertragen werden, zu handhaben.
  • Ein Artikel von Zogakis et al mit dem Titel "Impulse Noise Mitigation Strategies for Multicarrier Modulation", IEEE proceedings of the international conference on communications 93, Genf, 23. Mai 1993, Vol. 2, Seiten 784 bis 788 beschreibt ein Verfahren zum Durchführen von Bestimmungen in Bezug auf einzelne Töne eines QAM-Signals und dann Eliminieren von Symbolen, die zu viele unzuverlässige Töne inkludieren. Reed-Salomon-Symbole, die als unzuverlässig markiert sind, werden als Löschungen für Dekodierung behandelt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Erfassen von Clustern von geschätzten Codesymbolen geringer Zuverlässigkeit innerhalb eines empfangenen Vektors r vorgesehen, gekennzeichnet durch die Schritte:
    Generieren eines Zuverlässigkeitsvektors s inkludierend Zuverlässigkeitswerte für die geschätzten Codesymbole innerhalb des empfangenen Vektors r;
    Partitionieren des Zuverlässigkeitsvektors s in Regionen, wobei jede Region Zuverlässigkeitswerte für eine Vielzahl von Symbolen inkludiert; und
    für jede Region
    Vergleichen der Zuverlässigkeitswerte mit einem ersten Schwellwert (τ1);
    Bestimmen eines Prozentsatzes von Codesymbolen, die innerhalb dieser Region enthalten sind, mit Zuverlässigkeitswerten unter dem ersten Schwellwert (τ1);
    Identifizieren des Abschnitts des empfangenen Vektors r entsprechend dieser Region als einen Cluster von Codesymbolen geringer Zuverlässigkeit darin aufweisend, falls der bestimmte Prozentsatz einen zweiten Schwellwert (τ2) überschreitet.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ein vollständigeres Verständnis des Verfahrens der vorliegenden Erfindung kann durch Verweis auf die folgende detaillierte Beschreibung erlangt werden, wenn in Verbindung mit den begleitenden Zeichnungen aufgenommen, wobei:
  • 1 ein Funktionsblockdiagramm eines Blockkodierungssystems ist;
  • 2 ein Flussdiagramm ist, das einen Prozess veranschaulicht, der durch das System von 1 beim Identifizieren von Clustern von Symbolen mit geringer Zuverlässigkeit gemäß der vorliegenden Erfindung implementiert wird; und
  • 3 ein Flussdiagramm ist, das einen Prozess veranschaulicht, der durch das System von 1 zum Dekodieren von Blockcodes implementiert wird.
  • DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
  • Es wird nun auf 1 verwiesen, worin ein Blockdiagramm eines Blockkodierungssystems 100 gezeigt wird.
  • Das System 100 inkludiert eine Übertragungsseite 102 und eine Empfangsseite 104. Auf der Übertragungsseite 102 inkludiert das System 100 einen (n, k) Linearblockkodierer 106, worin ein Block von "k" Informationssymbolen, die auf Leitung 108 von einer Informationsquelle 110 empfangen werden, kodiert wird, um auf Leitung 112 ein Codewort von "n" Codesymbolen in Länge auszugeben (wobei n > k ist). Ein Beispiel eines derartigen Kodierers 106 ist ein M-stufiger Block-Reed-Salomon-Kodierer. Jedes Codewort inkludiert m Prüfsymbole (wobei m = n – k ist) unter den n Codesymbolen, wobei die Prüfsymbole in einer späteren Erfassung (und vielleicht Korrektur) einer Zahl t von Kanalfehlern, die in den (n, k) Code eingeführt werden, von Nutzen sind, wobei t von dem bestimmten Code abhängt, der verwendet wird.
  • Die Informationssymbole (d1, d2, d3, ..., dk) in jedem Block, der von der Informationsquelle 110 empfangen wird, umfassen einen k-dimensionalen Informationsvektor d. Der (n, k) lineare Blockcode wird durch eine Generatormatrix G realisiert: G = [g1, g2, ..., gn] (1)wobei: gi, für i = 1 bis n, der i-te Spaltenvektor von Länge k ist.
  • Ähnlich umfassen die Codesymbole (c1, c2, c3, ..., cn) in jedem ausgegebenen Codewort einen n-dimensionalen Codewortvektor c. Der Informationsvektor d wird mit der Generatormatrix G multipliziert, um den Ausgangscodevektor c wie folgt zu erzeugen: c = dG = (c1, c2, ..., cn) (2)
  • Der kodierte Ausgangsvektor c wird dann durch einen Modulator 114 für eine Übertragung über einen Kommunikationskanal 116 moduliert. Ein Beispiel eines derartigen Modulators 114 ist ein beliebiger bekannter Modulator mit einer M-stufigen Signalkonstellation (wie etwa Quadraturamplitudenmodulation (QAM, quadrature amplitude modulation) oder Phasenumtastung (PSK, phase shift keying)).
  • Der Kommunikationskanal 116, über den der modulierte kodierte Ausgangsvektor c übertragen wird, kann eine Zahl von zufälligen und/oder Häufungsfehlern in den inkludierten Codesymbolen ci für i = 1 bis n einführen. Das Ergebnis dieses Effektes sind empfangene Codesymbole (r1, r2, r3, ..., rn), umfassend einen n-dimensionalen kodierten Empfangsvektor r. Auf der Empfangsseite 104 inkludiert das System 100 einen geeigneten Demodulator 118, der die auf Kommunikationskanal 116 übertragene Kommunikation demoduliert und auf Leitung 120 Schätzungen von Codesymbolen (r1, r2, r3, ..., rn) für den Empfangsvektor r ausgibt. Der Demodulator 118 gibt ferner eine weiche Symbolinformationsvektorausgabe s = (s1, s2, s3, ..., sn) auf Leitung 124 aus, wobei si einen Zuverlässigkeitswert für das entsprechende geschätzte Codesymbol ri für i = 1 bis n umfasst. Die Zuverlässigkeitswerte zeigen den Grad von Vertrauen ausgedrückt durch den Demodulator 118 in seiner Schätzung eines bestimmten empfangenen und demodulierten Codesymbols ri an. Somit zeigt ein kleinerer Zuverlässigkeitswert si eine höhere Wahrscheinlichkeit dafür an, dass das entsprechende Codesymbol ri nicht korrekt geschätzt wird. Demodulatoren, wie der oben beschriebene, die Codesymbolschätzungen ri und Zuverlässigkeitswerte si erzeugen, sind in der Technik gut bekannt, und werden somit nicht weiter beschrieben. Beispiele derartiger Demodulatoren inkludieren: einen Maximalhinterwahrscheinlichkeits-(MAP, maximal aposterior probability)Demodulator oder einen Viterbi-Algorithmus-(SOVA, soft output Viterbi algorithm)Demodulator/Decoder weicher Ausgabe.
  • Eine Verarbeitungseinheit weicher Information 126 empfängt die weiche Symbolinformationsvektorausgabe s = (s1, s2, s3, ..., sn) auf Leitung 124. Die inkludierten Zuverlässigkeitswerte si für den Vektor s, die den Grad des Demodulators an Vertrauen in seine Schätzung eines bestimmten empfangenen und demodulierten Codesymbols ri anzeigen, werden verarbeitet, um Cluster von Codesymbolen mit geringer Zuverlässigkeit zu identifizieren und zu erfassen.
  • In Übereinstimmung mit diesem Prozess der vorliegenden Erfindung (siehe 2) wird der Vektor s in L zusammenhängende Regionen partitioniert (Schritt 200), wobei jede Region N Zuverlässigkeitswerte si inkludiert:
    (s1, .... sN) (sN+1, ..., s2N) ... (s(L–1)N+1, ..., sn).
  • L und N werden so gewählt, um LN ≤ n < (L + 1)N zu erfüllen. Als Nächstes wird für jede der L Regionen jeder der Zuverlässigkeitswerte si in dieser ausgewählten Region mit einem Schwellwert τ1 verglichen (Schritt 202). Es wird dann eine Bestimmung (Schritt 204) des Prozentsatzes von Codesymbolen durchgeführt, die innerhalb dieser Region mit Zuverlässigkeitswerten unter dem Schwellwert τ1 enthalten sind. Falls dieser bestimmte Prozentsatz eine Prozentsatzschwelle τ2 überschreitet (Schritt 206), wird die Region als ein Cluster geringer Zuverlässigkeit enthaltend identifiziert (Fluss 208). Anderenfalls (Fluss 210) wird die Region als ein zuverlässiger Cluster identifiziert. Reagierend auf die Identifikationen von den Flüssen 208 von Clustern geringer Zuverlässigkeit wird in Schritt 212 eine Permutationsfunktion f bestimmt, und die Verarbeitungseinheit 126 generiert ein Permutationssignal auf Leitung 128 und gibt es aus (Schritt 214).
  • Es wird nun eine Permutation eines Vektors v zu einem Vektor v' betrachtet, derart, dass die Information, die in einer gewissen Stelle i in Vektor v enthalten ist, nun eine neue Stelle j in Vektor v' belegt, wobei j = f(i) ist und f die Permutationsfunktion umfasst. Die Permutationsfunktion f könnte eine mathematische Verwürfelungs- oder Streuungsoperation umfassen. Angenommen z. B., dass W von den L Regionen von Vektor v als unzuverlässig identifiziert sind. Zur Vereinfachung unterscheiden wir nicht zwischen zuverlässigen und unzuverlässigen Symbolen innerhalb eines unzuverlässigen Clusters. Die Zahl w von Symbolen, die zu streuen sind, ist WN, falls der letzte Cluster zuverlässig ist, und ist gleich (W – 1)N + n – (L – 1)N, falls der letzte Cluster unzuverlässig ist. In diesem Punkt kann es zweckdienlicher sein, die Indizes von Symbolen an Stelle der Symbole selbst zu bearbeiten. Ein Weg einer Streuung der w Indizes besteht darin, eine periodische Positionszuweisung mit einer Periode gleich dem ganzzahligen Teil von n/w zu verwenden. Ein anderer Weg besteht darin, ein pseudozufälliges w aus n Positionszuweisung heraus zu verwenden. In jedem Fall werden die w Indizes zuerst auf neue Positionen in Übereinstimmung mit der Streuungszuweisung innerhalb des Vektors v' abgebildet. Als Nächstes werden die verbleibenden n – w Indizes in Reihenfolge auf die nicht gefüllten Positionen abgebildet. Insgesamt definiert dies eine Permutation f aus den alten Indizes zu den neuen Indizes innerhalb des Vektors v'.
  • Es wird nun z. B. ein Vektor s genommen, wobei n = 16, L = 4 und N = 4 sind. Die vier Regionen werden unter Verwendung der Schwellen τ1 und τ2 geprüft. Angenommen Region drei, die Indizes 9–12 umfasst, wird als unzuverlässig erachtet. Regionen eins, zwei und vier werden als zuverlässig erachtet. Unter Nutzung einer Pseudozufallsabbildung werden die alten Indizes 9–12 neuen Indizes zwischen 1 und n zugewiesen. In diesem Beispiel wird angenommen, dass die Abbildung den alten Index 9 auf den neuen Index 2, den alten Index 10 auf den neuen Index 14, den alten Index 11 auf den neuen Index 9 und den alten Index 12 auf den neuen Index 7 abbildet. Die verbleibenden Indizes 1–8 und 13–16 für Regionen eins, zwei und vier werden nun in Reihenfolge den nicht belegten neuen Indizes zugewiesen. Insgesamt definiert dies eine Permutationsfunktion f, die sich durch das Folgende ergibt:
  • Figure 00090001
  • Eine Erweiterung dieses Permutationskonzeptes auf den empfangenen Vektor r realisiert einen permutierten empfangenen Vektor r' r' = (r'1, r'2,..., r'n) (3)wobei: r' j = ri, wo j = f(i);
    f die Permutationsfunktion ist;
    ri für i = 1 bis n die empfangenen Schätzungen der Codesymbole sind; und
    r'j für j = 1 bis n die permutierten Schätzungen der Codesymbole sind.
  • Wenn keine der L Regionen als unzuverlässig identifiziert ist, gibt es keine Notwendigkeit zu permutieren. Wenn umgekehrt alle Regionen L als unzuverlässig identifiziert sind, kann eine Permutation nicht hilfreich sein, und entsprechend kann es besser sein, den empfangenen Vektor r entsprechend dem Vektor s zu löschen. Ähnlich realisiert eine Erweiterung dieses Konzeptes auf die Generatormatrix G eine permutierte Generatormatrix G': G' = [g'1, g'2, ..., g'n] (4)wobei: g'j = gi, wo j = f(i);
    f die Permutationsfunktion ist;
    gi für i = 1 bis n der i-te Spaltenvektor von Länge k für G ist; und
    g'j für j = 1 bis n der j-te Spaltenvektor von Länge k für G' ist.
  • Es wird vermerkt, dass die permutierte Generatormatrix G' und die Generatormatrix G Realisierungen von äquivalenten Codes sind. Damit sind Codes mit der gleichen Gewichtungsverteilung und der gleichen Fehlerkorrekturfähigkeit gemeint. Es wird ferner vermerkt, dass falls die Permutationsfunktion f in Bezug auf sowohl den empfangenen Vektor r als auch die Generatormatrix G die gleiche ist, die permutierte Generatormatrix G' dann bei Dekodierung des permutierten empfangenen Vektors r' verwendet werden könnte.
  • Das System 100 inkludiert ferner ein Demodulationscodesymbol-Permutationselement 130, das mit dem Demodulator 118 durch Leitung 120 verbunden ist, um demodulierte Codesymbole für den empfangenen Vektor r zu empfangen, und mit der Verarbeitungseinheit 126 verbunden ist, um das Permutationssignal auf Leitung 128 zu empfangen. Reagierend auf Empfang des Permutationssignals von Verarbeitungseinheit 126 arbeitet das Demodulationscodesymbol-Permutationselement 130, um in Übereinstimmung mit einer gewissen Permutationsfunktion f die demodulierten Codesymbole des empfangenen Vektors r zu permutieren und einen permutierten empfangenen Vektor r' auf Leitung 134 auszugeben. Diese Operation streut vorteilhafter Weise die identifizierten Cluster geringer Zuverlässigkeit von Codesymbolen überall in einem gegebenen Codewort. Wenn das Permutationssignal durch das Demodulationscodesymbol-Permutationselement 130 nicht empfangen wird, werden jedoch die Codesymbole des empfangenen Vektors r stattdessen ohne Modifikation auch für eine Ausgabe auf Leitung 134 weitergegeben.
  • Ein entsprechendes Generatormatrix-Permutationselement 136 ist mit der Verarbeitungseinheit 126 verbunden, um das Permutationssignal auf Leitung 128 zu empfangen. Das Generatormatrix-Permutationselement 126 ist mit der Generatormatrix G vorprogrammiert, die benötigt wird, um den empfangenen Vektor r zu dekodieren. Reagierend auf Empfang des Permutationssignals von Verarbeitungseinheit 126 arbeitet das Generatormatrix-Permutationselement 126, um in Übereinstimmung mit der gewissen Permutationsfunktion f die Generatormatrix G zu permutieren und eine permutierte Generatormatrix G' auf Leitung 138 auszugeben. Eine Verwendung der gleichen gewissen Permutationsfunktion f durch das Generatormatrix-Permutationselement 136 stellt sicher, dass die permutierte Generatormatrix G' für anschließende Dekodierungsverarbeitung dem permutierten empfangenen Vektor r' entspricht, der durch das Demodulationssymbol-Permutationselement 130 ausgegeben wird. Wenn das Permutationssignal durch das Generatormatrix-Permutationselement 136 nicht empfangen wird, wird jedoch die Generatormatrix G stattdessen ohne Modifikation auf Leitung 138 ausgegeben.
  • In einer Ausführungsform wird die Permutationsfunktion f als eine Funktion des weichen Symbolinformationsvektors s in sowohl das Demodulationscodesymbol-Permutationselement 130 als auch das Generatormatrix-Permutationselement 136 vorausgewählt und vorprogrammiert. In einer alternativen Ausführungsform bestimmt die Verarbeitungseinheit 126 nicht nur, ob das Permutationssignal gesendet werden sollte, sondern bestimmt auch, welche aus einer Zahl von verfügbaren Permutationsfunktionen f durch das Demodulationscodesymbol-Permutationselement 130 und das Generatormatrix-Permutationselement 136 implementiert werden sollte. Diese Information, die die beste Permutationsfunktion identifiziert, wird dem Demodulationscodesymbol-Permutationselement 130 und dem Generatormatrix-Permutationselement 136 zusammen mit dem Permutationssignal selbst zugeführt.
  • Die Generatormatrix G oder die permutierte Generatormatrix G', ausgegeben durch das Generatormatrix-Permutationselement 136 auf Leitung 138 abhängig von dem in der Verarbeitungseinheit 126 generierten Permutationssignal wird dann durch einen Trellisgenerator 140 verarbeitet. Der Trellisgenerator 140 implementiert eine beliebige aus einer Zahl von bekannten Techniken zum Finden eines entsprechenden Trellis von einer gegebenen Generatormatrix. In Verbindung damit wird jedoch vermerkt, dass sich der Trellis, der durch den Trellisgenerator 140 für die Generatormatrix G erzeugt wird, von dem Trellis für die permutierte Generatormatrix G' unterscheidet.
  • Ein Decoder 142 empfängt den empfangenen Vektor r oder permutierten empfangenen Vektor r', ausgegeben von dem Demodulationscodesymbol-Permutationselement 130 auf Leitung 134 abhängig von dem in der Verarbeitungseinheit 126 generierten Permutationssignal. Der Decoder 142 implementiert einen bestimmten sequenziellen Dekodierungsalgorithmus, oder einen anderen suboptimalen Dekodierungsalgorithmus, ausgewählt aus jenen, die einem Durchschnittsfachmann bekannt sind, und dekodiert unter Nutzung des Trellis, der durch den Trellisgenerator 140 aus der entsprechenden Generatormatrix G oder der permutierten Generatormatrix G' erzeugt wird, jeweils den empfangenen Vektor r oder permutierten empfangenen Vektor r', um den resultierenden Informationsvektor d auf Leitung 144 auszugeben. Wenn die Zuverlässigkeit der Codesymbole nicht strittig ist, wird entsprechend der empfangene Vektor r zu dem Decoder 142 für eine Verarbeitung angesichts des Trellis weitergegeben, der durch den Trellisgenerator 140 aus der Generatormatrix G erzeugt wird. Wenn umgekehrt die Verarbeitungseinheit weicher Information 126 ein Cluster von Codesymbolen geringer Zuverlässigkeit erfasst und das Permutationssignal auf Leitung 128 ausgibt, wird der permutierte empfangene Vektor r' für eine Verarbeitung durch den Decoder 142 unter Verwendung des Trellis ausgegeben, der durch den Trellisgenerator 140 aus der permutierten Generatormatrix G' erzeugt wird. Der Effekt der Permutation des empfangenen Vektors r ist, den identifizierten Cluster von Symbolen geringer Zuverlässigkeit überall in einem gegebenen Codewort zu streuen und die Wahrscheinlichkeit des Auftretens von entweder Verarbeitungsverzögerungen oder, gravierender, eines Decoderfehlers wegen Decoderrückverfolgung zum minimieren. Entsprechende Permutation der Generatormatrix G stellt sicher, dass der richtige Trellis (erhalten aus der permutierten Generatormatrix G') für eine Verwendung durch den Decoder 142 bei Verarbeitung des permutierten empfangenen Vektors r' verfügbar gemacht wird.
  • Die Verarbeitungseinheit weicher Information 126, das Demodulationscodesymbol-Permutationselement 130, das Generatormatrix-Permutationselement 136, der Trellisgenerator 140 und der Decoder 142 werden alle vorzugsweise als ein spezialisierter digitaler Signalprozessor (DSP) oder in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert. Es wird natürlich verstanden, dass die Verarbeitungseinheit weicher Information 126, das Demodulationscodesymbol-Permutationselement 130, das Generatormatrix-Permutationselement 136, der Trellisgenerator 140 und der Decoder 142 alternativ unter Verwendung diskreter Komponenten und vielleicht verteilter Verarbeitung implementiert werden können. In jedem Fall führen die Verarbeitungseinheit weicher Information 126, das Demodulationscodesymbol-Permutationselement 130, das Generatormatrix-Permutationselement 136, der Trellisgenerator 140 und der Decoder 142 jedes die zuvor beschriebenen funktionalen Operationen aus und implementieren sie.
  • Es wird nun auf 3 Bezug genommen, worin ein Flussdiagramm gezeigt wird, das einen Prozess veranschaulicht, der durch das System von 1 zum Dekodieren von Blockcode implementiert wird. In Schritt 300 wird ein empfangener Vektor r demoduliert, um Schätzungen von Codesymbolen (r1, r2, r3, ..., rn) für den empfangenen Vektor r zu generieren und einen Vektor weicher Symbolinformation s = (s1, s2, s3, ..., sn) auszugeben, wobei si einen Zuverlässigkeitswert für das entsprechende geschätzte Codesymbol ri umfasst. Als Nächstes wird in Schritt 302 der ausgegebene Vektor weicher Symbolinformation s in Übereinstimmung mit dem in 2 gezeigten Verfahren verarbeitet, um Cluster von Codesymbolen mit geringer Zuverlässigkeit zu identifizieren und zu erfassen. Falls derartige Cluster existieren, wie durch Entscheidungsschritt 304 bestimmt, werden die Codesymbolschätzungen für den empfangenen Vektor r in Schritt 306 in Übereinstimmung mit einer gewissen Permutationsfunktion f permutiert. Die Generatormatrix G, die benötigt wird, um den empfangenen Vektor r zu dekodieren, wird dann auch in Schritt 308 in Übereinstimmung mit der gleichen gewissen Permutationsfunktion f permutiert. Eine Verwendung der gleichen gewissen Permutationsfunktion f in Schritten 306 und 308 stellt sicher, dass die permutierte Generatormatrix G' für Dekodierungsverarbeitung dem permutierten empfangenen Vektor r' entspricht. In Fällen, wo Cluster von Codesymbolen mit geringer Zuverlässigkeit nicht erfasst werden, wie durch Entscheidungsschritt 304 bestimmt, werden die Codesymbolschätzungen für den empfangenen Vektor r in Schritt 310 nicht permutiert und die Generatormatrix G wird in Schritt 312 verfügbar gemacht. Als Nächstes wird in Schritt 314 ein Dekodierungstrellis aus der Generatormatrix G oder der permutierten Generatormatrix G' erzeugt, wie für die Erfassung von Clustern von Codesymbolen mit geringer Zuverlässigkeit angemessen. Der erzeugte Trellis wird dann in Schritt 316 verwendet, um den empfangenen Vektor r oder den permutierten empfangenen Vektor r' unter Verwendung eines bestimmten sequenziellen Dekodierungsalgorithmus oder eines anderen suboptimalen Dekodierungsalgorithmus zu dekodieren, um den resultierenden Informationsvektor d oder den permutierten resultierenden Informationsvektor d' zu generieren. Falls der permutierte resultierende Informationsvektor d' aus Dekodierung des permutierten empfangenen Vektors r' generiert wird, wie in Schritt 318 bestimmt, wird er in Schritt 320 ent-permutiert.
  • ZUSAMMENFASSUNG
  • Ein Verfahren zum Erfassen von Clustern von geschätzten Codesymbolen geringer Zuverlässigkeit innerhalb eines empfangenen Vektors r umfasst die Schritte zum Generieren eines Zuverlässigkeitsvektors s inkludierend Zuverlässigkeitswerte für die geschätzten Codesymbole innerhalb des empfangenen Vektors r und Aufteilung des Zuverlässigkeitsvektors s in mindestens eine Region. Für jede Region werden die Zuverlässigkeitswerte mit einem ersten Schwellwert verglichen. Es wird der Prozentsatz von Codesymbolen, enthalten die innerhalb dieser Region mit Zuverlässigkeitswerten unter dem ersten Schwellwert bestimmt. Das Verfahren bestimmt den Abschnitt des empfangenen Vektors r entsprechend dieser Region als einen Cluster von Codesymbolen geringer Zuverlässigkeit darin aufweisend, falls der bestimmte Prozentsatz einen zweiten Schwellwert überschreitet.

Claims (1)

  1. Ein Verfahren zum Erfassen von Clustern geschätzter Code-Symbole mit niedriger Zuverlässigkeit in einem empfangenen Vektor r, gekennzeichnet durch die Schritte: – Erzeugen eines Zuverlässigkeitsvektors s einschließlich Zuverlässigkeitswerten für die geschätzten Code-Symbole im empfangenen Vektor r; – Aufteilen des Zuverlässigkeitsvektors in Bereiche, wobei jeder Bereich Zuverlässigkeitswerte für eine Mehrzahl von Symbolen umfasst; und – für jeden Bereich, – Vergleichen der Zuverlässigkeitswerte mit einem ersten Schwellwert (τ1); – Bestimmen eines Prozentsatzes von in diesem Bereich enthaltenen Code-Symbolen mit Zuverlässigkeitswerten unterhalb des ersten Schwellwerts (τ1); – Identifizieren des Abschnitts des empfangenen Vektors r entsprechend diesem Bereich als einen Cluster mit Code-Symbolen mit niedriger Zuverlässigkeit darin aufweisend, falls der bestimmte Prozentsatz einen zweiten Schwellwert (τ2) überschreitet.
DE69732153T 1996-10-08 1997-10-07 Verfahren und Vorrichtung zur Dekodierung von Blockcodes Expired - Lifetime DE69732153T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/727,736 US5809043A (en) 1996-10-08 1996-10-08 Method and apparatus for decoding block codes
US727736 1996-10-08

Publications (2)

Publication Number Publication Date
DE69732153D1 DE69732153D1 (de) 2005-02-03
DE69732153T2 true DE69732153T2 (de) 2005-12-08

Family

ID=24923842

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69732153T Expired - Lifetime DE69732153T2 (de) 1996-10-08 1997-10-07 Verfahren und Vorrichtung zur Dekodierung von Blockcodes
DE69710746T Expired - Lifetime DE69710746T2 (de) 1996-10-08 1997-10-07 Verfahren und vorrichtung zur dekodierung von blockcodes

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69710746T Expired - Lifetime DE69710746T2 (de) 1996-10-08 1997-10-07 Verfahren und vorrichtung zur dekodierung von blockcodes

Country Status (11)

Country Link
US (1) US5809043A (de)
EP (2) EP0931382B1 (de)
JP (1) JP2001504285A (de)
KR (1) KR20000048937A (de)
CN (1) CN1240066A (de)
AU (1) AU729297B2 (de)
BR (1) BR9712217A (de)
CA (1) CA2267837A1 (de)
DE (2) DE69732153T2 (de)
TW (1) TW345782B (de)
WO (1) WO1998016015A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189123B1 (en) * 1997-03-26 2001-02-13 Telefonaktiebolaget Lm Ericsson Method and apparatus for communicating a block of digital information between a sending and a receiving station
US7747489B2 (en) * 2003-10-06 2010-06-29 New Market Solutions, Llc Computer-aided process for real purchasing power financial product
US8392302B2 (en) * 1999-03-31 2013-03-05 Task Management, Inc. Computer-aided process for inflation-immunized derivatives
CN1471761A (zh) * 2001-08-28 2004-01-28 连宇通信有限公司 基于子码伴随式译码的级联分组码的迭代译码方法
US7257170B2 (en) * 2002-08-21 2007-08-14 Texas Instruments Incorporated Channel norm-based ordering and whitened decoding for MIMO communication systems
US7031284B2 (en) * 2003-03-03 2006-04-18 Interdigital Technology Corporation Wireless communication method and apparatus for optimizing multi-user detection
CA2465332C (en) * 2003-05-05 2012-12-04 Ron Kerr Soft input decoding for linear codes
RU2447579C2 (ru) * 2010-01-21 2012-04-10 Открытое акционерное общество "Российский институт мощного радиостроения" Способ активного контроля рабочих частот
CN102123004A (zh) * 2010-06-04 2011-07-13 科立讯电子(深圳)有限公司 一种基于哈希算法的快速系统分组码译码方法
RU2490804C1 (ru) * 2012-07-03 2013-08-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Декодер с упорядоченной статистикой символов
US9104589B1 (en) * 2013-10-16 2015-08-11 L-3 Communications Corp. Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions
RU2562415C1 (ru) * 2014-08-22 2015-09-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Декодер произведения кодов размерности 3d с запросами
US10404284B1 (en) 2015-07-21 2019-09-03 L-3 Communications Corp. Parallel-to-parallel conversion and reordering of a block of data elements
US10129178B1 (en) 2015-12-02 2018-11-13 L-3 Communications Corp. Combining and processing as a whole portions of a ordered segment of data elements split between two communications channels
RU2721937C1 (ru) * 2020-01-31 2020-05-25 Валерий Владимирович Золотарев Способ декодирования помехоустойчивого кода
RU2756972C1 (ru) * 2020-08-07 2021-10-07 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный университет аэрокосмического приборостроения" Способ активного контроля рабочих частот без перерыва передачи информации

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8200207A (nl) * 1982-01-21 1983-08-16 Philips Nv Werkwijze met foutkorrektie voor het overdragen van blokken databits, een inrichting voor het uitvoeren van een dergelijke werkwijze, een dekodeur voor gebruik bij een dergelijke werkwijze, en een inrichting bevattende een dergelijke dekodeur.
US4489403A (en) * 1982-05-24 1984-12-18 International Business Machines Corporation Fault alignment control system and circuits
US4485471A (en) * 1982-06-01 1984-11-27 International Business Machines Corporation Method of memory reconfiguration for fault tolerant memory
US4506364A (en) * 1982-09-30 1985-03-19 International Business Machines Corporation Memory address permutation apparatus
US4534029A (en) * 1983-03-24 1985-08-06 International Business Machines Corporation Fault alignment control system and circuits
US4821268A (en) * 1987-10-26 1989-04-11 Cyclotomics, Inc. Soft decision Reed-Solomon decoder
US4835772A (en) * 1988-01-06 1989-05-30 Cyclotomics, Inc. Probabilistic fade forecasting
US5537423A (en) * 1991-08-21 1996-07-16 International Business Machines Corporation Modular multiple error correcting code system
US5537444A (en) * 1993-01-14 1996-07-16 At&T Corp. Extended list output and soft symbol output viterbi algorithms
US5457704A (en) * 1993-05-21 1995-10-10 At&T Ipm Corp. Post processing method and apparatus for symbol reliability generation

Also Published As

Publication number Publication date
DE69732153D1 (de) 2005-02-03
AU4976897A (en) 1998-05-05
TW345782B (en) 1998-11-21
BR9712217A (pt) 1999-08-31
AU729297B2 (en) 2001-02-01
DE69710746D1 (de) 2002-04-04
JP2001504285A (ja) 2001-03-27
US5809043A (en) 1998-09-15
EP0931382A1 (de) 1999-07-28
CN1240066A (zh) 1999-12-29
EP1168633B1 (de) 2004-12-29
EP1168633A3 (de) 2002-11-06
CA2267837A1 (en) 1998-04-16
KR20000048937A (ko) 2000-07-25
DE69710746T2 (de) 2002-10-17
EP0931382B1 (de) 2002-02-27
WO1998016015A1 (en) 1998-04-16
EP1168633A2 (de) 2002-01-02

Similar Documents

Publication Publication Date Title
DE69732153T2 (de) Verfahren und Vorrichtung zur Dekodierung von Blockcodes
DE69535458T2 (de) Verfahren und Anordnung zur Erkennung variabler Übertragungsraten
DE69723559T2 (de) Verfahren und vorrichtung zur detektion von kommunikationssignalen mit ungleichem fehlerschutz
DE69732652T2 (de) Übertragungsverfahren und -system mit adaptiver codierung auf basis von übertragungskanalcharakteristiken
DE60113053T2 (de) Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes
DE69530554T2 (de) Datenratenermittlung für eine Endstation
DE102007044488B4 (de) Empfangsverfahren, Empfangsvorrichtung und Programm
DE19540652C2 (de) Vorrichtung und Verfahren zum Dekodieren eines kohärenten, differenziell codierten, mehrstufig phasenumtastungsmodulierten (DEPSK) Signals
DE102006053960B4 (de) Verfahren zum Korrigieren eines Soft-Decision-Werts, Computerprogrammprodukt für das Gleiche und Empfangsvorrichtung für das Gleiche
DE10296698B4 (de) Verfahren und Vorrichtung zum Kodieren und Dekodieren von Daten mit unterschiedlichen Modulationsschemata und Kodierungen und einem ARQ-Protokoll
DE60309546T2 (de) Maximal-a-posteriori-Wahrscheinlichtkeitsdetektor
EP0700183B1 (de) Gewinnung bitspezifischer Zuverlässigkeitsinformationen in einem digitalen Übertragungssystem mit M-stufiger orthogonaler Modulation
EP0874472A2 (de) Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
DE69925852T2 (de) Übertragung mit nichtganzzahligen datenraten unter verwendung multiplexierter konstellationen
DE69831783T2 (de) Mehrstufige codierung mit zeitdiversity
DE69912628T2 (de) Kodierung/dekodierung von zusätzlichen symbolen in einem kommunikationssystem
EP1423935B1 (de) Verfahren zur anpassung der bitrate eines in einem kommunikationssystem zu übertragenden bitstroms und entsprechende kommunikationsvorrichtung
DE69726150T2 (de) Verfahren und vorrichtung zur verketteten kodierung von mobilfunksignalen
DE69733210T2 (de) Empfänger-Dekoderschaltung und dazugehörige Methode zur Dekodierung eines kanalcodierten Signals
DE69932001T2 (de) Faltungsdekodierung , Durchführungsverfahren und Anordnung
EP0664625A2 (de) Verfahren zur Prüfung der Qualität eines Übertragungskanals
WO2002033919A2 (de) Verfahren zur erzeugung von soft-bit-informationen aus gray-codierten signalen
DE19717546B4 (de) Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt
DE69629523T2 (de) Nachintegrationsspreizspektrumempfänger
EP1039705A2 (de) Verfahren, Empfangseinrichtung und Funkstation zum Detektieren eines Datensymbols

Legal Events

Date Code Title Description
8364 No opposition during term of opposition