DE69934465T2 - Zweidimensionale Verschachtelung für CDMA - Google Patents

Zweidimensionale Verschachtelung für CDMA Download PDF

Info

Publication number
DE69934465T2
DE69934465T2 DE69934465T DE69934465T DE69934465T2 DE 69934465 T2 DE69934465 T2 DE 69934465T2 DE 69934465 T DE69934465 T DE 69934465T DE 69934465 T DE69934465 T DE 69934465T DE 69934465 T2 DE69934465 T2 DE 69934465T2
Authority
DE
Germany
Prior art keywords
character
ram
characters
col
space
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
DE69934465T
Other languages
English (en)
Other versions
DE69934465D1 (de
Inventor
Selim Shlomo Cupertino Rakib
Zvi San Jose Bernstein
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
ATI International SRL
ATI Technologies ULC
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 ATI International SRL, ATI Technologies ULC filed Critical ATI International SRL
Application granted granted Critical
Publication of DE69934465D1 publication Critical patent/DE69934465D1/de
Publication of DE69934465T2 publication Critical patent/DE69934465T2/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/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/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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • 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/276Interleaving address generation
    • 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/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • H04L1/0003Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes
    • 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
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/3405Modifications of the signal space to increase the efficiency of transmission, e.g. reduction of the bit error rate, bandwidth, or average power

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

  • Einsatzgebiet
  • Die Erfindung findet allgemein Anwendung im Gebiet der digitalen Datenkommunikation. Insbesondere ist sie sinnvoll beim Versenden von CDMA Multiplex-Datenübertragungen von Timeslots eines Zeitmultiplex-Systems.
  • Die Kabel-TV-Industrie entwickelt sich in Richtung auf Systeme, die digitale Daten zusätzlich zur Übertragung von analogen Videosignalen in einer Richtung auch in zwei Richtungen über das gleiche HFC-Medium über die HFC-(Hybrid Fiber Coax)-Glasfaserstrecke übertragen können. Dies ist sinnvoll für die Bereitstellung von Hochgeschwindigkeits-Internetzugang und von Telefondiensten für Kabelabonnenten. Diese digitalen Dienste werden über Kabelmodems bereitgestellt. Zwei eng damit verbundene Standards, die für die Kompatibilität zwischen Kabelmodems Relevanz haben, sind die Standards 802.14 und MCNS, die Zeitmultiplex-Verfahren zur Bereitstellung des gleichzeitigen Zugriffs auf Medien für zahlreiche Abonnenten bereitstellen. Der Patentnehmer der vorliegenden Erfindung hat Kabelmodems entwickelt, die derzeit öffentlich verfügbar sind und die Synchronous Code Division Multiple Access (SCDMA) verwenden, um den gleichzeitigen Mehrfachzugriff auf die HFC-Medien für mehrere Abonnenten bereitzustellen.
  • Ein aufkommender Standard zur Verwendung bei digitaler Mehrdienst-Bereitstellung über TV-Verteilungssysteme ist MCNS (Multimedia Cable Network System). Bei diesem Standard werden MAC-Schichtdaten-Frames in MPEG-Pakete aufgeteilt, die eine 64-QAM- oder 256-QAM-Modulation haben und in einem kontinuierlichen Stream nach der FEC-Codierung abwärts gesendet werden. Die FEC-Codierung umfasst vier Verarbeitungsschichten: Die MPEG-Pakete werden aufgeteilt und in Reed-Solomon-Blöcke mit Blockgrenzen codiert, die keine Beziehung zu MPEG-Paketgrenzen haben; eine Verschachtelungseinrichtung mischt die sich ergebenden 7-Bit-Zeichen, sodass zuvor zeitlich aufeinander folgende Zeichen nicht aufeinander folgen; ein Randomisierer, der die Ausgabe der Verschachtelungseinrichtung verwendet, mischt die Zeichen in pseudozufälliger Reihenfolge; und ein Trellis-Codierer fügt einige redundante Bits hinzu. In den Downstream-Daten gibt es keine Spalte, in denen die CU einen Barker-Code senden kann, der den Master-Chip-Takt trägt und dessen Signale Begrenzungen bilden. Es gibt keine Downstream-Frame-Begrenzungen mit Bezug auf MPEG-Paket-Frames, aber es gibt durch einen 42-Bit-FEC-Sync-Trailer abgegrenzte FEC-Frames, die am Ende von 60 R-S-Blöcken für 64-QAM hinzugefügt sind, wobei jeder R-S-Block 128 7- Bit-Zeichen umfasst. In den ersten vier Zeichen des Trailers gibt es ein eindeutiges 28-Bit-Synchronisationsmuster. Die verbleibenden 14 Bits werden zur Steuerung der Verschachtelungseinrichtung verwendet. Der Trailer wird vom R-S-Encoder eingesetzt und vom R-S-Decoder erkannt, um FEC-Frame-Begrenzungen zu finden. Es gibt keine Synchronisationskupplung zwischen den FEC- und Transportebenen, in denen MPEG-Pakete abgearbeitet werden.
  • Der Standard 802.14 verwendet Minislots in einem TDMA-Schema, um Daten sowohl upstream als auch downstream zu transportieren. Der MCNS-Standard verwendet wie der 802.14-Standard Minislots und ein TDMA-Schema.
  • Der Patentnehmer der vorliegenden Erfindung arbeitet an der Entwicklung einer neuen Generation von Kabelmodems, die mit den Minislot-basierten TDMA-Schemen der an MCNS orientierten Media-Access-Control-(MAC)-Softwareschichten an der Zentraleinheit (CU) am vorderen Ende der Abonnenteneinrichtungen (remote Einheiten oder RUs) kompatibel sind. Diese Kabelmodems verwenden weiterhin die SCDMA-Technologie für die Übertragung über die Medien, und sie bilden Zeichen in Minislots in unterschiedlichen Spreizcodes und Frames in einer zweidimensionalen Code-Zeitmatrix ab.
  • Ein für den Patentnehmer dieser Erfindung erteiltes Patent mit dem Titel „APPARATUS AND METHOD FOR SYNCHRONIZING AN SCDMA UPSTREAM OR ANY OTHER TYPE UPSTREAM TO AN MCNS DOWNSTREAM OR ANY OTHER TYPE DOWNSTREAM WITH A DIFFERENT CLOCK RATE THAN THE UPSTREAM", eingereicht am 06.05.1998, Seriennummer 09/074,036, veröffentlicht als US 6243369-B1 am 05.06.2001, beschreibt Lösungen für einige der Probleme bei der Anpassung von SCDMA an MCNS- oder 802.14-Minislot-Umgebungen.
  • Ein Problem bei der Verwendung einer derartigen zweidimensionalen Matrix zur Übertragung von Zeichen von zugeordneten Minislots ist Burst-Interferenz. Man nehme an, dass 8 aus einem Minislot upstream oder downstream zu übertragende Zeichen in der Matrix ohne Verschachtelung so platziert werden, dass sie zeitlich nacheinander über ein kurzes Intervall übertragen werden. Wenn in diesem Fall ein kurzer Interferenz-Burst auftritt, dessen Länge ausreichend ist, um eine wahrnehmbare Anzahl der 8 Zeichen aus dem Minislot zu beeinträchtigen, kann der Datenverlust die Fehlererkennungs- und Korrekturmöglichkeiten der ECC-Bits übersteigen, die zu den Nutzdaten (Payload Data) hinzugefügt werden, und somit zum Verlust von Nutzdaten führen. Entsprechend gibt es wegen Unvollkommenheiten in der Systemzeitsteuerung in den SCDMA-Transmittern, wenn von den gleichen Frame-Nummern durch unterschiedliche RUs übertragene Daten nicht in präziser zeitlicher Ausrichtung bei der CU eintreffen (Frame-Begrenzungen stimmen unabhängig von unterschiedlichen Pfadlängen für jede RU zeitlich nicht für alle von allen RUs übertragene Frames überein), eine Interferenz zwischen mit unterschiedlichen, aufeinander folgenden orthogonalen zyklischen Codes übertragenen Daten. Falls diese Interferenz groß genug ist, können Nutzdaten ausreichend beeinflusst werden, um die Fehlererkennungs- und Korrekturmöglichkeit der ECC-Bits zu übersteigen.
  • Daher ist ein Bedarf an einem Verfahren und einer Einrichtung zur Verschachtelung von Zeichen aus Minislots in der Zeit- und in der Code-Dimension entstanden, sodass Zeichen vom gleichen Minislot nicht zeitlich eng genug nacheinander oder mit in der zyklischen Codesequenz ausreichend nahe angeordneten Codes übertragen werden, um durch Rauschimpulse oder Intercode-Interferenzen beeinträchtigt zu werden.
  • Zusammenfassung der Erfindung
  • Die Lehren der Erfindung betreffen einen Typ von Verschachtelungseinrichtungen, die ein eindimensionales Array sequenzieller Zeichen zur Übertragung in einem Codemultiplex-System in ein verschachteltes zweidimensionales System mit einer Achse entlang der Codedimension und der anderen Achse entlang der Zeitdivision verschachteln können. Das erste Verfahren der Verschachtelung berechnet Indizes i und j zur Verwendung bei der Erzeugung von RAM-Adressen zum Speichern oder Lesen von Zeichen aus dem RAM, wobei i als Funktion des Indexes des zu speichernden und einzulesenden Zeichens und der Anzahl der alloziierten Codes berechnet ist. Der Index j wird als Funktion des Designfaktors Col_Space berechnet, der gleich einer Ganzzahl sequenzieller Spalten ist, die von Rauschimpulsen betroffen sein könnten. Die sich ergebenden Indizes i und j bewirken die Verschachtelung der sequenziell empfangenen Zeichen auf eine Weise, bei der keine zwei Zeichen in einem Paar aus einer beliebigen Spalte von Spalten in einer aufeinander folgenden Anzahl von Spalten zeitlich enger als eine Anzahl von Indizes zusammen sind, d. h. als Zeichenübertragungszeiten, die geringer sind als die vertikale Distanz d eines Designparameters.
  • Das zweite Verschachtelungsverfahren verschachtelt in Bezug sowohl auf den Designparameter Col_Space als auch auf einen berechneten Parameter ROWSPACE, der die Ganzzahl von im Array aufeinander folgenden Zeilen oder Codes ist, die durch infolge von Frame-Ausrichtung oder anderen Unvollkommenheiten im System bewirkter Intercode-Interferenz negativ beeinflusst sein könnten. Wiederum werden Indizes i und j berechnet, aus denen RAM-Adressen erzeugt werden. Der Index i wird als Funktion von ROWSPACE, des Zeichenindexes n und der zur Verwendung im Verfahren 2 berechneten Anzahl von Spalten berechnet. Der Index j wird als Funktion von Col_Space, dem Zeichenindex n und der Anzahl von Spalten im Array berechnet. Das Ergebnis ist ein verschachteltes Array, wobei keine zwei Zeichenindizes an einer beliebigen Position in einer Anzahl aufeinander folgender von Col_Space definierter Spalten enger zusammen sind als die vertikale Distanz d und wobei keine zwei Zeichenindizes an einer beliebigen Position in einer Anzahl aufeinander folgender, von ROWSPACE definierter Zeilen enger zusammen sind als HOR_DIST, ein Designparameter, der in die Verschachtelungseinrichtung eingegeben wird.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Diagramm einer Form der nicht verschachtelten Abbildung von Zeichen aus einem linearen Array von Minislots in einem zweidimensionalen Array in Codes und Zeit.
  • 2A ist ein Blockdiagramm einer Form einer Verschachtelungseinrichtung, die Zeichen im RAM in verschachtelter Weise entsprechend einem der Verfahren 1 oder 2 in einem System speichern kann, wobei die Anzahl der für eine RU vergebenen Codes stets gleich ist.
  • 2B ist ein Diagramm eines typischen eindimensionalen Minislots mit 28 Zeichen.
  • 3 ist ein Diagramm eines nicht verschachtelten Arrays aus 28 Zeichen aus dem in 2B wiedergegebenen Minislot.
  • 4 ist ein Diagramm eines verschachtelten Arrays mit R = 4, D = 3 und Col_Space = 2 als Ergebnis der Berechnung von RAM-Adressen unter Verwendung von Verfahren 1.
  • 5 ist ein Ablaufdiagramm des Prozesses des Verschachtelungsverfahrens
  • 6 ist ein Ablaufdiagramm des Prozesses des Verschachtelungsverfahrens
  • 7 ist ein Blockdiagramm einer Ausführungsform einer Verschachtelungseinrichtung, die in Anwendungen eines CDMA-Systems zweckmäßig ist, wobei die Anzahl der für jede RU vergebenen Codes variabel ist.
  • 8 ist ein verschachteltes Array, das sich aus dem Verfahren 2 ergibt.
  • Detaillierte Beschreibung der bevorzugten und alternativen Ausführungsformen
  • Diese Anmeldung bezieht sich auf die Lehren der PCT-Veröffentlichung WO97/08861, veröffentlicht am 6. März 1997 hinsichtlich Details von SCDMA-Sendern und -Empfängern, und sie bezieht sich auf die Lehren der PCT-Veröffentlichung WO97/34421, veröffentlicht am 18. September 1997 hinsichtlich Vorrichtungen und Verfahren zur Verwendung von SCDMA bei hybriden Lichtwellenleiter-Koax-Anlagen für die Verwendung von ATM-Zellen zur Datenübertragung. Hierin wird auch Bezug genommen auf die veröffentlichten Standards IEEE 802.14 und MCNS.
  • In 802.14- und MCNS-Systemen wird für die RUs normalerweise ein Block von Minislots für die Upstream-Übertragung durch die Medienzugangskontroll-Softwareschicht in der CU über Downstream-Management und Steuermeldungen vergeben. Upstream-Daten werden in Form von APDUs entsprechend der Definition in der Spezifikation IEEE 802.14 organisiert. Eine ADPU ist eine ATM-Protokolldateneinheit. Im Wesentlichen ist es ein 54-mal-74-Byte-Datenpaket (in Abhängigkeit davon, ob die Reed-Solomon-Codierung ein- oder ausgeschaltet ist), und es ist die standardmäßige 802.14-MAC-Schicht, die Prozesse erwarten, um Daten zu den Schaltkreisen der physischen Schicht zu leiten. Wenn ein Block von Upstream-Minislots für eine RU vergeben wird, werden beliebige dort vorhandene APDUs verwendet, um sie zu übertragen und in eine ganzzahlige Anzahl von Minislots aufzuteilen. Da SCDMA-Sender Ranging-Schaltungen umfassen, um RU-Minislot-Begrenzungen sehr genau zeitlich mit CU-Minislot-Begrenzungen auszurichten, ist das Erhalten einer ganzzahligen Anzahl von Minislots für jede SPDU einfacher, da das Guardband mit programmierbarer Größe des ersten Minislots jedes Blocks mit 0 Bytes vorgegeben werden kann.
  • Um SCDMA-Verfahren in dieser Minislot-orientierten Umgebung einzusetzen, ist es erforderlich, SCDMA-Frames auf Minislots abzubilden. Eine typische SCDMA-Frame-Struktur hat 8 Subframes und einen Gap in jedem Frame, die zum Ranging zur Erzielung der Frame-Synchronisierung verwendet werden. 802.14- und MCNS-Systeme verwenden 8-Bit-Bytes, sodass bei einem 8-Byte-Frame unabhängig davon, wie viel Bits mit jedem Subframe überfragen werden, das Ergebnis stets eine ganzzahlige Anzahl von Bytes ist, die in diesen 8 Subframes übertragen worden ist. Wenn es im Codebuch C Codes gibt, besteht jedes Subframe aus C Zeichen. Bei einem SCDMA-System werden C Zeichen während eines Bauds oder einer Systemzeit simultan von verschiedenen RUs bei unterschiedlichen zugeordneten Codes übertragen, sodass sie sich nicht untereinander beeinflussen.
  • Falls das Codebuch 156 Codes hat, von denen jeder 156 Elemente enthält, und falls jeder Code eine Zeile in einer zweidimensionalen CDMA-Spreizcodematrix ist, hat die Matrix 156 Spalten, wobei jedes Zeilenelement in einer bestimmten Spalte ein Element in einem Code ist. Jeder Code ist daher ein 1×56-Vektor, der eine Zeile in der CDMA-Spreizcodematrix definiert. Jeder Subframe ist ein 1×156-Vektor, wobei ein 156-Code-Codebuch verwendet wird, bei dem jedes Element ein Zeichen ist, das in Abhängigkeit vom verwendeten Modulationstyp aus einer bestimmten Anzahl von Bits besteht. 16-QAM ist in der Umsetzung 4 Bits pro Zeichen. Zur Übertragung dieses Subframes mit einem SCDMA-Sender wird der 1×156-Subframe-Vektor (auch als Informationsvektor bezeichnet) von der Spreizcodematrix matrixmultipliziert, um einen 1×156-Ergebnisvektor mit 156 Chips zu erhalten, wobei jeder Chip die Summe von 156 Teilprodukten ist. Dieser Ergebnisvektor wird während der Subframe-Zeit des SCDMA-Frames übertragen.
  • Normalerweise ist die Code-Zuordnung zu Minislot-Mappings fest und sowohl der CU als auch den RUs bekannt, sodass eine RU bei der Zuordnung eines Minislot-Blocks zu einer RU weiß, welche Codes zur Übertragung von Daten von diesen Minislots verwendet werden.
  • 1 zeigt einen typischen Minislot für Code- und Frame-Mapping. 1 gibt nur ein Beispiel eines programmierbaren Mappings zwischen zugeordneten Minislot-Zahlen und den Zeichen und Codes wieder, die von der RU, die die Minislot-Zuordnung empfängt, übertragen werden. Die 802.14- und MCNS-CU-Mac- und Terminalsteuerungs-(TC)-Schichten verstehen, wenn sie konventionsgemäß sind, Minislots nur im Upstream, und sie verfügen über keine Möglichkeit, HS-CDMA-Frames zu verstehen oder zu reassemblieren. Die vom Patentnehmer dieser Erfindung bereitgestellte TC-Schicht eines 802.14- oder MCNS-CU-konformen CU- und RU-Modems wird modifiziert, um Ranging- und Barker-Codes in Gaps in HS-CDMA-Frames zu verstehen und um ein programmierbares Mapping von HS-CDMA-Frames, Subframes, Zeichen und Codes auf Minislots zu verstehen. Dieses Mapping wird durch die CU- und RU-TC-Schichtprozesse für die CU-MAC-Schicht und die RU-MAC-Schicht transparent gemacht.
  • Bei diesem Mapping hat jeder Minislot eine Zahl, und die CU- und RU-TC-MAC-Schichten können jede Minislot-Zahl aufzeichnen. Wenn eine RU Upstream-Daten zur Übertragung empfängt, sendet sie eine Upstream-Management- und Steuermeldung zum Headend-Controller mit der Nachricht „Ich habe anstehenden Upstream-Traffic".
  • Dies wird als Zugangsanforderung bezeichnet. Da der Headend-Controller nicht weiß, wann die RU diese Zugangsanforderungen sendet, ordnet sie zu diesem Zweck eine Untermenge der Minislots zu. Diese Minislots werden häufig als Konkurrenz-Minislots (Contention Minislots) bezeichnet, da mehrere RUs Zugangsanforderungen im gleichen Minislot senden und somit miteinander konkurrieren bzw. kollidieren könnten. Die RUs haben zu diesem Zweck in den PCT-Veröffentlichungen beschriebene Konkurrenzauflösungs-Algorithmen.
  • Der Headend-Controller antwortet auf die Zugangsanforderung mit einer Downstream-Management- und Steuermeldung, die der RU eine ganzzahlige Anzahl von spezifischen Minislots zuweist. Die Downstream-Meldung passiert die CU-TC-Schicht unverändert und erreicht die RU-MAC-Schichtprozesse aller RUs. Die spezifische RU, an die die Meldung gerichtet ist, erkennt die Adresse und sendet einen Befehl zur TC-Schicht der RU mit der Anweisung, auf dem/den zugeordneten Minislot(s) zu übertragen.
  • 1 zeigt, wie Minislots auf spezifische Zeichennummern und spezifische Codes abgebildet werden. Jeder Frame ist durch ein Feld wiedergegeben, für das die Felder 920, 922 und 924 typisch sind. Jeder Frame hat darin die Zeichennummern eingetragen, die während des betreffenden Frames übertragen werden. Jedes Zeichen wird in Abhängigkeit von seinem Dateninhalt auf einen Konstellationspunkt der Konstellation des spezifischen verwendeten Modulationstyps abgebildet, z. B. QPSK, 16-QAM usw.
  • Es gibt zwei Dimensionen des Matrix-Mappings von Zeichen aus Minislots auf Codes und Frames der physischen SCDMA-Schicht. Dies sind die Codedimension entlang der vertikalen Achse und die Zeitdimension entlang der horizontalen Achse. Die Zahlen entlang der vertikalen Achse sind die Code-IDs für die Codes im Codebuch.
  • Einige der Frames in 1 haben in Fettschrift wiedergegebene Begrenzungen, wie z. B. die Frames, die den Minislot 0 enthalten, in dem die Zeichen 0 bis 47 übertragen werden. Die Zeichen 1–47 umfassen die gesamten 48 Zeichen des Dateninhalts von Minislot 0. Man beachte, dass das in 1 wiedergegebene Mapping unter der Annahme, dass die Zeichen 0–7 im Minislot 0 zeitlich aufeinander folgen, zeitlich aufeinander folgende Zeichen in der Rohdateneingabe hat, die zeitlich aufeinander folgend beim Code 0 in der SCDMA-Codedomäne auf der physischen Schicht übertragen werden. Wenn während des Frames bei den Medien ein kurzer Interferenz-Burst auftritt, können alle Zeichen 0–7 im Frame 920 und der Rest der Zeichen in der ersten Matrixspalte gelöscht werden. Das heißt, dass die Zeichen 16–23 beim Code 1 von Frame 924, die Zeichen 32–39, 48–55, 64–71 usw. alle gelöscht werden können. Falls für die Erkennung und Korrektur eines Verlusts von 8 Zeichen unzureichende ECC-Bits hinzugefügt werden, gehen die Nutzdaten in jeder dieser Gruppen aus 8 Zeichen verloren.
  • Falls unvollkommene Synchronisierung in der physischen SCDMA-Schicht zu Interferenzen zwischen bei Code 0 übertragenen Daten im Vergleich zu bei Code 1 übertragenen Daten führt, ist es dementsprechend möglich, dass die durch Code 0 gespreizten Zeichen 0–7 des Frames 920 durch Interferenzen von den durch Code 1 gespreizten Zeichen 16–23 oder umgekehrt verloren gehen oder dass beide Zeichengruppen durch gegenseitige Interferenz verloren gehen. Andere Zeichen oder Gruppen von aufeinander folgenden Zeichen, die mit aufeinander folgenden zyklischen Codes übertragen werden, können ebenfalls verloren gehen, wenn die Codes sich gegenseitig beeinträchtigen.
  • Jedes Frame hat 8 (nicht dargestellte) Subframes und einen Gap zwischen Frames. Jedes Subframe hat darin (nicht dargestellte) C Zeichen, wobei C gleich der Anzahl von Codes im (nicht dargestellten) Codebuch ist, die im wiedergegebenen Beispiel 156 ist. Bei dem besonderen wiedergegebenen Beispiel erfordert das Zeichen für das Minislot-Mapping die Übertragung von 48 Zeichen während jedes Minislots (wobei „Zeichen" die neue Definition ist und einem Element eines Informationsvektors und nicht dem gesamten Informationsvektor oder Ergebnisvektor gemäß der alten Definition in den PCT-Veröffentlichungen entspricht). Die Minislot-Zähler in der CU und RU laufen in dem in 1 wiedergegebenen Beispiel bei einem Zählergebnis von 208 über. Jede CU und RU hat Zeichenzähler, die an der Minislot-Begrenzung zurücksetzen und die bei einem Zählergebnis von 9984 (208 × 48) simultan überlaufen, wenn der Minislot-Zähler bei 208 überläuft. Frame 926 gibt das erste Frame nach dem Überlauf des Zeichen- und Minislot-Zählers bei 9984 bzw. 208 wieder. Frame 926 ist das erste Frame in Minislot 0 der nächsten Gruppe aus 208 Minislots.
  • Im SCDMA-Upstream gibt es ein Superframe-Konstrukt, das als 8 SCDMA-Frames definiert ist. Die Begrenzung des Superframes ist durch simultanen Überlauf der Minislot- und Zeichenzähler gekennzeichnet.
  • Ranging ist der Prozess der Festlegung eines Offsets in jeder RU, sodass bei der Übertragung eines Impulses genau an der Superframe-Begrenzung in der RU dieser Impuls genau an der entsprechenden Superframe-Begrenzung in der CU bei der CU eintreffen würde.
  • Jeder RU können beliebig zwischen 1 und C Codes zugeordnet werden, bei denen die RU während eines einzelnen Subframes übertragen kann. Diese Code-Zuordnung erfolgt indirekt durch den Headend-Controller (HC, im Folgenden auch als CU bezeichnet) über die Zuordnung von Minislots zur betreffenden RU, da diese Minislot-Nummern auf spezifische Codes sowie auf spezifische Zeichennummern (vor dem Verschachteln) abgebildet werden.
  • Zugeordnete Minislot-Nummern werden (vor dem Verschachteln) wie im Folgenden erläutert auf Zeichennummern und Codenummern abgebildet. Beginnend mit der Superframe-Begrenzung oder dem Anfang des Minislots 0, der dem Anfang des Frames 0 entspricht, werden Zeichen am ersten Code entlang der Zeitdimension nummeriert, bis der programmierbare Wert L (beim wiedergegebenen Beispiel 16 Zeichen) erreicht ist. Man nehme an, dass nach dem Verschachteln das Zeichen 0 für das Spreizen durch den Code 0 zugeordnet wird. Da nur der Code 0 zum Spreizen dieses Zeichens verwendet wird, hätte der Ergebnisvektor darin 156 Elemente, von denen jedes das Produkt aus Zeichen 0 multipliziert mit einem Codeelement ist, das im Index dem Index des Ergebnisvektorelements entspricht. Wenn somit das Zeichen 0 den Wert X hat und die individuellen Codewerte des Codes 0 durch die Nummern 1, 2, ..., C usw. symbolisierte Inhalte haben, dann sind die Ergebnisvektorelemente die Elemente X·1, X·2, X·3, ..., X·C. Dieser erste Ergebnisvektor wird unter der Annahme, dass die Trellis-Modulation ausgeschaltet ist, während des ersten Subframes von Frame 1 übertragen.
  • Zeichen 1 würde ebenfalls durch den Code 0 gespreizt (ohne den erfindungsgemäßen Verschachtelungsprozess), da L (Zeichen 15) noch nicht erreicht worden ist, sodass sein Ergebnisvektor als zweites Subframe von Frame 920 übertragen wird. Falls das Zeichen 1 den Inhalt Y hat, hat der als zweites Subframe im Frame 0 übertragene Ergebnisvektor Elemente Y·1, Y·2, ..., Y·C. Da es nur 8 Subframes pro Frame gibt, werden nur 8 Zeichen (die Zeichen 0–7) während des ersten Frames bzw. des bei 920 wiedergegebenen Frames 0 übertragen. Da L 16 ist, werden die nächsten acht Zeichen (die Zeichen 8–15) während der 8 Subframes des zweiten Frames (des bei 922 wiedergegebenen Frames 1) übertragen. Nachdem L erreicht ist, wird das Mapping von Zeichennummern auf Minislots und Codes fortgesetzt, wobei L auf null zurückgesetzt wird und eine Rückkehr zum Anfang des abgebildeten Minislots erfolgt und die Zeichennummerierung wieder beim nächsten Code entlang der Codedimension beginnt. Bei dem wiedergegebenen Beispiel bedeutet dies, dass die Zeichen 16 bis 23 auf den beim Code 1 bei 924 wiedergegebenen Frame abgebildet werden. Jedes Mal, wenn ein Zeichen einem Frame und Subframe und Code zugeordnet wird, wird L heraufgesetzt. Dieser Prozess setzt sich fort, bis L erneut 16 erreicht, indem die Zeichen 24 bis 31 wiederum auf das bei 928 wiedergegebene Frame abgebildet werden. Dieser Prozess wird für alle Codes wiederholt. Nachdem alle Codes für L Zeichen entlang der Zeitachse abgebildet worden sind, erfolgt die Rückkehr zum ersten Code (Code 0) und die Heraufsetzung entlang der Zeitachse zu noch nicht abgebildeten Frames und der Neustart. Beispielsweise wird, nachdem das Zeichen 2495 auf das letzte Subframe des bei 930 auf Code 156 wiedergegebenen Frames abgebildet worden ist, das Zeichen 2496 auf das erste Subframe des bei 932 auf Code 0 wiedergegebenen Frames abgebildet. Dieser Prozess wird wiederholt, bis alle 9984 Zeichen und 156 Codes im Superframe auf spezifische Minislots abgebildet worden sind. Anschließend startet der Prozess erneut beim Überlauf des Minislots und der Zeichenzähler in der CU und RU, sodass ein neues Symbol 0 auf den neuen Minislot 0 abgebildet wird, der mit dem bei 926 auf Code 0 wiedergegebenen Frame beginnt. Man beachte, dass dies ein Mapping-Beispiel ist, das keine Verschachtelung entlang der Zeitdimension vornimmt, wobei aber eine Verschachtelung entlang der Codedimension erfolgt. Somit ist dieses Mapping anfällig für Interferenzen durch Rauschimpulse.
  • 2A ist ein Blockdiagramm einer Ausführungsform einer Verschachtelungseinrichtung gemäß den Lehren der Erfindung, die beide im Folgenden beschriebenen Verschachtelungsverfahren ausführen kann, um durch Rauschimpulse und Intercode-Interferenz verursachte Fehler zu beseitigen oder zu minimieren. 2B ist ein Diagramm eines typischen Minislots, der verwendet wird, um den Betrieb der in 2A dargestellten Verschachtelungseinrichtung wiederzugeben, und der die Quelle der in den im Folgenden beschriebenen Beispielen der Verschachtelungsverfahren 1 und 2 verwendeten Rohzeichendaten ist. Der in 2B wiedergegebene Minislot hat 28 Zeichen, obwohl Minislots bei den Standards 802.14 und MCNS andere ganzzahlige Anzahlen von Zeichen haben können. Jedes Zeichen hat eine ganzzahlige Anzahl von Bits in Abhängigkeit vom verwendeten Modulationstyp. Beispielsweise führt die 16-QAM-Modulation mit Trellis-Codierung zu 4-Bit-Zeichen. 32-QAM-Modulation mit Trellis-Codierung ergibt 5-Bit-Zeichen. 64-QAM-Modulation mit Trellis-Codierung ergibt 6-Bit-Zeichen. Jedes Zeichen wird in einer Zeichenposition mit einem Index im Minislot gespeichert. Zeichen 1 wird an der Indexposition 1 gespeichert, und Zeichen 2 wird an der Indexposition 2 gespeichert usw. Der Minislot ist nur zeitbezogen eindimensional. Zur Übertragung der Daten in diesen Minislot unter Verwendung eines SCDMA-Systems werden die Zeichen des Minislots entsprechend der Darstellung in 1 sowohl auf die Zeit als auch auf die unterschiedlichen Spreizcodes abgebildet.
  • Eine Art der Verwendung der in 2A wiedergegebenen Verschachtelungseinrichtung ist die sequenzielle Speicherung der Zeichen im RAM 940 und das Auslesen in verschachtelter Weise. Eine andere Art der Verwendung der in 2A wiedergegebenen Verschachtelungseinrichtung ist die Speicherung der Zeichen im RAM in verschachtelter Weise und das sequenzielle Auslesen zur Übertragung. Zur sequenziellen Speicherung von Zeichendaten wird der Multiplexer 942 über die Auswahl eines Steuersignals auf der Leitung 944 angewiesen, die Zählerausgänge auf der Leitung 946 als Adresseingang zur Bereitstellung des Adressbuseingangs 948 des RAM 940 auszuwählen. Ein Zähler 950 zählt die Speicheradressen mit Zyklen eines Zeichentakts 952 sequenziell. Zeichen werden am Dateneingang 954 mit einer Frequenz von einem Zeichen pro Zeichentaktperiode vorgelegt, und sie werden entsprechend der Darstellung in 3 im RAM 940 sequenziell in einem Array gespeichert. 3 zeigt das sich ergebende Array aus sequenziell im RAM gespeicherten Zeichen.
  • Zur Übertragung dieses sequenziell gespeicherten Arrays (nur ratsam, wenn keine Rauschimpulse und keine Intercode-Interferenz vorlagen) müsste das Array auf einen Code-Zeichen-Zeitraum entsprechend der Darstellung in 3 abgebildet werden, wobei die vertikale Achse die Codes darstellt und die horizontale Achse die Zeichenzeiten wiedergibt. Zur Übertragung würde eine nicht dargestellte Übertragungsadressschaltung entweder 4 Adressen während jeder Zeichenzeit auszählen, oder jede Speicherposition wäre 4 Zeichen breit, und der Datenbus 954 wäre 4 Zeichen breit, und die Adresserzeugungsschaltung würde 1 gelesene Adresse für jede Zeichenübertragungszeit auszählen, wobei dies zur gleichzeitigen Ausgabe von vier Zeichen einer Spalte auf den 4 Zeichen breiten Datenbus während jeder Zeichenzeit führen würde. Somit würden bei der ersten Zeichenzeit die Zeichen 1, 2, 3 und 4 simultan auf dem Bus 954 ausgegeben und durch den Transmitter für das Spreizen auf den Codes 1, 2, 3 und 4 analysiert. Diese 4 Zeichen würden anschließend während der ersten Zeichenzeit simultan übertragen. Während der zweiten Zeichenzeit würden die Zeichen 5, 6, 7 und 8 simultan ausgegeben und simultan mit den Spreizcodes 1, 2, 3 und 4 übertragen, wobei sich erneut die Notwendigkeit des Multiplexierens auf dem gemeinsam genutzten Kanal ergibt.
  • Selbstverständlich arbeitet die vorstehend beschriebene Anordnung zur Ausgabe mehrerer Zeichen aus dem RAM 940 während jeder Zeichenzeit gut in Systemen, in denen jede RU weiß, dass sie eine Code-Zuordnung von 4 Codes erhält. Entsprechend kann das Konzept einfach auf eine beliebige andere feste Anzahl von Codes in jeder Code-Zuordnung für jede RU erweitert werden. Derartige Systeme mit fester Code-Zuordnung sind weniger komplex, und sie sind bei einigen Anwendungen sinnvoll.
  • Bei Systemen, wobei die Code-Zuordnungen für jede RU in Abhängigkeit vom Übertragungsaufkommen variieren können, ist jedoch ein anderer Ansatz erforderlich. Wenn die Code-Zuordnung zwischen 0 und der Höchstzahl verfügbarer Codes variieren kann, ist es weiterhin erforderlich, während jeder Zeichenzeit die Anzahl der Zeichen in jeder Spalte aus dem RAM 940 auszulesen, wobei die Anzahl der Zeilen in jeder Spalte der Anzahl der zugeordneten Codes entspricht. Eine Art, dies zu tun, ist die Verwendung eines Datenbusses 954, der ein Zeichen breit ist und der einen wesentlich schnelleren programmierbaren Takt verwendet, um die Adressen zu erzeugen, aus denen die Zeichen ausgelesen werden sollen. Diese Art der Anordnung ist durch 7 dargestellt. Bei dieser Anordnung verwendet die Schaltung zum Berechnen von Adressen 958 während des Speicherns der Zeichen auf dem ein Zeichen breiten Datenbus 954 die Parameter von den jeweiligen Eingängen, um die i- und j-Werte für jeden Zeichenindex zu berechnen, und sie speichert die sequenziell bereitgestellten Zeichen auf dem Bus 954 im RAM 940 an aus den i- und j-Werten erzeugten Adressen, um ein verschachteltes Array wie z. B. das in 4 als Beispiel dargestellte Array zu erhalten.
  • Bei der in 7 wiedergegebenen Vorrichtung haben Vorrichtungen und Signale, die die gleichen Kennziffern haben wie Vorrichtungen in 2A, die gleiche Struktur, und sie führen die gleiche Funktion aus. In 7 wird das in 4 wiedergegebene verschachtelte Array erstellt, bevor der Zeitpunkt der Übertragung der Zeichen im Array gekommen ist, oder zeitgleich damit, falls eine angemessene Zeit für die Ausführung der Verarbeitung zur Verfügung steht. Zum Erzeugen des in 4 wiedergegebenen Arrays verwendet der Adressrechner 958 die entsprechenden Eingänge unter den in 7 dargestellten Eingängen, um die RAM-Adressen entweder gemäß dem Verfahren 1 oder gemäß dem Verfahren 2 zur Speicherung der Zeichen im RAM 940 in verschachtelter Weise zu berechnen, wobei pro Periode des Zeichentakts auf der Leitung 952 ein Zeichen verarbeitet wird.
  • Zur Übertragung der Zeichen in das in 4 wiedergegebene bereits verschachtelte Array in einem CDMA-System muss während jeder Zeichenzeit eine ganze Zeichenspalte ausgelesen werden. In einem System, bei dem die Anzahl der Codes R in der Code-Zuordnung sich von Frame zu Frame ändern kann, wird zum Antrieb eines programmierbaren Taktteilers 955 ein Hochgeschwindigstakt 953 verwendet, der wesentlich schneller ist als der Systemtakt auf Leitung 952. Der programmierbare Taktteiler, typischerweise ein Phasenregelkreis (Phase Lock Loop/PLL), empfängt eine Ganzzahl R als Eingabe auf der Leitung 959, wobei R der Anzahl der Codes entspricht, die dem Transmitter zum Übertragen der Zeichendaten zugeordnet worden sind, und die die Anzahl der Zeilen des Arrays definiert. Der Faktor R wird verwendet, um den Hochgeschwindigkeitstakt an Leitung 953 phasenkohärent mit dem Systemtaktsignal an Leitung 952 zu teilen, sodass die Taktausgabe des programmierbaren Taktteilers an Leitung 957 für jede Periode des Systemtaktsignals eine Anzahl von Taktperioden hat, die der Anzahl der Zeilen in jeder Spalte des Arrays entspricht. Dadurch wird der Zähler 950 veranlasst, Adressen auf den Bus 946 auszugeben, mit denen der Bus 948 während der Übertragung durch den Multiplexer 942 beaufschlagt wird, sodass während jeder Zeichenzeit eine ganze Zeichenspalte aus dem Array ausgelesen und als serieller Datenstream an dem ein Zeichen breiten Datenbus 954 präsentiert wird.
  • 9 ist ein Blockdiagramm einer Vorrichtung zur Übertragung des in 3 wiedergegebenen, nicht verschachtelten Arrays auf verschachtelte Weise in einem CDMA-System, wobei die Anzahl der Codes R von Frame zu Frame variieren kann. Bei der in 9 dargestellten Vorrichtung haben Vorrichtungen und Signale, die die gleichen Kennziffern haben wie Vorrichtungen in 7, die gleiche Struktur, und sie führen mit Ausnahme der im Folgenden spezifisch angegebenen Fälle die gleiche Funktion aus. Die Gesamtfunktion der in 9 wiedergegebenen Vorrichtung ist zunächst das sequenzielle Speichern von Zeichen aus einem linearen Array auf einem ein Zeichen breiten Bus 954 in sequenziellen Speicherpositionen im RAM 940, wobei jede Speicherposition ein Zeichen speichert. Nach dem Speichern der Zeichen liegt ein Array entsprechend der Darstellung in 3 vor, wobei gilt, dass die Anzahl der an Leitung 959 zugeordneten Codes R und die Anzahl der Zeilen sich im Zeitverlauf ändern kann.
  • Zur Übertragung des in 3 wiedergegebenen Arrays müssen verschachtelte Adressen zur Steuerung des Auslesens von Zeichen mit einer Frequenz R pro Zeichenzeit erzeugt werden. Dies erfolgt durch einen Adressrechner 958 in Verbindung mit einem programmierbaren Taktteiler 955. Der Taktteiler empfängt an Leitung 959 die Taktzuweisungszahl R und an Leitung 953 das Hochgeschwindigkeits-Taktsignal. Das Zeichentaktsignal wird an Leitung 952 in den programmierbaren Taktteiler eingespeist, um das geteilte Taktsignal an Leitung 957 phasenkohärent mit dem Zeichentaktsignal zu halten. Der programmierbare Taktteiler teilt das Hochgeschwindigkeits-Taktsignal an Leitung 953 durch einen Faktor R, um an Leitung 957 ein Taktsignal zu erzeugen, das R Taktperioden für jede Taktperiode des Zeichentaktsignals an Leitung 952 hat. Die Schaltung zum Berechnen von Adressen empfängt eine Zeichenindexnummer n, die der Index des ersten Zeichens in der zu verschachtelnden Zeichengruppe oder dem Zeichenpaket ist. Die Nummer n wird in einem (nicht dargestellten) Zähler vorgegeben, der vom Taktsignal an Leitung 957 heraufgesetzt wird. Der Wert des Zählers wird als Index n in den Gleichungen des Verfahrens 1 oder des Verfahrens 2 neben anderen zweckmäßigen Eingaben zur Berechnung der Werte i und j verwendet. Diese Werte werden zur Erzeugung von R verschachtelten RAM-Adressen am Bus 956 für jede Periode des Zeichentakts an Leitung 952 verwendet. Diese Adressen werden benutzt, um R Zeichen aus verschachtelten Positionen im RAM 940 für jede Periode des Zeichentakts auszulesen. Diese Zeichen werden als serieller Datenstream an den Bus 954 ausgegeben und zur (nicht dargestellten) Spreizcodeschaltung gesendet.
  • Zur Übertragung der Zeichen zu dem in 2B dargestellten Minislot auf verschachtelte Weise ist es am einfachsten, die 28 Zeichen aus dem Minislot auf verschachtelte Weise entsprechend der Darstellung in 4 zu speichern und anschließend die Speicherpositionen im RAM 940 sequenziell in der vorstehend beschriebenen Weise zu übertragen.
  • Zum Speichern der Zeichen des in 2B dargestellten Minislots auf verschachtelte Weise wird das Auswahlsteuersignal an Leitung 944 so geregelt, dass die von der Schaltung zum Berechnen von Adressen 958 ausgegebene Adressausgabe an Leitung 956 für die Beaufschlagung des Adressbusses 948 ausgewählt wird. Die Schaltung zum Berechnen von Adressen kann ein beliebiger digitaler Computer, ein Gate-Array, eine Programmierbare Array-Logik (PAL), ein Endlicher Automat (EA) usw. sein, der die Berechnungen des im Folgenden beschriebenen Algorithmus von Verfahren 1 oder von Verfahren 2 ausführen und an Leitung 956 RAM-Adressen aus den i- und j-Ergebnissen der Berechnung erzeugen kann. Weiter wird die Schaltung zum Berechnen von Adressen dargestellt mit mehreren Eingängen, an denen die verschiedenen Parameter empfangen werden, die für die Berechnung der im Folgenden aufgeführten Gleichungen für das Verfahren 1 oder das Verfahren 2 benötigt werden. Nicht alle wiedergegebenen Parameter werden für das Verfahren 1 benötigt, und nicht alle wiedergegebenen Parameter werden für das Verfahren 2 benötigt. In Abhängigkeit vom ausgewählten Verfahren nehme man an, dass nur die erforderlichen Parameter bereitgestellt werden, die in den im Folgenden wiedergegebenen Gleichungen für das ausgewählte Verfahren benötigt werden. Entsprechend können die Parameter in flüchtigem oder in nicht flüchtigem Speicher in der Schaltung zum Berechnen von Adressen 958 gespeichert werden, sodass die wiedergegebenen Eingänge bei einigen Ausführungsformen möglicherweise nicht benötigt werden. Bei den bevorzugten Ausführungsformen ist jeder dieser Parameter programmierbar, aber bei einigen Ausführungsformen können einige oder alle Parameter fest sein.
  • Der im Folgenden beschriebene Algorithmus des Verfahrens 1 verschachtelt die Daten nur auf der Grundlage einer vorgegebenen vertikalen Distanz D, d. h. einer Mindestanzahl von Indizes zwischen einem beliebigen Zeichenpaar in einer Spalte oder zwischen einer vorgegebenen Anzahl aufeinander folgender Spalten (Col_Space). Das im Folgenden beschriebene Verfahren 2 verschachtelt die Daten auf der Grundlage einer vorgegebenen vertikalen Distanz und auf der Grundlage einer vorgegebenen horizontalen Distanz (Hor_Dist), d. h. einer Mindestanzahl von Indizes zwischen zwei beliebigen Zeichen in einer gegebenen Zeile oder zwischen Zeilen in einer vorgegebenen Anzahl aufeinander folgender Zeilen (Row_Space).
  • Das sich unter Verwendung des Verschachtelungsverfahrens 1 ergebende Array gespeicherter Zeichen würde dem in 4 wiedergegebenen Array entsprechen. Jede Speicherposition im RAM 940 speichert dabei ein Zeichen. Die Zeichen in dem in 4 wiedergegebenen Array sind durch ihren Indexwert angegeben. Wenn das erste Zeichen in einem Minislot den Index 1 hat und das nächste Zeichen im Minislot den Index 2 hat und wenn es 28 Zeichen in einem Minislot gibt, dann stellt das in 4 wiedergegebene Array dar, wie die 28 Minislots unter Verwendung von Verfahren1 und unter der Annahme, dass 4 Codes zum Spreizen der Daten aus diesem Minislot zugeordnet worden sind, und mit einem Col_Space von 2 und einer vertikalen Distanz D von 3 verschachtelt werden. Col_Space ist ein Designparameter in Form einer programmierbaren Zahl, die die erwartete Zeitdauer, ausgedrückt als eine Anzahl von Spalten, darstellt, d. h. als die Zeichenübertragungszeiten der erwarteten Rauschimpulse. Die vertikale Distanz D ist ein Designparameter in Form einer programmierbaren Zahl, die die Mindestanzahl von Indizes darstellt, die zwei beliebige Zeichen in einer Spalte oder zwischen zwei beliebigen Spalten von Col_Space trennen. Man beachte bei dem in 4 wiedergegebenen Array, dass in Spalte 1 kein Zeichen weniger als drei Indizes von einem beliebigen anderen Zeichen beabstandet ist.
  • Das in 4 wiedergegebene Array wird auf exakt die gleiche Weise übertragen wie vorstehend beschrieben (simultanes Auslesen von 4 sequenziellen Adressen zur gleichen Zeit, wobei jede Adresse ein Zeichen aus dem in 4 wiedergegebenen Array enthält), wobei jedoch die Verschachtelung der Zeichen in Abhängigkeit von dem in der Schaltung zum Berechnen von Adressen 958 implementierten Verschachtelungsverfahren weniger anfällig für durch Rauschimpulse oder Intercode-Interferenzen oder beides verursachte Fehler ist.
  • Die Erweiterung des Verschachtelungsverfahrens auf ein Zeichenpaket, das mehr als einen Minislot umfasst, und auf mehr als oder weniger als 4 Codes ist eine geradlinige Erweiterung des vorstehend beschriebenen Verfahrens unter Verwendung von RAM-Adressen, die aus den Berechnungen von i und j aus den im Folgenden wiedergegebenen Gleichungen für das Verfahren 1 oder für das Verfahren 2 erzeugt worden sind.
  • Die in 2A wiedergegebene Schaltung zum Berechnen von Adressen 958 muss die durch das in 5 wiedergegebene Ablaufdiagramm dargestellten Berechnungen ausführen, um das Verschachtelungsverfahren 1 zu implementieren. In 5 stellt der Block 960 den Start des Prozesses dar, und Block 962 gibt den Prozess der Abfrage der programmierbaren Konstanten wieder, die den Verschachtelungsprozess steuern. Insbesondere stellt der Block 962 den Prozess der Abfrage des Werts R dar, der die Anzahl der zum Spreizen der Daten aus dem zu übertragenden Paket oder Minislot zugeordneten Codes wiedergibt. Der Block 962 ruft auch den Wert D ab, d. h. den programmierbaren Wert der gewünschten vertikalen Distanz für den Verschachtelungsgrad. Schließlich gibt der Schritt 962 den Prozess der Abfrage des programmierbaren Werts von Col_Space wieder, d. h. der erwarteten Anzahl von Spalten oder Zeichenzeiten mit Rauschimpulsen, wobei hierbei die Übertragung von Zeichendaten verfälscht wird. Die Konstanten sind sämtlich Ganzzahlen, und sie werden aus den Konfigurationsdaten oder aus einem anderen Speicher abgerufen, in dem programmierbare Variablen gespeichert sind. In einem System, das die Lehren der Erfindung verwendet, werden diese Variablen typischerweise mit veränderlichen Bedingungen bezüglich der Medien in Abhängigkeit von veränderlichen Fehlerhäufigkeiten geändert.
  • Block 964 gibt den Prozess der Berechnung eines Werts C wieder, der die Anzahl der Spalten in der verschachtelten Matrix darstellt. Die Gleichung für C ist: C = (Col_Space·D) + 1 (1) wobei Col_Space und D der vorstehenden Definition entsprechen und wobei Col_Space auch der als ganzzahlige Anzahl von Spalten ausgedrückte Zeitraum ist, während dessen die „vertikale Distanz" D erfüllt sein muss. D kann auch als Mindestbetrag von „Raum", d. h. Zeichenindizes, zwischen zwei beliebigen Zeichen in einer Zeichenfolge mit einer Länge gleich Col_Space·R ausgedrückt werden. Falls Col_Space 2 ist und 4 Codes als R für das Spreizen von Daten zugeordnet worden sind, ist somit in jeder Gruppe aus 8 aus zwei beliebigen aufeinander folgenden Spalten mit jeweils 4 Codes oder Zeilen übertragenen Zeichen kein Zeichen dieser 8 Zeichen näher als D Indizes an einem beliebigen anderen Zeichen in der betreffenden Gruppe aus 8 Zeichen. Der in 5 wiedergegebene Block 964 gibt den Prozess der Berechnung des Werts von C wieder.
  • Bei der in 4 wiedergegebenen verschachtelten Matrix mit D = 3 und Col_Space = 2 beträgt die Anzahl der zum Verschachteln der 28 Zeichen des Minislots verwendeten Spalten in der verschachtelten Matrix 7. Die Anzahl der Zeilen R in der in 4 wiedergegebenen Matrix ist eine zugeordnete und programmierbare Zahl, die der Anzahl der zum Spreizen der Daten aus dem Minislot zugeordneten Codes entspricht. Diese Codezuweisung wird normalerweise vom Headend-Controller oder von der CU zur RU als Management- und Steuermeldung gesendet.
  • Es gibt eine Einschränkung für C und R, und diese Einschränkung wird getestet, um sicherzustellen, dass sie von dem in 5 wiedergegebenen Test 966 eingehalten wird. Diese Einschränkung lautet: GCD(C, R) = 1 (2)
  • Dies bedeutet, dass der größte gemeinsame Teiler von C und R 1 sein muss. Dieser Test wird unter Verwendung eines bereits bekannten, von Euklid erfundenen Algorithmus ausgeführt, und er ist in verschiedenen zurzeit handelsüblichen mathematischen Laborprogrammen implementiert. Wenn der Block 966 bestimmt, dass der größte gemeinsame Teiler von C und R nicht gleich 1 ist, wird der Schritt 968 ausgeführt, um den Wert von C um 1 heraufzusetzen, und der Test 966 wird anschließend erneut ausgeführt.
  • Falls der Test 966 ermittelt, dass der größte gemeinsame Teiler von C und R 1 ist, wird anschließend der Prozess des Blocks 970 ausgeführt. Die Funktion des Blocks 970 ist es, einen Wert für einen RAM-Index i zu berechnen, der zur Bildung einer RAM-Adresse verwendet wird, wobei i für jedes Zeichen als Funktion des Indexes n des betreffenden Zeichens berechnet wird. In jeder RU zählt ein Zeichenzähler Perioden eines Zeichentakts. Dieser Zeichenzähler ist auf den Zeichenindex n des ersten Zeichens eingestellt, das in jeder zu übertragenden Zeichengruppe übertragen werden soll, wenn die Verschachtelung beginnt, und anschließend wird der Zeichenindex n bei jeder Periode des Zeichentakts heraufgesetzt. Die Ausgabe des Zählers wird als Eingang n zu dem in 2A oder 7 wiedergegebenen Adressrechner 958 bereitgestellt oder ist bei diesem Adressrechner vollkommen intern. Der Wert für i wird mit der folgenden Gleichung (3) berechnet. i = modulo(n, R) (3)wobei n der Index des bestimmten Zeichens ist, für das der RAM-Index i berechnet wird, und wobei R die Anzahl der für die Übertragung zugeordneten Codes ist, in denen dieses Zeichen übertragen wird. Die Bedeutung des Begriffs modulo(n, R) ist, dass n durch R geteilt wird, und der Rest bleibt bestehen, und der Quotient wird ignoriert, sodass i dem Rest der Division von n durch R gleicht.
  • Anschließend wird in Block 972 der Prozess der Berechnung des RAM-Indexes j für das gleiche Zeichen als Funktion des Indexes n des Zeichens ausgeführt. Der Wert von j wird gemäß der folgenden Gleichung (4) berechnet: j = modulo[(Col_Space·n) – 1, C] (4)wobei Col_Space wie vorstehend beschrieben definiert ist und n der Index des Zeichens und C die Anzahl von Spalten in dem Array ist, das für die ausgewählten Werte von Col_Space und die „vertikale Distanz" d erzeugt wird. Die Bedeutung dieser Gleichung ist, dass j gleich dem Rest bei der Division eines Zählers, der der Menge des Produkts aus Col_Space mal dem Index n minus 1 entspricht, durch einen Nenner ist, der gleich C ist, wobei der Quotient ignoriert wird.
  • Schließlich erzeugt in Schritt 974 der Adressrechner, der die in 5 wiedergegebenen Schritte ausführt, eine RAM-Adresse am Bus 956 für den RAM 940 auf der Grundlage der Werte von i und j, und er speichert das Zeichen auf dem Bus 954 mit dem Index n, der die Erzeugung der Werte i und j veranlasst hatte. Dies schließt den Prozess der Speicherung eines Zeichens ab. Für die verbleibenden Zeichen des Arrays wird n heraufgesetzt, und die Schritte 970, 972 und 974 werden wiederholt, und dieser Prozess wird wiederholt, bis alle Zeichen gespeichert sind.
  • Die Art der Verschachtelung unter Verwendung des Verfahrens 2 ist durch das in 6 wiedergegebene Ablaufdiagramm gezeigt. Bei diesem Verschachtelungsprozess können die Effekte sowohl der Rauschimpulse als auch der Intercode-Interferenz ausgespreizt werden, sodass die Fehlererkennungs- und Korrekturmöglichkeiten der zum Datenstream hinzugefügten ECC-Bits nicht überschritten werden, wogegen das in 5 wiedergegebene Verfahren 1 nur die Effekte der Rauschimpulse minimiert hat. Beim Verfahren 2 gibt es einen Faktor ROWSPACE, der dem gleichen Konzept wie Col_Space folgt, der aber die Anzahl aufeinander folgender Codes ist, von denen erwartet wird, dass sie durch Intercode-Interferenz betroffen sind. Beim Verfahren 2 ist der Wert ROWSPACE dagegen eine vom Verschachtelungssystem berechnete Zahl, während beim Verfahren 1 der Wert von Col_Space eine programmierbare Zahl ist, die ein in das Verschachtelungssystem eingegebener Designparameter ist. Die sich ergebende Verschachtelung stellt sicher, dass kein Paar von Zeichenindizes im Array in einer beliebigen Zeile in ROWSPACE oder zwischen den Zeilen im ROWSPACE-Zeilenraum enger als um einen programmierbaren Faktor Hor_Dist aneinander liegt. Die Verschachtelung des Verfahrens 2 stellt ebenfalls sicher, dass in dem verschachtelten Array kein Paar von Zeichenindizes in der programmierbaren Anzahl von Spalten, die durch Col_Space definiert ist, enger als um die „vertikale Distanz" d in einer beliebigen Spalte von Col_Space bzw. zwischen Spalten aneinander liegt.
  • Der Prozess des Verfahrens 2 beginnt mit Block 976. In Block 976 werden die verschiedenen Faktoren, die für die Berechnung benötigt werden, aus dem Speicher abgerufen. Die benötigten Faktoren sind Vert_Dist oder D (diese beiden Begriffe sind austauschbar), bsym, Pack_Size und Col_Space. Diese Faktoren werden aus dem Konfigurationsspeicher oder aus einem Speicher programmierbarer Variablen abgerufen. Der Faktor Vert_Dist oder D ist ein Designparameter, der gewählt wird und der den gewünschten Mindestabstand zwischen Indizes eines beliebigen Zeichenpaars in einer beliebigen Spalte oder zwischen aufeinander folgenden Spalten in einem beliebigen Wert von Col_Space definiert. Der Faktor bsym ist die Anzahl der Bits pro Zeichen. Der Faktor Pack_Size ist die Gesamtzahl der Bytes in einem zu versendenden Paket einschließlich Header. Der Faktor Col_Space ist ein zuvor für das Verfahren 1 definierter Wert.
  • Block 980 berechnet die Anzahl der Spalten C, die im endgültigen verschachtelten Array enthalten sind. Beim Verfahren 2 folgt C der folgenden Gleichung: C = (Vert_Dist·Col_Space) + 1 (5)wobei Vert_Dist und Col_Space der Definition im vorstehenden Absatz entsprechen.
  • Block 982 wird anschließend ausgeführt, um die Anzahl der für die verschachtelte Matrix benötigten Zeilen und Spalten zu berechnen. Man beachte, dass das Verfahren 2 die Berechnung der Anzahl der Codes erfordert, um die Effizienz beim Einsatz der verfügbaren Bandbreite zu optimieren. Die berechnete Zeilenzahl, die sich aus der Berechnung von Block 982 ergibt, wird die Mindestzeilenzahl, die zur Übertragung der aus dem zu versendenden Paket zu verschachtelnden Datenmenge benötigt wird. Die Anzahl der benötigten Codes wird wie folgt berechnet:
    Figure 00200001
    mit
  • Pack_Size
    = Gesamtzahl der Bytes in einem zu versendenden Paket einschließlich Header;
    C
    = Gesamtzahl der Spalten im Array entsprechend der Berechnung in Gleichung (5); und
    Cymbal
    = Anzahl der Bits in einem Zeichen, wobei dieser Wert in Abhängigkeit vom derzeit verwendeten Modulationstyp veränderlich ist. Der mathematische Operator "ceil", der auf den Ausdruck in Klammern angewendet wird, bedeutet, dass jede Dezimalstelle, die aus der Berechnung des Ausdrucks in Klammern hervorgeht, wegfällt, indem man auf die nächstgrößere Ganzzahl aufrundet, unabhängig davon, ob die Bruchzahl größer oder kleiner als 0,5 ist.
  • Man beachte, dass diese berechnete Anzahl von Codes zu Einschränkungen der Codezuweisung führt. Da die Gesamtzahl der verfügbaren Codes fest ist und die CU bzw. der Headend-Controller für die Zuordnung von Codes zu den RUs verantwortlich ist, erfolgt die Berechnung des Blocks 982 bei einigen Ausführungsformen im Headend und wird downstream als Reaktion auf eine von der RU upstream gesendete Bandbreitenanforderung versendet. Bei diesen Ausführungsformen kann die CU bzw. der Headend-Controller auch die Fehlerrate allgemein oder mit spezifischem Bezug auf eine bestimmte RU überwachen und downstream Meldungen versenden, die alle RUs oder bestimmte RUs anweisen, ihren Modulationstyp auf einen unterschiedlichen Typ zu ändern, der der Anzahl der Bits im Faktor bsym entspricht, der zur Berechnung der Anzahl der Zeilen oder Codes verwendet wird, die einer bestimmten RU zugewiesen werden sollen. Die CU führt eine derartige Berechnung für jede RU aus und arbitriert anschließend zwischen den für jede RU berechneten Anzahlen der Codes, um die endgültige Entscheidung zu treffen, welche RU ihre berechnete Menge von Codes erhält, und um anschließend downstream Meldungen zu den RUs mit ihren Codezuweisungen und den zu verwendenden Modulationstypen zu senden. Normalerweise ist der Faktor Pack_Size für eine bestimmte Anwendung fest, aber er kann zwischen unterschiedlichen Anwendungstypen und bereitgestellten Diensten variieren.
  • Bei anderen Ausführungsformen wird die Berechnung des Blocks 982 in der RU ausgeführt und in einer Upstream-Anforderung von Bandbreite mit einer Meldung zur CU gesendet, die Folgendes bedeutet „Bitte R Codes zuweisen oder nichts zuweisen, bis R Codes zugewiesen werden können".
  • Nach der Berechnung von R wird der Test 984 ausgeführt, um zu bestimmen, ob der größte gemeinsame Teiler von C und R gleich 1 ist. Wenn dies nicht der Fall ist, wird C in Block 986 um 1 heraufgesetzt, und der Test 984 wird erneut ausgeführt.
  • Wenn der größte gemeinsame Teiler von C und R gleich 1 ist, wird der Prozess des Blocks 988 ausgeführt, um einen Wert für ROWSPACE als Funktion der Anzahl der zur Datenübertragung zu verwendenden Codes R zu berechnen. Der Wert von ROWSPACE wird mit der folgenden Gleichung (7) berechnet. ROWSPACE = fix(√R) (7)mit ROWSPACE = Ganzzahl von Codes oder Zeilen, die durch von Unvollkommenheiten in der Ausrichtung des Systems verursachte Intercode-Interferenz negativ beeinflusst werden könnten. Die Schreibweise fix(√R) bedeutet, dass ROWSPACE der ganzzahlige Teil von (√R) ist.
  • Nach der Berechnung von ROWSPACE wird der Test des Blocks 990 ausgeführt, um zu bestimmen, ob der größte gemeinsame Teiler von R und ROWSPACE gleich 1 ist. Wenn dies nicht der Fall ist, wird ROWSPACE im Prozess des Blocks 992 um 1 herabgesetzt, und der Test 990 wird erneut ausgeführt.
  • Nachdem ein Wert für ROWSPACE und R, deren größter gemeinsamer Teiler 1 ist, erhalten worden ist, wird der RAM-Index als Funktion von ROWSPACE, R und dem Index des besonderen zu speichernden oder auszulesenden Zeichens gemäß der Gleichung (8) und entsprechend der Darstellung durch Block 994 berechnet. i = modulo[(ROWSPACE·n), R] + 1 (8)wobei n der Index des zu speichernden oder auszulesenden Zeichens ist und wobei R die Anzahl der Codes oder Zeilen im Array ist. Die Gleichung (8) bedeutet, dass i = 1 plus dem Rest ist, der sich aus der Division (ROWSPACE·n)/R ergibt, wobei der Quotient ignoriert wird. Dieser Wert von i wird verwendet, um einen Teil der RAM-Adresse zu bilden, um entweder das Zeichen mit dem Index n im RAM 940 zu speichern oder dieses Zeichen aus dem RAM auszulesen.
  • Anschließend wird in Block 996 der RAM-Index j als Funktion von Col_Space, n und C gemäß der folgenden Gleichung (9) berechnet. j = modulo[(Col_Space·n), C] + 1 (9)mit
  • Col_Space
    = ganzzahlige Anzahl von Spalten, die durch Rauschimpulse beeinträchtigt werden können; dies ist ein programmierbarer Designparameter;
    n
    = Index des zu speichernden oder auszulesenden Zeichens; und
    C
    = Anzahl der Spalten in der Matrix. Die Gleichung (9) bedeutet, dass der Wert j gleich 1 plus dem Rest der Division (Col_Space·n)/C ist, wobei der Quotient ignoriert wird.
  • Schließlich wird in Schritt 998 die RAM-Adresse aus i und j erzeugt und zum Speichern des Zeichens oder zu seinem Auslesen für die Übertragung verwendet.
  • Die in 6 wiedergegebenen Berechnungen berechnen nur i und j für ein Zeichen. Zur Berechnung der i- und j-Werte für die restlichen Zeichen im Paket werden die Schritte 994, 996 und 998 für jedes andere Zeichen unter Verwendung seines Indexes n wiederholt.
  • Das unter Verwendung von Verfahren 2 entstandene verschachtelte Array ist in 8 wiedergegeben. Die Designparameter für das in 8 wiedergegebene Verschachteln waren Vert_Dist = 3, Col_Space = 2, Pack_Size = 54 und bsym = 5. Aus diesen Parametern berechnet der von der Schaltung zum Berechnen von Adressen ausgeführte Algorithmus des Verfahrens 2 eine Anzahl von Spalten C = 7, eine Anzahl von Zeilen oder Codes R = 13, einen ROWSPACE-Faktor 3 und eine horizontale Distanz Hor_Dist = 4.
  • Die vorstehend beschriebenen Verschachtelungsverfahren für eindimensionale Arrays von Zeichen zur Übertragung in einem SCDMA- oder CDMA-System mit zwei Freiheitsgraden zum Multiplexieren des gemeinsam genutzten Datenpfads, d. h. Codes und Zeit, ergeben ein System mit mehreren Vorteilen im Vergleich zu TDMA-Systemen. Erstens können alle eine Übertragung vornehmenden Benutzer unter der Annahme, dass der Betrag der von allen Benutzern des CDMA-Systems benötigten Bandbreite die verfügbaren Codes nicht übersteigt, gleichzeitig mit einer konstanten Bit-Rate übertragen. Das bedeutet auch, dass der Umfang des von ihnen benötigten Pufferspeichers in CDMA-Systemen geringer ist als in TDMA-Systemen. Dies liegt daran, dass, wenn ein Benutzer in einem TDMA-System mit einer konstanten Bit-Rate übertragen möchte, wobei für den betreffenden Benutzer nur periodische oder sporadische Zuweisungen von Timeslots erfolgen, der Benutzer ausreichend Pufferspeicher haben muss, um alle Bits zu speichern, die während der Zeit ausgegeben wurden, während der kein Timeslot für ihre Übertragung vorhanden war. Da Pufferspeicher kostspielig ist, kann das CDMA-System in Bezug auf den benötigten Speicher weniger kostspielig als ein TDMA-System sein.
  • Obwohl die Erfindung mit Bezug auf zwei bevorzugte Ausführungsformen und Vorrichtungen zu ihrer Implementierung beschrieben wurde, ist es für Fachleute auf diesem Gebiet ersichtlich, dass zahlreiche Änderungen oder geringfügige Abänderungen der Beschreibung möglich sind, ohne vom Schutzumfang der Lehren der Erfindung abzuweichen. Alle derartigen Änderungen und Abänderungen sind im Rahmen der beigefügten Ansprüche umfasst.

Claims (12)

  1. Verfahren zum zeitlichen Verschachteln von Zeichen aus einem eindimensionalen Array von Zeichen zu einem zweidimensionalen verschachtelten Array von zeitlich verschachtelten Zeichen und zum Spreizen von Codes, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Empfangen (954) einer Vielzahl von aufeinanderfolgenden Zeichen als lineares Array in einem oder mehreren Minislots oder Paketen zur Übertragung in einem Codemultiplex-System, wobei die Position jedes Zeichens in diesem linearen Array mit einem Zeichenindex gekennzeichnet ist; Verschachteln dieser Zeichen zu einem zweidimensionalen Array (940) mit einer Vielzahl von Spalten und einer Vielzahl von Zeilen, wobei jede Spalte eine Zeichenübertragungszeit darstellt und jede Zeile von Zeichen mit einem unterschiedlichen Spreizcode gespreizt wird; und gleichzeitiges Übertragen (954) aller Zeichen in einer Spalte dieses Arrays unter Verwendung der Spreizcodes, die den Zeilen jeweils zugeordnet sind, um die Daten des Zeichens zu spreizen.
  2. Verfahren nach Anspruch 1, wobei dieser Schritt des Verschachtelns dieser Zeichen derart erfolgt, dass keine zwei Zeichen innerhalb einer Spalte von einer ganzzahligen Anzahl benachbarter Spalten, die durch eine Variable Col_Space definiert ist, oder zwischen diesen Spalten vom Zeichenindex her gesehen näher zusammen sind als eine ganzzahlige Variable D.
  3. Verfahren nach Anspruch 1, wobei dieser Schritt des Verschachtelns dieser Zeichen derart erfolgt, dass keine zwei Zeichen innerhalb einer Spalte von einer ganzzahligen Anzahl benachbarter Spalten, die gleich einer Variablen Col_Space ist, oder zwischen diesen Spalten vom Zeichenindex her gesehen näher zusammen sind als eine ganzzahlige Variable D, und es erfolgt ferner derart, dass keine zwei Zeichen innerhalb einer Zeile von einer ganzzahligen Anzahl benachbarter Zeilen gleich ROWSPACE oder zwischen diesen Zeilen vom Zeichenindex her gesehen näher zusammen sind als eine ganzzahlige Variable Hor_Dist.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Abrufen (962) von Werten für die Variablen R, D und Col_Space aus Konfigurationsdaten oder aus einem programmierbaren variablen Speicher, wobei R die Anzahl der Spreizcodes ist, die der Datenübertragung dienen, D der Abstand in Zeichenindizes, n, zwischen zwei Zeichen innerhalb einer Spalte oder zwischen benachbarten Spalten in einer durch Col_Space definierten Anzahl benachbarter Spalten ist, und wobei Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei die Zeichenindizes der Position des Zeichens in diesem eindimensionalen Array entsprechen; Berechnen (964) des Wertes einer Anzahl von Spalten, C, in einem verschachtelten Array, das wie folgt gebildet werden soll: C = (Col_Space·D) + 1;Bestimmen (966), ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern (968), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern, bis der größte gemeinsame Teiler von C und R 1 ist; Berechnen (970) eines RAM-Index i zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Speichern eines Zeichens mit dem Zeichenindex n im RAM unter Anwendung der folgenden Gleichung: i = modulo(n, R),wobei n der Zeichenindex des jeweils zu speichernden Zeichens ist; Berechnen (972) eines RAM-Index j zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Speichern eines Zeichens mit dem Zeichenindex n im RAM unter Anwendung der folgenden Gleichung: j = modulo[(Col_Space·n) – 1, C];Erzeugen (974) einer RAM-Adresse auf Basis der berechneten Werte für i und j, und Verwenden dieser RAM-Adresse, um dieses Zeichen mit dem Index n im RAM zu speichern.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Abrufen (962) von Werten für die Variablen R, D und Col_Space aus Konfigurationsdaten oder aus einem programmierbaren variablen Speicher, wobei R die Anzahl der Spreizcodes ist, die der Datenübertragung dienen, D der Abstand in Zeichenindizes, n, zwischen zwei Zeichen innerhalb einer Spalte oder zwischen benachbarten Spalten in einer durch Col_Space definierten Anzahl benachbarter Spalten ist, und wobei Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei die Zeichenindizes der Position des Zeichens in diesem eindimensionalen Array entsprechen; Berechnen (964) des Wertes einer Anzahl von Spalten, C, in einem verschachtelten Array, das wie folgt gebildet werden soll: C = (Col_Space·D) + 1;Bestimmen (966), ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern (968), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern, bis der größte gemeinsame Teiler von C und R 1 ist; Berechnen (970) eines RAM-Index i zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Auslesen eines Zeichens mit dem Zeichenindex n aus dem RAM unter Anwendung der folgenden Gleichung: i = modulo(n, R),wobei n der Zeichenindex des jeweils auszulesenden Zeichens ist; Berechnen (972) eines RAM-Index j zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Auslesen eines Zeichens mit dem Zeichenindex n aus dem RAM unter Anwendung der folgenden Gleichung: j = modulo[(Col_Space·n) – 1, C];Erzeugen (974) einer RAM-Adresse auf Basis der berechneten Werte für i und j, und Verwenden dieser RAM-Adresse, um dieses Zeichen mit dem Index n aus dem RAM auszulesen.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Abrufen (978) von Werten für die Variablen D oder Vert_Dist, bsym, Pack_Size und Col_Space aus Konfigurationsdaten oder aus einem programmierbaren variablen Speicher, wobei Vert_Dist oder D ein ausgewählter Auslegungsparameter ist, und welcher der Abstand in Zeichenindizes, n, zwischen zwei Zeichen innerhalb einer Spalte oder zwischen benachbarten Spalten in einer durch Col_Space definierten Anzahl benachbarter Spalten ist, und wobei Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei bsym die Anzahl von Bits pro Zeichen ist, und wobei Pack_Size die Gesamtanzahl von Bytes in einem zu sendenden Zeichenpaket einschließlich des Headers ist, und wobei die Zeichenindizes, n, der Position des Zeichens in diesem eindimensionalen Array entsprechen; Berechnen (980) des Wertes einer Anzahl von Spalten, C, in einem verschachtelten Array, das wie folgt gebildet werden soll: C = (Vert_Dist·Col_Space) + 1;Berechnen (982) einer Anzahl von Codes R zur Verwendung, um die Zeichen in R Zeilen des verschachtelten Arrays wie folgt zu spreizen:
    Figure 00270001
    wobei der mathematische Operator "ceil", der auf den Ausdruck in Klammern angewendet wird, bedeutet, dass jede Dezimalstelle, die aus der Berechnung des Ausdrucks in Klammern hervorgeht, wegfällt, indem man auf die nächstgrößere Ganzzahl aufrundet, unabhängig davon, ob die Bruchzahl größer oder kleiner als 0,5 ist. Bestimmen (984), ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern (986), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern, bis der größte gemeinsame Teiler von C und R 1 ist; Berechnen (988) eines ROWSPACE Faktors, der eine Ganzzahl von benachbarten Zeilen in dieser verschachtelten Matrix darstellt, deren Codes durch Intercode-Interferenz negativ beeinflusst werden könnten, wobei sich ROWSPACE wie folgt berechnet: ROWSPACE = fix(√R)wobei die Schreibweise fix(√R) bedeutet, dass ROWSPACE der ganzzahlige Teil von √ ist; Bestimmen (990), ob der größte gemeinsame Teiler von R und ROWSPACE gleich 1 ist, und wenn dies nicht der Fall ist, ROWSPACE um 1 verkleinern (992), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von R und ROWSPACE gleich 1 ist, und wenn dies nicht der Fall ist, ROWSPACE um 1 verkleinern, bis der größte gemeinsame Teiler von R und ROWSPACE 1 ist; Berechnen (994) eines RAM-Index i zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Speichern eines Zeichens mit dem Zeichenindex n im RAM unter Anwendung der folgenden Gleichung: i = modulo[(ROWSPACE·n), R] + 1,wobei n der Zeichenindex des jeweils zu speichernden Zeichens ist; Berechnen (996) eines RAM-Index j zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Speichern eines Zeichens mit dem Zeichenindex n im RAM unter Anwendung der folgenden Gleichung: j = modulo[(Col_Space·n), C] + 1;Erzeugen (998) einer RAM-Adresse auf Basis der berechneten Werte für i und j, und Verwenden dieser RAM-Adresse, um das Zeichen mit dem Index n im RAM zu speichern.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Abrufen (978) von Werten für die Variablen D oder Vert_Dist, bsym, Pack_Size und Col_Space aus Konfigurationsdaten oder aus einem programmierbaren variablen Speicher, wobei Vert_Dist oder D ein ausgewählter Auslegungsparameter ist, und welcher der Abstand in Zeichenindizes, n, zwischen zwei Zeichen innerhalb einer Spalte oder zwischen benachbarten Spalten in einer durch Col_Space definierten Anzahl benachbarter Spalten ist, und wobei Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei bsym die Anzahl von Bits pro Zeichen ist, und wobei Pack_Size die Gesamtanzahl von Bytes in einem zu sendenden Zeichenpaket einschließlich des Headers ist, und wobei die Zeichenindizes, n, der Position des Zeichens in diesem eindimensionalen Array entsprechen; Berechnen (980) des Wertes einer Anzahl von Spalten, C, in einem verschachtelten Array, das wie folgt gebildet werden soll: C = (Vert_Dist·Col_Space) + 1;Berechnen (982) einer Anzahl von Codes R zur Verwendung, um die Zeichen in R Zeilen des verschachtelten Arrays wie folgt zu spreizen:
    Figure 00290001
    wobei der mathematische Operator "ceil", der auf den Ausdruck in Klammern angewendet wird, bedeutet, dass jede Dezimalstelle, die aus der Berechnung des Ausdrucks in Klammern hervorgeht, wegfällt, indem man auf die nächstgrößere Ganzzahl aufrundet, unabhängig davon, ob die Bruchzahl größer oder kleiner als 0,5 ist. Bestimmen (984), ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern (986), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von C und R gleich 1 ist, und wenn dies nicht der Fall ist, C um 1 vergrößern, bis der größte gemeinsame Teiler von C und R 1 ist; Berechnen (988) eines ROWSPACE Faktors, der eine Ganzzahl von benachbarten Zeilen in dieser verschachtelten Matrix darstellt, deren Codes durch Intercode-Interferenz negativ beeinflusst werden könnten, wobei sich ROWSPACE wie folgt berechnet: ROWSPACE = fix (√R),wobei die Schreibweise fix (√R) bedeutet, dass ROWSPACE der ganzzahlige Teil von √R ist; Bestimmen (990), ob der größte gemeinsame Teiler von R und ROWSPACE gleich 1 ist, und wenn dies nicht der Fall ist, ROWSPACE um 1 verkleinern (992), und Wiederholen des Schrittes des Bestimmens, ob der größte gemeinsame Teiler von R und ROWSPACE gleich 1 ist, und wenn dies nicht der Fall ist, ROWSPACE um 1 verkleinern, bis der größte gemeinsame Teiler von R und ROWSPACE 1 ist; Berechnen (994) eines RAM-Index i zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Auslesen eines Zeichens mit dem Zeichenindex n aus dem RAM unter Anwendung der folgenden Gleichung: i = modulo[(ROWSPACE·n), R] + 1,wobei n der Zeichenindex des jeweils auszulesenden Zeichens ist; Berechnen (996) eines RAM-Index j zum Gebrauch beim Erzeugen einer Adresse im RAM zur Verwendung beim Auslesen eines Zeichens mit dem Zeichenindex n aus dem RAM unter Anwendung der folgenden Gleichung: j = modulo[(Col-Space·n), C] + 1;Erzeugen (998) einer RAM-Adresse auf Basis der berechneten Werte für i und j, und Verwenden dieser RAM-Adresse, um das Zeichen mit dem Index n aus dem RAM auszulesen.
  8. Vorrichtung, umfassend Mittel zur Ausführung der Verfahrensschritte von Anspruch 1, dadurch gekennzeichnet, dass sie umfasst: eine Schaltung zum Berechnen von Adressen (958) mit einem Eingang zum Empfangen eines Taktsignals (952) und einem Ausgang, an dem während jeder Periode eines Taktsignals, die einen Zeitraum definiert, in dem ein Zeichen in einen RAM-Speicher (940) eingespeichert werden soll, oder einen Zeitraum, in dem ein Zeichen aus einem RAM-Speicher (940) ausgelesen werden soll, eine RAM-Adresse (956) erscheint, wobei diese Schaltung zum Berechnen von Adressen (958) so ausgeführt ist, dass sie diese RAM-Adresse anhand von berechneten Werten von i und j berechnet, die beide jeweils eine vorgegebene Funktion von vorgegebenen Variablen (PACK_SIZE, D, BSYM, COL_SPACE, n, R) sind, und/oder von Zahlen, die gemäß der mathematischen Gleichungen berechnet wurden, welche die Operation von einem der beiden Verschachtelungsalgorithmen definieren; eine Zähleinrichtung (950) mit einem Eingang zum Empfangen eines Taktsignals (952) und mit einem Ausgang, an dem RAM-Adressen (946) erscheinen; einen Multiplexer (942) mit einem ersten und einem zweiten Adresseingang, die mit den Ausgängen der Schaltung zum Berechnen von Adressen (958) beziehungsweise der Zähleinrichtung (950) gekoppelt sind, und mit einem Ausgang, an dem die Adressen (948) erscheinen, die an einem ausgewählten Eingang dieser Eingänge erscheinen, und mit einem Eingang, an mit diesem Ausgang gekoppelt wird; und einen RAM (940) mit einem Adresseingang, der mit dem Ausgang dieses Multiplexers (942) gekoppelt ist und einen Datenbus (954) Eingabe/Ausgabe-Port hat.
  9. Vorrichtung, umfassend Mittel zur Ausführung der Verfahrensschritte von Anspruch 1, dadurch gekennzeichnet, dass sie umfasst: eine Schaltung zum Berechnen von Adressen (958) mit einem Eingang zum Empfangen eines Zeichen-Taktsignals (952) und einem Ausgang, an dem während jeder Periode dieses Zeichen-Taktsignals, die einen Zeitraum definiert, in dem ein Zeichen in einen RAM-Speicher (940) eingespeichert werden soll, eine RAM-Adresse (956) erscheint, wobei diese Schaltung zum Berechnen von Adressen (958) nacheinander eine Anzahl von verschachtelten RAM-Adressen ausgibt, die gleich der Anzahl einer Vielzahl von Zeichen ist, die in einem verschachtelten Array von Zeichen gespeichert werden sollen, das unter Verwendung eines Übertragungsgeräts für Code-Multiplexverfahren übertragen werden soll; eine Zähleinrichtung (950) mit einem Eingang zum Empfangen eines Taktsignals (952) und mit einem Ausgang, an dem RAM-Adressen (946) erscheinen; einen programmierbaren Taktteiler (955) mit einem Eingang zum Empfangen eines Hochgeschwindigkeits-Taktsignals (953) und einem Eingang zum Empfangen eines Codezuweisungssignals (959), das angibt, wie viele Codes R verwendet werden, um die Daten dieser Vielzahl von zu übertragenden Zeichen zu spreizen, und mit einem Ausgang, an dem ein Taktsignal (957) erscheint, das mit diesem Zeichen-Taktsignal (952) phasenkohärent ist, und das R Perioden für jede Periode dieses Zeichen-Taktes hat, wobei dieser Ausgang mit dem Takt-Eingang der Zähleinrichtung (957) gekoppelt ist; einen Multiplexer (942) mit einem ersten und einem zweiten Adresseingang, die mit den Ausgängen der Schaltung zum Berechnen von Adressen (958) beziehungsweise der Zähleinrichtung (950) gekoppelt sind, und mit einem Ausgang, an dem die Adressen (948) erscheinen, die an einem ausgewählten Eingang dieser Eingänge erscheinen, und mit einem Eingang, an dem ein Auswahl-Signal (944) erscheint, das steuert, welcher dieser Eingänge mit diesem Ausgang gekoppelt wird; und einen RAM (940) mit einem Adresseingang, der mit dem Ausgang dieses Multiplexers (942) gekoppelt ist und einen Datenbus (954) Eingabe/Ausgabe-Port hat.
  10. Vorrichtung nach Anspruch 9, wobei die Schaltung zum Berechnen von Adressen (958) eine Vielzahl von Eingängen hat, an denen eine vorgegebene Anzahl der folgenden Eingaben empfangen wird, wobei die Eingänge dadurch bestimmt werden, ob diese Schaltung zum Berechnen von Adressen die Zeichen unter Verwendung eines ersten oder eines zweiten Verfahrens zum Verschachteln verschachtelt, wobei dieses erste Verfahren Zeichen zu einem verschachtelten Array über eine Col_Space Anzahl von Spalten verschachtelt, um einen minimalen Abstand von Zeichenindizes nach D zu erhalten, und wobei dieses zweite Verfahren Zeichen zu einem verschachtelten Array über eine Col_Space Anzahl von Spalten verschachtelt, um einen minimalen Abstand von Zeichenindizes nach D zu erhalten, und über eine ROWSPACE Anzahl von Zeilen verschachtelt, um einen minimalen Abstand von Zeichenindizes nach Hor_Dist zu erhalten, wobei die Eingänge für dieses erste Verfahren Eingänge für Werte von R, D und Col_Space beinhalten, wobei R die Anzahl der Spreizcodes ist, die für die Übertragung der Vielzahl von verschachtelten Zeichen zu verwenden sind, D der minimale Abstand von Zeichenindizes innerhalb einer Gruppe von Col_Space Spalten ist, und Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei die Eingänge für dieses zweite Verfahren Eingänge zum Empfangen von Werten für D, bsym, Pack_Size und Col_Space beinhalten, wobei bsym die Anzahl von Bits in jedem Zeichen ist und Pack_Size die Gesamtanzahl von Bytes in einem zu sendenden Zeichenpaket ist, einschließlich des Headers.
  11. Vorrichtung, umfassend Mittel zur Ausführung der Verfahrensschritte von Anspruch 1, dadurch gekennzeichnet, dass sie umfasst: eine Schaltung zum Berechnen von Adressen (958) mit einem Eingang zum Empfangen eines Taktsignals (957) und einem Ausgang, an dem während jeder Periode dieses Taktsignals, die einen Zeitraum definiert, in dem ein Zeichen aus einem RAM-Speicher (940) ausgelesen werden soll, eine RAM-Adresse (956) erscheint, wobei diese Schaltung zum Berechnen von Adressen (958) nacheinander eine Anzahl von verschachtelten RAM-Adressen ausgibt, die gleich der Anzahl einer Vielzahl von Zeichen ist, die aus einem verschachtelten Array von Zeichen im RAM ausgelesen werden sollen, das unter Verwendung eines Übertragungsgeräts für Code-Multiplexverfahren übertragen werden soll; eine Zähleinrichtung (950) mit einem Eingang zum Empfangen eines Zeichen-Taktsignals (952) und mit einem Ausgang, an dem RAM-Adressen (946) erscheinen; einen programmierbaren Taktteiler (955) mit einem Eingang zum Empfangen eines Hochgeschwindigkeits-Taktsignals (953) und einem Eingang zum Empfangen eines Zeichen-Taktsignals (952) und einem Eingang zum Empfangen eines Codezuweisungssignals (959), das angibt, wie viele Codes R verwendet werden, um die Daten dieser Vielzahl von zu übertragenden Zeichen zu spreizen, und mit einem Ausgang, an dem ein Taktsignal (957) erscheint, das mit diesem Zeichen-Taktsignal (952) phasenkohärent ist, und das R Perioden für jede Periode dieses Zeichen-Taktes hat, wobei dieser Ausgang mit dem Takt-Eingang der Schaltung zum Berechnen von Adressen (958) gekoppelt ist; einen Multiplexer (942) mit einem ersten und einem zweiten Adresseingang, die mit den Ausgängen der Schaltung zum Berechnen von Adressen (958) beziehungsweise der Zähleinrichtung (950) gekoppelt sind, und mit einem Ausgang, an dem die Adressen (948) erscheinen, die an einem ausgewählten Eingang dieser Eingänge erscheinen, und mit einem Eingang, an dem ein Auswahl-Signal (944) erscheint, das steuert, welcher dieser Eingänge mit diesem Ausgang gekoppelt wird; und einen RAM (940) mit einem Adresseingang, der mit dem Ausgang dieses Multiplexers (942) gekoppelt ist und einen Datenbus (954) Eingabe/Ausgabe-Port hat.
  12. Vorrichtung nach Anspruch 11, wobei die Schaltung zum Berechnen von Adressen (958) eine Vielzahl von Eingängen hat, an denen eine vorgegebene Anzahl der folgenden Eingaben empfangen wird, wobei die Eingänge dadurch bestimmt werden, ob diese Schaltung zum Berechnen von Adressen die Zeichen unter Verwendung eines ersten oder eines zweiten Verfahrens zum Verschachteln verschachtelt, wobei dieses erste Verfahren Zeichen zu einem verschachtelten Array über eine Col_Space Anzahl von Spalten verschachtelt, um einen minimalen Abstand von Zeichenindizes nach D zu erhalten, und wobei dieses zweite Verfahren Zeichen zu einem verschachtelten Array über eine Col_Space Anzahl von Spalten verschachtelt, um einen minimalen Abstand von Zeichenindizes nach D zu erhalten, und über eine ROWSPACE Anzahl von Zeilen verschachtelt, um einen minimalen Abstand von Zeichenindizes nach Hor_Dist zu erhalten, wobei die Eingänge für dieses erste Verfahren Eingänge für Werte von R, D und Col_Space beinhalten, wobei R die Anzahl der Spreizcodes ist, die für die Übertragung der Vielzahl von verschachtelten Zeichen zu verwenden sind, D der minimale Abstand von Zeichenindizes innerhalb einer Gruppe von Col_Space Spalten ist, und Col_Space die ganzzahlige Anzahl benachbarter Spalten ist, die durch Rauschimpulse negativ beeinflusst werden können, wobei jede Spalte in diesem verschachtelten Array eine Anzahl von Zeilen gleich R mit einem Zeichen in jeder Zeile enthält, und wobei die Eingänge für dieses zweite Verfahren Eingänge zum Empfangen von Werten für D, bsym, Pack_Size und Col_Space beinhalten, wobei bsym die Anzahl von Bits in jedem Zeichen ist und Pack_Size die Gesamtanzahl von Bytes in einem zu sendenden Zeichenpaket ist, einschließlich des Headers.
DE69934465T 1998-09-14 1999-09-14 Zweidimensionale Verschachtelung für CDMA Expired - Lifetime DE69934465T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US152643 1998-09-14
US09/152,643 US6466564B1 (en) 1998-09-14 1998-09-14 Two dimensional interleave process for CDMA transmissions of one dimensional timeslot data

Publications (2)

Publication Number Publication Date
DE69934465D1 DE69934465D1 (de) 2007-02-01
DE69934465T2 true DE69934465T2 (de) 2007-09-27

Family

ID=22543778

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69943327T Expired - Lifetime DE69943327D1 (de) 1998-09-14 1999-09-14 Zweidimensionale Verschachtelung für CDMA
DE69934465T Expired - Lifetime DE69934465T2 (de) 1998-09-14 1999-09-14 Zweidimensionale Verschachtelung für CDMA

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69943327T Expired - Lifetime DE69943327D1 (de) 1998-09-14 1999-09-14 Zweidimensionale Verschachtelung für CDMA

Country Status (5)

Country Link
US (1) US6466564B1 (de)
EP (2) EP0987850B1 (de)
JP (1) JP2000138653A (de)
CA (1) CA2281480C (de)
DE (2) DE69943327D1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4207800A (en) * 1999-04-09 2000-11-14 Sony Electronics Inc. Interleavers and de-interleavers
KR100359814B1 (ko) * 2000-03-11 2002-11-07 엘지전자 주식회사 인터리버 메모리 제어 장치 및 방법
US6845104B2 (en) * 2000-06-14 2005-01-18 Ipr Licensing, Inc. Receiver for time division multiplex system without explicit time slot assignment
US7406104B2 (en) * 2000-08-25 2008-07-29 Lin Yang Terrestrial digital multimedia/television broadcasting system
US8054810B2 (en) * 2001-06-25 2011-11-08 Texas Instruments Incorporated Interleaver for transmit diversity
KR100860660B1 (ko) * 2002-01-09 2008-09-26 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법
FI20021222A (fi) 2002-06-20 2003-12-21 Nokia Corp Informaatiobittien limitys
US20060076418A1 (en) * 2002-11-21 2006-04-13 Koninlijke Philips Electronics N.V. Electronic memory component or memory module, and method of operating same
US7343530B2 (en) * 2004-02-10 2008-03-11 Samsung Electronics Co., Ltd. Turbo decoder and turbo interleaver
TWI263229B (en) * 2005-03-17 2006-10-01 Sunplus Technology Co Ltd Memory device with interface for serial transmission and error correction method for serial transmission interface
US7721182B2 (en) 2005-05-27 2010-05-18 International Business Machines Corporation Soft error protection in individual memory devices
US20060282755A1 (en) * 2005-05-31 2006-12-14 Jong-Hoon Oh Random access memory having ECC
US7797614B2 (en) * 2006-10-17 2010-09-14 Northrop Grumman Corporation Non-redundant multi-error correcting binary differential demodulator
CN101217349A (zh) 2007-01-05 2008-07-09 中兴通讯股份有限公司 一种混合自动重传请求中比特收集的装置与方法
US8050355B2 (en) * 2008-06-11 2011-11-01 Korea Electronics Technology Institute Transmitter and receiver using pseudo-orthogonal code
KR20100071490A (ko) * 2008-12-19 2010-06-29 한국전자통신연구원 디레이트 매칭하는 방법 및 그 장치
JP6235911B2 (ja) * 2014-01-16 2017-11-22 日本放送協会 インターリーブ装置及びデインターリーブ装置、並びにインターリーブ方法
CN109495207B (zh) * 2017-09-11 2021-08-10 上海诺基亚贝尔股份有限公司 用于在无线通信系统中交织数据的方法和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK2302804T3 (da) * 1995-02-01 2013-07-29 Sony Corp Flerkanalstransmission med interleaving ved adressering på stedet af RAM-hukommelse
US5805583A (en) * 1995-08-25 1998-09-08 Terayon Communication Systems Process for communicating multiple channels of digital data in distributed systems using synchronous code division multiple access
US5881093A (en) * 1997-02-10 1999-03-09 Motorola, Inc. Method of interleaving a convolutionally coded signal in a spread spectrum communication system

Also Published As

Publication number Publication date
EP1760891A1 (de) 2007-03-07
JP2000138653A (ja) 2000-05-16
EP1760891B1 (de) 2011-03-30
DE69934465D1 (de) 2007-02-01
CA2281480A1 (en) 2000-03-14
EP0987850B1 (de) 2006-12-20
EP0987850A3 (de) 2004-04-07
DE69943327D1 (de) 2011-05-12
EP0987850A2 (de) 2000-03-22
CA2281480C (en) 2004-05-11
US6466564B1 (en) 2002-10-15

Similar Documents

Publication Publication Date Title
DE69934465T2 (de) Zweidimensionale Verschachtelung für CDMA
EP2115948B1 (de) Verfahren und anlage zur optimierten übertragung von daten zwischen einer steuereinrichtung und mehreren feldgeräten
DE69726845T2 (de) Zeitmultiplexverfahren und zugehörige Anordnungen zur Verwendung in einer zentralen Station und Netzwerkendstellen eines Nachrichtenübertragungsnetzwerkes
DE69833688T2 (de) Sender und empfänger mit verschachtelungs-/entschachtelungsvorrichtung zum ver-/entschachteln von daten innerhalb eines superrahmens
DE10248989B4 (de) Vorrichtung und Verfahren zum Durchführen einer Codierung und Ratenabstimmung in einem CDMA-Mobilkommunikationssystem
DE10129777A1 (de) Verfahren und Vorrichtung zur Datenübertragung gemäß einem ARQ-Verfahren
DE3934248A1 (de) Multiplexer und demultiplexer, insbesondere fuer nachrichtenuebertragungs-netze mit einer synchronen hierarchie der digitalsignale
DE2132004A1 (de) Multiplex-Information-UEbertragungsanlage
DE2731963A1 (de) Verfahren und anordnung zum zugriff mehrerer datenstationen zu einem gemeinsamen uebertragungskanal
DE60216040T2 (de) Verfahren und vorrichtung zur zuordnung faltungscodierter bits zu symbolen vor deren modulation
DE69911858T2 (de) Entschachtelungsvorrichtung
DE102014215468A1 (de) Teilnehmerstation für ein Bussystem und Verfahren zur breitbandigen CAN-Kommunikation
DE60110083T2 (de) Dekorrelation von interferenzen von mehreren verschachtelten Datenströmen
DE69737337T2 (de) Datenempfänger und Empfangsverfahren für punktierte, faltungskodierte Daten
DE2805294A1 (de) Kodierende (daten-)uebertragungsanlage fuer faksimilesignale
DE60008268T2 (de) Wandler und verfahren zum wandeln eines eingangsdatenpaketstroms in einen ausgangsdatenpaketstroms
DE19832554C2 (de) Spreizvorrichtung für multiple Datenraten
DE69920779T2 (de) Fehlerschutzverfahren und -vorrichtung
DE69635533T2 (de) Fehlerbeschütztes Datenübertragungs-und Empfangsverfahren und Datenübertragungssystem
DE69935878T2 (de) Verfahren zur physische Kanalzuweisung und Sender
DE60311997T2 (de) Verfahren zur ersten Verschachtelung für einen Sender mit zwei Verschachtelern
DE19627728A1 (de) Netzelement und Ein-/Ausgabeeinheit für ein synchrones Übertragungssystem
DE2824260C2 (de) Einrichtung zur Übertragung von Daten in bildinhaltfreien Intervallen eines Fernsehsignals
DE2160567C3 (de) Datenübertragungs-Anschlussgerät
EP1232599B1 (de) Anordnung zum erzeugen eines digital modulierten prüfsignals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: BROADCOM CORP., IRVINE, CALIF., US