DE69931751T2 - Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers - Google Patents

Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers Download PDF

Info

Publication number
DE69931751T2
DE69931751T2 DE69931751T DE69931751T DE69931751T2 DE 69931751 T2 DE69931751 T2 DE 69931751T2 DE 69931751 T DE69931751 T DE 69931751T DE 69931751 T DE69931751 T DE 69931751T DE 69931751 T2 DE69931751 T2 DE 69931751T2
Authority
DE
Germany
Prior art keywords
bits
bit
data
sub
encoder
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
DE69931751T
Other languages
English (en)
Other versions
DE69931751D1 (de
Inventor
Jae-Yoel Kunpo-shi KIM
c/o Samsung Electronics Co. Chang-Soo Pundang-Gu PARK
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of DE69931751D1 publication Critical patent/DE69931751D1/de
Publication of DE69931751T2 publication Critical patent/DE69931751T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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
    • H03M13/2993Implementing the return to a predetermined state, i.e. trellis termination
    • 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
    • H03M13/299Turbo codes with short blocks
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im wesentlichen auf eine Kanalcodiervorrichtung und ein Verfahren für ein Kommunikationssystem und insbesondere auf eine Vorrichtung sowie ein Verfahren zum Einfügen bereits bekannter Bits in eine Eingangsstufe einer Kanalcodiervorrichtung.
  • 2. Beschreibung des Standes der Technik
  • Bei Kommunikationssystemen für die Verarbeitung von Sprach-, Zeichen-, Bild- und Videosignalen werden Daten im allgemeinen auf der Basis einer Frame-Einheit gesendet. Ein Frame ist als Basiszeitintervall im System bestimmt. Weiterhin sollte in einem System zur Übermittlung derartiger Frame-Daten ein Kanal– codierer zur Fehlerkorrektur ebenfalls Daten auf der Basis der Frame-Einheit codieren. In diesem Fall führt der Kanalcodierer ein Null-Endbit-Verarbeitung aus, um das Ende jedes Frames zu kennzeichnen, so dass ein Decoder die Frames mit Hilfe dieser Informationen effizient decodieren kann. Kodierer-Endbits repräsentieren eine festgelegte Abfolge von Bits, die dem Ende eines Daten-Frames hinzugefügt sind, um den Faltungscodierer auf einen bekannten Zustand rückzu setzen. Ein IS-95-System verwendet normalerweise einen nicht rekursiven systemischen Faltungscodierer, der eine Abfolge von Null- (0-) Bits dem Ende jedes Frames gleich der Anzahl von Verzögerungsschaltungen hinzufügt, um eine Frame-Beendigung zu implementieren. Im Gegensatz zum nicht rekursiven systemischen Faltungscodierer kann ein rekursiver systemischer Codierer jedoch keine Null-Bits dem Ende des Frames hinzufügen, um die Frame-Beendigung zu implementieren, da Eingabebits den Verzögerungsschaltungen rückgeführt werden.
  • 1 zeigt ein Blockschaltbild eines herkömmlichen Parallel-Turbocodierers, der im US-Patent No. 5.446.747 beschrieben ist, das Berrou erteilt ist. Der Codierer aus 1 ist ein Typ eines herkömmlichen rekursiven systemischen Codierers. Der Turbo-Codierer codiert einen N-Bit-Frame in Paritätssymbole unter Verwendung zweier einfacher Teil-Codierer und kann derart beschaffen sein, dass er entweder einen parallelen oder seriellen Aufbau hat. Darüber hinaus verwendet der Turbo-Codierer von 1 rekursive systemische Faltungscodes als Teilcodes.
  • Der Turbo-Codierer aus 1 enthält einen Interleaver 120, der zwischen einen ersten Teil-Codierer 110 und einen zweiten Teil-Codierer 130 geschaltet ist. Der Interleaver 120 hat dieselbe Größe wie eine Frame-Länge N von Eingabe-Datenbits und ordnet die Reihenfolge der Datenbits, die in den zweiten Teil-Codierer 130 eingegeben werden, neu, um die Korrelation zwischen den Ausgängen des ersten und des zweiten Codierers zu verringern.
  • Der erste Teil-Codierer 110 codiert die Eingabe-Datenbits, und der Interleaver 120 verschachtelt (oder ordnet) die Bits im Eingabedatenstrom gemäß einer festgelegten Regel (zufallsartig an), so dass Burst-Fehler, die durch den Kanal einfließen, in Zufallsfehler umgewandelt werden können. Der zweite Teil-Codierer 130 codiert die Ausgabe des Interleavers 120.
  • 2 ist ein Diagramm, das ein Beendigungsschema im herkömmlichen rekursiven systemischen Codierer von 1 zeigt. Für detaillierter Informationen siehe D. Divsalar and F. Pollara, 15. Nov. 1995. Hier wird davon ausgegangen, dass die Daten, die in den ersten und den zweiten Teil-Codierer 110 und 130 eingegeben werden, 20-Bit-Daten sind. In 2 kennzeichnen D1 bis D4 Verzögerungsschaltungen und XOR1 bis XOR6 Exklusiv-ODER-Gates.
  • Unter Bezugnahme auf 2 sind die operativen Schritte zur Durchführung der Codierung wie folgt. Ein Schalter SW1 wird in der EIN-Stellung gehalten, und ein Schalter SW2 wird in der AUS-Stellung gehalten. Anschließend werden die 20-Bit-Eingabe-Frame-Daten nacheinander den Verzögerungsschaltungen D1 bis D4 zugeführt und von den Exklusiv-ODER-Gates XOR1 bis XOR6 einem Exklusiv-ODER-Vorgang unterzogen, wodurch codierte Bits am Ausgang des Exklusiv-ODER-Gates XOR6 ausgegeben werden. Sind sämtliche 20 Datenbits auf diese Weise codiert, wird der Schalter SW1 auf AUS und der Schalter SW2 auf EIN geschaltet, um den Frame zu beenden. Anschließend unterziehen die XODER-Gates XOR1 bis XOR4 die Ausgabe-Datenbits der Verzögerungsschaltungen bzw. die entsprechenden Rückführ-Datenbits einem Exklusiv-ODER-Vorgang, wodurch Null-Bits ausgegeben werden. Die resultierenden Null-Bits werden wiederum in die Verzögerungsschaltungen D1 bis D4 eingegeben und in diesen gespeichert. Diese Null-Bits, die in die Verzögerungsschaltungen D1 bis D4 eingegeben werden, werden zu Endbits, die einem Multiplexer zugeführt werden.
  • Der Multiplexer multiplexiert die codierten Datenbits und die Endbits, die aus dem Teil-Codierer ausgegeben werden. Die Zahl der erzeugten Endbits hängt von der Zahl der Verzögerungseinrichtungen ab, die in den Teil-Codierern 110 und 130 enthalten sind. Das Beendigungsschema aus 2 erzeugt 4 Endbits pro Frame plus zusätzliche codierte Bits, die für jedes der entsprechenden Endbits erzeugt werden, wodurch die fertige Gesamtzahl codierter Bits unerwünscht erhöht wird was zu einer Abnahme der Bitrate führt. Das heißt, wenn die Bitrate definiert ist als: Bitrate = (Zahl der Eingabe-Datenbits)/(Zahl der Ausgabe-Datenbits)hat ein Teil-Codierer mit dem Aufbau aus 2 eine Bitrate von Bitrate = (Zahl der Eingabe-Datenbits)/{(Zahl der codierten Datenbits) + (Zahl der Endbits) + (Zahl der codierten Bits für die Endbits)}.
  • Da in 2 die Frame-Daten aus 20 Bits bestehen und die Zahl der Verzögerungsschaltungen gleich 4 ist, nimmt die Bitrate demzufolge 20/28 an.
  • Es ist daher offensichtlich, dass die Leistungsfähigkeit des rekursiven systemischen Faltungscodierers vom Endbildungs-Verfahren abhängt, da es schwierig ist die Turbo-Codes in perfekter Weise einer Endbildung zu unterziehen.
  • Die Veröffentlichung von K. NARAYANAN und G. STÜBER: "Selective Serial Concatenation of Turbo Code" IEEE COMMUNICATION LETTERS, vol. 1, no. 5,5. September 1997 (1997-09), Seite 136–139, XP000704755, erläutert, dass Turbo-Codes eine ungleiche Fehlerkorrektur infolge eines schlechten Verschachtelungs-Mappings erzeugen, und beschreibt einen Turbo-Codierer, der einen beendeten ersten Komponentencode und einen offenen zweiten Komponentencode mit Schutz der stärker fehleranfälligen Bits durch einen äußeren BCH-Code enthält.
  • ÜBERSICHT ÜBER DIE ERFINDUNG
  • Ein Ziel der vorliegenden Erfindung besteht somit darin, eine Vorrichtung und ein Verfahren zum Einfügen von Bits in jeden Kanal-Frame an Positionen mit höherer Fehlerauftrittsbereichs-Wahrscheinlichkeit anzugeben, die einen bestimmten Wert an einer letzten Position der Frame-Datenbits haben, wobei die letzte Position eine hohe Fehlerauftritts-Wahrscheinlichkeit während des Decodierens in einer Turbo-Decodiervorrichtung hat.
  • Ein weiteres Ziel der vorliegenden Erfindung besteht darin, eine Vorrichtung und ein Verfahren zum Einfügen spezifischer Bits an den Endpositionen der Datenbitströme anzugeben, die jeweils in einen ersten Teil-Codierer und einen zweiten Teil-Codierer in einer Turbo-Codiervorrichtung eingegeben werden.
  • Ein weiteres Ziel der vorliegenden Erfindung besteht darin, eine Vorrichtung und ein Verfahren zum Einfügen spezifischer Datenbits an den Endpositionen von Datenbitströmen anzugeben, die jeweils in einen ersten und einen zweiten Teil-Codierer in einer Turbo-Codiervorrichtung eingegeben werden, wobei eine Position des spezifischen Bits, das in den zweiten Teil-Codierer eingefügt wird, nach vorne verschoben wird, wenn die Positionen der spezifischen Bits, die in den ersten und den zweiten Teil-Codierer eingegeben werden, einander überlappen.
  • Um die oben genannten Ziele zu erreichen, enthält eine Turbo-Codiervorrichtung gemäß der vorliegenden Erfindung eine Bit-Einfügevorrichtung zum Einfügen eines oder mehrerer spezifischer Bits an Endpositionen eines Datenbitstroms, der in einen ersten Teil-Decoder eingegeben wird, und zum Einfügen wenigstens eines spezifischen Bits an einer letzten Position eines verschachtelten Datenbitstroms, der in einen zweiten Teil-Codierer eingegeben wird, wobei der erste Teil-Codierer die Datenbits, in die das Bit eingefügt wurde, codiert, um erste Paritätssymbole zu erzeugen; einen Interleaver zum Verschachteln der Datenbits, in die das spezifische Datenbit eingefügt wurde, wobei der zweite Teil-Codierer die verschachtelten Datenbits codiert, um zweite Paritätssymbole zu erzeugen, und einen Multiplexer zum Multiplexieren der Ausgaben der Bit-Einfügeeinrichtung, des ersten Teil-Codierers und des zweiten Teil-Codierers.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die oben genannten und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung in Verbindung mit den beiliegenden Zeichnungen besser verständlich, in denen ähnliche Bezugszeichen ähnliche Bauteile kennzeichnen.
  • 1 ist ein Blockschaltbild, das einen Kanalcodierer gemäß dem Stand der Technik darstellt, der in einem drahtlosen Kommunikationssystem verwendet wird;
  • 2 ist ein detailliertes Blockschaltbild, das einen Teil-Codierer gemäß dem Stand der Technik aus 1 zeigt;
  • 3 ist eine Darstellung, die einen Kanalcodierer gemäß einer ersten Ausführungsform der vorliegenden Erfindung darstellt;
  • 4 ist eine detaillierte Darstellung einer Biteinfügevorrichtung von 3;
  • 5 ist eine detaillierte Darstellung eines Teil-Codierers aus 3;
  • 6 ist eine Darstellung, die einen Bitverarbeitungsvorgang gemäß der ersten Ausführungsform der vorliegenden Erfindung darstellt;
  • 7 ist eine Darstellung, die einen Kanalcodierer gemäß einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
  • 8 ist eine detaillierte Darstellung eines Multiplexers aus 7;
  • 9 ist eine Darstellung eines Bitverarbeitungsvorgangs gemäß einer zweiten Ausführungsform der Erfindung;
  • 10 ist eine Darstellung eines Kanalcodierers gemäß einer dritten Ausführungsform der Erfindung;
  • 11 ist eine detaillierte Darstellung eines Teil-Codierers aus 10;
  • 12 ist eine detaillierte Darstellung eines Multiplexers aus 10;
  • 13 ist eine Darstellung, die einen Bitverarbeitungsvorgang gemäß einer dritten Ausführungsform der vorliegenden Erfindung darstellt; und
  • 14 ist eine Darstellung, die einen Vorgang des Einfügens eines bereits bekannten Bits in eine Eingangsstufe eines Kanalcodierers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden im folgenden unter Bezugnahme auf die beiliegenden Zeichnungen erläutert. In der folgenden Beschreibung werden hinlänglich bekannte Funktionen oder Konstruktionen nicht im Detail beschrieben, da sie die Erfindung mit überflüssigen Details unverständlich machen würden. Der Begriff "Bitdaten", wie er hier verwendet wird, bezieht sich auf Daten, die nicht codiert sind, und der Begriff "Paritätsbit" bezieht sich auf Daten, die von einem Teil-Codierer codiert sind.
  • Im allgemeinen codiert in einem Kommunikationssystem ein Sender Sendedaten mit Hilfe eines Kanalcodierers und sendet die codierten Daten; ein Empfänger demoduliert anschließend die Daten, die er vom Sender empfängt, um die empfangenen Daten in die Ursprungsdaten umzuwandeln. Der Kanalcodierer codiert die Sendedaten auf der Basis einer Frame-Einheit und erzeugt Endbits, die jedem Frame hinzugefügt werden, um das Ende das Frames zu kennzeichnen. Die vorliegende Erfindung beschreibt einen Frame-Aufbau, der eine Beendigungswirkung im Kanalcodierer hat.
  • Der Frame-Aufbau mit der Beendigungswirkung kann in Übereinstimmung mit zahlreichen Ausführungsformen implementiert werden, wie es im folgenden beschrieben ist:
    Erste Ausführungsform: Eine Anzahl spezifischer Bits wird in jeden Kanal-Frame an Positionen eingefügt, die eine höhere Fehlerauftrittswahrscheinlichkeit haben, wobei die Zahl der einzufügenden Bits durch die Anzahl von Endbits definiert ist. Da die rekursiven systemischen Teil-Codierer nicht dazu eingerichtet sind, Endbits zu erzeugen, wird die Fehlerauftrittswahrscheinlichkeit experimentell bestimmt, wobei die Einfügepositionen sowohl dem Kanalcodierer als auch dem Kanaldecoder bekannt sein sollten. Die einzufügenden spezifischen Bits sollten vorzugsweise bedeutungslose Bits sein, die einen geringen oder keinen Einfluss auf die Leistungsfähigkeit der Kommunikation haben, egal ob sie gesendet werden oder nicht. Zudem können sie codierte Bits oder Datenbits sein, die mit einem Empfänger vorbestimmt sind. Hier wird davon ausgegangen, dass es Null-Bits sind.
    Zweite Ausführungsform: Eine Anzahl von Bits wird in jeden Kanal-Frame an Positionen eingefügt, die eine höhere Fehlerauftrittswahrscheinlichkeit haben, wobei die Anzahl der einzufügenden Bits durch die Anzahl der Endbits bestimmt ist. Die spezifischen Bits werden eingefügt, um eine vorbestimmte Frame-Länge zu überschreiten. Die Datenbits, in die die Bits eingefügt werden, werden mit Hilfe der Teil-Codierer codiert. Wenn die kanalcodierten Daten ausgegeben werden, werden anschließend die Bits, die die Frame-Länge der kanalcodierten Daten überschreiten, an den Positionen der Eingabedaten, an den die Bits eingefügt sind, punktiert. Hier erzeugt der rekursive systemische Codierer keine Endbits und sollte der Kanalcodierer bereits Kenntnis von den Positionen mit eingefügten Bits haben.
    Dritte Ausführungsform: Eine Anzahl spezifischer Bits wird in jeden Kanal-Frame an Positionen eingesetzt, die eine höhere Fehlerauftrittswahrscheinlichkeit haben, wobei die Anzahl der Bits, die einzufügen sind, durch die Anzahl der Endbits bestimmt ist. Der Teil-Codierer erzeugt Endbits für die Beendigung sowie zugehörige codierte Daten für die Endbits und punktiert anschließend die Datenbits an spezifischen Einfügepositionen in jedem Kanal-Frame, um die Endbits und die codierten Daten für die Endbits an den punktierten Positionen einzufügen; die für die Biteinfügung gewählt sind.
  • Erste Ausführungsform
  • Ein Codierer gemäß einer ersten Ausführungsform der vorliegenden Erfindung erzeugt keine Endbits, sondern fügt anstelle dessen spezifische Bits an vorbestimmten Positionen ein, um die Beendigungsfunktion auszuführen. Bei dieser Ausführungsform enthält ein 24-Bit-Frame 16 Datenbits und 8 spezifische Bits, wobei jedes der 8 spezifischen Bits ein Null-Bit ist, das in den Frame an Bitpositionen eingesetzt wird, die eine höhere Fehlerwahrscheinlichkeit haben. Hier werden die Biteinfügepositionen durch experimentelles Erfassen der Positionen bestimmt, an denen die meisten Fehler auftreten, während die codierten Daten decodiert werden. Weiterhin verwendet jeder Teil-Codierer eine 1/3-Codierrate.
  • Bei dieser Ausführungsform werden die Positionen, die die höhere Fehlerwahrscheinlichkeit während der Decodierung haben, experimentell bestimmt, wenn die 24-Bit-Frame-Daten (d.h. 16 Frame-Datenbits plus die 8 spezifischen Bits) mit einem Turbo-Codierer codiert werden, der über eine 1/3-Codierrate verfügt. Es werden acht Bitpositionen mit der relativ höheren Fehlerwahrscheinlichkeit bestimmt und die spezifischen Bits an den vorbestimmten Positionen eingefügt. Hier sind dem Decoder die Biteinfügepositionen bekannt, wenn die codierten Frame-Daten decodiert werden, in die die spezifischen Codes eingefügt sind.
  • In der Praxis werden sämtliche "0"-Bits tatsächlich als "–1" gesendet. Wenn die eingefügten spezifischen Bits Null-Bits sind, werden die Null-Bits an den Einfügepositionen auf einen großen Negativwert (z.B. –5) vor dem Decodieren geändert, um die Sicherheit zu erhöhen. Dies geschieht, um die Decodierleistung infolge von Schwankungen zu erhöhen, die während der Sendung in einer Funkumgebung auftreten können. Da jedoch dem Decoder zuvor die Position des spezifischen, zu empfangenen Bits bekannt ist, fügt der Decoder einen höheren Wert als –1 für das spezifische Bit beim tatsächlichen Decodiervorgang ein. In diesem Fall kann der Decoder die Decodierleistung mit Hilfe des eingefügten spezifischen Wertes verbessern. Dieser Decodiervorgang wird im Detail unter Bezugnahme auf 14 beschrieben. Auf diese Weise hat der Decoder, der die Bits decodiert, Kenntnis von wenigstens 8 Bits der 24 Bits, da sie als großer negativer Wert gesendet werden, wodurch die Decodierleistung verbessert wird. Bei dieser Ausführungsform nimmt die Decodierleistung in dem Maße zu, in dem der Frame kürzer wird.
  • 3 ist eine Darstellung, die einen Turbo-Codierer mit einer Bit-Einfügeeinrichtung zum Einfügen der spezifischen Bits gemäß der ersten Ausführungsform der vorliegenden Erfindung darstellt. Eine Bit-Einfügeeinrichtung 310 enthält eine Bit-Erzeugungseinrichtung zum Erzeugen spezifischer Bits durch Verarbeiten von Eingabe-Datenbits und erzeugt Datenbits in der Frame-Einheit durch Einfügen der spezifischen Bits, die von der Bit-Erzeugungseinrichtung erzeugt werden, im Empfangsdatenbitstrom an vorbestimmten Biteinfügepositionen. Bei der Ausführungsform wird davon ausgegangen, dass eine Position, an der die Bit-Einfügeeinrichtung 310 ein spezifisches Bit einfügt, die letzte Position des Datenbitstroms ist. das Einfügen der Bits wird durch einen nicht dargestellten Controller bestimmt. Ein erster Teil-Codierer 320 codiert die Datenbits, die von der Bit-Einfügeeinrichtung 310 ausgegeben werden. Ein Interleaver 330 verschachtelt die Datenbits in der Frame-Einheit, die von der Bit-Einfügeeinrichtung 310 ausgegeben werden, gemäß einer vorbestimmten Regel, so dass die Abfolge der Datenbits neugeordnet wird. Bei der exemplarischen Ausführungsform wird ein Diagonal-Interleaver für den Interleaver 330 verwendet.
  • Ein zweiter Teil-Codierer 340 codiert die verschachtelten Datenbits in der Frame-Einheit, die vom Interleaver 330 ausgegeben wird. Es können rekursive systemische Faltungscodierer für den ersten und den zweiten Teil-Codierer 320 und 340 verwendet werden. Ein Multiplexer 350 multiplexiert die Ausgaben der Bit-Einfügeeinrichtung 310 des ersten Teil-Codierers 320 und des zweiten Teil-Codierers 340 unter Steuerung des nicht dargestellten Codierers. Hier gibt die Bit-Einfügeeinrichtung 310 die Datenbits Ik aus. Der erste 320 gibt die ersten Paritätsbits P1k und der zweite Teil-Codierer 340 gibt die zweiten Paritätsbits P2k aus.
  • 4 ist ein detailliertes Blockschaltbild, das die Bit-Einfügeeinrichtung 310 im Turbo-Codierer von 3 zeigt. Unter Bezugnahme auf 4 erzeugt eine Bit-Erzeugungseinrichtung 430 spezifische Bits, die in die Datenbits eingefügt werden sollen. Hier wird davon ausgegangen, dass die spezifischen Bits Null-Bits sind. Verzögerungsschaltungen 412 bis 426, die als Speicherelemente, wie etwa Flip-Flops ausgeführt sein können, können den Aufbau eines seriellen Verschieberegisters haben, um ein Eingangs-Datenbit gemäß einem Bittakt zu verschieben.
  • Ein Schalter 432 wird unter Steuerung des nicht dargestellten Controllers umgeschaltet, um die Ausgaben der Verzögerungsschaltungen 412 bis 426 zu wählen. Zudem wird der Schalter 432 unter Steuerung des nicht dargestellten Controllers zu einem Ausgang einer nächsten Verzögerungsschaltung an den Positionen umgeschaltet, an denen ein spezifisches Bit, das aus der Bit-Erzeugungseinrichtung 430 ausgegeben wird, in die Datenbits eingefügt wird. Das heißt, der Schalter 432 wählt ein Datenbit, das um ein Bit verzögert ist, wenn das gewählte spezifische Bit in die Datenbits eingefügt wird. Der Schalter 432 kann durch einen Multiplexer implementiert sein. Ein Schalter 434 wird unter Steuerung des nicht dargestellten Controllers zu den Ausgängen der Bit-Erzeugungseinrichtung 430 und dem Schalter 432 umgeschaltet, um Datenbits Ik zu erzeugen. Der Schalter 434 wählt unter Steuerung des Controllers entweder die spezifischen Bits oder die Datenbits für die Einfügung an den vorbestimmten Positionen.
  • Unter Bezugnahme auf 4 erfolgt nun eine Beschreibung, die sich auf den Vorgang des Einfügens der spezifischen Bits bezieht. Die Eingabe-Datenbits werden von den Verzögerungsschaltungen 412 bis 426 gemäß dem Bittakt verzögert. Zu Beginn wählt der Schalter 423 die Eingabe-Datenbits (d.h. Pol 1), und zu Beginn ist der Schalter 434 mit dem Schalter 432 (d.h. Pol B) verbunden. Anschließend werden die Eingabe-Datenbits über die Schalter 432 und 434 ausgegeben. In der Zwischenzeit wird, wenn eine Biteinfügeposition bestimmt ist, der Schalter 432 unter Steuerung des Controllers mit dem Ausgang der Verzögerungsschaltung 412 (d.h. Pol 2) verbunden und der Schalter 434 mit dem Ausgang der Bit-Erzeugungseinrichtung 430 (d.h. Pol A) verbunden. Infolgedessen wird ein Weg für die Datenbits unterbrochen und das Null-Bit, das aus der Bit-Erzeugungseinrichtung 430 ausgegeben wird, an der entsprechenden Bitposition eingefügt. In dem Fall, in dem die Datenbits nach dem Einfügen des Null-Bits ununterbrochen ausgegeben werden, wird der Schalter 434 wiederum mit dem Schalter 432 durch den Controller verbunden. Das heißt, da die um ein Bit verzögerten Daten nach dem Einfügen des Null-Bits gewählt werden, kann das Null-Bit an der vorbestimmten Position ohne Verlust des Datenbits eingefügt werden.
  • Die Null-Bits werden in die Datenbits für einen Frame durch Wiederholen dieses Vorgangs eingefügt. Bei Empfang von Datenbits für den nächsten Frame nach dem Einfügen der Null-Bits wird der Schalter 432 wiederum mit einem Eingangsbitknoten (Pol 1) verbunden und der oben beschriebene Vorgang erneut wiederholt. In dem Fall, in dem Datenbits für die Kommunikation codiert werden, ist eine Fehlerwahrscheinlichkeit am hinteren Abschnitt des Datenbitstroms, der in die entsprechenden Teil-Codierer eingegeben wird, statistisch relativ höher. Demzufolge können sich die Positionen, an denen die Null-Bits eingefügt werden, die aus der Bit-Erzeugungseinrichtung 430 ausgegeben werden, zum Großteil am hinteren Abschnitt des Datenbitstroms befinden, wie es beispielsweise in Tabelle 1 dargestellt ist. TABELLE 1
    Figure 00120001
    wobei Ix Datenbits und Ibx eingefügte Bits kennzeichnet.
  • Die Datenbits aus Tabelle 1, die von der Bit-Einfügeeinrichtung 310 ausgegeben werden, werden sowohl dem ersten Teil-Codierer 320 als auch dem Interleaver 330 parallel zugeführt. Die verschachtelten Datenbits in der Frame-Einheit, die vom Interleaver 330 ausgegeben werden, werden vom zweiten Teil-Codierer 340 codiert. 5 zeigt einen Aufbau des ersten und des zweiten Teil-Codierers 320 und 340 von 3 gemäß der ersten Ausführungsform. Wie gezeigt, sind der erste und der zweite Teil-Codierer 320 und 340 rekursive systemische Faltungscodierer. Darüber hinaus sind die Teil-Codierer 320 und 340 so beschaffen, dass sie keine Endbits erzeugen, wie es in 5 dargestellt ist.
  • Der erste Teil-Codierer 320 codiert die Datenbits aus Tabelle 1, die von der Bit-Einfügeeinrichtung 310 ausgegeben werden. Die codierten Datenbits, die aus dem ersten Teil-Codierer 320 ausgegeben werden, sind in Tabelle 2 aufgeführt. TABELLE 2
    Figure 00120002
    wobei Cx Symbole kennzeichnet, die aus dem ersten Teil-Codierer 320 ausgegeben werden, und Cbx Symbole der eingefügten Bits kennzeichnet, die aus dem ersten Teil-Codierer 320 ausgegeben werden. Für den Fall, dass der erste Teil-Codierer 320 die 1/3-Codierrate hat, wird hier jedes Symbol C zu drei Symbolen. Es wird jedoch darauf hingewiesen, dass Tabelle 1 nicht die redundanten Symbole zeigt.
  • In der Zwischenzeit verschachtelt der Interleaver 330 die Datenbits, die aus der Bit-Einfügeeinrichtung 310 ausgegeben werden, und der zweite Teil-Codierer 340 codiert die verschachtelten Datenbits, die aus dem Interleaver 330 ausgegeben werden. Die codierten Datenbits, die aus dem zweiten Teil-Codierer 340 ausgegeben werden, sind in Tabelle 3 aufgeführt. TABELLE 3
    Figure 00130001
    wobei Dx Symbole kennzeichnet, die aus dem zweiten Teil-Codierer 340 ausgegeben werden, und Dbx Symbole der eingefügten Bits kennzeichnet, die vom zweiten Teil-Codierer 340 ausgegeben werden. Für den Fall, dass der zweite Teil-Codierer 340 die 1/3-Codierrate hat, wird hier jedes Symbol D zu drei Symbolen. Wenngleich die Abfolge der Datenbits ursprünglich durch Verschachtelung neugeordnet wurde, bleibt die Abfolge aus Gründen der einfacheren Erläuterung in Tabelle 3 unverändert.
  • Der Multiplexer 350 multiplexiert anschließend die Ausgaben der Bit-Einfügeeinrichtung 310, des ersten Teil-Codierers 320 und des zweiten Teil-Codierers 340 unter Steuerung des nicht dargestellten Codierers. In Tabelle 4 sind die Datenbits mit dem spezifischen eingefügten Bit und die Ausgaben des ersten und des zweiten Teil-Codierers 320 und 340 dargestellt. Der Multiplexer 350 kann Eingabesymbole in der Abfolge des Datensymbols, des ersten Paritätssymbols und des zweiten Paritätssymbols entweder auf Basis einer Frame-Einheit, wie es in Tabelle 4 gezeigt ist, oder auf Basis einer Symboleinheit multiplexieren. TABELLE 4
    Figure 00140001
  • 6 ist ein Zeitgabediagramm des Turbo-Codierers von 3 gemäß der ersten Ausführungsform der vorliegenden Erfindung. Unter Bezugnahme auf 6 fügt die Bit-Einfügeeinrichtung 310 in einem Intervall T1 die Null-Bits im Frame an den vorbestimmten Bitpositionen ein, um einen Datenbitstrom Ik zu erzeugen, in den Bits eingefügt sind, wobei die eingefügten Bits den Nullwert von Tabelle 1 (siehe 611) haben. In einem Intervall T2 werden die Datenbits Ik, in die Bits mit Nullwert eingefügt sind, gleichzeitig dem Multiplexer 350, dem ersten Teil-Codierer 320 und dem Interleaver 330 zugeführt. Anschließend codiert der erste Teil-Codierer 320 im Intervall T2 die Datenbits Ik, in die Bits mit Nullwert eingefügt sind, um erste codierte Datenbits Ck erzeugen, die die ersten Paritätsbits sind (siehe 612), und im selben Intervall T2 verschachtelt der Interleaver 320 die Datenbits Ik, in die Bits mit Nullwert eingefügt sind, gemäß einer vorbestimmten Regel (siehe 613).
  • Anschließend verzögert in einem Intervall T3 der Multiplexer 350 die Datenbits Ik, die von der Bit-Einfügeeinrichtung 310 eingegeben werden, um eine Frame-Periode, gibt der erste Teil-Codierer 320 die ersten codierten Datenbits Ck in den Multiplexer 350 ein und codiert der zweite Teil-Codierer 340 die verschachtelten Datenbits Ik, die aus dem Interleaver 330 ausgegeben werden, um zweite codierte Datenbits Dk zu erzeugen, die die zweiten Paritätsbits sind. Bei Vervollständigung der Erzeugung der zweiten Paritätsbits Dk durch den zweiten Teil-Codierer 340 multiplexiert der Multiplexer 350 die Datenbits Ik, die ersten Paritätsbits Ck und die zweiten Paritätsbits Dk in einem Intervall T4.
  • Wenngleich 6 ein Beispiel der parallelen Verarbeitung der Datenbits Ik, der ersten Paritätsbits Ck und der zweiten Paritätsbits Dk darstellt, ist es ebenfalls möglich, die Ausgaben der Bit-Einfügeeinrichtung 310, des ersten Teil-Codierers 320 und des zweiten Teil-Codierers 340 in der Reihenfolge der Biterzeugung seriell auszugeben.
  • Wie es aus vorangehenden Erläuterungen zu erkennen ist, erzeugen im rekursiven systemischen Turbo-Codierer gemäß der ersten Ausführungsform die entsprechenden Teil-Codierer keine Endbits für die Beendigung, sondern fügen anstelle dessen eine bestimmte Anzahl spezifischer Bits (d.h. Null-Bits) an Bitpositionen ein, die eine bestimmte höhere Fehlerwahrscheinlichkeit haben.
  • Zweite Ausführungsform
  • Wie bei der ersten Ausführungsform, fügt ein Kanalcodierer gemäß einer zweiten Ausführungsform der vorliegenden Erfindung spezifische Bits an Bitpositionen ein, die eine höhere Fehlerauftrittswahrscheinlichkeit haben. Die zweite Ausführungsform kann sich jedoch von der ersten Ausführungsform dadurch unterscheiden, dass die Zahl der eingefügten Bits so eingestellt ist, dass sie Frame-Größe (oder -Länge) überschreitet. Bei dieser beispielhaften Ausführungsform wird angenommen, das jeder Frame 16 Eingangsdatenbits Ik und 12 eingefügte Bits enthält. Diese Ausführungsform fügt vier zusätzliche eingefügte Bits hinzu. Da die Ausgangs-Datenbits Ik die Paritätsbits Ck und Dk gleich 24 Bits sein sollten und 28 Bits erzeugt werden, werden die überzähligen Paritätsbits Ck und Dk aus den Datenbits Ik an den Positionen mit eingefügten Bits punktiert.
  • 7 ist eine Darstellung, die den Kanalcodierer gemäß der zweiten Ausführungsform der vorliegenden Erfindung zeigt. Eine Bit-Einfügeeinrichtung 710 enthält eine Bit-Erzeugungseinrichtung zum Erzeugen spezifischer Bits durch Verarbeiten von Eingabe-Datenbits und erzeugt Datenbits, die die Frame-Größe überschreiten, durch Einfügen der spezifischen Bits, die von der Bit-Erzeugungseinrichtung erzeugt werden, an vorbestimmten Bitpositionen. Ein erster Teil-Codierer 720 codiert die Datenbits, die aus der Bit-Einfügeeinrichtung 710 ausgegeben werden, um erste Paritätsbits Ck zu erzeugen. Ein Interleaver 730 verschachtelt die Datenbits in der Frame-Einheit, die aus der Bit-Einfügeeinrichtung 710 ausgegeben werden, gemäß einer vorbestimmten Regel, um die Anordnung (oder die Abfolge) der Datenbits zu ändern. Bei der beispielhaften Ausführungsform wird ein Diagonal-Interleaver als Interleaver 730 verwendet.
  • Ein zweiter Teil-Codierer 740 codiert die verschachtelten Datenbits im der Frame-Einheit, die vom Interleaver 730 ausgegeben werden, um zweite Paritätsbits Dk zu erzeugen. Es kann ein rekursiver systemischer Faltungscodierer für den ersten und den zweiten Teil-Codierer 720 und 740 verwendet werden. Ein Multiplexer 750 multiplexiert unter Steuerung des nicht dargestellten Controllers die Ausgaben der Bit-Einfügeeinrichtung 710, des ersten Teil-Codierers 720 und des zweiten Teil-Codierers 740, um einen Daten-Frame einer vorbestimmten Länge zu erzeugen. Hier gibt die Bit-Einfügeeinrichtung 710 die Datenbits Ik aus, gibt der erste Teil-Codierer 720 die ersten Paritätsbits P1k aus und gibt der zweite Teil-Codierer 740 die zweiten Paritätsbits P2k aus.
  • Während des Betriebs arbeit bei Empfang der 16 Eingangs-Datenbits Ik die Bit-Einfügeeinrichtung 710 in derselben Weise wie die Bit-Einfügeeinrichtung 310 der ersten Ausführungsform. Die Bit-Einfügeeinrichtung 710 hat einen ähnlichen Aufbau, wie jene aus 4, mit dem Unterschied, dass sie aus 12 anstelle von 8 Verzögerungsschaltungen besteht. Somit fügt die Bit-Einfügeeinrichtung 710 12 Null-Bits in den Frame an 12 Bitpositionen ein, die die höhere Fehlerwahrscheinlichkeit haben, indem die internen Schalter unter Steuerung des nicht dargestellten Controllers gesteuert werden. Demzufolge gibt bei dieser Ausführungsform die Bit-Einfügeeinrichtung 710 die 28 Datenbits Ik (d.h. 16 Datenbits und 12 Null-Bits) aus, die gleichzeitig an den Multiplexer 750, den ersten Teil-Codierer 720 und den Interleaver 730 ausgegeben werden. Weiterhin werden die verschachtelten Datenbits Ik, die aus dem Interleaver 730 ausgegeben werden, dem zweiten Teil-Codierer 740 zugeführt. Hier haben der ersten und der zweite Teil-Codierer 720 und 740 den Aufbau von 5, der keine Endbits für die Beendigung erzeugt.
  • Der erste Teil-Codierer 720 codiert anschließend die 28 Datenbits Ik, die aus der Bit-Einfügeeinrichtung 710 mit den darin eingefügten 12 Null-Bits ausgegeben werden, und gibt 28 erste Paritätsbits Ck an den Multiplexer 750 aus. Der Interleaver 730 verschachtelt die 28 Datenbits Ik, die aus der Bit-Einfügeeinrichtung 710 ausgegeben werden, und der zweite Teil-Codierer 740 codiert die verschachtelten Datenbits in derselben Weise, wie der erste Teil-Codierer 720, um 28 zweite Paritätsbits Dk zu erzeugen, die dem Multiplexer 750 zugeführt werden. Der Multiple xer 750 punktiert die Datenbits Ik, um die vier ersten Paritätsbits Ck und die vier zweiten Paritätsbits Dk an den punktierten Positionen einzufügen, und gibt anschließend die übrigen 24 ersten Paritätsbits und die übrigen 24 zweiten Paritätsbits Dk aus.
  • Unter Bezugnahme auf 8 empfängt der Multiplexer 750 zunächst die 28 Datenbits Ik, die aus der Bit-Einfügeeinrichtung 710 ausgegeben werden. Anschließend wird ein Schalter 812 im Multiplexer 750 mit einer Verzögerungsschaltung 822 verbunden, bis die ersten 24 Datenbits aus den 28 Datenbits Ik von der Bit-Einfügeeinrichtung 710 empfangen sind. Anschließend wird der Schalter 812 mit einer Verzögerungsschaltung 824 verbunden, bis die übrigen 4 Datenbits der 28 Datenbits Ik von der Bit-Einfügeeinrichtung 710 empfangen sind. Die Verzögerungsschaltung 824 verzögert die übrigen 4 Datenbits.
  • In derselben Weise wird der Schalter 812 mit einer Verzögerungsschaltung 824 verbunden, bis die übrigen 4 Datenbits der 28 Datenbits Ik von der Bit-Einfügeeinrichtung 710 empfangen sind. Die Verzögerungsschaltung 824 verzögert die übrigen 4 Datenbits.
  • In derselben Weise empfängt der Multiplexer 750 die 28 ersten Paritätsbits Ck, die vom ersten Teil-Codierer 720 ausgegeben werden. Anschließend wird ein Schalter 814 im Multiplexer 750 mit einer Verzögerungsschaltung 826 verbunden, bis die ersten 24 Datenbits der 28 ersten Paritätsbits Ck vom ersten Teil-Codierer 720 empfangen sind, und verzögert die Verzögerungsschaltung 826 die empfangenen ersten Paritätsbits Ck. Anschließend wird der Schalter 814 mit einer Verzögerungsschaltung 828 verbunden, bis die übrigen 4 ersten Paritätsbits der 28 ersten Paritätsbits Ck vom ersten Teil-Codierer 720 empfangen sind, und verzögert die Verzögerungsschaltung 828 die empfangenen übrigen 4 ersten Paritätsbits.
  • Anschließend empfängt der Multiplexer 750 die 28 zweiten Paritätsbits Dk, die vom zweiten Teil-Codierer 740 ausgegeben werden. Daraufhin wird ein Schalter 816 im Multiplexer 750 mit einer Verzögerungsschaltung 830 verbunden, bis die ersten 24 Datenbits der 28 zweiten Paritätsbits Dk vom zweiten Teil-Codierer 740 empfangen werden, und verzögert die Verzögerungsschaltung 830 die empfangenen zweiten Paritätsbits Dk. Anschließend wird der Schalter 816 mit einer Verzögerungsschaltung 832 verbunden, bis die übrigen 4 zweiten Paritätsbits der 28 zweiten Paritätsbits Dk vom zweiten Teil-Codierer 740 empfangen werden, und verzögert die Verzögerungsschaltung 832 die empfangenen übrigen 4 zweiten Paritätsbits.
  • Wie es oben erläutert wurde, empfängt der Multiplexer 750 nacheinander die 28 Datenbits Ik, die 28 ersten Paritätsbits Ck sowie die 28 zweiten Paritätsbits Dk und speichert separat die ersten 24 Bits und die übrigen 4 Bits der entsprechenden Bits in den zugehörigen Verzögerungsschaltungen. Die Schalter 812 bis 816 werden vom nicht dargestellten Controller gesteuert. Weiterhin bestehen die Verzögerungsschaltungen 822 bis 832 jeweils aus kaskadierten Speicherelementen und speichern die Eingabebits, bis der entsprechende Verzögerungsvorgang abgeschlossen ist.
  • Bei Abschluss des Verzögerungsvorgangs wird der Schalter 844 mit einem Schalter 842 verbunden und der Schalter 842 mit der Verzögerungsschaltung 822 verbunden. Somit wird eine Ausgabe der Verzögerungsschaltung 822 über die Schalter 842 und 844 ausgegeben. Wenn ein Datenbit, das in der Verzögerungsschaltung 822 gespeichert ist, ausgegeben wird, wird der Schalter 842 mit der Verzögerungsschaltung 824 verbunden, wodurch die Verbindung mit dem Schalter 844 aufrechterhalten wird. Anschließend wird eines der übrigen Datenbits, die in der Verzögerungsschaltung 824 gespeichert sind, über die Schalter 842 und 844 ausgegeben. Das heißt, das Datenbit, das in der Verzögerungsschaltung 822 gespeichert ist, wird punktiert, und das Datenbit, das in der Verzögerungsschaltung 824 gespeichert ist, anstelle dessen ausgegeben. Anschließend wird der Schalter 842 mit der Verzögerungsschaltung 822 verbunden, wobei fortwährend eine Verbindung mit dem Schalter 844 beibehalten wird. Durch viermaliges Wiederholen des oben beschriebenen Vorgangs, werden die Datenbits, die in der Verzögerungsschaltung 822 gespeichert sind, punktiert und die vier Datenbits, die in der Verzögerungsschaltung 824 gespeichert sind, an den vier punktierten Positionen eingefügt.
  • Anschließend wird der Schalter 842 mit der Verzögerungsschaltung 822 verbunden, wobei eine Verbindung mit dem Schalter 844 aufrechterhalten wird. Anschließend wird die Ausgabe der Verzögerungsschaltung 822 über die Schalter 842 und 844 ausgegeben. Wenn ein Datenbit, das in der Verzögerungsschaltung 822 gespeichert ist, ausgegeben wird, wird der Schalter 842 mit der Verzögerungsschaltung 828 verbunden, wobei eine Verbindung mit dem Schalter 844 beibehalten wird. Daraufhin wird eines der übrigen vier ersten Paritätsbits, die in der Verzögerungsschaltung 828 gespeichert sind, über die Schalter 842 und 844 ausgegeben. Anschließend wird der Schalter 842 wieder mit der Verzögerungsschaltung 822 verbunden, wobei ununterbrochen eine Verbindung mit dem Schalter 844 aufrechterhalten wird. Durch viermaliges Wiederholen des oben beschriebenen Vorgangs, werden die Datenbits, die in der Verzögerungsschaltung 822 gespeichert sind, punktiert, und die vier ersten Paritätsbits, die in der Verzögerungsschaltung 828 gespeichert sind, an den punktierten Positionen eingefügt.
  • Auf diese Weise werden die Datenbits und die übrigen vier ersten Paritätsbits alternierend ausgegeben. Als nächstes wird der Schalter 824 mit der Verzögerungsschaltung 822 verbunden, wobei eine Verbindung mit dem Schalter 844 aufrechterhalten wird. Anschließend wird die Ausgabe der Verzögerungsschaltung 822 über die Schalter 842 und 844 ausgegeben. Wenn ein Datenbit, das in der Verzögerungsschaltung 822 gespeichert ist, ausgegeben wird, wird der Schalter 842 mit der Verzögerungsschaltung 832 verbunden, wobei eine Verbindung mit dem Schalter 844 beibehalten wird. Anschließend wird eines der übrigen vier zweiten Paritätsbits, die in der Verzögerungsschaltung 832 gespeichert sind, über die Schalter 842 und 844 ausgegeben. Anschließend wird der Schalter 842 erneut mit der Verzögerungsschaltung 822 verbunden, wobei ununterbrochen eine Verbindung mit dem Schalter 844 beibehalten wird. Durch viermaliges Wiederholen des oben beschriebenen Vorgangs, werden die Datenbits, die in der Verzögerungsschaltung 822 gespeichert sind, punktiert und anschließend die übrigen vier zweiten Paritätsbits, die in der Verzögerungsschaltung 832 gespeichert sind, an den punktierten Positionen eingefügt.
  • Mit Hilfe des vorangegangen Vorgangs werden die 24 Datenbits, die in der Verzögerungsschaltung 822 gespeichert sind, punktiert und anschließend die 4 Daten bits, die in der Verzögerungsschaltung 824 gespeichert sind, die 4 ersten Paritätsbits, die in der Verzögerungsschaltung 828 gespeichert sind, und die 4 zweiten Paritätsbits, die in der Verzögerungsschaltung 832 gespeichert sind, an den punktierten Positionen eingefügt. Demzufolge punktiert der Multiplexer 750 die Datenbits Ik, die aus der Bit-Einfügeeinrichtung 710 ausgegeben werden, und fügt die 8 Paritätsbits an den punktierten Einfügepositionen ein, wodurch 24 Datenbits ausgegeben werden.
  • Bei Abschluss des oben beschriebenen Vorgangs wird der Schalter 844 mit der Verzögerungsschaltung 826 verbunden. Anschließend werden die 24 ersten Paritätsbits Ck, die in der Verzögerungsschaltung 826 gespeichert sind, ausgegeben. Anschließend wird der Schalter 844 mit der Verzögerungsschaltung 830 verbunden, um die 24 zweiten Paritätsbits Dk auszugeben, die in der Verzögerungsschaltung 830 gespeichert sind.
  • Unter Bezugnahme auf 9 fügt beim Codierer aus 7 gemäß der zweiten Ausführungsform die Bit-Einfügeeinrichtung 710 12 Bits in die 16 Eingabe-Datenbits ein, um die 28 Datenbits Ik zu erzeugen. Der erste und der zweite Teil-Codierer 720 und 740 erzeugen die 28 ersten Paritäts-Bits Ck bzw. die 28 zweiten Paritätsbits Dk. Der Multiplexer 750 punktiert die 28 Datenbits, d.h. die 4 überzähligen Datenbits, die 4 überzähligen ersten Paritätsbits und die überzähligen 4 zweiten Paritätsbits. Anschließend gibt der Multiplexer 705 nacheinander die Datenbits Ik, die ersten Paritätsbits Ck und die zweiten Paritätsbits Dk aus.
  • Beim Dekodiervorgang werden die Ausgabewerte des Multiplexers 750 zu einem Datenbitabschnitt, einem ersten Paritätsbitabschnitt und einem zweiten Paritätsbitabschnitt demultiplexiert, wobei der Datenbitabschnitt mit einem Wert von –5 am Biteinfügeabschnitt punktiert wird. Derartige verarbeitete Datenbits werden mit einem existierenden Decoder decodiert. (Siehe Claude Berrou, Alain Glavieux und Punya Thitmajshima Near Shannon Limit Error-Correction Coding and Decoding: Turbo-Codes (1).)
  • Dritte Ausführungsform
  • Ein Codierer gemäß einer dritten Ausführungsform der vorliegenden Erfindung fügt Datenbits, die eine bestimmte Logik haben, in die Datenbits an Bitpositionen ein, die eine höhere als die normale Fehlerauftrittswahrscheinlichkeit haben, wobei die Teil-Codierer die Datenbits mit den spezifischen eingefügten Bits codieren und Endbits erzeugen, die den codierten Datenbits hinzugefügt werden sollen. Das heißt, der Codierer gemäß der dritten Ausführungsform führt die Beendigungsfunktion sowohl durch Biteinfügung als auch durch Hinzufügen von Endbits aus.
  • 10 ist ein Diagramm, das den Codierer gemäß der dritten Ausführungsform der vorliegenden Erfindung darstellt. Unter Bezugnahme auf 10 empfängt eine Bit-Einfügeeinrichtung 1010 16 Eingabe-Bits und hat denselben Aufbau wie die Bit-Einfügeeinrichtung 310 gemäß der ersten Ausführungsform. Die Bit-Einfügeeinrichtung 1010 fügt unter Steuerung des nicht dargestellten Controllers 8 Null-Bits in jeden Frame an 8 Datenbitpositionen ein, die eine höhere als die normale Fehlerwahrscheinlichkeit haben. Demzufolge gibt bei dieser beispielhaften Ausführungsform die Bit-Einfügeeinrichtung 1010 24 Datenbits Ik aus, die gemeinsam einem Multiplexer 1050, einem ersten Teil-Codierer 1020 und einem Interleaver 1030 zugeführt werden.
  • Weiterhin werden die verschachtelten Datenbits Ik, die aus dem Interleaver 1030 ausgegeben werden, einem zweiten Teil-Codierer 10490 zugeführt. Der erste Teil-Codierer 1020 ist ein rekursiver systemischer Teil-Codierer, der in 11 dargestellt ist und einen Aufbau hat, mit dem er Endbits erzeugt, die den codierten Datenbits hinzugefügt werden. Darüber hinaus hat der erste Teil-Codierer 1020 einen Aufbau, der die Endbits nicht für die Beendigung erzeugt, wie jener in 5 der ersten Ausführungsform.
  • Unter Bezugnahme auf 11 wird der Betrieb des ersten Teil-Codierers 1020 beschrieben. Zum Codieren verbindet ein Schalter 1111 einen Eingangsknoten mit einem Exklusiv-ODER-Gate 11313, behält ein Schalter 1113 einen AUS-Zustand bei und wird ein Schalter 1115 mit einem Exklusiv-ODER-Gate 1135 verbunden. Anschließend werden die 24 Datenbits Ik nacheinander Verzögerungs schaltungen 1121 bis 1127 über den Schalter 1111 und das Exklusiv-ODER-Gate 1131 zugeführt, und das Exklusiv-ODER-Gate 1135 gibt die codierten Datenbits aus. Sind die Datenbits Ik allesamt durch die Verzögerungsschaltungen 1121 bis 1127 und das Exklusiv-ODER-Gate 1135 auf diese Weise codiert, wird der Schalter 1111 mit den Exklusiv-ODER-Gates 1133 und 1131 verbunden, ist der Schalter 1113 EIN und der Schalter 1115 mit dem Schalter 1113 verbunden. Anschließend werden die Null-Bits erzeugt, indem die rückgeführten Ausgaben einem Exklusiv-ODER-Vorgang unterzogen werden, in den Verzögerungsschaltungen 1121 bis 1127 gespeichert und über den Schalter 1115 ausgegeben. Hier werden die Nullwerte, die in den Verzögerungsschaltungen 1121 bis 1127 gespeichert sind, die Endbits und durch den Schalter 1115 ausgegeben. Die Zahl der erzeugten Endbits entspricht der Anzahl der Verzögerungen im Teil-Codierer 1020. In 11 erzeugt der Teil-Codierer 1020 4 Endbits pro Frame, und erzeugt zudem codierte Bits für die entsprechenden Endbits.
  • Demzufolge erzeugt der erste Teil-Codierer 1020 24 erste Paritätsbits Ck, und bei Verarbeitung des letzten Datenbits (d.h. des 24-ten Datenbits) wird der Schalter 1111 mit dem Exklusiv-ODER-Gate 1133 verbunden, der Schalter 1113 mit dem Schalter 1111 verbunden und der Schalter 1115 mit dem Schalter 1113 verbunden; derselbe Vorgang wird viermal wiederholt, um 4 Endbits zu erzeugen. Durch diesen Vorgang werden die 28 ersten Paritätsbits Ck und die 4 Endbits an den Multiplexer 1050 ausgegeben.
  • Darüber hinaus verschachtelt der Interleaver 1030 die 24 Datenbits Ik, die aus der Bit-Einfügeeinrichtung 1010 ausgegeben werden, und führt die verschachtelten Datenbits dem zweiten Teil-Codierer 1040 zu. Der zweite Teil-Codierer 1040 codiert anschließend die verschachtelten Datenbits in derselben Weise wie der erste Teil-Codierer 1020, um 24 zweite Paritätsbits Dk zu erzeugen, die dem Multi- plexer 1050 zugeführt werden.
  • Die verschachtelten Datenbits in der Frame-Einheit, die aus dem Interleaver 1030 ausgegeben werden, werden vom zweiten Teil-Codierer 1040 codiert, der denselben Aufbau hat, wie jener, der in 5 gezeigt ist. Der zweite Teil-Codierer 1040 ist ein rekursiver systemischer Faltungscodierer, wie es in 5 dargestellt ist.
  • Darüber hinaus hat der zweite Teil-Codierer 1040 einen Aufbau, der keine Teil-Bits erzeugt.
  • Der Multiplexer 1050 punktiert anschließend die Datenbits Ik und fügt die 4 ersten Paritätsbits Ck in die punktierten Positionen ein und gibt wahlweise die übrigen 24 ersten Paritätsbits Ck und die 24 zweiten Paritätsbits Dk aus.
  • 12 ist eine Darstellung, die den Multiplexer 1050 darstellt. Unter Bezugnahme auf 12 empfängt der Multiplexer 1050 zunächst die 24 Datenbits Ik, die aus der Bit-Einfügeeinrichtung 1010 ausgegeben werden. Eine Verzögerungsschaltung 1222 im Multiplexer 1050 speichert anschließend die empfangenen 24 Datenbits Ik.
  • Anschließend empfängt der Multiplexer 1050 die 28 ersten Paritätsbits Ck, die aus dem ersten Teil-Codierer 1020 ausgegeben werden. Ein Schalter 1212 im Multiplexer 1050 wird anschließend mit einer Verzögerungsschaltung 1224 verbunden, bis die ersten 24 Bits aus den ersten Paritätsbits Ck vom ersten Teil-Codierer 1020 empfangen sind, und die Verzögerungsschaltung 1224 speichert die empfangenen ersten Paritätsbits Ck. Anschließend wird der Schalter 1212 mit der Verzögerungsschaltung 1226 verbunden, bis die übrigen 8 Bits aus den 32 ersten Paritätsbits Ck vom ersten Teil-Codierer 1020 empfangen sind, und die Verzögerungsschaltung 1226 speichert die übrigen 8 Bits der ersten Paritätsbits Ck.
  • Als nächstes empfängt der Multiplexer 1050 die 24 zweiten Paritätsbits Dk, die aus dem zweiten Teil-Codierer 1040 ausgegeben werden. Eine Verzögerungsschaltung 1228 im Multiplexer 1050 speichert anschließend die empfangenen 24 zweiten Paritätsbits Dk.
  • Somit werden die nacheinander erzeugten 24 Datenbits Ik, die 28 ersten Paritätsbits Ck und die 24 zweiten Paritätsbits Dk dem Multiplexer 1050 zugeführt. Der Multiplexer 1050 speichert anschleißend die nacheinander empfangenen Datenbits Ik, die ersten Paritätsbits Ck und die zweiten Paritätsbits Dk in entsprechenden Verzögerungsschaltungen in der Reihenfolge des Empfangs, wobei die ersten 24 Bits und die übrigen 4 Bits der 28 ersten Paritätsbits Ck separat in entsprechen den Verzögerungsschaltungen gespeichert werden. Die Verzögerungsschaltungen 1222 bis 1228 bestehen jeweils aus kaskadierten Speicherelementen und speichern die entsprechenden Eingangsbits, bis der oben beschriebene Verzögerungsvorgang abgeschlossen ist.
  • Nach dem oben beschriebenen Verzögerungsvorgang wird ein Schalter 1236 mit einem Schalter 1234 verbunden und der Schalter 1234 mit der Verzögerungsschaltung 1222 verbunden. Somit wird eine Ausgabe der Verzögerungsschaltung 1222 über die Schalter 1234 und 1236 ausgegeben. Nachdem ein Datenbit, das an einer bestimmten Position in der Verzögerungsschaltung 1222 gespeichert ist, ausgegeben wurde, wird der Schalter 1234 mit der Verzögerungsschaltung 1226 verbunden, wobei die Verbindung mit dem Schalter 1236 aufrechterhalten wird. Anschließend wird eines der überflüssigen ersten Paritätsbits, das in der Verzögerungsschaltung 1226 gespeichert ist, über die Schalter 1234 und 1236 ausgegeben. Das heißt, das Datenbit, das in der Verzögerungsschaltung 1222 gespeichert ist, wird punktiert und das erste Paritätsbit, das in der Verzögerungsschaltung 1226 gespeichert ist, an der punktierten Position eingefügt. Anschließend wird der Schalter 1234 erneut mit der Verzögerungsschaltung 1222 verbunden, wobei eine Verbindung mit dem Schalter 1236 aufrechterhalten wird. Der oben beschriebene Vorgang wird achtmal wiederholt, um acht Datenbits, die in der Verzögerungsschaltung 1222 gespeichert sind, zu punktieren und an den punktierten Positionen die überzähligen 8 ersten Paritätsbits einzufügen, die in der Verzögerungsschaltung 1226 gespeichert sind. Infolgedessen werden die 24 Datenbits Ik punktiert, um die 8 ersten Paritätsbits an den punktierten Positionen (d.h. Bit-Einfügepositionen) einzufügen, wodurch 24 Bits ausgegeben werden.
  • Anschließend wird der Schalter 1236 mit einem Ausgang der Verzögerungsschaltung 1224 verbunden. Anschließend werden die 24 ersten Paritätsbits Ck, die in der Verzögerungsschaltung 1224 gespeichert sind, über den Schalter 1236 ausgegeben. Als nächstes wird der Schalter 1236 zur Verzögerungsschaltung 1228 umgeschaltet, um die 24 zweiten Paritätsbits Dk auszugeben, die in der Verzögerungsschaltung 1228 gespeichert sind.
  • Unter Bezugnahme auf 13 fügt beim Decoder aus 10 gemäß der dritten Ausführungsform die Bit-Einfügeeinrichtung 1010 8 Bits in die 16 Eingabe-Datenbits ein, um die 24 Datenbits Ik zu erzeugen. Ein rekursiver systemischer Teil-Codierer, der die Endbits erzeugt, wird als Teil-Codierer verwendet. In diesem Fall erzeugt der Teil-Codierer insgesamt 32 Datenbits, die aus 24 codierten Datenbits, 4 Endbits und codierten Daten der 4 Endbits bestehen. Wenn die 24 codierten Datenbits ausgegeben werden, werden die Eingabe-Datenbits Ik zunächst punktiert, um die übrigen 8 ersten Paritätsbits (d.h. 4 Endbits und codierte Daten von 4 Endbits) an den bitpunktierten Positionen einzufügen.
  • Die kanalcodierten Symbole, in die spezifische Bits eingefügt sind, werden durch einen Kanal gesendet, worauf ein Empfänger die kanalcodierten Symbole empfängt und decodiert. Beim Decodiervorgang werden die Ausgangswerte des Multiplexers 1050 in einen Datensymbolabschnitt, einen ersten Paritätssymbolabschnitt und einen zweiten Paritätssymbolabschnitt demultiplexiert, wobei der Datensymbolabschnitt punktiert wird, um darin einen spezifischen Wert von beispielsweise –5 an der Bit-Einfügeposition einzufügen. Derartig verarbeitete Datenbits werden durch einen existierenden Decoder decodiert. (Siehe Claude Berrou, Alain Glavieux and Punya Thitmajshima Near Shannon Limit Error-Correction Coding and Decoding: Turbo-Codes (1).)
  • In den jeweiligen Ausführungsformen, die oben beschrieben wurden, wird angenommen, dass der Codierer die spezifischen Bits an der letzten Position des Datenbitstroms einfügt. Das heißt, der Codierer fügt die spezifischen Bits an einem Endabschnitt zu sendender Frame-Daten ein. Da die Datenbits, die in den zweiten Teil-Codierer des Kanalcodierers eingegeben werden, vom Interleaver verschachtelt werden, bevor sie dem zweiten Teil-Codierer zugeführt werden, kann die letzte Position des Datenbits, das in den ersten Teil-Codierer eingegeben wird, nicht mit der letzten Position des Datenbits übereinstimmen, das in den zweiten Teil-Codierer eingegeben wird. Da darüber hinaus die Einfügepositionen der spezifischen Bits, die in den zweiten Teil-Codierer eingegeben werden, jeweils von der Größe und dem Typ des Interleavers abhängen, besteht Bedarf an einem Verfahren, das den letzten Abschnitt des Datenbitstroms bestimmen kann, der in den ersten und den zweiten Teil-Codierer im Kanalcodierer eingegeben werden soll.
  • Die vorliegende Erfindung gibt ein Verfahren zum Bestimmen einer Einfügeposition eines spezifischen Bits an, die vom Interleaver des Kanalcodierers abhängt. 14 zeigt einen Vorgang zum Ermitteln einer Einfügeposition des spezifischen Bits im Kanalcodierer. Das Flussdiagramm von 14 beschreibt ein Programm, das vom Kanalcodierer aus 3 ausgeführt werden soll. In der folgenden Beschreibung entspricht ein erster Teil-Codierer dem ersten Teil-Codierer 320, ein zweiter Teil-Codierer dem zweiten Teil-Codierer 340 und entspricht ein Interleaver dem Interleaver 330. Weiterhin steuert das Flussdiagramm von 14 den Betrieb der Bit-Einfügeeinrichtung 310, um die spezifischen Bits einzufügen. Hat die Bit-Einfügeeinrichtung 310 den Aufbau von 4, kann das Flussdiagramm aus 14 von einem nicht dargestellten Controller ausgeführt werden, der den Betrieb des Schalters 434 in der Bit-Einfügeeinrichtung 310 ausführt. Das heißt, das Programm von 14 steuert den Schalter 434, um eine Einfügeposition eines spezifischen Bits zu kennzeichnen, so dass sich das spezifische Bit, das aus der Bit-Erzeugungseinrichtung 430 ausgegeben wird, an der letzten Position des Datenbitstroms befinden sollte.
  • Unter Bezugnahme auf 14 liegt bei Schritt 141 folgendes als Eingabe vor: eine Datenbitzahl Ninfo, die Größe NMIL eines MIL-Interleavers, die Zahl spezifischer Bits, die an der letzten Position der Datenbiteingabe in den ersten Teil-Codierer eingefügt werden sollen, (Pins1), die Zahl spezifischer Bits, die an der letzten Position der Datenbiteingabe in den zweiten Teil-Codierer eingefügt werden sollen, (Pins2), die Anordnungen Addrinfo[] und Addrdeint[] zum Speichern von Datenbitpositionen entschachtelter Datenbits und Variabler, die Anordnung Addrturbo[] zum Speichern von Positionen der Datenbits und Variable i und k, die auf "0" initialisiert sind. Anschließend wird in Schritt 142 bestimmt, ob die Variable i höher ist als die Datenbitzahl Ninfo. Ist i > Ninfo, schreitet das Programm zu Schritt 144 fort; andernfalls geht das Programm zu Schritt 143 über. Schritt 143 wird in gleicher Zahl wiederholt, wie die Datenbitzahl Ninfo. In Schritt 143 werden die entschachtelten Datenbitpositionen Addrinfo[] in der Anordnung Addrturbo[] gespeichert. Schritt 143 wird in gleicher Zahl wiederholt, wie die Datenbitzahl Ninfo, um sämtli che Datenbitpositionen Addrinfo [] in den Variablen Addrturbo[] zum Speichern von Positionen der Datenbits zu speichern, und anschließend schreitet das Programm zu Schritt 144 fort, um die Variable i auf "0" zu initialisieren.
  • Nach der Initialisierung der Variablen i, wird in Schritt 145 ermittelt, ob die Variable i größer ist als Pins1, die Zahl der Bits, die an der letzten Position des Datenbitstroms eingefügt werden soll, der in den ersten Teil-Codierer eingegeben wird. Schritt 146 wird in gleicher Zahl wiederholt, wie die Zahl Pins1 der Bits, die an der letzten Position des Datenbitstroms eingefügt werden soll. Wenn i ≤ Pins1, schreitet das Programm zu Schritt 146 fort, bei dem die letzte Position des Datenbitstroms, der in den ersten Teil-Codierer eingegeben wird, als Einfügeposition eines spezifischen Bits gekennzeichnet und anschließend in einer Variablen NTPOSi gespeichert wird. Wird der oben beschriebene Vorgang in gleicher Zahl wiederholt wie Pins1, die Zahl der spezifischen Bits, die an der letzten Position des Datenbitstroms eingefügt werden sollen, der in den ersten Teil-Codierer eingegeben wird, schreitet der Vorgang zu Schritt 147 fort, bei dem die Position des spezifischen Bits, das an der letzten Position von Pins1=4 der Datenbits eingefügt wird, die in den ersten Teil-Codierer eingegeben werden, gespeichert wird, worauf die Variablen k und j auf null initialisiert werden.
  • Nach der Initialisierung der Variablen k und j wird in Schritt 148 ermittelt, ob die Variable k größer als Pins2 ist, die Zahl der spezifischen Bits, die an der letzten Position des Datenbitstroms eingefügt werden sollen, der in den zweiten Teil-Codierer eingegeben wird. Die Schritte 149, 150 und 151 werden in gleicher Zahl wiederholt, wie die Zahl Pins2 der spezifischen Bits, die an der letzten Position des Datenbitstroms eingefügt werden sollen. Wenn j ≤ Pins2, schreitet der Vorgang zu Schritt 149 fort, bei dem die Positionen der Bits, die sich an der letzten Position des Datenbitstroms befinden, der in den zweiten Teil-Codierer eingegeben wird, als Einfügepositionen der spezifischen Bits gewählt und in einer Variablen ITPOSj gespeichert werden. Anschließend wird in Schritt 150 ermittelt, ob die Positionswerte, die in der Variablen ITPOSj gespeichert sind, die Positionswerte überlappen, die in der Variablen NTPSOi gespeichert sind. Das heißt, die Variable ITPOSj speichert die Positionsinformationen der spezifischen Bits, die an der letzten Position der Datenbits eingefügt werden sollen, die in den zweiten Teil- Codierer eingegeben werden, und die Variable NTPOSi spiechert die Positionsinformationen der spezifischen Bits, die an der letzten Position der Datenbits eingefügt werden sollen, die in den ersten Teil-Codierer eingegeben werden. Wenn die Informationen, die in ITPOSj gespeichert sind, die Informationen überlappen, die in BTPOSi gespeichert sind, bedeutet dies somit, dass dieselben spezifischen Bits überlappend an den letzten Positionen der Datenbits eingefügt werden, die in den ersten und den zweiten Teil-Codierer eingegeben werden.
  • Somit wird in Schritt 150 beurteilt, ob die in ITPOSj gespeicherten Positionen der Bits, die an der letzten Position der Datenbits eingefügt werden sollen, die in den zweiten Teil-Codierer eingegeben werden, mit den Positionen überlappen, die in NTPOSi bei Schritt 146 gewählt und gespeichert wurden. Wenn ITPOSj mit NTPOSi überlappt, wird die Variable k um Eins in Schritt 153 erhöht. Nach Erhöhung der Variablen k kehrt das Programm zu Schritt 148 zurück. Wenn die Positionen der spezifischen Bits, die an den letzten Positionen der Datenbits eingefügt werden sollen, die in den ersten und den zweiten Teil-Codierer eingegeben werden, einander überlappen, werden somit Einfügepositionen anderer spezifischer Bits, die an der letzten Position der Datenbits eingefügt werden sollen, die in den zweiten Codierer eingegeben werden, in ITPOSj gespeichert, und anschließend wird der Schritt 150 erneut ausgeführt, um zu bestimmen, ob die Bitpositionen, die in ITPOSj gespeichert sind, mit den Bitpositionen überlappen, die in NTPOSi gespeichert sind. Wenn die Bitpositionen, die in ITPOSj gespeichert sind, nicht mit den Bitpositionen überlappen, die in NTPOSi gespeichert sind, werden die Variablen k bzw. j in Schritt 151 um Eins erhöht. Anschließend kehrt das Programm zu Schritt 148 zurück. Die Schritte 148 bis 153 werden in gleicher Zahl wiederholt wie Pins2. Nach der Wiederholung der oben genannten Schritte in gleicher Zahl wie Pins2 (d.h. wenn j > Pins2), geht der Schritt 148 zu Schritt 152 über, bei dem die Variablen ITPOSk und NTPOSk ausgegeben werden, in denen die Einfügepositionen der spezifischen Bits gespeichert sind.
  • Somit wird in den Schritten 148 und 152, wenn die Bitpositionen, die in ITPOSj gespeichert sind, mit den Einfügepositionen der spezifischen Bits überlappen, die in NTPOSi gespeichert sind, die Position eines spezifischen Bits, das an der letzten Position des Datenbitstroms eingefügt werden soll, der in den zweiten Teil- Codierer eingegeben wird, derart verschoben, dass sie der anderen Position zugeordnet ist. Wenn sie einander jedoch nicht überlappen, wird die zugeordnete Position, die sich an der letzten Position des Datenbitstroms befindet, der in den zweiten Teil-Codierer eingegeben wird, unverändert beibehalten. Wenn bei dieser Ausführungsform die Bitpositionen, die in ITPOSj gespeichert sind, mit den Einfügepositionen der spezifischen Bits überlappen, die in NTPOSi gespeichert sind, wird die Einfügeposition des spezifischen Bits des Datenbitstroms, der in den zweiten Teil-Codierer eingegeben wird, verändert. Es ist jedoch ebenfalls möglich, die Einfügeposition des spezifischen Bits des Datenbitstroms, der in den ersten Teil-Codierer eingegeben wird, zu verändern.
  • Für ein besseres Verständnis des Programms, das in 14 gezeigt ist, erfolgt nun eine detaillierte Beschreibung, wie das Programm die Einfügeposition des spezifischen Bits gemäß dem Interleaver tatsächlich ermittelt.
  • Wenn davon ausgegangen wird, dass der Eingabe-Datenbitstrom eine Länge von 16 Bits hat und die Zahl der einzufügenden spezifischen Bits 8 ist, wird zunächst die Größe des verwendeten Interleavers (Länge des Datenbitstroms) + (Zahl der einzufügenden spezifischen Bits) = 16 + 8 = 24 Bits. Daher wird hier davon ausgegangen, dass der Interleaver eine Länge von 24 Bits hat, wie es in Tabelle 5 gezeigt ist. TABELLE 5
    Figure 00290001
  • Tabelle 5 zeigt die Positionen der Bits, die in der Reihenfolge angeordnet sind, wie sie aus dem Interleaver ausgegeben werden. Das heißt, "0" an der ersten Bitposition bedeutet, dass ein 0-tes Eingabebit zuerst ausgegeben wird; "6" an der zweiten Bitposition bedeutet, dass ein sechstes Eingabebit als nächstes ausgegeben wird; und "12" an der dritten Bitposition bedeutet, dass ein zwölftes Ein gabebit als nächstes ausgegeben wird. Unter Bezugnahme auf 14 erfolgt nun eine Beschreibung, die ein Verfahren zum Ermitteln der Einfügepositionen für den Interleaver betrifft. In Schritt 141 wird die Länge des Datenbitstroms eingegeben als Ninfo=16, eine Größe eines MIL-Interleavers NMIL = 24, die Zahl der spezifischen Bits, die am Ende des Datenbirtsroms eingefügt werden soll, der in den ersten Teil-Codierer eingegeben wird, (Pins1=4), die Zahl der spezifischen Bits, die am Ende des Datenbitstroms eingefügt werden sollen, der in den zweiten Teil-Codierer eingegeben wird, (Pins2=4), Datenbitpositionen Addrinfo[24], Positionen entschachtelter Datenbits, und Variable Addrdeinst[24], Addrturbo[24] zum Speichern von Positionen der Datenbits und Variable i sowie k werden auf "0" initialisiert.
  • Anschließend wird in Schritt 142 ermittelt, ob die Variable i größer ist als die Datenbitzahl Ninfo=16. Wenn i > Ninfo(=16) ist, schreitet des Programm zu Schritt 144 fort; andernfalls fährt das Programm zu Schritt 143 fort. An diesem Punkt wird der Schritt 143 16 mal wiederholt, was der Datenbitzahl Ninfo=16 entspricht, und die 16 Datenbitpositionen Addrinfo[16] nacheinander in der Anordnung Addrturbo[16] gespeichert. Anschließend schreitet des Programm zu Schritt 144 fort, um die Variable i auf "0" zu initialisieren.
  • Nach der Initialisierung der Variablen i wird in Schritt 145 ermittelt, ob die Variable i größer ist als die Zahl der Bits, die am Ende des Datenbitstroms eingefügt werden sollen, der in den ersten Teil-Codierer eingegeben wird, (Pins1=4). Schritt 146 wird in gleicher Zahl wiederholt, wie die Zahl (Pins=4) der Bits, die am Ende des Datenbitstroms eingefügt werden sollen. Wenn i ≤ Pins1(=4) ist, schreitet das Programm zu Schritt 146 fort, bei dem die letzte Position des Datenbitstroms, der in den ersten Teil-Codierer eingegeben wird, als Einfügeposition eines spezifischen Bits gekennzeichnet und anschließend in den Variablen NTPOSi gespeichert wird. Das heißt, die Positionen der letzten 4 Bits vor dem Verschachteln werden in den Variablen NTPOSi gespeichert. Wenn der oben beschriebene Vorgang in gleicher Zahl wie die Zahl Pins1=4 der spezifischen Bits wiederholt wird, die an der letzten Position des Datenbitstroms eingefügt werden sollen, der in den ersten Teil-Codierer eingegeben wird, schreitet der Vorgang zu Schritt 147 fort, bei dem die Position des spezifischen Bits, das an der letzten Position von Pins1=4 Datenbits eingefügt werden soll, die in den ersten Teil-Codierer eingegeben werden, gespeichert wird, worauf die Variablen k und j auf Null initialisiert werden. In Tabelle 6 sind Positionen der 4 Bits dargestellt, die an der letzten Position des Datenbit-Frames vor dem Verschachteln (d.h. 20, 21, 22 und 23) eingefügt werden. TABELLE 6
    Figure 00310001
  • Als nächstes wird in Schritt 148 ermittelt, ob die Variable k größer ist als die Zahl Pins2=4 spezifischer Bits, die an der letzten Position des Datenbitstroms eingefügt werden sollen, der in den zweiten Teil-Codierer eingegeben wird. Die Schritte 149, 150 und 151 werden viermal wiederholt, was der Zahl der spezifischen Bits entspricht, die an der letzten Position des Datenbitstroms (Pins2=4) eingefügt werden sollen. Ist j ≤ Pins2(=4), schreitet der Vorgang zu Schritt 149 fort, bei dem die Positionen der letzten 4 Bits, die sich am letzten Abschnitt des Datenbitstroms befinden, der in den zweiten Teil-Codierer eingegeben wird, als Einfügepositionen der spezifischen Bits gewählt und in den Variablen ITPOSj gespeichert werden. Tabelle 7 zeigt die Einfügepositionen der letzten 4 Bits, die in Tabelle 6 dargestellt sind, ermittelt für den ersten Teil-Codierer vor dem Verschachteln, zusammen mit den Einfügepositionen der letzten 4 Bits, die für den zweiten Teil-Codierer nach dem Verschachteln ermittelt sind. TABELLE 7
    Figure 00310002
  • Hier sind die Einfügepositionen der letzten 4 Bits vor dem Verschachteln, die für den ersten Teil-Codierer ermittelt sind, {20, 21, 22, 23} und die Einfügepositionen der letzten 4 Bits nach dem Verschachteln, die für den zweiten Teil-Codierer ermittelt sind, {5, 11, 17, 23}. Es wird darauf hingewiesen, das aus den ermittelten Einfügepositionen lediglich die Einfügeposition "23" überlappt. Daher ist die Gesamtzahl der ermittelten Einfügepositionen nicht 8 sondern 7. Um ein weiteres Bit zu ermitteln, wird demzufolge in Schritt 150 bestimmt, ob die in der Variablen ITPOSj gespeicherten Positionen der Bits, die an der letzten Position des Datenbitstroms eingefügt werden sollen, der in den zweiten Teil-Codierer eingegeben wird, mit den Positionen überlappen, die in Schritt 146 gewählt und in der Variablen NTPOSi gespeichert werden. Da die 23-ste Position in Tabelle 6 und 7 überlappt, schreitet hier das Programm zu Schritt 148 bis 151 fort. Anschließend fährt der Vorgang zu Schritt 149 fort, bei dem eine weitere Einfügeposition eines Bits, das an der letzten Position des Datenbitstroms eingefügt werden soll, der in den zweiten Teil-Codierer eingegeben wird, in ITPOSj gespeichert wird, um eine 19-te Bitposition als Einfügeposition zu bestimmen. Anschließend wird in Schritt 150 erneut bestimmt, ob die Bitpositionen, die in ITPOSj gespeichert sind, mit Bitpositionen überlappen, die in NTPOSi gespeichert sind. Da hier die 19-te Bitposition nicht überlappt, wird diese gewählte Position dauerhaft gespeichert. Anschließend werden die Schritte 148, 149, 150, 151 und 153 in gleicher Zahl wiederholt wie Pins2. Nach dem Wiederholen der oben beschriebenen Schritte, werden in Schritt 152 die Variablen ITPOSk und NTPOSk ausgegeben, die die gespeicherten Einfügepositionen speichern. Tabelle 8 zeigt die 8 Einfügepositionen, die aus den Variablen ITPOSk und NTPOSk ausgegeben werden. TABELLE 8
    Figure 00320001
  • Hier kann das Programm von 14 ausgedrückt werden als:
    Figure 00330001
    • Legende: || : oder
  • Wie es oben erläutert wurde, kann der neuartige Kanalcodierer, der die rekursiven systemischen Teil-Codierer enthält, eine Kanalcodierfunktion unter Verwendung eines Frame-Aufbaus ausführen, der die Beendigungswirkung hat.
  • Wenngleich die Erfindung unter Bezugnahme auf eine bestimmte Ausführungsform derselben dargestellt und erläutert wurde, wird der Fachmann verstehen, dass unterschiedliche Änderungen in Form und Details an dieser vorgenommen werden können, ohne vom Geltungsbereich der Erfindung abzuweichen, wie er in den beigefügten Ansprüchen definiert ist.

Claims (6)

  1. Turbo-Codiervorrichtung, die umfasst: eine Bit-Einfügeeinrichtung, die wenigstens ein spezifisches Daten-Bit an einer letzten Position eines Daten-Bitstroms einfügt, der in einen ersten Teil-Decoder eingegeben wird, und wenigstens ein spezifisches Daten-Bit so einfügt, dass es an einer letzten Position eines Interleaving unterzogenen Daten-Bitstroms erscheint, der in einen zweiten Teil-Codierer eingegeben wird; wobei der erste Teil-Codierer den Daten-Bitstrom, in den das Bit eingefügt wurde, codiert, um erste Paritätssymbole zu erzeugen; einen Interleaver, der Interleaving des Daten-Bitstrom mit dem eingefügten Bit durchführt; wobei der zweite Teil-Codierer den Interleaving unterzogenen Daten-Bitstrom codiert, um zweite Paritätssymbole zu erzeugen; und einen Multiplexer, der Ausgänge der Bit-Einfügeeinrichtung, des ersten Teil-Codierers und des zweiten Teil-Codierer multiplexiert.
  2. Turbo-Codiervorrichtung nach Anspruch 1, wobei die Bit-Einfügeeinrichtung wenigstens zwei spezifische Daten-Bits einfügt und die Hälfte der spezifischen Daten-Bits am Ende des Daten-Bitstroms eingefügt wird, der in den ersten Teil-Codierer eingegeben wird, und eine verbleibende Hälfte der spezifischen Daten-Bits am Ende des Daten-Bitstroms eingefügt wird, der in den zweiten Teil-Codierer eingegeben wird.
  3. Turbo-Codiervorrichtung nach Anspruch 2, wobei die Bit-Einfügeeinrichtung eine Position eines spezifischen Bits, das in den zweiten Teil-Codierer eingefügt werden soll, nach vorn verschiebt, wenn eine Position eines spezifischen Bits, das in den ersten Teil-Codierer eingefügt werden soll, eine Position eines spezifischen Bits überlappt, das in den zweiten Teil-Codierer eingefügt werden soll.
  4. Verfahren zum Einfügen spezifischer Bits in einen Frame, der von einem Turbo-Codierer empfangen wird, der einen ersten Teil-Codierer, der empfangene Daten-Bits codiert, um erste Paritätssymbole zu erzeugen, einen Interleaver, der Interleaving der Daten-Bits mit dem eingefügten spezifischen Bit durchführt, und einen zweiten Teil-Codierer aufweist, der die Interleaving unterzogenen Daten-Bits codiert, um zweite Paritätssymbole zu erzeugen, wobei das Verfahren die folgenden Schritte umfasst: Speichern der Daten-Bits unter Verwendung einer Speichereinrichtung, die die gleiche Größe hat wie eine Größe eines empfangenen Frames; Einfügen einer vorgegebenen Anzahl spezifischer Bits in den empfangenen Frame an einer letzten Position von Daten-Bits, die in den ersten Teil-Codierer eingegeben werden; und Bestimmen einer Position in dem empfangenen Frame, die nach Interleaving als eine letzte Position von Daten-Bits, die in den zweiten Teil-Codierer eingegeben werden, erscheint, und Einfügen der vorgegebenen Anzahl spezifischer Bits in den empfangenen Frame an der bestimmten letzten Position.
  5. Verfahren nach Anspruch 4, wobei die Anzahl spezifischer Bits, die in den ersten Teil-Codierer eingefügt werden, identisch mit der Anzahl spezifischer Bits ist, die in den zweiten Teil-Codierer eingefügt werden.
  6. Verfahren nach Anspruch 4, wobei eine Position eines spezifischen Bits, das in den zweiten Teil-Codierer eingefügt werden soll, nach vorn verschoben wird, wenn eine Position eines spezifischen Bits, das in den ersten Teil-Codierer eingefügt werden soll, eine Position eines spezifischen Bits überlappt, das in den zweiten Teil-Codierer eingefügt werden soll.
DE69931751T 1998-08-20 1999-08-20 Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers Expired - Lifetime DE69931751T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR3418698 1998-08-20
KR19980034186 1998-08-20
PCT/KR1999/000472 WO2000011791A1 (en) 1998-08-20 1999-08-20 Device and method for inserting previously known bits in input stage of channel encoder

Publications (2)

Publication Number Publication Date
DE69931751D1 DE69931751D1 (de) 2006-07-20
DE69931751T2 true DE69931751T2 (de) 2006-10-19

Family

ID=36643379

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69931751T Expired - Lifetime DE69931751T2 (de) 1998-08-20 1999-08-20 Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers

Country Status (11)

Country Link
US (1) US6374386B1 (de)
EP (1) EP1048114B1 (de)
CN (1) CN1144375C (de)
AT (1) ATE329413T1 (de)
AU (1) AU731794B2 (de)
BR (1) BR9906704A (de)
CA (1) CA2306367C (de)
DE (1) DE69931751T2 (de)
IL (1) IL135676A (de)
RU (1) RU2190296C2 (de)
WO (1) WO2000011791A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100377939B1 (ko) * 1998-09-01 2003-06-12 삼성전자주식회사 이동통신시스템에서서브프레임전송을위한프레임구성장치및방법
WO2000064058A1 (fr) * 1999-04-16 2000-10-26 Fujitsu Limited Codeur et decodeur
CN1271796C (zh) 1999-05-19 2006-08-23 三星电子株式会社 涡式交织方法
EP1085660A1 (de) * 1999-09-15 2001-03-21 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Turbokodierer mit paralleller Ausführungsform
US6671327B1 (en) * 2000-05-01 2003-12-30 Zarlink Semiconductor Inc. Turbo trellis-coded modulation
WO2002009300A2 (en) * 2000-07-21 2002-01-31 Catena Networks, Inc. Method and system for turbo encoding in adsl
US7315579B2 (en) * 2001-02-28 2008-01-01 Broadcom Corporation Trellis coded modulation tails
CN100349380C (zh) * 2001-11-30 2007-11-14 中兴通讯股份有限公司 一种并行级联码的编译码方法
US7085984B2 (en) * 2001-12-28 2006-08-01 Samsung Electronics Co., Ltd. System and method for providing an improved channel encoder in a digital data communications system
CN100359831C (zh) * 2001-12-28 2008-01-02 中兴通讯股份有限公司 均匀插入比特的并行级联码交织方法及交织器
US7293217B2 (en) 2002-12-16 2007-11-06 Interdigital Technology Corporation Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
TWI221966B (en) * 2003-08-28 2004-10-11 Sunplus Technology Co Ltd Device for encrypting/protecting program with protection bit codes
KR100896684B1 (ko) 2004-01-27 2009-05-14 삼성전자주식회사 수신 성능이 향상된 디지털 방송 송수신 시스템 및 그의신호처리방법
KR100692596B1 (ko) * 2004-05-06 2007-03-13 삼성전자주식회사 수신 성능이 향상된 디지털 방송 송수신 시스템 및 그의신호처리방법
KR20050118056A (ko) 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7346832B2 (en) 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
EP1628425B1 (de) 2004-08-17 2012-12-26 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zur Raum-Zeit-Frequenz Blockkodierung
WO2006062296A2 (en) * 2004-12-11 2006-06-15 Electronics And Telecommunications Research Institute Encoding system using a non-binary turbo code and an encoding method thereof
KR101283862B1 (ko) * 2006-08-16 2013-07-08 엘지전자 주식회사 터보 부호의 부호화 장치 및 방법
US8074155B2 (en) * 2006-09-28 2011-12-06 Broadcom Corporation Tail-biting turbo coding to accommodate any information and/or interleaver block size
US8111670B2 (en) * 2007-03-12 2012-02-07 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using remainder bytes
FR2936593B1 (fr) * 2008-09-26 2010-10-15 Guilbert Express Sa Generateur d'air chaud
US8036248B2 (en) * 2008-10-29 2011-10-11 Silicon Image, Inc. Method, apparatus, and system for automatic data aligner for multiple serial receivers
WO2012036754A1 (en) * 2010-09-14 2012-03-22 King Saud University Joint encoding and decoding methods for improving the error rate performance
US9172387B2 (en) * 2013-09-09 2015-10-27 Microchip Technology Incorporated Sampling input stage with multiple channels
CN110190925B (zh) * 2018-02-23 2022-03-08 中兴通讯股份有限公司 一种数据处理方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675971B1 (fr) * 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US6212654B1 (en) * 1997-07-22 2001-04-03 Lucent Technologies Inc. Coded modulation for digital storage in analog memory devices
KR100387078B1 (ko) * 1997-07-30 2003-10-22 삼성전자주식회사 대역확산통신시스템의심볼천공및복구장치및방법
KR100330980B1 (ko) * 1997-11-10 2002-04-01 다치카와 게이지 인터리빙 방법, 인터리빙 장치 및 인터리빙 패턴 생성 프로그램이 기록된 기록 매체
US6088387A (en) * 1997-12-31 2000-07-11 At&T Corp. Multi-channel parallel/serial concatenated convolutional codes and trellis coded modulation encoder/decoder
US6044116A (en) * 1998-10-29 2000-03-28 The Aerospace Corporation Error-floor mitigated and repetitive turbo coding communication system

Also Published As

Publication number Publication date
EP1048114B1 (de) 2006-06-07
AU731794B2 (en) 2001-04-05
ATE329413T1 (de) 2006-06-15
IL135676A (en) 2003-12-10
CN1144375C (zh) 2004-03-31
US6374386B1 (en) 2002-04-16
CA2306367C (en) 2004-04-13
AU5308699A (en) 2000-03-14
WO2000011791A1 (en) 2000-03-02
DE69931751D1 (de) 2006-07-20
EP1048114A1 (de) 2000-11-02
CN1275264A (zh) 2000-11-29
BR9906704A (pt) 2000-08-08
IL135676A0 (en) 2001-05-20
RU2190296C2 (ru) 2002-09-27
CA2306367A1 (en) 2000-03-02

Similar Documents

Publication Publication Date Title
DE69931751T2 (de) Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers
DE69936626T2 (de) Kanalkodierung und -dekodierung für ein kommunikationssystem
DE29924886U1 (de) Kanalcodiervorrichtung
DE60221929T2 (de) Vorrichtung und Verfahren für Codegenerierung in einem Kommunikationssystem
DE60037463T2 (de) Ratenanpassung und Kanalverschachtelung für ein Kommunikationssystem
DE60034203T2 (de) Vorrichtung zur übereinstimmung der datenrate und verfahren zur datenübertragung
DE60029181T2 (de) Multiplexverfahren und multiplexvorrichtung sowie verfahren und vorrichtung zur übertragung von datensignalen
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
DE20202467U1 (de) Vorrichtung für das Erzeugen und Dekodieren von Kodes in einem Kommunikationssystem
DE69922707T2 (de) Sender und Empfänger mit Ratenanpassung
DE10030407B4 (de) Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem
DE69424119T2 (de) Verfahren und anordnung fur die ubertragung, den empfang, die kodierung und dekodierung punktierter faltungskoden
DE69838451T2 (de) Verfahren und schaltung zur adaptiven kanalkodierung
DE69700532T2 (de) Verfahren und vorrichtung zur faltungskodierung und -dekodierung von datenblöcken
DE10248989B4 (de) Vorrichtung und Verfahren zum Durchführen einer Codierung und Ratenabstimmung in einem CDMA-Mobilkommunikationssystem
DE19815597B4 (de) Datenübertragungssystem, mobile Station und Verfahren zum Verringern der Rahmenfehlerrate bei einer in Form von Datenrahmen erfolgenden Datenübertragung
WO2001039421A2 (de) Verfahren zur anpassung der datenrate in einer kommunikationsvorrichtung und entsprechende kommunikationsvorrichtung
EP0301161A2 (de) Verfahren zur Aufbereitung eines Faltungscodes zur Übertragung sowie dessen empfangsseitige Rückwandlung sowie Anordnung hierzu
DE20207297U1 (de) Vorrichtung zur Erzeugung von Kodes in einem Kommunikationssystem
DE20216690U1 (de) Einrichtung zum Senden/Empfangen von Fehlerfeststellungsinformation in einem Kommunikationssystem
DE60219572T2 (de) Verfahren zür Kodierung und Dekodierung von Steuerinformationen in einem drahtlosen Kommunikationssystem
DE69916726T2 (de) Kodierungsvorrichtung und -Verfahren
DE19857677A1 (de) Verfahren und Anordnung zur Kodierung von Symbolen für eine Übertragung über eine Funkschnittstelle eines Funk-Kommunikationssystems
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
EP1302014B1 (de) Verfahren und einrichtung zur diversitätsübertragung codierter information

Legal Events

Date Code Title Description
8364 No opposition during term of opposition