DE60312923T2 - Soft-In Soft-Out Dekoder für Turbo-Trelliskodierte Modulation - Google Patents

Soft-In Soft-Out Dekoder für Turbo-Trelliskodierte Modulation Download PDF

Info

Publication number
DE60312923T2
DE60312923T2 DE2003612923 DE60312923T DE60312923T2 DE 60312923 T2 DE60312923 T2 DE 60312923T2 DE 2003612923 DE2003612923 DE 2003612923 DE 60312923 T DE60312923 T DE 60312923T DE 60312923 T2 DE60312923 T2 DE 60312923T2
Authority
DE
Germany
Prior art keywords
block
siso
alpha
metrics
symbol
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
DE2003612923
Other languages
English (en)
Other versions
DE60312923D1 (de
Inventor
Kelly B. Cameron
Ba-Zhong Shen
Hau Thien Tran
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
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
Priority claimed from US10/264,486 external-priority patent/US7093187B2/en
Priority claimed from US10/444,148 external-priority patent/US7107512B2/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE60312923D1 publication Critical patent/DE60312923D1/de
Application granted granted Critical
Publication of DE60312923T2 publication Critical patent/DE60312923T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • 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
    • H03M13/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/258Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM]
    • 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/27Coding, 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 using interleaving techniques
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2767Interleaver wherein the permutation pattern or a portion thereof is stored
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo 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/27Coding, 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 using interleaving techniques
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • H03M13/2785Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location
    • 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/29Coding, 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/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4123Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing the return to a predetermined state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • 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/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die Erfindung betrifft im Allgemeinen Kommunikationssysteme; sie betrifft insbesondere das Decodieren von codierten Signalen in solchen Kommunikationssystemen.
  • BESCHREIBUNG DES EINSCHLÄGIGEN STANDES DER TECHNIK
  • Datenkommunikationssysteme sind über viele Jahre hinweg beständig weiter entwickelt worden. Ein solcher Typ von Kommunikationssystem, der in neuerer Zeit von beträchtlichem Interesse war, ist ein Kommunikationssystem, das Turbo-Codes verwendet. Ein anderer Typ von Kommunikationssystem, der ebenfalls von Interesse war, ist ein Kommunikationssystem, das LDPC (Low Density Parity Check)-Code verwendet. Ein Hauptanliegen in diesen Bereichen der Entwicklung war der beständige Versuch, den Basisfehlerwert innerhalb eines Kommunikationssystems abzusenken. Das Idealziel bestand in dem Versuch, die Shannon-Grenze in einem Kommunikationskanal zu erreichen. Die Shannon-Grenze kann als die in einem Kommunikationskanal zu verwendende Datenrate mit einem bestimmten Signal-Rausch-Verhältnis (Signal to Noise Ratio; SNR) angesehen werden, die eine fehlerfreie Übertragung durch den Kommunikationskanal erzielt. Mit anderen Worten ist die Shannon-Grenze die theoretische Grenze der Kanalkapazität für eine gegebene Modulation und Coderate.
  • Von LDPC-Code wurde gezeigt, dass er eine ausgezeichnete Decodierleistungsfähigkeit zur Verfügung stellt, die sich in einigen Fällen an die Shannon-Grenze annähern kann. Beispielsweise wurde bei einigen LDPC-Decodern gezeigt, dass sie sich auf bis zu 0,3 dB (Dezibel) der theoretischen Shannon-Grenze nähern. Dieses Beispiel wurde zwar unter Verwendung eines irregulären LDPC-Codes mit einer Länge von einer Million erzielt, demonstriert aber dennoch die viel versprechende Anwendung von LDPC-Codes in Kommunikationssystemen.
  • Wenn beim Decodieren eines Empfangssignals Berechnungen durchgeführt werden, ist es für Decoder üblich, eine Bestimmung eines Größten (unter Verwendung einer max-Berechnung oder einer max-Operation) und/oder eines Kleinsten (unter Verwendung einer min-Berechnung oder einer min-Operation) durchzuführen, um einen größten oder kleinsten Wert aus einer Anzahl von Werten zu bestimmen. Diese Verarbeitung ist häufig bei der Durchführung von Berechnungen von Zustandsmetriken in Soft-In Soft-Out Funktionsblock (SISO)-Decodern üblich. Es werden beispielsweise mehrere Zustandsmetriken berechnet, und die kleinste und/oder größte Zustandsmetrik wird als die richtige Zustandsmetrik bestimmt. In Abhängigkeit von den Entscheidungskriterien kann die größte und/oder kleinste Zustandsmetrik als die "richtige" Zustandsmetrik bestimmt werden.
  • Wenn beim Decodieren eines Empfangssignals Berechnungen durchgeführt werden, ist es auch üblich, dass Decoder im natürlichen log (ln)-Bereich operieren, wenn sie verschiedene Berechnungen durchführen. Viele Turbo-Code-Decoder fallen in diese Kategorie, und ebenso fallen auch viele LDPC-Decoder in diese Kategorie. Das Operieren im natürlichen log (ln)-Bereich wandelt alle Multiplikationen in Additionen, und Divisionen in Subtraktionen um, und eliminiert Exponenten vollständig, ohne die Leistungsfähigkeit im Hinblick auf die Bitfehlerrate (BER) zu beeinträchtigen. Obgleich dieser Lösungsansatz einen Weg für einige der schwierigen Verarbeitungsschritte darstellt, die um in solchen Kommunikationssystemen erforderlich sind, um empfangene Signale zu decodieren, konzentrieren sie sich nur auf die Befassung mit einem Aspekt der Schwierigkeiten bei der Decodierung.
  • Eine weitere Herausforderung der Verarbeitung bei der Decodierung solcher Signale, die in Kommunikationssystemen empfangen werden, ist die Verwaltung mit den Daten selbst. Die Speicherverwaltung, die für die Durchführung einer ordnungsgemäßen Decodierung solcher Signale erforderlich ist, kann ebenfalls sehr kompliziert sein. Häufig ist es in Systemen des Standes der Technik die Verwaltung der Daten bei der Decodierung von empfangenen Daten, die einen der größten Engpässe in dem System darstellt.
  • 1 ist ein Diagramm zur Veranschaulichung eines Lösungsansatzes im Stand der Technik für die Verarbeitung eines empfangenen Blocks. Anfänglich werden Vorwärtsmetriken (Alphas) sequentiell für jedes Symbol in dem empfangenen Block in einer Richtung berechnet. Daraufhin werden Rückwärtsmetriken (betas) nacheinan der für jedes Symbol in dem empfangenen Block in der entgegengesetzten Richtung berechnet. Nach der Bestimmung der Alphas und der Betas für jedes Symbol in dem Block können daraus dann extrinsische (ext) Informationen berechnet werden, um die endgültige Decodierung der empfangenen Symbole in dem Block fortzusetzen. Es gibt eine Anzahl von offensichtlichen Nachteilen dieses Lösungsansatzes des Standes der Technik für die Empfangsblockverarbeitung. Einige dieser Nachteile beinhalten den Umstand, dass eine große Chipfläche ("real estate") erforderlich ist, um den extensiven Speicher zu unterstützen, der bereitgestellt werden muss, um einen solchen Lösungsansatz zu ermöglichen. In vielen Kommunikationssystems, einschließlich denen, die TCM verwenden, gibt es eine Anzahl von Zwischenberechnungen, die durchgeführt werden müssen (z.B. die Alpha- und Beta-Berechnungen, die den ext-Berechnungen voraus gehen), und diese Zwischenwerte müssen bei dem Lösungsansatz des Standes der Technik für eine nachfolgende Verwendung gespeichert werden.
  • Ein weiterer Nachteil, der inhärent mit dem Nachteil der Erfordernis einer großen Speichermenge zusammen hängt, besteht darin, dass es eine große Anzahl von Lese-/Schreib (r/w)-Operationen gibt, die durchgeführt werden müssen, um diese Verarbeitung zu unterstützen. Die hierbei durchgeführte Speicherverwaltung ist typischerweise ziemlich überlastet. Darüber hinaus kann die Berechnung sehr langsam sein, da bei diesem Lösungsansatz des Standes der Technik eine große Anzahl von Zwischenberechnungen durchgeführt werden muss, um das Decodieren von Daten zu unterstützen. Es wird auch angemerkt, dass die Implementierung dieses Standes der Technik bei einer kontinuierlichen Zunahme der Blockgröße immer schwieriger wird. Es ist klar, dass eine zunehmende Blockgröße mit einer entsprechenden Skalierung des erforderlichen Speichers, der Lese-/Schreib-Operationen, und des benötigten Speichers einhergeht.
  • Es gibt einen Bedarf auf diesem Fachgebiet, einen viel effizienteren Lösungsansatz für die Verarbeitung eines empfangenen Datenblocks zur Verfügung zu stellen, der sich mit allen der vorstehend beschriebenen Mängeln in dem früheren Lösungsansatz der sequentiellen Verarbeitung befasst, um die erforderlichen Zwischenberechnungen und endgültigen Berechnungen zu erzeugen, die für das Decodieren des empfangenen Blocks benötigt werden. Darüber hinaus wäre es wünschenswert, wenn ein solcher Entwurf skalierbar wäre und in der Lage wäre, größere und/oder kleinere Blöcke einzubeziehen, die in verschiedenen Typen von Kommunikationssystemen implementiert werden.
  • Die EP 1 156 588 A1 betrifft ein Verfahren und eine Vorrichtung für die Maximum-a-posteriori-Wahrscheinlichkeits-Decodierung zum Berechnen einer Rückwärtswahrscheinlichkeit und daraufhin zum Berechnen einer Vorwärtswahrscheinlichkeit bei der Maximum-a-posteriori-Wahrscheinlichkeits-Decodierung, wodurch die verwendete Speichermenge verringert wird.
  • Die WO 02/23739 A2 beschreibt ein Verfahren und eine Vorrichtung zum Verringern der Speicheranforderungen und zum Erhöhen der Geschwindigkeit des Decodierens von Turbo-codierten Daten in einem Map-Decoder. Turbo-codierte Daten werden durch das Berechnen von Alpha-Werten and das Speichern von Prüfpunkt-Alpha-Werten auf einem Stapel decodiert. Die Prüfpunkte werden dann verwendet, um die Alpha-Werte erneut zu erzeugen, die dann bei Bedarf in Berechnungen verwendet werden. Dadurch, dass nur eine Untermenge der Alpha-Werte gespeichert wird, wird Speicher für ihre Aufnahme eingespart.
  • Erfindungsgemäß werden ein Soft-in-Soft-Out-Funktionsblock gemäß der Definition durch den nebengeordneten Anspruch 1 und ein Verfahren zur Verarbeitung eines empfangenen Blocks gemäß der Definition durch den nebengeordneten Anspruch 13 zur Verfügung gestellt.
  • Weitere vorteilhafte Merkmale sind in den abhängigen Unteransprüchen definiert.
  • Verschiedene Aspekte der Erfindung sind in jeglicher Anzahl von Vorrichtungen zu finden, die eine Verarbeitung und eine Decodierung eines empfangenen Blocks von Daten durchführen. Bestimmte Aspekte der Erfindung sind auch in den verschiedenen Funktionskomponenten eines solchen Decoders zu finden, der das Decodieren des Blocks durchführt. Ein Funktionskomponentenaspekt der Erfindung ist in einem Soft-In-Soft-out-Funktionsblock (SISO) zu finden, der operiert, um weiche Symbolentscheidungen (die selbst wieder das Berechnen von einer oder mehreren weiche Bitentscheidungen umfassen können) für einen Block zu berechnen, der codierte, in einer Mehrzahl von Unterblöcken angeordnete Symbole enthält. Der SISO weist einen ersten Alpha/Beta-Metrikberechnungs-Funktionsblock und einen zweiten Alpha/Beta-Metrikberechnungs-Funktionsblock auf.
  • Die Charakteristiken des Signals, das unter Verwendung der Erfindung decodiert wird, können variabler Natur sein. Diese Variabilität kann in Form eines Typs mit variabler Coderate oder einer variablen Modulation auftreten, der weiterhin dadurch variieren kann, dass er einen variablen Konstellationstyp und ein variables Mapping der dabei verwendeten Konstellationen besitzt. Gemäß der Erfindung kann die Gesamtheit dieser Variabilität auf einer Symbol-um-Symbol-Basis in dem zu decodierenden Signal auftreten. Eine Weise zum Einbeziehen dieser Variabilität ist es, wenn die Mehrzahl von codierten Symbolen, die gemäß einer Ratensteuerungssequenz codiert werden sollen, bei der Mehrzahl von Ratensteuerungen in einer Zeitperiode angeordnet ist. Eine oder mehr Ratensteuerungen der Mehrzahl von Ratensteuerungen können eine Modulation umfassen, die eine Konstellation mit einem Mapping beinhaltet. Die Variabilität kann wiederum auf einer Symbol-um-Symbol-Basis auftreten, so dass ein erste Ratensteuerung der Mehrzahl von Ratensteuerungen eine erste Modulation umfasst, die eine erste Konstellation mit einem ersten Mapping umfasst, und dass eine zweite Ratensteuerung der Mehrzahl von Ratensteuerungen eine zweite Modulation umfasst, die eine zweite Konstellation mit einem zweiten Mapping umfasst.
  • KURZE BESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNG
  • 1 ist ein Diagramm zur Veranschaulichung eines Lösungsansatzes für die Verarbeitung eines empfangenen Blocks im Stand der Technik.
  • 2 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten Satelliten-Kommunikationssystems.
  • 3 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten High Definition Television (HDTV)-Kommunikationssystems.
  • 4A und 4B sind Systemschaubilder zur Veranschaulichung von Ausführungsformen von erfindungsgemäß aufgebauten, unidirektionalen zellulären Kommunikationssystemen.
  • 4C ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen zellulären Kommunikationssystems.
  • 5A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Mikrowellen-Kommunikationssystems.
  • 5B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Mikrowellen-Kommunikationssystems.
  • 6A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Punkt-zu-Punkt-Funkkommunikationssystems.
  • 6B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Punkt-zu-Punkt-Funkkommunikationssystems.
  • 7A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Kommunikationssystems.
  • 7B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Kommunikationssystems.
  • 7C ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, One-to-Many-Kommunikationssystems.
  • 8 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten faseroptischen Kommunikationssystems.
  • 9 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten Satellitenempfänger-Settop-Box-Systems.
  • 10 ist ein Diagramm zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten TTCM (Turbo Trellis Coded Modulation)-Decoderentwurfs.
  • 11 ist ein Diagramm zur Veranschaulichung einer erfindungsgemäß durchgeführten In-phase and Quadrature (I, Q)-Signalextrahierung.
  • 12 ist ein Diagramm zur Veranschaulichung einer alternativen Ausführungsform eines erfindungsgemäß aufgebauten TTCM-Decoderentwurfs, der einen einzelnen SISO (Soft-In-Soft-Out-Funktionsblock) mehrfach durchläuft ('recycle').
  • 13 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der erfindungsgemäß durchgeführten Verarbeitung eines empfangenen Blocks.
  • 14 ist ein Diagramm zur Veranschaulichung einer Ausführungsform davon, wie Symbole erfindungsgemäß für die Metrikberechnung weiter geleitet werden können (unter Verwendung einer 8-Symbol-Ausführungsform gezeigt).
  • 15A ist ein Diagramm zur Veranschaulichung einer Ausführungsform der Reihenfolge der Ausgabe aus einem Metrikgenerator gemäß der Erfindung (bei der es sich um die gleiche Reihenfolge wie bei der Ausgabe aus einem Interleaver/Deinterleaver gemäß der Erfindung handelt).
  • 15B ist ein Diagramm zur Veranschaulichung einer Ausführungsform der Reihenfolge der Ausgabe aus einem SISO (Soft-In-Soft-Out-Funktionsblock) gemäß der Erfindung.
  • 16 ist ein Diagramm zur Veranschaulichung einer Ausführungsform des endgültigen Decodierungsausgangs, der gemäß der Erfindung zum Treffen von harten Entscheidungen bereitgestellt werden kann.
  • 17 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der letzten Iteration der SISO-Verarbeitung gemäß der Erfindung (in einer Ausführungsform unter Verwendung eines mehrfach durchlaufenen SISO gezeigt).
  • 18 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer SISO-Empfangsblock-Verarbeitungsfunktionalität, die gemäß der Erfindung unterstützt wird.
  • 19 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer SISO-Funktionsblockanordnung gemäß der Erfindung.
  • 20 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer Adressenerzeugung für einen Interleaver/Deinterleaver-Funktionsblock gemäß der Erfindung.
  • 21 ist ein Diagramm zur Veranschaulichung einer Ausführungsform eines Bitverschachtelungs-/-entschachtelungs (Interleave/De-interleave)-Funktionsblocks gemäß der Erfindung.
  • 22 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer Zählerverwendung in der Blockverarbeitung gemäß der Erfindung (in einer 128-Symbol-Unterblock-Ausführungsform).
  • 23 ist ein Ablaufdiagramm zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß durchgeführten Verfahrens zur Verarbeitung eines empfangenen Blocks.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung umfasst mehrere Aspekte eines neuartigen und sehr effizienten Decoder-Entwurfs, der bei einer Ausführungsform für die Verwendung bei der Decodie rung von Signalen ausgelegt ist, die unter Verwendung von TTCM (Turbo Trellis Coded Modulation), PC-TCM (Parallel Concatenated Trellis Coded Modulation) und/oder Trellis Code Modulation (TCM) codiert wurden. Die Erfindung wendet einen Entwurf an, der problemlos anpassbar ist, um eine Decodierung von Signalen zu unterstützen, die auf einer Symbol-um-Symbol-Basis variieren kann, nämlich mit variablen Coderaten, variablen Modulationstypen, verschiedenen Konstellationsformen und/oder auch variablen Mappings für solche Konstellationsformen. Die Erfindung führt eine intelligente Neuordnung und Manipulation der individuellen Symbole eines empfangenen Blocks durch, die eine sehr schnelle Verarbeitung sowie relativ minimale Mengen von bei der Implementierung erforderlicher Hardware (Speicher, Register usw.) ermöglicht.
  • Allgemein gesprochen verarbeitet die Erfindung einen empfangenen Block, indem sie anfänglich eine Symbolverarbeitung in dem Block durchführt, um eine Anzahl von Prüfpunktwerten für ausgewählte Unterblöcke zu erzeugen. Die Verarbeitung beginnt eine Berechnung für Vorwärtsmetriken (Alphas) beginnend an einem Ende des Blocks, wobei sie auf die Blockmitte hin arbeitet, und für Rückwärtsmetriken (betas) beginnend an dem anderen Ende des Blocks, wobei sie auf die Blockmitte hin arbeitet. Bei einer Ausführungsform schiebt die Erfindung den Unterblöcken zugeordnete Prüfpunktwerte auf einen Prüfpunktstapel. Diese Prüfpunktwerte geben die anfänglichen Bedingungen an, die später verwendet werden können, um die geeigneten Alphas bzw. Betas in diesen Unterblöcken erneut zu berechnen. Anfänglich werden nur die Prüfpunktwerte während der anfänglichen Verarbeitung gespeichert, die den Block von beiden Enden her beginnend auf die Blockmitte hin verarbeitet. Nach dem Erreichen der Unterblöcke benachbart zu der Blockmitte berechnet und speichert die Verarbeitung dann alle Alphas für den Unterblock auf einer Seite von der Blockmitte und alle Betas für den Unterblock auf der anderen Seite von der Blockmitte. Das Speichern der Alphas und Betas kann gemäß der Erfindung unter Verwendung von Alpha/Beta-Stapeln durchgeführt werden. Stapel können auch als First U-Last Out (FILO)-Speichervorrichtungen bezeichnet werden, bei denen Element eingeschoben und entnommen werden; das letzte Element, das auf den Stapel/FILO geschoben (geschrieben/gespeichert) wurde, ist dann das erste Element, das daraus entnommen (gelesen abgerufen) wird.
  • Nachdem die Verarbeitung die Blockmitte erreicht hat, ist die erfindungsgemäße Verarbeitung in der Lage, extrinsische Informationen für jedes einzelne Symbol nach einander beginnend an der Blockmitte und bis hinaus zu den beiden Blockenden zu liefern. Das entsprechende Alpha, das bei jedem Symbol des Unterblocks auf der einen Seite der Blockmitte gespeichert wurde, wie vorausgehend für die anfängliche Verarbeitung beschrieben wurde, wird abgerufen, wenn das entsprechende Beta für jedes jeweilige Symbol berechnet wird. Das zugeordnete abgerufene Alpha und das eben berechnete Beta können dann unmittelbar verwendet werden, um die extrinsische Information zu berechnen, die jedem Symbol in diesem Unterblock zugeordnet ist. Auf ähnliche Weise wird das entsprechende Beta, das bei jedem Symbol des Unterblocks auf der anderen Seite der Blockmitte gespeichert wurde, wie vorausgehend für die anfängliche Verarbeitung beschrieben wurde, abgerufen, wenn das entsprechende Alpha für jedes jeweilige Symbol berechnet wird. Das zugeordnete abgerufene Beta und das eben berechnete Alpha können dann unmittelbar verwendet werden, um die extrinsische Information zu berechnen, die jedem Symbol in diesem Unterblock zugeordnet ist. Gleichzeitig führt die Erfindung eine Rücksprungverarbeitung durch, um die jeweiligen Alphas und Betas für jeden der voraus gegangenen Unterblöcke in beiden Richtungen ab der Blockmitte zu den beiden Blockenden hin erneut zu berechnen. Diese parallele und gleichzeitige Berechnung stellt eine sehr schnelle und effiziente Verarbeitung des gesamten Blocks zur Verfügung.
  • Diese Rücksprungverarbeitung, die gleichzeitig mit dem Entnehmen der geeigneten Alphas/Betas durchgeführt wird, ermöglicht eine aufeinander folgende Berechnung der extrinsischen Werte jedes der Symbole des Blocks beginnend von der Blockmitte und gleichzeitig in beiden Richtungen auf die beiden Blockenden hin.
  • Um diese Art der Verarbeitung zu ermöglichen, wird der Block von Daten in eine Anzahl von Unterblöcken unterteilt, die intelligent verarbeitet werden, um eine extrem schnelle Verarbeitung zu ermöglichen. Allgemein gesprochen führt der Entwurf eine anfängliche Verarbeitung beginnend von beiden Blockenden durch, und bei Annäherung an die Blockmitte beginnt der Entwurf, den Block unter Verwendung von Rücksprüngen auf vorherige Unterblöcke zu verarbeiten. Der Entwurf verwendete eine große Menge von paralleler und gleichzeitiger Verarbeitung, um eine sehr schnelle Berechnung der verschiedenen Werte zur Verfügung zu stellen, die zum Decodieren des Blocks benötigt werden.
  • 2 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten Satelliten-Kommunikationssystems. Ein Satelliten sender ist kommunikationsmäßig mit einer Satellitenschüssel gekoppelt, die betreibbar ist, um mit einem Satelliten zu kommunizieren. Der Satellitensender kann auch kommunikationsmäßig mit einem verdrahteten Netzwerk gekoppelt sein. Dieses verdrahtete Netzwerk kann jegliche Anzahl von Netzen einschließlich des Internets, Firmennetzen, und/oder anderen verdrahteten Netzwerken umfassen. Der Satellitensender verwendet die Satellitenschüssel, um mit dem Satelliten über einen drahtlosen Kommunikationskanal zu kommunizieren. Der Satellit ist in der Lage, mit einem oder mehreren Satellitenempfängern (mit jeweils einer Satellitenschüssel) zu kommunizieren. Jeder der Satellitenempfänger kann auch kommunikationsmäßig mit einer Anzeigevorrichtung gekoppelt sein.
  • Hierbei kann die Kommunikation zu und von dem Satelliten im Zusammenwirken als ein drahtloser Kommunikationskanal angesehen werden; oder die Kommunikationen zu und von dem Satelliten können jeweils als zwei verschiedene drahtlose Kommunikationskanäle angesehen werden.
  • Beispielsweise kann bei einer Ausführungsform angenommen werden, dass der drahtlose Kommunikations-"Kanal" nicht mehrere drahtlose Funkfelder ("hops") aufweist. Bei anderen Ausführungsformen mit mehreren Funkfeldern empfängt der Satellit ein von dem Satellitensender (über seine Satellitenschüssel) empfangenes Signal, verstärkt es, und leitet es (über seine Satellitenschüssel) an den Satellitenempfänger weiter; der Satellitenempfänger kann neben anderen Empfängertypen auch unter Verwendung von terrestrischen Empfängern wie etwa Satellitenempfängern, satellitenbasierten Telefonen und/oder satellitenbasierten Internetempfängern implementiert sein. Falls der Satellit ein von dem Satellitensender (über seine Satellitenschüssel) empfangenes Signal empfängt, es verstärkt und weiter leitet, kann der Satellit als ein "Transponder" angesehen werden; dies ist eine Multi-Hop-Ausführungsform. Zusätzlich können andere Satelliten vorhanden sein, die sowohl Empfängerals auch Senderoperationen im Zusammenwirken mit dem gezeigten Satelliten durchführen. In diesem Fall kann jede Strecke einer Aufwärts-Abwärts-Übertragung über den drahtlosen Kommunikationskanal separat betrachtet werden.
  • Unabhängig von der Ausführungsform kommuniziert der Satellit mit dem Satellitenempfänger. Der Satellitenempfänger kann bei bestimmten Ausführungsformen (die eine lokale Antenne verwenden) als eine mobile Einheit angesehen werden; alternativ kann der Satellitenempfänger als eine Satelliten-Erdstation angesehen werden, die auf ähnliche Weise kommunikationsmäßig gekoppelt mit einem verdrahteten Netzwerk sein kann, wie auch der Satellitensender kommunikationsmäßig mit einem verdrahteten Netzwerk gekoppelt sein kann.
  • Der Satellitensender ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den Satellitenempfänger übertragen werden sollen; der Satellitenempfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Jeder oder mehrere der in den Satellitenempfängern implementierten Decoder kann so implementiert sein, dass er den TTCM-Decoderentwurf der Erfindung unterstützt. 2 zeigt nur eine der vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 3 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten High Definition Television (HDTV)-Kommunikationssystems. Ein HDTV-Sender ist kommunikationsmäßig mit einem Turm gekoppelt. Der HDTV-Sender überträgt unter Verwendung seines Turms über einen drahtlosen Kommunikationskanal ein Signal an eine lokale Turmschüssel. Die lokale Turmschüssel koppelt über ein Koaxialkabel oder eine andere Kommunikationseinrichtung kommunikationsmäßig an einen HDTV-Settop-Box-Empfänger. Der HDTV-Settop-Box-Empfänger besitzt die Funktionalität zum Empfangen des drahtlosen Sendesignals, das von der lokalen Turmschüssel empfangen wurde; dies kann jegliche Transformierung und/oder Abwärtskonvertierung umfassen, die nötig sein kann, um jegliche Aufwärtskonvertierung einzubeziehen, die möglicherweise vor und während der Übertragung des Signals von dem HDTV-Sender und seinem Turm durchgeführt wurde. Einige Beispiele können bei anderen Ausführungsformen das Abwärtstransformieren auf Zwischenfrequenzen (IFs) und weiter auf Basisband (BB) und/oder das direkte Abwärtskonvertieren auf BB umfassen.
  • Der HDTV-Settop-Box-Empfänger ist ferner kommunikationsmäßig mit einer HDTV-Anzeigevorrichtung gekoppelt, die in der Lage ist, die von dem HDTV-Settop-Box-Empfänger und seiner lokalen Turmschüssel empfangenen, demodulierten und decodierten Funksendesignale anzuzeigen. Bei dieser Ausführungsform überträgt der HDTV-Sender (über seinen Turm) ein Signal unmittelbar über den drahtlosen Kommunikationskanal an die lokale Turmschüssel. Bei alternativen Ausführungsformen kann der HDTV-Sender zuerst ein Signal von einem Satelliten unter Verwendung einer Satellitenerdstation empfangen, die kommunikationsmäßig mit dem HDTV-Sender gekoppelt ist, und daraufhin dieses Empfangssignal über den drahtlosen Kommunikationskanal an die lokale Turmschüssel übertragen. In dieser Situation operiert der HDTV-Sender als ein Weitergabeelement zum Übertragen eines ursprünglich von dem Satelliten gelieferten Signals, das für den HDTV-Settop-Box-Empfänger bestimmt ist. Beispielsweise kann eine andere Satellitenerdstation zuerst ein Signal von einem anderen Ort übertragen an den Satelliten, und der Satellit kann dieses Signal an die Satellitenerdstation weiter geben, die kommunikationsmäßig mit dem HDTV-Sender gekoppelt ist. Der HDTV-Sender führt die Empfängerfunktionalität aus und überträgt dann sein Empfangssignal an die lokale Turmschüssel.
  • Bei wieder anderen Ausführungsformen verwendet der HDTV-Sender seine Satellitenerdstation, um mit dem Satelliten über einen drahtlosen Kommunikationskanal zu kommunizieren. Der Satellit ist in der Lage, mit einer lokalen Satellitenschüssel zu kommunizieren; die lokale Satellitenschüssel koppelt über ein Koaxialkabel kommunikationsmäßig an den HDTV-Settop-Box-Empfänger. Dieser Übertragungspfad zeigt einen wieder anderen Kommunikationspfad, bei dem der HDTV-Settop-Box-Empfänger mit dem HDTV-Sender kommunizieren kann.
  • Unabhängig von der Ausführungsform und unabhängig von dem Signalpfad, den der HDTV-Sender verwendet, um mit dem HDTV-Settop-Box-Empfänger zu kommunizieren, ist der HDTV-Settop-Box-Empfänger betreibbar, um Kommunikationsübertragungen von dem HDTV-Sender zu empfangen.
  • Der HDTV-Sender ist betreibbar, um Informationen (unter Verwendung eines Codierers) zu codieren, die an den HDTV-Settop-Box-Empfänger übertragen werden sollen; der HDTV-Settop-Box-Empfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem HDTV-Settop-Box-Empfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 3 zeigt nur eine der vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 4A und 4B sind Systemschaubilder zur Veranschaulichung von Ausführungsformen von erfindungsgemäß aufgebauten, unidirektionalen zellulären Kommunikationssystemen.
  • Unter Bezugnahme auf 4A weist ein mobiler Sender eine lokale Antenne auf, die kommunikationsmäßig damit gekoppelt ist. Der mobile Sender kann jegliche Anzahl von Typen von Sendern sein, einschließlich eines einfachgerichteten Zellulärtelefons, einer drahtlosen Pager-Einheit, eines mobilen Computers mit Sendefunktionalität, und/oder jedes anderen Typs von mobilem Sender. Der mobile Sender überträgt ein Signal unter Verwendung seiner lokalen Antenne über einen drahtlosen Kommunikationskanal an einen zellulären Turm. Der zelluläre Turm ist kommunikationsmäßig mit einem Basisstation-Empfänger gekoppelt; der empfangende Turm ist betreibbar, um eine Datenübertragung von der lokalen Antenne des mobilen Senders zu empfangen, die über den drahtlosen Kommunikationskanal übertragen wurde. Der zelluläre Turm koppelt das Empfangssignal kommunikationsmäßig mit dem Basisstation-Empfänger.
  • Der mobile Sender ist betreibbar, um Informationen (unter Verwendung eines Codierers) zu codieren, die an den Basisstation-Empfänger übertragen werden sollen; der Basisstation-Empfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem Basisstation-Empfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 4A zeigt wieder eine andere der vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann. 4A zeigt ein unidirektionales zelluläres Kommunikationssystem, bei dem die Kommunikation von dem mobilen Sender über den drahtlosen Kommunikationskanal zu dem Basisstation-Empfänger geht.
  • Unter Bezugnahme auf 4B weist ein Basisstation-Sender einen zellulären Turm auf, der kommunikationsmäßig mit ihm gekoppelt ist. Der Basisstation-Sender überträgt unter Verwendung seines zellulären Turms ein Signal über einen Kommunikationskanal an einen mobilen Empfänger. Bei dem mobilen Empfänger kann es sich um jegliche Anzahl von Empfängertypen handeln, einschließlich eines einfachgerichteten Zellulärtelefons, einer drahtlosen Pager-Einheit, eines mobilen Computers mit Empfängerfunktionalität, oder jeglichen anderen Typ von mobilem Empfänger. Der mobile Empfänger ist kommunikationsmäßig mit einer lokalen Antenne gekoppelt; die lokale Antenne ist betreibbar, um eine Datenübertragung, die über den drahtlosen Kommunikationskanal übermittelt wurde, von dem zellulären Turm des Basisstation-Senders zu empfangen. Die lokale Antenne koppelt das Empfangssignal kommunikationsmäßig mit dem mobilen Empfänger.
  • Der Basisstation-Sender ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den mobilen Empfänger übertragen werden sollen; der mobile Empfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem mobilen Empfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 4B zeigt wieder eine andere der vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann. 4B zeigt ein unidirektionales zelluläres Kommunikationssystem, bei dem die Kommunikation von dem Basisstation-Sender über den drahtlosen Kommunikationskanal an den mobilen Empfänger geht.
  • 4C zeigt ein bidirektionales zelluläres Kommunikationssystem, bei dem die Kommunikation zu und von dem Basisstation-Transceiver und zu und von dem mobilen Transceiver über den drahtlosen Kommunikationskanal gehen kann.
  • Unter Bezugnahme auf 4C weist ein Basisstation-Transceiver einen zellulären Turm auf, der kommunikationsmäßig damit gekoppelt ist. Der Basisstation-Transceiver überträgt unter Verwendung seines zellulären Turms ein Signal über einen Kommunikationskanal an einen mobilen Transceiver. Die umgekehrte Kommunikationsoperation kann ebenfalls durchgeführt werden. Der mobile Transceiver ist auch in der Lage, ein Signal an den Basisstation-Transceiver zu übertragen. Bei dem mobilen Transceiver kann es sich um jegliche Anzahl von Transceivertypen handeln, einschließlich eines Zellulärtelefons, einer drahtlosen Pager-Einheit, eines mobilen Computers mit Transceiver-Funktionalität, oder jeglichen anderen Typs von mobilem Transceiver. Der mobile Transceiver ist kommunikationsmäßig mit einer lokalen Antenne gekoppelt; die lokale Antenne ist betreibbar, um Datensendungen, die über den drahtlosen Kommunikationskanal übertragen wurden, von dem zellulären Turm des Basisstation-Transceivers zu empfangen. Die lokale Antenne koppelt das Empfangssignal kommunikationsmäßig mit dem mobilen Transceiver.
  • Der Basisstation-Transceiver ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den mobilen Transceiver übertragen werden sollen; der mobile Transceiver ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder, der in dem mobile Transceiver und/oder dem Basisstation-Transceiver implementiert sein kann, kann so implementiert sein, dass er den TTCM-Decoderentwurf der Erfindung unterstützt. 4C zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 5A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Mikrowellen-Kommunikationssystems. Ein Mikrowellensender ist kommunikationsmäßig mit einem Mikrowellenturm gekoppelt. Der Mikrowellensender überträgt unter Verwendung seines Mikrowellenturms ein Signal über einen drahtlosen Kommunikationskanal an einen Mikrowellenturm. Ein Mikrowellenempfänger ist kommunikationsmäßig mit dem Mikrowellenturm gekoppelt. Der Mikrowellenturm ist in der Lage, Sendungen von dem Mikrowellenturm zu empfangen, die über den drahtlosen Kommunikationskanal übertragen wurden.
  • Der Mikrowellensender ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den Mikrowellenempfänger übertragen werden sollen; der Mikrowellenempfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem Mikrowellenempfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 5A zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann. 5A zeigt ein unidirektionales Mikrowellen-Kommunikationssystem, bei dem die Kommunikation von dem Mikrowellensender über den drahtlosen Kommunikationskanal zu dem Mikrowellenempfänger geht.
  • 5B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Mikrowellen-Kommunikationssystems. In 5B ist ein erster Mikrowellen-Transceiver kommunikationsmäßig mit einem ersten Mikrowellenturm gekoppelt. Der erste Mikrowellen-Transceiver überträgt unter Verwendung des ersten Mikrowellenturms (des Mikrowellenturms des ersten Mikrowellen-Transceivers) ein Signal über einen drahtlosen Kommunikationskanal an einen zweiten Mikrowellenturm eines zweiten Mikrowellen-Transceivers. Der zweite Mikrowellen-Transceiver ist kommunikationsmäßig mit dem zweiten Mikrowellenturm (dem Mikrowellenturm des zweiten Mikrowellen-Transceivers) gekoppelt. Der zweite Mikrowellenturm ist in der Lage, Sendungen, die über den drahtlosen Kommunikationskanal übertragen wurden, von dem ersten Mikrowellenturm zu empfangen. Die umgekehrte Kommunikationsoperation kann unter Verwen dung des ersten und des zweiten Mikrowellen-Transceivers ebenfalls durchgeführt werden.
  • Jeder der Mikrowellen-Transceiver ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den anderen Mikrowellen-Transceiver übertragen werden sollen; jeder Mikrowellen-Transceiver ist betreibbar, um das Sendesignal, das er empfängt, (unter Verwendung eines Decoders) zu decodieren. Jeder der Mikrowellen-Transceiver weist einen Codierer und einen Decoder auf. Der Decoder von jedem der Transceiver kann so implementiert sein, dass er den TTCM-Decoderentwurf der Erfindung unterstützt. 5B zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 6A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Punkt-zu-Punkt-Funkkommunikationssystems. Ein Sender einer mobilen Einheit weist eine kommunikationsmäßig damit gekoppelte lokale Antenne auf. Der Sender der mobilen Einheit überträgt ein Signal unter Verwendung seiner lokalen Antenne über einen drahtlosen Kommunikationskanal an eine lokale Antenne des Empfängers einer mobilen Einheit.
  • Die Sender der mobilen Einheit ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den Empfänger der mobilen Einheit übertragen werden sollen; der Empfänger der mobilen Einheit ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem Empfänger der mobilen Einheit implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 6A zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann. 6A zeigt ein unidirektionales Kommunikationssystem, bei dem die Kommunikation von dem Sender der mobilen Einheit über den drahtlosen Kommunikationskanal an den Empfänger der mobilen Einheit geht.
  • 6B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Punkt-zu-Punkt-Funkkommunikationssystems. In 6B ist ein Transceiver einer ersten mobilen Einheit kommunikationsmäßig mit einer ersten lokalen Antenne gekoppelt. Der Transceiver der ersten mobilen Einheit überträgt unter Verwendung der ersten lokalen Antenne (der lokalen Antenne des Transceivers der ersten mobilen Einheit) ein Signal über einen drahtlosen Kommunikationskanal an eine zweite lokale Antenne des Transceivers einer zweiten mobilen Einheit. Der Transceiver der zweiten mobilen Einheit ist kommunikationsmäßig mit der zweiten lokalen Antenne (der lokalen Antenne des Transceivers der zweiten mobilen Einheit) gekoppelt. Die zweite lokale Antenne ist in der Lage, Sendungen, die über den Kommunikationskanal übertragen wurden, von der ersten lokalen Antenne zu empfangen. Die umgekehrte Kommunikationsoperation kann unter Verwendung der Transceiver der ersten und der zweiten mobilen Einheit ebenfalls durchgeführt werden.
  • Jeder Transceiver einer mobilen Einheit ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den Transceiver der anderen mobilen Einheit übertragen werden sollen; jeder Transceiver einer mobilen Einheit ist betreibbar, um das Sendesignal, das er empfängt, (unter Verwendung eines Decoders) zu decodieren. Der Decoder von dem Transceiver einer jeden mobilen Einheit kann implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 6B zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 7A ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, unidirektionalen Kommunikationssystems. Ein Sender kommuniziert mit einem Empfänger über einen unidirektionalen Kommunikationskanal. Der unidirektionale Kommunikationskanal kann ein Drahtleitungs- (bzw. verdrahteter) Kommunikationskanal oder ein drahtloser Kommunikationskanal sein. Die verdrahteten Medien, durch welche der unidirektionale Kommunikationskanal implementiert sein kann, sind vielfältig, einschließlich Koaxialkabel, faseroptischer Verkabelung, und Kupferverkabelung, neben anderen Typen einer "Verdrahtung". Auf ähnliche Weise können die drahtlosen Weisen, auf welche der unidirektionale Kommunikationskanal implementiert sein kann, vielfältig sein, einschließlich Satellitenkommunikation, zellulärer Kommunikation, Mikrowellenkommunikation und Funkkommunikation, sowie anderen Typen von drahtloser Kommunikation.
  • Der Sender ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den Empfänger übertragen werden sollen; der Empfänger ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Der Decoder kann in dem Empfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 7A zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann. 7A zeigt ein unidirektionales Kommunikationssystem, bei dem die Kommunikation von dem Sender über den Kommunikationskanal an den Empfänger geht.
  • 7B ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, bidirektionalen Kommunikationssystems. In 7B ist ein erster Transceiver über einen bidirektionalen Kommunikationskanal kommunikationsmäßig mit einem zweiten Transceiver gekoppelt. Der bidirektionale Kommunikationskanal kann ein Drahtleitungs- (bzw. verdrahteter) Kommunikationskanal oder ein drahtloser Kommunikationskanal sein. Die Charakteristiken des verdrahteten und/oder drahtlosen Kommunikationskanals können vielfältig sein, wie auch vorausgehend beschrieben wurde.
  • Jeder der Transceiver ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an den anderen Transceiver übertragen werden sollen; jeder Transceiver ist betreibbar, um das Sendesignal, das er empfängt, (unter Verwendung eines Decoders) zu decodieren. Der Decoder von jedem der Transceiver kann implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 7B zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 7C ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten One-to-Many-Kommunikationssystems. Ein Sender ist in der Lage, bei bestimmten Ausführungsformen mittels Aussendung (broadcast) über einen unidirektionalen Kommunikationskanal mit einer Anzahl von Empfängern zu kommunizieren, die als Empfänger 1, 2, ..., n gezeigt sind. Der unidirektionale Kommunikationskanal kann ein Drahtleitungs- (bzw. verdrahteter) Kommunikationskanal oder ein drahtloser Kommunikationskanal sein. Wiederum können die Charakteristiken des verdrahteten und/oder drahtlosen Kommunikationskanals vielfältig sein, wie auch vorausgehend beschrieben wurde.
  • Es wird ein Verteilungspunkt in dem One-to-Many-Kommunikationssystem verwendet, um den Empfängern 1, 2, ..., und n die geeignete Kommunikation zur Verfügung zu stellen. Bei bestimmten Ausführungsformen empfangen die Empfänger 1, 2, ..., und n jeweils die gleiche Kommunikation und unterscheiden individuell, welcher Abschnitt der gesamten Kommunikation für den jeweiligen Empfänger bestimmt ist.
  • Der Sender ist betreibbar, um (unter Verwendung eines Codierers) Informationen zu codieren, die an die Empfänger 1, 2, ..., und n übertragen werden sollen; jeder der Empfänger 1, 2, ..., und n ist betreibbar, um das Sendesignal (unter Verwendung eines Decoders) zu decodieren. Die Decoder in einem oder allen der Empfänger 1, 2, ..., und n können implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 7C zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder erfindungsgemäß implementiert sein kann.
  • 8 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten, faseroptischen Kommunikationssystems. Das faseroptische Kommunikationssystem ist betreibbar, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. 8 zeigt wieder eine andere von den vielen Ausführungsformen, bei denen ein Decoder, der hier als ein Abschnitt eines Systems implementiert ist, erfindungsgemäß implementiert sein kann. Das faseroptische Kommunikationssystem weist eine Dense Wavelength Division Multiplexing (DWDM)-Leitungskarte auf, die zwischen eine Leitungsseite und eine Kundenseite geschaltet ist.
  • DWDM ist eine Technologie, die neuerdings zunehmend Interesse gewonnen hat. Sowohl vom technischen als auch vom wirtschaftlichen Standpunkt ist die Fähigkeit, eine potenziell unbegrenzte Übertragungskapazität zur Verfügung zu stellen, der offensichtlichste Vorteil der DWDM-Technologie. Bei Verwendung von DWDM können nicht nur die bereits getätigten Investitionen in eine faseroptische Infrastruktur erhalten bleiben, sondern können gemäß einiger Schätzungen sogar um einen Faktor von zumindest 32 optimiert werden. Unter sich ändernden Anforderungen kann mehr Kapazität hinzugefügt werden, entweder durch einfache Nachrüstung, oder durch Erhöhen der Anzahl von Wellenlängen (Lambdas) auf der faseroptischen Verkabelung selbst ohne kostspielige Nachrüstvorgänge. Kapazität ist um die Kosten der technischen Ausrüstung erhältlich, und bereits getätigte Investitionen für die Faserinstallation bleiben erhalten. Unter dem Gesichtspunkt der Bandbreite können einige der faszinierendsten technischen Vorteile von DWDM folgendermaßen zusammengefasst werden:
    Die Transparenz von DWDM: da es sich bei DWDM um eine Physikalische Schicht (PHY)-Architektur handelt, kann sie auf transparente Weise sowohl Time Division Multiplexing (TDM) als auch Datenformate wie etwa Asynchronous Transfer Mode (ATM), Gigabit Ethernet, ESCON, und Fibre Channel mit offenen Schnittstellen über eine gemeinsame Bitübertragungsschicht unterstützen.
  • Die Skalierbarkeit von DWDM: DWDM kann die reichlich vorhandene Dunkelfaser (installierte, aber noch nicht verwendete faseroptische Verkabelung) in vielen Ortsbereichs- und Firmennetzen nutzen, um den Bedarf nach Kapazität auf Punkt-zu-Punkt-Verbindungen und auf Strecken von bereits vorhandenen SONET/SDH-Ringen zu decken.
  • Die dynamischen Bereitstellungsmöglichkeiten von DWDM: das schnelle, einfache und dynamische Bereitstellen von Netzverbindungen versetzt Anbieter in die Lage, Dienstleistungen mit großer Bandbreite innerhalb von Tagen anstatt Monaten zur Verfügung zu stellen.
  • Die faseroptische Schnittstellenbildung wird sowohl auf der Kundenseite als auch auf der Leitungsseite der DWDM-Leitungskarte verwendet. Die DWDM-Leitungskarte weist einen Transportprozessor mit einer Funktionalität zum Unterstützen von DWDM-Ferntransport, DWDM-Ortstransport, Next-Generation-SONET/SDH-Multiplexern, digitalen Rangierleitungen und faseroptischen Abschluss- und Prüfvorrichtungen auf. Auf der Leitungsseite weist die DWDM-Leitungskarte einen Sender auf, der betreibbar ist, um eine elektrisch-optisch-Konvertierung für die Schnittstellenbildung mit einem optischen Medium durchzuführen, sowie einen Empfänger, der betreibbar ist, um eine optisch-elektrisch-Konvertierung für die Schnittstellenbildung aus dem optischen Medium durchzuführen. Auf der Kundenseite weist die DWDM-Leitungskarte ein serielles 10G-Modul auf, das betreibbar ist, um mit jeder anderen Vorrichtung auf der Kundenseite des faseroptischen Kommunikationssystems unter Verwendung einer faseroptischen Schnittstelle zu kommunizieren. Als Alternative kann die Schnittstelle unter Verwendung von nicht-faseroptischen Medien einschließlich einer Kupferverkabelung und/oder eines anderen Typs eines Schnittstellenmediums implementiert sein.
  • Der DWDM-Transportprozessor der DWDM-Leitungskarte weist einen Decoder auf, der verwendet wird, um von einer oder beiden der Leitungs- und Kundenseite emp fangene Signale zu decodieren, und einen Codierer, der verwendet wird, um Signale zu codieren, die an die Leitungsseite und/oder die Kundenseite übertragen werden sollen. Der Decoder kann in dem Empfänger implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen.
  • 9 ist ein Systemschaubild zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten Satellitenempfänger-Settop-Box-System. Das Satellitenempfänger-Settop-Box-System weist einen Advanced Modulation-Satellitenempfänger auf, der in einer vollständig digitalen Architektur implementiert ist. Das Satellitenempfänger-Settop-Box-System weist einen Satellitentuner auf, der ein Signal über das L-Band empfängt. Der Satellitentuner extrahiert I, Q (In-phase and Quadrature)-Komponenten aus einem vom L-Band empfangenen Signal und liefert sie an den Advanced Modulation-Satellitenempfänger. Der Advanced Modulation-Satellitenempfänger weist eine Ausführungsform des Decoders auf. Der Decoder kann implementiert sein, um den TTCM-Decoderentwurf der Erfindung zu unterstützen.
  • Der Advanced Modulation-Satellitenempfänger koppelt kommunikationsmäßig mit einem HDTV-MPEG-2 (Motion Picture Expert Group)-Transport-Demultiplexer, Audio/Video-Decoder und Anzeige-Engine. Sowohl der Advanced Modulation-Satellitenempfänger als auch der HDTV-MPEG-2-Transport-Demultiplexer, der Audio/Video-Decoder und die Anzeige-Engine koppeln kommunikationsmäßig mit einer Host-Zentralprozessoreinheit (CPU). Der HDTV-MPEG-2-Transport-Demultiplexer, der Audio/Video-Decoder und die Anzeige-Engine koppeln auch kommunikationsmäßig mit einem Speichermodul und einem Funktionsblock für bedingten Zugang. Der HDTV-MPEG-2-Transport-Demultiplexer, der Audio/Video-Decoder und die Anzeige-Engine stellen einen HD-Video- und Audioausgang zur Verfügung, der an eine HDTV-Anzeigevorrichtung geliefert werden kann.
  • Der Advanced Modulation-Satellitenempfänger ist ein Einchip-Digitalsatellitenempfänger, der den Decoder unterstützt, welcher betreibbar ist, um den TTCM-Decoderentwurf der Erfindung zu unterstützen. Der Advanced Modulation-Satellitenempfänger ist betreibbar, um eine Kommunikation zu empfangen, die von einer ebenfalls einen Codierer aufweisenden Sendervorrichtung an ihn geliefert wird.
  • Darüber hinaus beschreiben einige der nachfolgenden Figuren bestimmte Ausführungsformen, die verwendet werden können, um die verschiedenen Ausführungsfor men des TTCM-Decoderentwurfs zu implementieren, der eine stark verbesserte Verarbeitungsgeschwindigkeit und -effizienz beim Decodieren von Empfangssignalen ermöglicht.
  • 10 ist ein Diagramm zur Veranschaulichung einer Ausführungsform eines erfindungsgemäß aufgebauten TTCM (Turbo Trellis Coded Modulation)-Decoderentwurfs. Ein Empfangssignal wird an einen I, Q-Extrahierungs-Funktionsblock geliefert, der die I, Q (In-phase and Quadrature)-Komponenten aus dem Empfangssignal (als Rx-Signal gezeigt) extrahiert, die gemäß einer von einem Ratensteuerung-Sequencer bestimmten Ratensteuerung (RC) gemappt werden. Dieses Extrahieren der I, Q-Komponenten des Empfangssignals kann als eine Empfänger-Vorverarbeitung angesehen werden. Die I, Q werden daraufhin gemäß der geeigneten Konstellation und dem geeigneten Mapping der Modulation gemappt. Daraufhin werden die gemappten I, Q an einen Metrikgenerator weiter geleitet, der auch den RC-Eingang von dem Ratensteuerung-Sequencer empfängt. Der Metrikgenerator erzeugt die geeigneten Metriken, die aus den empfangenen I, Q gemessen werden, für die Konstellationspunkte innerhalb der geeigneten Konstellation und des geeigneten Mapping der Modulation; die Metriken werden durch das Mapping der Konstellationspunkte innerhalb der Modulation indiziert; diese Metriken können als die skalierten Euklidischen Abstände von den Orten des tatsächlichen empfangenen Symbols zu den erwarteten Konstellationspunktorten innerhalb der Modulation angesehen werden.
  • Danach wird die Metrik, die einem uncodierten Bit zugeordnet ist (falls das uncodierte Bit u = 0 ist) mit der Metrik verglichen, die dem uncodierten Bit zugeordnet ist (falls das uncodierte Bit u = 1 ist), und der kleinere Metrikwert wird gewählt. Der kleinere Metrikwert wird gemäß der Konvention dieser Ausführungsform als eine höhere Wahrscheinlichkeit als der größere Metrikwert angesehen; als Alternative kann bei anderen Ausführungsformen ein größerer Metrikwert verwendet werden, um eine höhere Wahrscheinlichkeit anzuzeigen, dass es sich um den richtigen Wert handelt. Ferner wird der Wert von u auf der Grundlage davon ausgewählt, welche Metrik den kleineren Wert besitzt. Der mögliche Wert des uncodierten Bits u wird als 1 oder 0 gewählt gemäß der Bestimmung, welche der zugeordneten Metriken den kleineren Wert besitzt (dem uncodierten Bit (u = 0) zugeordnete Metrik oder dem uncodierten Bit (u = 1) zugeordnete Metrik). Bei bestimmten Ausführungsformen kann eine min*-Operation durchgeführt werden, die eine logarithmische Korrektur beim Auswählen der kleineren Metrik umfasst. Als Alternative kann eine max*-Operation durchgeführt werden, die eine logarithmische Korrektur beim Auswählen der kleineren Metrik umfasst. Bei wieder anderen Ausführungsformen kann eine einfache min- oder max-Berechnung verwendet werden. Es wird angemerkt, dass die verschiedenen Ausführungsformen der Erfindung unter Verwendung der max*-Operationen an Stelle der min*-Operation implementiert sein können, wenn dies bei einer bestimmten Implementierung bevorzugt ist.
  • Die min*-Berechnung kann wie folgt ausgedrückt werden: min*(A, B) = min(A, B) – ln(1 + e–|A-B|)
  • Die max*-Berechnung kann wie folgt ausgedrückt werden: max*(A, B) = max(A, B) – ln(1 + e–|A-B|)
  • Als ein Beispiel für diese Operation wird ein empfangenes Symbol betrachtet, das durch eine bestimmte RC bestimmt ist, von der erwartet wird, dass die die Form uc2c1c0 aufweist, wobei u für ein uncodiertes Bit steht, und die c's für codierte Bits stehen – die Gesamtheit eines 4Bit-Symbols. Dann wird u = 1 und daraufhin u = 0 für jede Kombination eingestellt (bei Betrachtung an c2c1c0 = 111 als Beispiel), so dass man es mit den zwei möglichen Werten für uc2c1c0 = 0111 und uc2c1c0 = 1111 zu tun hat. Dann wird der Ort des empfangenen Symbols, das innerhalb der Konstellation gemappt ist, mit den zwei Konstellationspunkten verglichen, die durch 0111 und 1111 indiziert sind. Dann wird aus diesen zwei, durch 0111 und 1111 indizierten Konstellationspunkten basierend darauf gewählt, welcher die kleinerwertige Metrik besitzt. Somit wird bei dem vorliegend verwendeten RC 5-Beispiel die Gesamtanzahl von 16 Metriken auf 8 verringert. Diese 8 Metrikwerte und 8 möglichen uncodierten Bit-Werte (indiziert durch die Metrikindices für jedes Symbol in einem empfangenen Rahmen – ein Rahmen kann auch als ein Block bezeichnet sein) werden dann für eine spätere Verwendung bei der Decodierung des uncodierten Bits nach dem Decodieren der Eingangsbits, i0i1, gespeichert,. Nach dem Durchführen der Decodierung der Eingangsbits, i0i1, ist dann mit Sicherheit bekannt, was die Bits c2c1c0 sind, woraufhin der uncodierte Bit-Wert u basierend auf diesen gespeicherten 8 möglichen uncodierte Bit-Werten direkt bestimmt werden kann.
  • Bei der Fortsetzung des Decodierungsvorgangs und Funktionalität in dieser Figur werden dann die von dem Metrikgenerator berechneten Metriken an einen oberen (geradzahligen) SISO und gleichzeitig an einen unteren (ungeradzahligen) SISO ge liefert. Jeder dieser SISOs berechnet Vorwärtsmetriken (Alphas) und Rückwärtsmetriken (betas) und extrinsische Werte gemäß dem bestimmten verwendeten Trellis. Diese Alphas, Betas, und extrinsischen Werte werden sämtlich für jedes Symbol in einem Rahmen berechnet (ein Rahmen kann hierbei auch manchmal als ein Block bezeichnet werden), der decodiert werden soll. Diese Berechnungen von Alphas, Betas und extrinsischen Werten basieren sämtlich auf dem Trellis und entsprechen der RC, die von dem RC-Eingang vom Ratensteuerung-Sequencer geliefert wird. Die Art und Weise, wie die Alphas, Betas, und extrinsischen Werte durchgeführt werden, ist nachfolgend ausführlicher beschrieben. Die Verarbeitung eines empfangenen Blocks von Daten verwendet einen Lösungsansatz, der eine Rücksprungverarbeitung anwendet, wie ebenfalls nachfolgend ausführlicher beschrieben ist.
  • Beginnend mit dem oberen SISO, nachdem die extrinsischen Werte berechnet wurden, werden sie an einen Interleaver weiter geleitet, wonach sie als "a priori Wahrscheinlichkeit" (app)-Informationen an den unteren SISO weiter geleitet werden. Auf ähnliche Weise, nachdem die extrinsischen Werte in dem unteren SISO berechnet wurden, werden sie an einen Deinterleaver weiter geleitet, wonach sie als "a priori-Wahrscheinlichkeit" (app)-Informationen zurück an den oberen SISO geleitet werden. Es wird angemerkt, dass eine einzelne Decodierungs-Iteration in dem iterativen Decodierungsvorgang des TTCM-Decoderentwurfs in der Durchführung von zwei SISO-Operationen besteht; d.h., der iterative Decodierungsvorgang muss sowohl den oberen (geradzahligen) SISO als auch den unteren (ungeradzahligen) SISO durchlaufen, um eine Iteration der Decodierung durchzuführen.
  • Nachdem ein signifikantes Niveau an Zuverlässigkeit erzielt wurde und eine Lösung sich abzeichnet, oder nachdem eine vorgegebene Anzahl von Decodierungs-Iterationen durchgeführt wurde, wird der Ausgang von dem unteren (ungeradzahligen) SISO als Ausgang an einen Ausgangsprozessor weitergeleitet. Der Ausgangsprozessor ist betreibbar, um ein Neuordnen der Daten, die von dem SISO an ihn geliefert werden, sowie ein Slicing der empfangen weichen Entscheidungen durchzuführen. Der Slicer vergleicht die empfangene weiche Entscheidung mit einem Schwellwert und trifft daraufhin eine harte Bestimmung auf der Grundlage davon, ob der weiche Entscheidungswert über oder unter dem Schwellwert liegt. Der SISO liefert die Daten in einer Reihenfolge an den Ausgangsprozessor, die nachfolgend ausführlicher beschrieben ist. Die Operation der SISOs kann im Allgemeinen als Berechnen weicher Symbolentscheidungen des in dem empfangenen Symbol enthalte nen Symbols bezeichnet werden. Diese weichen Symbolentscheidungen können bei bestimmten Ausführungsformen auf einem True-Bit-Niveau durchgeführt werden. Der Ausgangsprozessor verwendet diese weichen Symbolentscheidungen (und/oder weichen Bitentscheidungen), um harte Symbolentscheidungen (und oder harte Bitentscheidungen) für die Eingangsbits i0i1 des eingegebenen Symbols zu erzeugen und decodierte Ausgangsdaten zu liefern; diese harten Symbolentscheidungen und/oder harten Bitentscheidungen können als beste Schätzungen der Eingangssymbole und/oder der darin enthaltenen Eingangsbits angesehen werden.
  • Falls ein oder mehr uncodierte Bits u als Resultat aus dem Codieren der Eingangsbits, i0i1, vorliegen, ist es gemäß der vorausgehend beschriebenen Ausführungsform ferner nötig, bis zu 8 mögliche uncodierte Bit Werte (indiziert durch die Metrikindices) zu verwenden, so dass der Wert des uncodierten Bits direkt bestimmt werden kann.
  • Es wird ferner angemerkt, dass die app-Sequenz für den oberen (geradzahligen) SISO vor dem Beginnen der iterativen Decodierung initialisiert werden muss. Die Schreibweise für die app-Sequenz app[i][j][k] ist wie folgt:
    • 1. i steht für den möglichen binären Wert des geschätzten Bits
    • 2. Die Positionen des geschätzten Bits werden wie folgt bezeichnet: (j = 0 bezieht sich auf das erste Bit in dem Codierer, und j = 1 bezieht sich auf das zweite Bit in dem Codierer)
    • 3. k ist der Index des Ortes des Symbols in dem Datenblock (bzw. Rahmen).
  • Genauer gesagt, k steht für den Symbolindex der Symbole in einem Datenrahmen, j ist der Bitindex (j = 0 für Bit i1, und j = 1 für Bit i0), und i ist der Bitwert (i = 0 oder 1). Beispielsweise steht app[1][0][50] für die app für Bit i1 des 50sten Symbols mit einem Wert von 1.
  • Zumindest zwei Wege zum Initialisieren von app[i][j][k] sind nachfolgend beschrieben:
    • 1. app[i][j][k] = 0.0, ij ∈ {0,1}, k ∈ {O, ...,N-1}. Jede einzelne TTCM-Codierung kann unter Verwendung von jeder der möglichen Kombinationen von RCs für eine Ratensteuerungssequenz diese Initialisierung verwenden.
    • 2. Die TTCM-Codierung mit RC-Sequenz 8 kann eine verschiedene Initialisierung haben, die wie folgt definiert ist. app[0][1][k] = 0.0 app[1][1][k] = MAX, für alle möglichen k. app[0][0][k] = 0.0
  • Für die Sequenz app[0][0][k] kann man zuerst die Sequenz basierend auf der Ratensteuerungssequenz unter Verwendung der Zwischenvariable pP und pP* definieren (welche die verschachtelte Version von pP bezeichnet).
    pP[1][0][k] = MAX für RC 8
    pP[1][0][k] = 0.0 andernfalls
  • Daraufhin wird diese Sequenz entschachtelt mittels De-interleave π–1, um die Sequenz pP*[1][0][k] zu erzeugen. Schließlich wird das anfängliche app[1][0][k] wie folgt definiert:
    app[1][0][k] = pP[1][0][k] falls k mod2 = 0
    app[1][0][k] = pP*[1][0][k] falls k mod2 = 1
  • Darüber hinaus kann app[1][0][k] unter Verwendung der Verschachtelung π direkt definiert werden wie folgt:
    app[1][0][k] = MAX falls RC[π ^(k)] = 8
    app[1][0][k] = 0.0 andernfalls
  • Weitere Einzelheiten der TTCM-Decodierungsfunktionalität und -Operation werden in mehreren der nachfolgenden Figuren gegeben.
  • 11 ist ein Diagramm zur Veranschaulichung der In-phase and Quadrature (I,Q-Signalextrahierung, die gemäß der Erfindung durchgeführt wird. Ein empfangenes Symbol, das eine Größe und Phase besitzt, wird an einen I-Q-Extrahierungsblock geliefert. Dieses Symbol (oder Signal) wird in einen zweidimensionalen Raum gemappt, so dass eine In-phase- und eine Quadraturkomponente extrahiert werden kann. Diese In-phase-Messung und die Quadraturkomponente werden als Ausgang von dem I,Q-Extrahierungs-Funktionsblock geliefert. Die I, Q-Komponenten des Empfangssignals können als die Basisband (BB)-Komponente des Signals angesehen werden.
  • 12 ist ein Diagramm zur Veranschaulichung einer alternativen Ausführungsform eines erfindungsgemäß aufgebauten TTCM-Decoderentwurfs, der einen einzelnen SISO (Soft-In-Soft-out-Funktionsblock) mehrfach durchläuft. Dieser alternative TTCM-Decoderentwurf empfängt als Eingang die I, Q aus einem Empfangssignal. Ähnlich den vorausgehend beschriebenen Ausführungsformen kann auch ein I,Q-Extrahierungs-Funktionsblock verwendet werden, um diese I, Q-Eingänge ebenso bei der Durchführung der Empfänger-Vorverarbeitung zu extrahieren. Ein Pingpong-Puffer, der zwei Eingangspuffer verwendet, kann für ein effizientes Zwischenspeichern der I,Q-Eingänge verwendet werden. Die I,Q-Eingänge werden dann an den Metrikgenerator weiter geleitet.
  • Der Ausgang des Metrikgenerators wird an den einzelnen SISO weiter geleitet; die Informationen, die zum Durchführen der Decodierung von möglichen uncodierten Bits erforderlich sind, werden an den Ausgangsprozessor weiter geleitet. Der SISO berechnet Vorwärtsmetriken (Alphas), Rückwärtsmetriken (betas), und extrinsische Werte (exts) gemäß dem verwendeten Trellis und liefert sie an einen Funktionsblock, der betreibbar ist, um sowohl eine Verschachtelung als auch eine Entschachtelung durchzuführen (je nachdem, welche bestimmte SISO-Operation in der jeweiligen Decodierungs-Iteration durchgeführt wird). Der Ausgang des Interleaver/Deinterleaver-Funktionsblocks wird als app in einer bestimmten SISO-Operation zurück an den SISO geleitet.
  • Ähnlich wie bei der vorausgehend beschriebenen Ausführungsform wird angemerkt, dass eine einzelne Decodierungs-Iteration in dem iterativen Decodierungsvorgang des alternativen TTCM-Decoderentwurfs in der Durchführung von zwei SISO-Operationen besteht; d.h., der iterative Decodierungsvorgang muss sowohl den SISO einmal durchlaufen (wenn der SISO die obere SISO-Funktionalität ausführt) als auch den SISO erneut durchlaufen (wenn der SISO die untere SISO-Funktionalität ausführt).
  • Nachdem ein signifikantes Niveau an Zuversicht für die weichen Symbolentscheidungen in dem SISO erzielt wurde und sich eine Lösung abzeichnet, oder nachdem eine vorgegebene Anzahl von Decodierungs-Iterationen durchgeführt wurde, wird der Ausgang von dem SISO als Ausgang an den Ausgangsprozessor weiter geleitet. Diese weichen Symbolentscheidungen können bei bestimmten Ausführungsformen auch auf einem True-Bit-Niveau durchgeführt werden. Der Ausgangsprozessor verwendet diese weichen Symbolentscheidungen, um harte Symbolentscheidungen zu erzeugen und decodierte Ausgangsdaten zur Verfügung zu stellen. Es wird auch an gemerkt, dass hier eine ähnliche app-Initialisierung durchgeführt werden kann wie bei der vorausgehend beschriebenen Ausführungsform.
  • 13 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der erfindungsgemäß durchgeführten Verarbeitung eines empfangenen Blocks. Zur Veranschaulichung die Verarbeitung eines Blocks von Daten, der in Unterblöcke mit jeweils einer Anzahl von Symbolen unterteilt ist. Die Größe jedes Unterblocks, und somit die Gesamtzahl von Unterblöcken, in die der Block geteilt wird, kann intelligent bestimmt werden als die Quadratwurzel der gesamten Blockgröße, z.B. sqrt(Blockgröße). Die Verarbeitung des Blocks ist vorliegend bei Durchführung in 5 separaten Zeitintervallen gezeigt. Als Alternative können die in Zeitraum 1, Zeitraum 2, und Zeitraum 3 gezeigten Verarbeitungsoperationen alle als ein einzelner Zeitraum betrachtet werden, wie nachfolgend ausführlicher beschrieben wird. Zu Zwecken einer übersichtlicheren Darstellung werden diese Zeiträume vorliegend jedoch separat gezeigt, so dass die Verarbeitung der Symbole in den Unterblöcken des Blocks besser zu verstehen ist. Zusätzlich kann das zeitweilige Speichern einiger der Variablen unter Verwendung einer Stapel/FILO-Speichervorrichtung durchgeführt werden; zwei oder mehr Stapel können sich physisch in dem gleichen Hardwareabschnitt befinden und in diesem logisch partitioniert sein.
  • Beginnend mit dem Zeitraum 1 beginnt die Verarbeitung des Blocks gleichzeitig an beiden Enden des Blocks (die als ein Blockanfang und ein Blockende bezeichnet werden können). Bei Betrachtung der Unterblöcke beginnend von der linken Seite des Blocks (Blockanfang) während Zeitraum 1 werden die Vorwärtsmetriken (Alphas) für jedes Symbol des Unterblocks berechnet, und die Prüfpunktwerte, die den Anfangs-/anfänglichen Alpha-Bedingungen des Unterblocks zugeordnet sind, werden auf einen Alpha/Beta-Stapel (z.B. eine FILO-Speichervorrichtung) geschoben. Auf ähnliche Weise werden bei Betrachtung der Unterblöcke beginnend von der rechten Seite des Blocks (Blockende) während Zeitraum 1 die Rückwärtsmetriken (betas) für jedes Symbol des Unterblocks berechnet, und die Prüfpunktwerte, die den Anfangs-/anfänglichen Beta-Bedingungen des Unterblocks zugeordnet sind, werden ebenfalls auf den Alpha/Beta-Stapel geschoben. Die Verarbeitung von beiden Blockenden her wird gleichzeitig durchgeführt, wenn auf die Blockmitte hin vorgegangen wird; es wird angemerkt, dass nicht alle Alpha und Beta für die Symbole in diesen Unterblöcken gespeichert werden, sondern nur die zugeordneten Alpha- und Beta-Prüfpunktwerte. Diese Prüfpunktwerte werden später bei der Rücksprungverarbeitung verwen det, um die Alpha- und Beta-Werte für jeden jeweiligen Unterblock erneut zu berechnen.
  • Als nächstes wird bei Zeitraum 2 eine ähnliche Verarbeitung wie vorausgehend im Hinblick auf den Zeitraum 1 beschrieben an denjenigen Unterblöcken durchgeführt, die benachbart zu den an den Enden des Blocks befindlichen Unterblöcken liegen. Beispielsweise nachdem die rekursive Berechnung der Alphas an dem Unterblock ganz links durchgeführ wurde, und nachdem die Prüfpunkt-Alpha-Werte gespeichert wurden, geht die Verarbeitung dann weiter zu dem nächsten Unterblock (dem zweiten Unterblock ab dem linken Ende des Blocks), um analoge Berechnungen der Alphas für die darin enthaltenen Symbole durchzuführen, woraufhin auch die jeweiligen Prüfpunkt-Alpha-Werte gespeichert werden. Die Prüfpunkt-Alpha-Werte für diesen Unterblock werden ebenfalls bei der erneuten Berechnung der Alpha-Werte verwendet, die jedem Symbol dieses Unterblocks zugeordnet sind.
  • Auf ähnliche Weise, nachdem die rekursive Berechnung der Betas an dem ganz rechts befindlichen Unterblock durchgeführ wurde, und nachdem die Prüfpunkt-Beta-Werte gespeichert wurden, geht die Verarbeitung dann zu dem nächsten Unterblock (dem zweiten Unterblock ab dem rechten Ende des Blocks) weiter, um analoge Berechnungen der Betas für die darin enthaltenen Symbole durchzuführen, und die jeweiligen Prüfpunkt-Beta-Werte werden dann ebenfalls gespeichert. Die Prüfpunkt-Beta-Werte für diesen Unterblock werden ebenfalls bei der erneuten Berechnung der Beta-Werte verwendet, die jedem Symbol dieses Unterblocks zugeordnet sind.
  • Während des Zeitraums 3 jedoch, wenn die Verarbeitung die zwei Unterblöcke erreicht, die benachbart zur Blockmitte liegen, ist die Verarbeitung ein wenig verändert. Beispielsweise bei der Verarbeitung der zwei Unterblöcke benachbart zur Blockmitte werden dann die tatsächlichen Werte für jedes Alpha (oder Beta, je nachdem, auf welchen Unterblock man sich bezieht) auf einen Stapel geschoben. Beispielsweise wenn man den Unterblock unmittelbar links von der Blockmitte betrachtet, werden die Alpha-Werte auf einen ersten Stapel (Stapel 1) geschoben; gleichzeitig, bei Betrachtung des Unterblocks unmittelbar rechts von der Blockmitte, werden die Beta-Werte auf einen zweiten Stapel (Stapel 2) geschoben.
  • Nachdem die Verarbeitung die Blockmitte erreicht hat, wie in einem Zeitraum 4 gezeigt ist, geht die Verarbeitung dann weiter, um zwei separate Operationen gleich zeitig durchzuführen. Beispielsweise geht die Verarbeitung von Betas in der gleichen Richtung (links von der Blockmitte und auf den Blockanfang hin) weiter zum Berechnen der Betas für den Unterblock unmittelbar links von der Blockmitte. Zusätzlich werden auch die entsprechenden Alpha-Werte, die eben gespeichert wurden, wie vorausgehend in dem Zeitraum 3 beschrieben wurde, für jedes Symbol, für das eben ein entsprechender Beta-Wert berechnet wurde, abgerufen (dem Stapel 1 entnommen). Unmittelbar danach, da nun die Alpha- und Beta-Werte für jedes der Symbole in diesem Unterblock verfügbar sind, werden sie zum Berechnen der extrinsischen Information für dieses Symbol verwendet.
  • Eine analoge Operation findet gleichzeitig in dem Unterblock unmittelbar rechts von der Blockmitte statt. Beispielsweise geht die Verarbeitung von Alphas in der gleichen Richtung (rechts von der Blockmitte und auf das Blockende hin) weiter, um die Alphas für den Unterblock unmittelbar rechts von der Blockmitte zu berechnen. Zusätzlich werden auch die entsprechenden Beta-Werte, die eben gespeichert wurden, wie oben in dem Zeitraum 3 beschrieben wurde, für jedes Symbol, für das ein entsprechender Alpha-Wert eben berechnet wurde, abgerufen (dem Stapel 2 entnommen). Unmittelbar danach, da nun die Alpha- und Beta-Werte für jedes der Symbole in diesem Unterblock verfügbar sind, werden sie zum Berechnen der extrinsischen Information für dieses Symbol verwendet.
  • Wie nun verständlich sein dürfte, können die extrinsischen Werte für jedes Symbol, beginnend von der Mitte und weiter auf beide Blockenden ([1] von der Blockmitte auf den Blockanfang auf der linken Seite hin und [2] von der Blockmitte auf das Blockende auf der rechten Seite hin) unmittelbar berechnet werden.
  • Gleichzeitig wird in dem Zeitraum 4 eine Rücksprungverarbeitung an den benachbarten Unterblöcken durchgeführt, um die Alphas bzw. Betas erneut zu berechnen. Beispielsweise in dem Unterblock links neben demjenigen Unterblock, der sich unmittelbar links von der Blockmitte befindet, wird der Alpha-Prüfpunktwert für den Anfang dieses Unterblocks abgerufen, um bei der erneuten Berechnung der Alpha-Werte für diesen Unterblock verwendet zu werden; diese erneut berechneten Alphas werden dann auf den zweiten Stapel (Stapel 2) geschoben.
  • Auf ähnliche Weise wird in dem Unterblock rechts neben demjenigen Unterblock, der sich unmittelbar rechts von der Blockmitte befindet, der Beta-Prüfpunktwert für den Anfang dieses Unterblocks abgerufen, um bei der erneuten Berechnung der Beta-Werte für diesen Unterblock verwendet zu werden; diese erneut berechneten Betas werden dann ebenso auf den zweiten Stapel (Stapel 2) geschoben.
  • Wie während des Zeitraums 5 gezeigt ist, wird eine ähnliche Verarbeitung wie vorausgehend im Hinblick auf den Zeitraum 4 beschrieben durchgeführt, mit der Ausnahme, dass die Verarbeitung um einen Unterblock nach außen auf die zwei Blockenden hin verschoben wird. D.h., die Berechnung der Alphas und das Abrufen der Betas (oder alternativ die Berechnung der Betas und das Abrufen der Alphas) wird so durchgeführt, dass die Alpha- und Beta-Werte für jedes Symbol dieses Unterblocks für eine unmittelbare Berechnung von extrinsischen Werten verfügbar gemacht werden. Diese Verarbeitung, die in den Unterblöcken für den Zeitraum 4 und den Zeitraum 5 gezeigt ist, wird durchgeführt, bis die zwei Enden des Blocks (der Blockanfang und das Blockende) erreicht sind.
  • Allgemein gesprochen kann die Gesamtverarbeitung des Blocks auch folgendermaßen beschrieben werden: Alpha-Werte werden in einer Richtung (beginnend an einem Ende des Blocks) berechnet, und Beta-Werte werden in der entgegengesetzten Richtung (beginnend an dem anderen Ende des Blocks) berechnet, und die zugeordneten Prüfpunktwerte Alphas/Betas werden gespeichert. Sobald die Verarbeitung die zwei Unterblöcke benachbart zur Blockmitte erreicht, werden die Werte für die Alphas und Betas (je nach dem jeweiligen Unterblock) gespeichert. Sobald die Verarbeitung die tatsächliche Blockmitte erreicht, überkreuzen die zwei Verarbeitungspfade einander; die Alphas werden weiter für jeden Unterblock in der gleichen Richtung der Berechnung von Alphas berechnet (vorliegend als von links nach rechts gezeigt), und die Betas werden weiter für jeden Unterblock in der gleichen Richtung der Berechnung von Betas berechnet (vorliegend als von rechts nach links gezeigt). Gleichzeitig wird der jeweilige Alpha- oder Beta-Wert, der eben zuvor für diese jeweiligen Unterblöcke berechnet wurde, zur Verwendung bei der Berechnung der extrinsischen Werte für diese Symbole abgerufen. Diese Verarbeitung geht schrittweise um jeweils einen Unterblock nach außen von der Blockmitte weg weiter, bis alle Unterblöcke in dem gesamten Block verarbeitet sind. Bei Verwendung dieser effizienten Verarbeitung eines empfangenen Blocks ist zu sehen, dass nach dem Erreichen der Blockmitte dann extrinsische Werte für jedes Symbol, beginnend an der Blockmitte und gleichzeitig auf beide Blockenden (auf den Blockanfang und das Blockende) hin, nach einander berechnet und ausgegeben werden können.
  • 14 ist ein Diagramm zur Veranschaulichung einer Ausführungsform davon, wie Symbole für die Metrikberechnung gemäß der Erfindung (gezeigt unter Verwendung einer 8-Symbol-Ausführungsform) weiter geleitet werden können. Die Reihenfolge der empfangenen Symbole in einem Block, die für eine Metrik-Berechnung weiter geleitet werden, ist dann verschieden von der Reihenfolge, in der sie aus SISO-Operationen weiter geleitet werden, wie nachfolgend beschrieben ist. Zur Vereinfachung und Übersichtlichkeit der Veranschaulichung ist vorliegend ein 8-Symbol-Block gezeigt, um die Operation zu demonstrieren; die Symbole des Blocks sind als s0, s1, s2, ..., und s7 gezeigt. Die Symbole werden an einen MUX (Multiplexer) geliefert, dessen Selektion 1/2 des gegebenen, verfügbaren Taktsignals ist (gezeigt as T/2).
  • Beispielsweise soll während eines ersten Taktzyklus (clk1) das Symbol s0 für die Alpha-Berechnung verwendet werden, und das Symbol s7 soll für die Beta-Berechnung verwendet werden. Die tatsächliche Weiterleitung von Symbolen für jeden 1/2 Taktzyklus (T/2) alterniert jedoch, da die geradzahligen und/oder ungeradzahligen Symbole jeweils als Nullwert-Symbole für jeden zweiten Taktzyklus behandelt werden können. Der Grund dafür ist, dass die Selektion des MUX auf dem Takt mit einer Rate von T/2 basiert. Während dieses ersten Taktzyklus braucht nur das Symbol an einer ungeradzahligen Stelle gesendet zu werden, nämlich s0; das Symbol s7 an einer ungeradzahligen Stelle braucht nicht gesendet zu werden, da es gemäß der Operation des MUX behandelt werden kann, als sei es ein Symbol mit dem Wert Null (der MUX wählt nur das Symbol an einer ungeradzahligen Stelle aus dem Block).
  • In der weiteren Verarbeitung können dann während dieses zweiten Taktzyklus (clk2), indem man von den beiden Enden des Blocks auf die Blockmitte hin vorgeht, alle Symbole an ungeradzahligen Stellen gemäß der Operation des MUX behandelt werden, als seien sie Nullwert-Symbole (der MUX wählt nur das Symbol an einer geradzahligen Stelle aus dem Block). Während des zweiten Taktzyklus (clk2) soll das Symbol s1 für die Alpha-Berechnung verwendet werden, und das Symbol s6 soll für die Beta-Berechnung verwendet werden. Während dieses zweiten Taktzyklus braucht nur das Symbol an einer geradzahligen Stelle gesendet zu werden, nämlich s6; das Symbol an einer geradzahligen Stelle s1 braucht nicht gesendet zu werden, da es gemäß der Operation des MUX behandelt werden kann, als sei es ein Symbol mit dem Wert Null (der MUX wählt nur das Symbol an einer geradzahligen Stelle aus dem Block, und das Symbol an einer ungeradzahligen Stelle kann als ein Symbol mit dem Wert Null behandelt werden).
  • Diese Verarbeitung geht während der dritten und vierten Taktzyklen (clk3 bzw. clk4) weiter. Beispielsweise soll während des dritten Taktzyklus (clk3) das Symbol s2 für die Alpha-Berechnung verwendet werden, und das Symbol s5 soll für die Beta-Berechnung verwendet werden. Während dieses dritten Taktzyklus braucht nur das Symbol an einer ungeradzahligen Stelle gesendet zu werden, nämlich s2; das Symbol an einer geradzahligen Stelle s5 braucht nicht gesendet zu werden. Darüber hinaus soll während des vierten Taktzyklus (clk4) das Symbol s3 für die Alpha-Berechnung verwendet werden, und das Symbol s4 soll für die Beta-Berechnung verwendet werden. Während dieses vierten Taktzyklus braucht nur das Symbol an einer geradzahligen Stelle gesendet zu werden, nämlich s4; das Symbol an einer ungeradzahligen Stelle s3 braucht nicht gesendet zu werden.
  • Es wird wiederum angemerkt, dass dies die Reihenfolge zeigt, in der die Symbole zur Verwendung bei der Durchführung der Metrikberechnung unter Verwendung eines Metrikgenerators geliefert werden. Obgleich vorliegend eine 8-Symbol-Ausführungsform beschrieben wird, ist es offensichtlich, dass dieser Lösungsansatz auch auf einen größeren Block erweitert werden kann. Diese Reihenfolge der Ausgabe im Zusammenhang mit dem Metrikgenerator ist auch nachfolgend beschrieben, im Gegensatz zu der Reihenfolge, in der ein Ausgang aus dem SISO geliefert wird.
  • 15A ist ein Diagramm zur Veranschaulichung einer Ausführungsform der Reihenfolge der Ausgabe aus einem Metrikgenerator gemäß der Erfindung (bei der es sich um die gleiche Reihenfolge der Ausgabe wie aus einem Interleaver/Deinterleaver gemäß der Erfindung handelt). Wie vorausgehend im Hinblick auf die Reihenfolge, in der Symbole für eine Metrikberechnung weiter geleitet werden, ausführlicher beschrieben wurde (vorausgehend unter Verwendung einer 8-Symbol-Ausführungsform beschrieben), ist die Reihenfolge, in welcher der Ausgang vom Metrikgenerator geliefert wird, als von den zwei Enden des Blocks und auf die Blockmitte hin gezeigt. Um die Konvention zu erfüllen, dass die ordnungsgemäße Reihenfolge des Blocks von links nach rechts sein sollte (derjenigen Reihenfolge, in der die Daten empfangen werden), wird das Speichern der Symbole und zugeordneten Rechenergebnisse auf unterschiedliche Weise durchgeführt. Dies wird durchge führt, um die Art der Verarbeitung des Blocks mit einzubeziehen, welche den Lösungsansatz der Erfindung mit einer sehr schnellen und effizienten Verarbeitung ermöglicht. Das Speichern dieser Werte zur Unterstützung der erfindungsgemäßen Verarbeitung kann in einem logisch partitionierten Random Access Memory (RAM)-Abschnitt durchgeführt werden. Bei dieser Ausführungsform ist der RAM in einen oberen Abschnitt des RAM und einen unteren Abschnitt des RAM partitioniert.
  • Genauer gesagt, der Ausgang des Metrikgenerators, der dem linken Abschnitt des Blocks zugeordnet ist, wird auf eine FIFO (First In-First Out)-Weise in den oberen Abschnitt des RAM geschrieben. Der Grund, warum die Daten auf die FIFO-Weise geschrieben werden können, ist, dass sich die Daten bereits in der richtigen Reihenfolge befinden (da sie von links nach rechts verarbeitet werden). Als Alternative wird der Ausgang des Metrikgenerators, der dem rechten Abschnitt des Blocks zugeordnet ist, auf eine Stapel/FILO (First U-Last Out)-Weise in den unteren Abschnitt des RAM geschrieben. Der Grund, warum die Daten auf die FILO-Weise geschrieben werden können, ist, dass die Daten sich nicht in der richtigen Reihenfolge befinden, wenn man sie unter dem Gesichtspunkt der Reihenfolge betrachtet, in der die Daten empfangen werden (sie werden von rechts nach links verarbeitet, was entgegengesetzt zu der gewünschten Reihenfolge ist). Es wird auch angemerkt, dass diese Reihenfolge von Daten aus dem Metrikgenerator die gleiche Reihenfolge wie bei der Ausgabe aus dem Interleaver/Deinterleaver ist.
  • 15B ist ein Diagramm zur Veranschaulichung einer Ausführungsform der Reihenfolge der Ausgabe aus einem SISO (Soft-In-Soft-out-Funktionsblock) gemäß der Erfindung. Die Reihenfolge der Ausgabe des SISO kann als entgegengesetzt zur Reihenfolge der Ausgabe aus entweder dem Metrikgenerator oder dem Interleaver/Deinterleaver angesehen werden. Wie vorausgehend beschrieben wurde, liefert der Ausgang des SISO die Daten in einer Reihenfolge, die an der Blockmitte beginnt und sich auf die zwei Blockenden hin erstreckt. Die Weise, auf die diese Daten geschrieben werden sollen, ist umgekehrt zu der Weise, in der bei dem Metrikgenerator vorgegangen wird, wie vorausgehend beschrieben wurde.
  • Der Ausgang des SISO, der dem linken Abschnitt des Blocks zugeordnet ist, wird auf eine Stapel/FILO-Weise in den unteren Abschnitt des RAM geschrieben. Der Grund, warum die Daten auf die FILO-Weise geschrieben werden können, ist, dass sich die Daten nicht in der richtigen Reihenfolge befinden, wenn man die Reihenfolge be trachtet, in der die Daten empfangen werden (sie werden von rechts nach links verarbeitet, was entgegengesetzt zu der gewünschten Reihenfolge ist). Als Alternative wird der Ausgang des SISO, der dem rechten Abschnitt des Blocks zugeordnet ist, auf eine FIFO-Weise in den oberen Abschnitt des RAM geschrieben. Der Grund, warum die Daten auf die FIFO-Weise geschrieben werden können, ist, dass sich die Daten bereits in der richtigen Reihenfolge befinden (da sie von links nach rechts verarbeitet werden).
  • 16 ist ein Diagramm zur Veranschaulichung einer Ausführungsform des endgültigen Decodierungsausgang, der gemäß der Erfindung zur Verfügung gestellt werden kann, um harte Entscheidungen zu treffen. Falls nur ein SISO vorhanden sein kann, sollte das ungeradzahlige Symbol vor dem Entschachteln genommen werden, und das geradzahlige Symbol sollte nach dem Entschachteln genommen werden. Es wird angemerkt, dass der TTCM-Decoderentwurf unter Verwendung von zwei separaten SISOs implementiert werden kann, oder unter Verwendung eines einzelnen SISO, der mehrfach durchlaufen wird, um beide SISO-Operationen für jede Iteration der Decodierung durchzuführen.
  • Die Funktionalität dieser Figur ermöglicht die Beibehaltung der Reihenfolge von decodierten Symbolen, um sie an die Reihenfolge anzupassen, in der die Eingangssymbole in einen Codierer eingegeben wurden (der sich in einem Sender am anderen Ende eines Kommunikationskanals befindet), bevor sie von einem Empfänger empfangen werden (der den erfindungsgemäßen TTCM-Decoderentwurf aufweist).
  • Der endgültige Decodierungsausgang stellt folgendes sicher: wenn eine Symbolsequenz, S1S2S3S4, in den Codierer eingegeben wird (der sich wiederum auf einer Senderseite des Kommunikationskanals befindet), und wenn dann die folgenden codierten Symbole (S1-encS2-encS3-encS4-enc) von dem Decoder empfangen werden, dann behalten die decodierten Schätzungen dieser empfangenen Symbole diese gleiche sequentielle Reihenfolge bei. Ein MUX, dessen Selektion von einem Taktsignal zur Verfügung gestellt wird, das mit der 1/2 Rate (gezeigt unter T/2) getaktet ist, wählt alternativ die Ausgänge von dem Ausgang und Eingang des Deinterleavers, der kommunikationsmäßig mit dem unteren SISO gekoppelt ist. Falls gewünscht, kann die Funktionalität dieses MUX bei jeder der vorausgehend beschriebenen Ausführungsformen als innerhalb des Ausgangsprozessors befindlich angesehen werden. Diese Figur zeigt eine Ausführungsform davon, wie dies in dem in dem endgültigen Decodierungsschritt durchgeführt werden kann. Wiederum kann die vorliegend gezeigte Funktionalität auch in Ausführungsformen unterstützt werden, in denen die Funktionalität des oberen und des unteren SISOs als Durchführung in einem einzelnen SISO implementiert wird, der gemäß bestimmten Aspekten der Erfindung mehrfach durchlaufen wird.
  • 17 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der letzten Iteration der SISO-Verarbeitung gemäß der Erfindung (in einer Ausführungsform unter Verwendung eines mehrfach durchlaufenen SISO gezeigt). Diese Figur kann als Veranschaulichung einer analogen Funktionalität angesehen werden, die in der vorherigen Figur beschrieben ist, mit der Ausnahme, dass ein einzelner, mehrfach durchlaufener SISO verwendet wird, und die alternative Wahl des Ausgangs von dem SISO und der Interleaver/Deinterleaver-Funktionalität (vorausgehend als unter Verwendung eines MUX durchgeführt gezeigt) in dem Ausgangsprozessor unterstützt wird. Funktionell gesprochen können die weichen Symbolentscheidungen und/oder weichen Bitentscheidungen als alternierend aus jedem zweiten Strom gewählt angesehen werden. Falls gewünscht, kann die Reihenfolge der Wahl von gerad-/ungeradzahlig bei einer gegebenen Implementierung nach Wunsch modifiziert werden.
  • Es wird vorliegend auch angemerkt, dass die weichen Symbolentscheidungen und/oder weichen Bitentscheidungen, die von dem SISO und den Interleaver/Deinterleaver-Funktionsblöcken zur Verfügung gestellt werden, nur einmal an den Ausgangsprozessor geliefert zu werden brauchen; es braucht keine Rücksprungverarbeitung durchgeführt zu werden, da dem Ausgangsprozessor die Daten nur einmal zugeführt werden müssen, und weiterhin gibt es während der letzten Iteration der SISO-Verarbeitung keine Rückleitung von extrinsischer Information an den SISO.
  • 18 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer SISO-Funktionalität zur Verarbeitung eines empfangenen Blocks, die gemäß der Erfindung unterstützt wird. In dieser Figur sind die anfängliche Alpha-Berechnung und Beta-Berechnung als gleichzeitig und parallel durchgeführt gezeigt. Beispielsweise beginnt die Alpha-Berechnung am Blockanfang und geht zur Blockmitte hin weiter. Für die äußeren Unterblöcke, die vom Blockanfang auf die Blockmitte hin verarbeitet werden (und sich links von der Blockmitte befinden), führt die SISO-Funktionalität zur Verarbeitung eines empfangenen Blocks eine Berechnung der Alphas durch und schiebt die geeigneten Prüfpunktwerte auf einen Prüfpunktstapel. Nachdem die Verarbeitung den letzten Unterblock benachbart zur Blockmitte erreicht hat, wird jeder Alpha-Wert, der jedem Symbol zugeordnet ist, auf einen Alpha/Beta-Stapel geschoben.
  • Wie vorausgehend erwähnt wurde, wird die anfängliche Alpha-Berechnung gleichzeitig mit der anfänglichen Beta-Berechnung durchgeführt. Beispielsweise beginnt die Beta-Berechnung am Blockende und geht zur Blockmitte hin weiter. Für die äußeren Unterblöcke, die vom Blockende auf die Blockmitte hin verarbeitet werden, führt die SISO-Funktionalität zur Verarbeitung eines empfangenen Blocks eine Berechnung von Betas durch und schiebt die geeigneten Prüfpunktwerte auf einen Prüfpunktstapel. Nachdem die Verarbeitung den letzten Unterblock erreicht hat, der sich benachbart zur Blockmitte (rechts von der Blockmitte) befindet, wird jeder Beta-Wert, der jedem Symbol zugeordnet ist, auf einen Alpha/Beta-Stapel geschoben.
  • Die Verarbeitungsfunktionalität führt als Nächstes eine Rücksprungverarbeitung für die vorherigen Unterblöcke durch, die bei der Berechnung der Alphas und Betas bzw. beim Berechnen und Speichern der geeigneten Prüfpunktwerte verarbeitet wurden. Beispielsweise umfasst die Rücksprungverarbeitung im Zusammenhang mit der Alpha-Verarbeitung die Berechnung von Alphas, während gleichzeitig die kürzlich berechneten Betas aus dem Alpha/Beta-Stapel entnommen werden. Diese Alpha- und Beta-Werte, die dem gegenwärtigen Symbol entsprechen, werden dann zur Verwendung beim Berechnen des geeigneten extrinsischen Wertes für das gegenwärtige Symbol geliefert. Zusätzlich wird gleichzeitig eine erneute Berechnung von Alphas des geeigneten vorherigen Unterblocks durchgeführ, wenn die Verarbeitung dieses Unterblocks durchgeführt wird. Dieser Vorgang wird wiederholt, bis die Blockenden erreicht sind.
  • Eine analoge Verarbeitung wird in der anderen Richtung durchgeführ, welche die erneute Berechnung von Betas der geeigneten vorherigen Unterblöcke umfasst. Beispielsweise umfasst die Rücksprungverarbeitung im Zusammenhang mit der Beta-Verarbeitung die Berechnung von Betas, während gleichzeitig die kürzlich berechneten Alphas aus dem Alpha/Beta-Stapel entnommen werden. Diese Alpha- und Beta-Werte, die dem gegenwärtigen Symbol entsprechen, werden daraufhin zur Verwendung beim Berechnen des geeigneten extrinsischen Wertes für das gegenwärtige Symbol geliefert.
  • Es zeigt sich, dass von der Erfindung eine Menge an gleichzeitiger und paralleler Verarbeitung zur Verfügung gestellt wird. Im Zusammenwirken ermöglicht dies eine extrem schnelle und effiziente Verarbeitung eines empfangenen Blocks.
  • 19 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der SISO-Funktionsblockanordnung gemäß der Erfindung. Die Funktionsblockanordnung von 19 kann als eine mögliche Hardware-Implementierungsanordnung angesehen werden, welche die Verarbeitung eines empfangenen Blocks gemäß der Erfindung einschließlich der Rücksprungverarbeitung unterstützt. Ein Eingang wird an einen Alpha/Beta-Berechnungsfunktionsblock 1 geliefert zur Verwendung bei der Durchführung der anfänglichen Berechnung der Alphas und Betas, die an den Enden des Blocks beginnt und auf die Blockmitte hin weiter geht. Die geeigneten Prüfpunktwerte für jeden der Unterblöcke (Alpha-Prüfpunktwerte oder Beta-Prüfpunktwerte) werden auf einen Prüfpunktstapel geschoben.
  • Wenn die Verarbeitung die zwei Unterblöcke benachbart zur Blockmitte erreicht hat, werden die Werte für jedes Alpha (bzw. Beta) in einen Alpha/Beta-Stapel geschoben, der als logisch partitionierter Stapel implementiert sein kann. Danach, wenn die Verarbeitungspfade jeder Richtung einander überkreuzen, kann ein Alpha/Beta-Berechnungsfunktionsblock 2 implementiert werden, um die fortgesetzte Berechnung der Alphas/Betas in der gleichen Richtung durchzuführen, während der Alpha/Beta-Berechnungsfunktionsblock 1 die erneute Berechnung unter Verwendung einer Rücksprungverarbeitung durchführt, wie in anderen Ausführungsformen der Erfindung beschrieben ist. Diese erneut berechneten Werte werden daraufhin an den Alpha/Beta-Stapel geliefert, wo sie in einem logisch partitionierten Bereich davon gespeichert werden.
  • Ein extrinsischer Wert und/oder Ausgangswert-Berechnungsfunktionsblock empfängt diese zuletzt berechneten Alpha- und Beta-Werte, die von dem Alpha/Beta-Berechnungsfunktionsblock 2 berechnet wurden, und ruft gleichzeitig das geeignete entsprechende Alpha oder Beta für ein bestimmtes Symbol ab (entnimmt das geeignete entsprechende Alpha oder Beta aus dem geeigneten Abschnitt des Alpha/Beta-Stapels) zur Verwendung bei der Berechnung des extrinsischen Wertes, der dem vorliegenden Symbol zugeordnet ist. Ein Kompensations-Funktionsblock ist zwischen den Alpha/Beta-Stapel und den extrinsische Wert- und/oder Ausgangswert- Berechnungsfunktionsblock geschaltet, um die Latenzzeit des Alpha/Beta-Berechnungsfunktionsblocks 2 zu kompensieren. Auf ähnliche Weise ist ein Kompensation-Funktionsblock zwischen den Alpha/Beta-Berechnungsfunktionsblock 1 und den Alpha/Beta-Stapel geschaltet, um die Latenzzeit des Alpha/Beta-Berechnungsfunktionsblocks 1 zu kompensieren.
  • Obgleich diese Figur eine mögliche Funktionsblockanordnung zum Unterstützen der Berechnung der verschiedenen Werte zeigt, die bei der Verarbeitung eines empfangenen Blocks gemäß der Erfindung durchgeführt wird, veranschaulicht dies nur eine mögliche Implementierungs-Ausführungsform, welche die Verarbeitung des empfangenen Blocks auf die vorliegend beschriebene Weise erzielt.
  • 20 ist ein Diagramm zur Veranschaulichung einer Ausführungsform einer Adressenerzeugung für einen Interleaver/Deinterleaver-Funktionsblock gemäß der Erfindung. Diese Figur zeigt eine mögliche Implementierung davon, wie die Adressenerzeugung für den Interleaver/Deinterleaver erzielt werden kann. Die Struktur ist dazu ausgelegt, die Decodierung eines codierten Symbols mit zwei Bitspuren einzubeziehen, die dann als i0i1 dargestellt werden können. Beginnend oben in der Figur wird ein FIFO verwendet, der anweist, welche Verschachtelungssequenz auf jede Bitspur des eingegebenen Symbols angewendet werden soll. Beispielsweise kann die Bitspur i0 auf eine andere Weise behandelt werden als die Bitspur i1. Darunter erzeugt ein Sequenzerzeugungsabschnitt die geeignete Sequenz, die für die Operation zum Lesen aus dem Block verwendet werden soll; dies umfasst auf geeignete Weise auch einen Umgang mit der Rücksprungverarbeitung, der gemäß der Erfindung durchgeführt wird. Unter diesem Abschnitt ist ein Abwärtszähler, der in der Mitte des Blocks (der Blockmitte) beginnt und abwärts bis Null zählt, weil die aus dem SISO kommenden Daten die Blockmitte bilden; dies braucht nur für eine Hälfte des Blocks durchgeführt zu werden, weil die Daten gefaltet sind (die Hälfte der Daten ist bereits in der richtigen Reihenfolge des Vorgehens). Unter diesem Abschnitt ist ein 2-zu-1-MUX, der entscheidet, ob die Adresse für Lesen oder Schreiben (r/w) zur Verfügung gestellt werden soll; dieser 2-zu-1-MUX wird dazu verwendet, die geeignete Adresse zu wählen, die für die Lese- und Schreib (r/w)-Ströme erzeugt wird.
  • In der Mitte dieses Funktionsblocks befindet sich der s-Bus, ein RAM, der logisch in 6 verschiedene Abschnitte partitioniert ist. Der s-Bus enthält 6 RAMs, die in einen x-Abschnitt und einen y-Abschnitt partitioniert sind, die gleichzeitig 3 verschiedene Verschachtelungssequenzen für die 2 Bitspuren, i0i1, unterstützen können. Es wird jedoch angemerkt, dass der s-Bus logisch partitioniert (skaliert) sein kann, so dass er mehr und/oder weniger Verschachtelungssequenzen einbezieht; der RAM kann auch als Synchronous RAMs implementiert sein. Die Daten können unter Verwendung von gerad-/ungeradzahligem Pingponging geschrieben/gelesen werden. Die Adressen können jeden zweiten CLK-Zyklus gezogen werden, um ein Prefetching zu ermöglichen, das ein gleichzeitiges r/w auf den s-Bus gestattet. Die Verschachtelungssequenz umfasst das Schreiben der Daten auf eine permutierte (gefaltete) Weise und das sequentielle Durchführen des Lesens der Daten. Die Entschachtelungssequenz umfasst das Schreiben der Daten auf sequentielle Weise und Lesen der Daten auf eine permutierte (gefaltete) Weise, was auch oben in anderen Ausführungsformen beschrieben ist.
  • Unter dem s-Bus sind 2 separate 3-zu-1-MUXes. Jeder 3-zu-1-MUX wird für die jeweilige Verschachtelungssequenz der ersten und der zweiten Bitspur des eingegebenen Symbols verwendet. Unter den 3-zu-1-MUXes ist ein Latenzblock/Flipflop, der betreibbar ist, um die Daten mit ihren Adressen aus dem RAM anzuordnen. Ein Addierer befindet sich unter dem Block/Flipflop, um die Adressen für die Blockenden zu erzeugen; dies geschieht, um die gefaltete Weise einzubeziehen, auf welche die Daten verarbeitet werden sollen. Unter dem Addierer sind zwei separate DeMU-Xes (Demultiplexer), die präziser als eine Handshaking-Schaltungsanordnung charakterisiert werden können, die arbeitet, um das erforderliche Registrieren/Puffern zur Verfügung zu stellen, so dass die Daten bei Bedarf ausgesendet werden. Die De-MUXes regeln, ob der Wert auf eine permutierte/nicht-permutierte Weise geliefert werden soll; die DeMUXes liefern den Strom von Adressen [4 Adresswerte, aus dem RAM prefetched], der auf eine Weise zur Verfügung gestellt werden kann, die nicht taktabhängig ist.
  • 21 ist ein Diagramm zur Veranschaulichung einer Ausführungsform eines Bitverschachtelungs-/-entschachtelungs-Funktionsblocks gemäß der Erfindung. Der Bitverschachtelungs-/-entschachtelungs-Funktionsblock weist einen logisch partitionierten RAM auf, der eine RAM-Bank 1 und eine RAM-Bank 2 enthält; die RAM-Bank 1 und die RAM-Bank 2 sind ferner jeweils in einen oberen Abschnitt und einen unteren Abschnitt unterteilt. Das Lesen aus dem RAM findet auf eine Weise statt, die von den Enden des Blocks her beginnt und auf die Blockmitte hin weiter geht, und das Schreiben in den RAM findet auf eine Weise statt, die von der Blockmitte her beginnt und auf die Enden des Blocks hin weiter geht. Die geradzahligen Verschachtelungsorte mappen auf die geradzahligen Stellen in dem RAM, und die ungeradzahligen Verschachtelungsorte mappen auf die ungeradzahligen Stellen in dem RAM. Zusätzlich wird das Lesen/Schreiben der Stellen in diesem logisch partitionierten RAM bei jeder SISO-Operation vertauscht.
  • Um den Betrieb des Bitverschachtelungs-/-entschachtelungs-Funktionsblocks zu veranschaulichen, sind zwei separate Taktzyklen gezeigt. Bei Betrachtung von CLK-Zyklus 1 werden 4 separate Eingabe/Ausgabe (i/o)-Operationen durchgeführt (2 Lesen/2 Schreiben), und 2 extrinsische Werte können daraus berechnet werden. Genauer gesagt, der Wert, welcher Bitspur i0 zugeordnet ist, wird in die geradzahlige Stelle der RAM-Bank 1 geschrieben, und der Wert, welcher Bitspur i1 zugeordnet ist, wird in die ungeradzahlige Stelle der RAM-Bank 1 geschrieben. Gleichzeitig wird der vorausgehend berechnete Wert, welcher Bitspur i0 zugeordnet ist, aus der geradzahligen Stelle der RAM-Bank 2 gelesen, und der vorausgehend berechnete Wert, welcher Bitspur i1 zugeordnet ist, wird aus der ungeradzahligen Stelle der RAM-Bank 2 gelesen.
  • Im nächsten Taktzyklus, das als ein CLK-Zyklus 2 gezeigt ist, werden 4 separate Eingabe/Ausgabe (i/o)-Operationen durchgeführt (2 Lesen/2 Schreiben), und 2 extrinsische Werte können daraus berechnet werden. Es wird angemerkt, dass die Lese-/Schreib-Abschnitte daraufhin während dieses Taktzyklus vertauscht werden. Beispielsweise wird der vorausgehend berechnete Wert, welcher Bitspur i0 zugeordnet ist, aus der geradzahligen Stelle der RAM-Bank 1 gelesen, und der vorausgehend berechnete Wert, welcher Bitspur i1 zugeordnet ist, wird aus der ungeradzahligen Stelle der RAM-Bank 1 gelesen. Gleichzeitig wird der Wert, welcher Bitspur i0 zugeordnet ist, in die geradzahlige Stelle der RAM-Bank 2 geschrieben, und der Wert, welcher Bitspur i1 zugeordnet ist, wird in die ungeradzahlige Stelle der RAM-Bank 2 geschrieben.
  • 22 ist ein Diagramm zur Veranschaulichung einer Ausführungsform der Zählerverwendung in der erfindungsgemäßen Blockverarbeitung (in einer 128-Symbol-Unterblockausführungsform gezeigt). Zu Zwecken der Übersichtlichkeit der Veranschaulichung ist die Verwendung der Zähler zum Unterstützen der Verarbeitung der Erfindung unter Verwendung von nur einer Seite des Blocks gezeigt. Die vorliegend beschriebene Funktionalität ist jedoch unmittelbar auch zum Unterstützen des Zählens der anderen Hälfte des Blocks anwendbar.
  • Zwei separate Zähler sind implementiert, um bei der erfindungsgemäßen Verarbeitung des empfangenen Blocks ein Vorwärts- und ein Rückwärtszählen durchzuführen, einschließlich eines Unterstützens der vorliegend beschriebenen Rücksprungverarbeitung. Anfänglich werden Vorwärtszähler verwendet, die basierend auf der Unterblockgröße der Unterblöcke in dem Block im Kreis zu zählen, um die Zeitpunkte der Prüfpunktwerte (die in dieser Hälfte Alpha-Prüfpunktwerte sind) einzubeziehen und zu lokalisieren; diese Periode ist als 1 gezeigt. Nach dem Erreichen des Unterblocks unmittelbar links von der Blockmitte, konkret gesprochen, wenn die Mitte dieses Unterblocks erreicht ist (halbwegs durch die 128 Symbole des Unterblocks, bei Symbol 64 in dem Unterblock), zählt ein Zähler weiter vorwärts, während ein Rückwärtszähler dann beginnt, rückwärts zu zählen. Dadurch soll sichergestellt werden, dass auch der Rückwärtszähler den Anfang dieses Unterblocks erreicht, wenn der Vorwärtszähler das Ende dieses Unterblocks erreicht.
  • Die entsprechenden Vorwärts- und Rückwärtszähler arbeiten im Zusammenwirken, um eine ordnungsgemäße Sequenzierung der berechneten Alphas, Betas, und extrinsischen Werte zu erzielen, die berechnet, selektiv gespeichert und abgerufen werden, und (in einigen Fällen) bei der Durchführung der Verarbeitung eines empfangenen Blocks zum Decodieren der darin enthaltenen Symbole erneut berechnet werden. Die Werte der Vorwärtszähler können mit den Werten der Rückwärtszähler erneut geladen werden, um eine ordnungsgemäße Synchronisation und Indexierung der verschiedenen Symbole zu gewährleisten, wenn die Decodierung dieser Symbole durchgeführt wird.
  • Es wird auch angemerkt, dass diese Ausführungsform zwar so gezeigt ist, dass sie eine solche Symbolsequenzlänge einbeziehen, dass die Unterblöcke eine Länge von jeweils 128 Symbolen aufweisen, dass aber die mit den Zählern hierbei verwendeten Werte jedoch modifiziert werden können, um auch andere Symbollängen einzubeziehen. Die Verwendung der Vorwärts- und Rückwärtszähler im Zusammenwirken mit dem erneuten Laden der Werte der Vorwärtszähler mit den Werten der Rückwärtszähler ermöglicht eine ordnungsgemäße Indexierung der Symbole, um die Verarbeitung des empfangenen Blocks gemäß der Erfindung zu unterstützen.
  • 23 ist ein Ablaufdiagramm zur Veranschaulichung einer Ausführungsform des erfindungsgemäß durchgeführten Verfahrens zur Verarbeitung eines empfangenen Blocks. Indem von Blockenden begonnen wird, beginnt das Verfahren mit der Verarbeitung von Symbolen zum Berechnen von Alphas und Betas und Speichern von Prüfpunktwerten, wie in einem Block 2310 gezeigt ist. Wenn das Verfahren daraufhin die Verarbeitung fortsetzt und auf die letzten Unterblöcke trifft, die sich jeweils auf einer Seite der Blockmitte befinden, werden die entsprechenden Alpha- und Beta-Werte auf Stapel geschoben, wie in einem Block 2320 gezeigt ist. Das Verfahren führt dann eine Unterblock-Rücksprungverarbeitung auf die zwei Blockkanten hin durch, wie in einem Block 2330 gezeigt ist. Dabei berechnet das Verfahren die Alphas (und die Betas) erneut unter Verwendung der vorausgehend gespeicherten Prüfpunktwerte für die vorherigen Unterblöcke. Für den gegenwärtigen Unterblock entnimmt das Verfahren gleichzeitig die entsprechenden Betas (und die entsprechenden Alphas) aus Stapeln für die Verwendung mit den zuletzt berechneten Alphas bei der Durchführung der Berechnung der extrinsischen Werte. Das Verfahren führt dann tatsächlich die Berechnungen der extrinsischen Werte unter Verwendung dieser geeigneten Alphas und Betas für jedes Symbol in dem Block durch, wie in einem Block 2340 gezeigt ist.
  • Aus der oben stehenden detaillierten Beschreibung der Erfindung und der dazu gehörigen Zeichnung ergeben sich nun auch andere Modifikationen und Variationen.

Claims (14)

  1. Soft-In-Soft-Out-Funktionsblock, SISO, der eine Mehrzahl von weichen Symbolentscheidungen für einen Block berechnet, welcher eine Mehrzahl von codierten Symbolen umfasst, die in einer Mehrzahl von Unterblöcken angeordnet sind, wobei der SISO aufweist: während eines ersten Zeitraums berechnet ein erster Alpha/Beta-Metrikberechnungs-Funktionsblock nacheinander Vorwärts-Alphametriken ab dem Blockanfang zur Blockmitte hin und speichert Vorwärts-Alphametriken, die dem Anfang eines Unterblocks zugeordnet sind, selektiv in einer ersten Hälfte des Blocks als Alpha-Prüfpunktwerte; während des ersten Zeitraums berechnet der erste Alpha/Beta-Metrikberechnungs-Funktionsblock auch nacheinander Rückwärts-Beta-Metriken ab dem Blockende zur Blockmitte hin und speichert Rückwärts-Beta-Metriken, die dem Ende eines Unterblocks zugeordnet sind, selektiv in einer zweiten Hälfte des Blocks als Beta-Prüfpunktwerte; während eines zweiten Zeitraums berechnet der erste Alpha/Beta-Metrikberechnungs-Funktionsblock beim Erreichen eines abschließenden Unterblocks der ersten Hälfte des Blocks eine Vorwärts-Alpha-Metrik für jedes codierte Symbol, das darin enthalten ist, und speichert die berechneten Vorwärts-Alphametriken; während des zweiten Zeitraums berechnet der erste Alpha/Beta-Metrikberechnungs-Funktionsblock beim Erreichen eines abschließenden Unterblocks der zweiten Hälfte des Blocks auch eine Rückwärts-Beta-Metrik für jedes codierte Symbol, das darin enthalten ist, und speichert die berechneten Rückwärts-Beta-Metriken; wobei ein dritter Zeitraum eintritt, nachdem der erste Alpha/Beta-Metrikberechnungs-Funktionsblock die Verarbeitung sowohl des abschließenden Unterblocks der ersten Hälfte des Blocks als auch des abschließenden Unterblocks der zweiten Hälfte des Blocks abgeschlossen hat; während des dritten Zeitraums berechnet ein zweiter Alpha/Beta-Metrikberechnungs-Funktionsblock nacheinander Vorwärts-Alphametriken für jedes Symbol des abschließenden Unterblocks der zweiten Hälfte des Blocks; während des dritten Zeitraums berechnet der zweite Alpha/Beta-Metrikberechnungs-Funktionsblock nacheinander Rückwärts-Beta-Metriken für jedes Symbol des abschließenden Unterblocks der ersten Hälfte des Blocks; während des dritten Zeitraums führt der erste Alpha/Beta-Metrikberechnungs-Funktionsblock eine Rücksprungverarbeitung durch, um nacheinander Vorwärts-Alphametriken für jedes codierte Symbol eines Unterblocks, der dem abschließenden Unterblock in der ersten Hälfte des Blocks voraus geht, erneut zu berechnen, und speichert die erneut berechneten Vorwärts-Alphametriken; und während des dritten Zeitraums führt der erste Alpha/Beta-Metrikberechnungs-Funktionsblock eine Rücksprungverarbeitung durch, um nacheinander Rückwärts-Beta-Metriken für jedes codierte Symbol eines Unterblocks, der dem abschließenden Unterblock in der zweiten Hälfte des Blocks voraus geht, erneut zu berechnen, und speichert die erneut berechneten Rückwärts-Beta-Metriken.
  2. SISO nach Anspruch 1, welcher ferner einen Funktionsblock zur Berechnung extrinsischer Werte aufweist, der eine entsprechende weiche Symbolentscheidung für jedes codierte Symbol in dem abschließenden Unterblock der ersten Hälfte des Blocks unter Verwendung der gespeicherten Vorwärts-Alphametriken und der berechneten Rückwärts-Beta-Metriken berechnet.
  3. SISO nach Anspruch 2, wobei der SISO kommunikationsmäßig mit einem Ausgabeprozessor gekoppelt ist, der die Mehrzahl von weichen Symbolentscheidungen auf eine solche Weise selektiv empfängt, dass jede der Mehrzahl von weichen Symbolentscheidungen in der gleichen Reihenfolge wie die Mehrzahl von in dem SISO empfangenen codierten Symbolen geordnet ist, und daraus eine entsprechende harte Symbolentscheidung berechnet.
  4. SISO nach Anspruch 1, welcher ferner einen Funktionsblock zur Berechnung extrinsischer Werte aufweist, der eine entsprechende weiche Symbolentscheidung für jedes codierte Symbol in dem abschließende Unterblock der zweiten Hälfte des Blocks unter Verwendung der gespeicherten Rückwärts-Beta-Metriken und der berechneten Vorwärts-Alphametriken berechnet.
  5. SISO nach Anspruch 4, wobei der SISO kommunikationsmäßig mit einem Ausgabeprozessor gekoppelt ist, der die Mehrzahl von weichen Symbolentscheidungen auf eine solche Weise selektiv empfängt, dass jede der Mehrzahl von weichen Symbolentscheidungen in der gleichen Reihenfolge wie die Mehrzahl von in dem SISO empfangenen codierten Symbolen geordnet ist, und daraus eine entsprechende harte Symbolentscheidung berechnet.
  6. SISO nach Anspruch 1, wobei während des zweiten Zeitraums der erste Alpha/Beta-Metrikberechnungs-Funktionsblock die Vorwärts-Alphametriken und die Rückwärts-Beta-Metriken speichert, indem er sie auf einen gemeinsamen Alpha/Beta-Stapel schiebt.
  7. SISO nach Anspruch 1, wobei die Mehrzahl von codierten Symbolen gemäß einer Ratensteuersequenz codiert ist, bei der eine Mehrzahl von Ratensteuerungen in einer Periode angeordnet ist.
  8. SISO nach Anspruch 7, wobei eine Ratensteuerung der Mehrzahl von Ratensteuerungen eine Modulation umfasst, die eine Konstellation mit einem Mapping umfasst.
  9. SISO nach Anspruch 7, wobei eine erste Ratensteuerung der Mehrzahl von Ratensteuerungen eine erste Modulation umfasst, die eine erste Konstellation mit einem ersten Mapping umfasst; und wobei eine zweite Ratensteuerung der Mehrzahl von Ratensteuerungen eine zweite Modulation umfasst, die eine zweite Konstellation mit einem zweiten Mapping umfasst.
  10. Kommunikationssystem, das einen Kommunikationsempfänger enthält, der einen Decoder einschließlich des SISO von Anspruch 1 aufweist, wobei das Kommunikationssystem eines von einem Satelliten-Kommunikationssystem, einem HDTV-Kommunikationssystem, einem zellulären Kommunikationssystem, einem Mikrowellen-Kommunikationssystem; einem Punkt-zu-Punkt-Kommunikationssystem, einem unidirektionalen Kommunikationssystem, einem bidirektionalen Kommunikationssystem, einem One-to-Many-Kommunikationssystem und einem Faseroptik-Kommunikationssystem ist.
  11. Decoder zum Decodieren eines Blocks, der eine Mehrzahl von in einer Mehrzahl von Unterblöcken angeordneten codierten Symbolen umfasst, wobei der Decoder aufweist: den Soft-In-Soft-Out-Funktionsblock, SISO, von Anspruch 1, der auf der Grundlage einer Mehrzahl von Trellismetriken eine erste Mehrzahl von extrinsischen Werten für jedes codierte Symbol der Mehrzahl von codierten Symbolen berechnet; einen kommunikationsmäßig mit dem SISO gekoppelten Interleaver/Deinterleaver, der die erste Mehrzahl von extrinsischen Werten einer Interleaver-Verarbeitung unterzieht, um erste "a priori-Wahrscheinlichkeit"-Informationen zu erzeugen; wobei der SISO auf der Grundlage der Mehrzahl von Trellismetriken eine zweite Mehrzahl von extrinsischen Werten für jedes codierte Symbol der Mehrzahl von codierten Symbolen berechnet; wobei der kommunikationsmäßig mit dem SISO gekoppelte Interleaver/Deinterleaver die zweite Mehrzahl von extrinsischen Werten einer Deinterleaver-Verarbeitung unterzieht, um zweite "a priori-Wahrscheinlichkeit"-Informationen zu erzeugen; wobei die ersten "a priori-Wahrscheinlichkeit"-Informationen während einer ersten SISO-Operation zurück an den SISO geliefert werden; wobei die zweiten "a priori-Wahrscheinlichkeit"-Informationen während einer zweiten SISO-Operation zurück an den SISO geliefert werden; wobei der SISO die erste SISO-Operation und die zweite SISO-Operation während mindestens einer Iteration einer iterativen Decodierung durchführt, um eine Mehrzahl von weichen Symbolentscheidungen zu erzeugen, wobei jede weiche Symbolentscheidung der Mehrzahl von weichen Symbolentscheidungen einem codierten Symbol der Mehrzahl von codierten Symbolen entspricht.
  12. Decoder nach Anspruch 11, wobei die Mehrzahl von codierten Symbolen gemäß einer Ratensteuersequenz codiert ist, bei der eine Mehrzahl von Ratensteuerungen in einer Periode angeordnet ist.
  13. Verfahren zur Verarbeitung eines empfangenen Blocks, welches einen Block decodiert, der eine Mehrzahl von codierten Symbolen umfasst, die in einer Mehrzahl von Unterblöcken angeordnet sind, wobei das Verfahren umfasst: während eines ersten Zeitraums, aufeinander folgendes Berechnen von Vorwärts-Alphametriken ab dem Blockanfang zur Blockmitte hin und selekti ves Speichern der Vorwärts-Alphametriken, die dem Anfang eines Unterblocks zugeordnet sind, in einer ersten Hälfte des Blocks als Alpha-Prüfpunktwerte; während des ersten Zeitraums, aufeinander folgendes Berechnen von Rückwärts-Beta-Metriken ab dem Blockende zur Blockmitte hin und selektives Speichern von Rückwärts-Beta-Metriken, die dem Ende eines Unterblocks zugeordnet sind, in einer zweiten Hälfte des Blocks als Beta-Prüfpunktwerte; während eines zweiten Zeitraums, beim Erreichen eines abschließenden Unterblocks der ersten Hälfte des Blocks, Berechnen einer Vorwärts-Alpha-Metrik für jedes codierte Symbol, das darin enthalten ist, und Speichern der berechneten Vorwärts-Alphametriken; während des zweiten Zeitraums, beim Erreichen eines abschließenden Unterblocks der zweiten Hälfte des Blocks, Berechnen einer Rückwärts-Beta-Metrik für jedes codierte Symbol, das darin enthalten ist, und Speichern der berechneten Rückwärts-Beta-Metriken; wobei ein dritter Zeitraum eintritt, nachdem die Verarbeitung sowohl des abschließenden Unterblocks der ersten Hälfte des Blocks als auch des abschließenden Unterblocks der zweiten Hälfte des Blocks abgeschlossen ist; während des dritten Zeitraums, aufeinander folgendes Berechnen von Vorwärts-Alphametriken für jedes Symbol des abschließenden Unterblocks der zweiten Hälfte des Blocks; während des dritten Zeitraums, aufeinander folgendes Berechnen von Rückwärts-Beta-Metriken für jedes Symbol des abschließenden Unterblocks der ersten Hälfte des Blocks; während des dritten Zeitraums, Durchführen einer Rücksprungverarbeitung zum aufeinander folgenden erneuten Berechnen von Vorwärts-Alphametriken für jedes codierte Symbol eines Unterblocks, der dem abschließenden Unterblock in der ersten Hälfte des Blocks voraus geht, und Speichern der erneut berechneten Vorwärts-Alphametriken; und während des dritten Zeitraums, Durchführen einer Rücksprungverarbeitung zum aufeinander folgenden erneuten Berechnen von Rückwärts-Beta-Metriken für jedes codierte Symbol eines Unterblocks, der dem abschließenden Unterblock in der zweiten Hälfte des Blocks voraus geht, und Speichern der erneut berechneten Rückwärts-Beta-Metriken.
  14. Verfahren nach Anspruch 13, welches ferner das Berechnen einer entsprechenden weichen Symbolentscheidung für jedes codierte Symbol in dem abschließenden Unterblock der ersten Hälfte des Blocks unter Verwendung der gespeicherten Vorwärts-Alphametriken und der berechneten Rückwärts-Beta-Metriken umfasst.
DE2003612923 2002-05-31 2003-05-30 Soft-In Soft-Out Dekoder für Turbo-Trelliskodierte Modulation Expired - Lifetime DE60312923T2 (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US38469802P 2002-05-31 2002-05-31
US384698P 2002-05-31
US10/264,486 US7093187B2 (en) 2002-05-31 2002-10-04 Variable code rate and signal constellation turbo trellis coded modulation codec
US264486 2002-10-04
US43473402P 2002-12-18 2002-12-18
US434734P 2002-12-18
US10/444,148 US7107512B2 (en) 2002-05-31 2003-05-22 TTCM decoder design
US444148P 2003-05-22

Publications (2)

Publication Number Publication Date
DE60312923D1 DE60312923D1 (de) 2007-05-16
DE60312923T2 true DE60312923T2 (de) 2007-12-13

Family

ID=29587832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003612923 Expired - Lifetime DE60312923T2 (de) 2002-05-31 2003-05-30 Soft-In Soft-Out Dekoder für Turbo-Trelliskodierte Modulation

Country Status (2)

Country Link
EP (1) EP1367732B1 (de)
DE (1) DE60312923T2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006324754A (ja) * 2005-05-17 2006-11-30 Fujitsu Ltd 最大事後確率復号方法及び復号装置
US7616713B2 (en) 2005-05-31 2009-11-10 Skyworks Solutions, Inc. System and method for forward and backward recursive computation
EP2525497A1 (de) * 2011-05-18 2012-11-21 Panasonic Corporation Bitverschachtelte Codierte Modulation (BICM) mit quasi-zyklischen LDPC Codes
CN103634014A (zh) * 2012-08-24 2014-03-12 中兴通讯股份有限公司 一种ldpc编码方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1156588B1 (de) * 1999-03-01 2007-05-09 Fujitsu Limited Verfahren und Vorrichtung zur Maximum-a-Posteriori Warscheinlichkeits-Dekodierung
US7242726B2 (en) * 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder

Also Published As

Publication number Publication date
DE60312923D1 (de) 2007-05-16
EP1367732B1 (de) 2007-04-04
EP1367732A3 (de) 2005-01-05
EP1367732A2 (de) 2003-12-03

Similar Documents

Publication Publication Date Title
DE602005000595T2 (de) Iterative Demodulation und Decodierung von multi-level Turbo oder LDPC (low-density parity-check) codierten Modulationssignalen
DE69836120T2 (de) Verfahren zur Kodierung und Modulation, sowie Einrichtung zur dessen Ausführung
DE69922707T2 (de) Sender und Empfänger mit Ratenanpassung
DE3910739C2 (de)
DE69634607T2 (de) Burstübertragung variabler länge über die physikalische schicht eines mehrschichten-übertragungsformats
EP0301161B1 (de) Verfahren zur Aufbereitung eines Faltungscodes zur Übertragung sowie dessen empfangsseitige Rückwandlung sowie Anordnung hierzu
DE60132179T2 (de) Verfahren und vorrichtung für kombinierte soft-decision-entscheidungsbasierte interferenzunterdrückung und dekodierung
DE60037841T2 (de) Datenmultiplexverfahren und Datenmultiplexmittel und Datenübertragungsverfahren und Datenübertragungsmittel
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
DE60033198T2 (de) Verfahren und vorrichtung für turbo raum-zeit trelliskodierung
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
DE112004002008B4 (de) Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme
WO2003071689A2 (de) Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler
DE60003071T2 (de) Verfahren zur dekodierung von mit einem entropie-code kodierten daten, entsprechende dekodierungsvorrichtung und übertragungssystem
DE60035269T2 (de) Verfahren und apparat zur bestimmung von kanalbedingungen in drahtlosen kommunikationssystemen
DE10310812B4 (de) Dekodiervorrichtung, Trellis-Prozessor und Verfahren
DE60312923T2 (de) Soft-In Soft-Out Dekoder für Turbo-Trelliskodierte Modulation
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
EP1302014B1 (de) Verfahren und einrichtung zur diversitätsübertragung codierter information
EP1269633B1 (de) Optimierter turbo-decodierer
DE69932001T2 (de) Faltungsdekodierung , Durchführungsverfahren und Anordnung
DE60319557T2 (de) Verfahren zur Verminderung der Anzahl der Bits pro Softbit
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
WO2007098814A1 (de) Codierung und decodierung mit trellis-codierter modulation
DE60209196T2 (de) Verfahren und Vorrichtung zur Optimierung, unter Leistungsgebundenheiten, der Grösse von kodierten Datenblöcken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M