-
Diese
Erfindung bezieht sich auf die Ratenanpassung und Kanalverschränkung für ein Kommunikationssystem.
-
Hintergrund
der Erfindung
-
Es
ist wohl bekannt, die Verschränkung
von Daten in einem Kommunikationssystem unter Verwendung von Vorwärtsfehlerkorrektur
(FEC) durchzuführen,
um beim Entschränken
die Fehler zu verteilen, um ihre Korrektur zu erleichtern. Typischerweise
verwendet eine solche Verschränkung
einen Blockverschränker, um
Datenblöcke
zu verschränken.
Sogenanntes Turbokodieren (parallel verkettetes gefaltetes Kodieren)
verwendet einen Verschränker
zwischen Eingängen
zu zwei Faltungskodierern, welche vor und nach dem Verschränken jeweilige
Parity Bits aus den Eingangsdaten erzeugen. Indem eine steigende
Aufmerksamkeit auf die Verwendung von Turbokodierung gerichtet wird,
speziell in drahtlosen Kommunikationssystemen, wurde ebenso die
Aufmerksamkeit auf die Form des Verschränkers gerichtet.
-
Sogenannte
drahtlose CDMA (Code Division Multiple Access) Kommunikationssysteme
der dritten Generation werden ebenso entwickelt, welche einen Kanal-
oder Zwischenrahmenverschränker
benötigen, welcher
arbeitet, um Daten in Blöcken
zu verschränken
oder zu permutieren, die der Funkrahmendauer entsprechen, typischerweise
10 ms. In solchen Systemen geht der Kanalverschränker entweder einer Ratenanpassungsfunktion
voran oder folgt dieser, welche dazu dient, die verschiedenen Datenraten
an die Funkrahmenrate anzupassen, und welche typischerweise die
Punktierung (Unterlassung) oder Wiederholung von Datensymbolen einbezieht,
in diesem Fall Datenbits (siehe UMTS: „UTRAN; UTRAFDD, Multiplexierung,
Kanalkodierung und Verschränkung,
Beschreibung (UMTS XX.04 Version 1.0.0)" Februar 1999, ETSI). Es ist wünschenswert,
die unterlassenen oder wiederholten Bits so gleichmäßig wie
möglich
zu verteilen, mit so großem Abstand
wie möglich
zwischen punktierten oder wiederholten Bits, in den entschränkten Rah men,
auf eine Weise, die einfach zu implementieren ist, und die relativ
unabhängig
ist von Variablen, so wie der Rahmengröße, Anzahl der Rahmen, und
der Punktierungsrate.
-
Die
kanadische Patentanmeldung Nr. 2,266,283 eingereicht am 19. März 1999
auf die Namen von Wen Tong et al. mit dem Titel "Data Interleaver And Method Of Interleaving
Data", beschreibt
und beansprucht ein Verfahren zum Verschränken von Daten und einen Datenverschränker, welcher
vorteilhaft verwendet werden kann, um die oben bezeichnete Kanalverschränkung bereitzustellen.
Die vorliegende Erfindung befasst sich mit der Ratenanpassung auf
eine Weise, die mit speziellem Vorteil für Daten nach solch einer Kanalverschränkung verwendet
werden kann, die aber ebenso anwendbar ist auf andere Formen von
verschränkten Daten.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
Aspekt, stellt diese Erfindung ein Verfahren zur Verschränkung und
Ratenanpassung parallel verketteter faltungskodierter Daten durch
Löschung
von kodierten Datenbits oder durch Wiederholung von kodierten Datenbits
bereit, wie dargelegt in den Patentansprüchen 1 und 3.
-
Die
Erfindung stellt ferner eine Kodierungs-, Verschränkungs-,
und Ratenanpassungsvorrichtung bereit, die so angeordnet ist, dass
sie solch ein Verfahren, wie dargelegt in Patentansprüchen 4 und
6 ausführt.
-
Kurze Beschreibung
der Zeichnungen
-
Die
Erfindung wird weiter verstanden werden von der nachfolgenden Beschreibung
mit Bezug auf die beigefügten
Zeichnungen, in welchen:
-
1 eine
bekannte Anordnung zur Dienstemultiplexierung und Kanalverschränkung in
einem CDMA-Kommunikationssystem der 3. Generation darstellt;
-
2 ein
Ablaufdiagramm ist, das sich auf einen bekannten Ratenanpassungsalgorithmus
bezieht;
-
3 eine
Implementierung eines Verschränkers
und einer Ratenanpassungsanordnung darstellt;
-
4,
die sich auf dem gleichen Blatt befindet wie 2, ein Ablaufdiagramm
ist, das sich auf das Mischen für
eine zweite Stufe der Verschränkung
in der Anordnung von 1 bezieht; und
-
5 veranschaulicht
eine Modifizierung eines Teils der Anordnung aus 1 zur
Kanalverschränkung
und Ratenanpassung von Daten, die mittels Turbo- (parallel verkettet,
faltungs) Kodierung kodiert wurden.
-
Detaillierte
Beschreibung
-
Mit
Bezug auf 1 ist dort eine bekannte Anordnung
für Dienstemultiplexierung
und Kanalverschränkung
in einem CDMA Funkkommunikationssystem der 3. Generation dargestellt.
Die Anordnung beinhaltet einen Dienstemultiplexer 10, welcher
dazu dient, eine Mehrzahl von Datensignalströmen zusammen zu multiplexieren,
die als Hauptstromdienste bezeichnet werden, oder QoS (Dienstequalität) Kanäle, welche über entsprechende
Diensteblöcke 12,
von denen lediglich einer dargestellt ist, zugeführt werden. Jedem Diensteblock 12 werden
an Eingängen 14 eine
Vielzahl von konstituierenden Eingangssignalen zugeführt, welche
z.B. beliebige aus verschiedenen Arten von Signalen so wie Sprache,
Daten, und Multimediasignalen umfassen können. Diese Eingangssignale
können
beliebige Übertragungsraten,
Rahmengrößen, und
andere Parameter haben. Den Eingangssignalen werden CRC (cyclic
redundancy check) Codes in Blöcken 16 zugeführt, und
sie werden zusammen in einem Transportkanalmultiplexierer 18 multiplexiert.
Die multiplexierten Signale werden für die Verschlüsselung,
in einem Segmentierungsblock 20 segmentiert und die segmentierten
Signale werden in FEC-Blöcken 22 einer
FEC (Vorwärtsfehlerkorrektur)
unterzogen. Die kodierten Signale werden in einem Multiplexierer 24 multiplexiert.
-
Die
multiplexierten Signale werden in einem Block 26 einer
Ratenanpassung (Punktierung (Löschung) von
redundanten Datensymbolen (Bits) oder Wiederholung von Datensymbolen
(Bits)) unterzogen, um die Datenrate an die Kommunika tionsrate (Luftrate)
anzupassen, mit Funkrahmen von 10 ms Dauer. Hauptsächlich um
benachbarte Bits zu trennen, um die nachteiligen Effekte von Fehlern
aufgrund von Verblassen im Funkkanal zu vermeiden, werden die Datenbits
in einem ersten Verschränker 28 verschränkt, welcher
als Kanal- oder Zwischenrahmenverschränker bezeichnet wird, weil
er arbeitet, Blöcke
von je 10 ms der Datenbits jeweils zu permutieren. Obwohl in 1 der
Verschränker 28 gezeigt
ist, welcher dem Ratenanpassungsblock 26 nachgeschaltet
ist, können,
wie nachfolgend besprochen wird, die Positionen dieser Funktionen
ausgetauscht werden, wobei die multiplexierten Signale vom Multiplexierer 24 dem
Kanalverschränker 28 zugeführt werden und
die verschränkten
Signale vom Verschränker
dem Datenanpassungsblock 26 zugeführt werden. Z.B. können diese
Funktionen in der Reihenfolge vorliegen, die in 1 für die Downlink-Übertragung
von Signalen von einer zentralen Station gezeigt ist, und können in
der umgekehrten Reihenfolge für
die Uplink-Übertragung von
Signalen an die zentrale Station vorliegen.
-
Auf
die den Funktionen 26 und 28 folgend werden die
sich ergebenden Raten angepassten und verschränkten Signale für Funkrahmen
und physikalische Kanäle
in Segmentierungsblöcken 30 und 32 jeweils segmentiert,
um die Signale zur Multiplexierung durch den Multiplexer 10 zu
erzeugen. Die Signale, welche vom Multiplexer 10 ausgegeben
werden, werden durch einen zweiten Verschränker 34 verschränkt, dessen Ausgänge segmentiert
und dedizierten physikalischen Kanälen in einem Segmenierungs-
und Zuordnungsblock 36 zugeordnet werden zur Kommunikation über einen
CDMA Funkkommunikationskanal auf bekannte Weise.
-
Der
erste Verschränker 28 kann
eine ausreichend gute Leistungsfähigkeit
aufweisen, um es zu ermöglichen,
dass der zweite Verschränker 34 weggelassen
werden kann, oder auf eine einfache Mischungsoperation reduziert
werden kann, wie z.B. nachfolgend beschrieben. Dies ist speziell
wünschenswert,
weil andernfalls der zweite Verschränker 34 das Potential
hat, die Verschränkung
zu verschlechtern, die durch jeden ersten Verschränker 28 durchgeführt wird,
wohingegen jeder erste Verschränker 28 für seinen
speziellen Raten angepassten Datenstrom und QoS optimiert werden
kann.
-
Entsprechend
ist der erste Verschränker 28 als
algebraischer Verschränker
implementiert, der eine gute zufällige
Spreizungseigenschaft bereit stellt. Die mehreren kodierten Bitblöcke oder
Datentransportrahmen für
jeden QoS-Kanal werden einer zweidimensionalen Matrix zugeordnet
und werden linearen Kongruenzregeln unterzogen, um die Zeilen und
Spalten der Matrix zu permutieren, um die Verschränkungsfunktion zu
implementieren. Eine maximale Verschränkungstiefe und Zeitspanne
kann bestimmt werden, indem ein Satz von besten Parametern gesucht
wird. Der Verschränker
besitzt folglich eine relativ einfache Gestalt ohne die Nachteile
von bekannten Verschränkern,
wie das Erfordernis von großen
Speicherabmessungen für
Referenztabellen oder die inadäquate
Aufnahme der Ratenanpassungsfunktion.
-
Obwohl
die nachfolgende Beschreibung auf Zeilen und Spalten einer Matrix
Bezug nimmt, sollte verstanden werden, dass dies der Bequemlichkeit
und Klarheit dient, dass Zeilen und Spalten ausgetauscht werden
können,
ohne die Funktion des Verschränkers
zu verändern,
und dass in der Praxis wie nachfolgend beschrieben der Verschränker durch äquivalente
Steuerung von Lese- und Schreibadressierung von Speicherorten eines
linearen Speichers arbeiten kann, in welchem Datenbits gespeichert
sind, ohne irgendeine tatsächliche
Bewegung der gespeicherten Bits zwischen den Speicherorten.
-
Der
Verschränker 26,
wie in der oben bezeichneten Patentanmeldung beschrieben, arbeitet,
um die folgenden drei Schritte zu implementieren:
Stelle eine
Anzahl Nc von kodierten Blöcken von
Datenbits jede der Länge
Nr von Datenbits als Matrix von Nr Zeilen und Nc Spalten
dar.
-
Permutiere
die Zeilen und Spalten der Matrix in Übereinstimmung mit:
Zeilenpermutation | Ir(k)=[αrk+fc(I)]modNr |
Spaltenpermutation | Ic(1)=[αcI+fr(k)]modNc |
worin I
r(k) ein Datenbit
mit einem Zeilenindex k darstellt, k eine ganze Anzahl von 1 bis
N
r ist, α
r ein Zeilenpermutationsparameter ist und
eine ganze Zahl ist, f
c(I) eine positive
Funktion eines Spaltenindex I ist, I eine ganze Zahl von 1 bis N
c ist, I
c(I) ein
Datenbit mit dem Spaltenindex I darstellt, α
r ein
Spaltenpermutationsparameter und eine ganze Zahl ist, f
r(k)
eine positive Funktion des Zeilenindex k ist, und modN
r und
modN
c jeweils Modulo-N
r und
Modulo-N
c Arithmetik darstellen.
-
Leite
die verschränkten
Datenbits aus der Matrix Spalte für Spalte ab.
-
Schritt
1 kann leicht modifiziert werden, um verschiedene Anzahlen von Datentransportrahmen
an eine gegebene Anzahl von Reihen und Spalten der Matrix anzupassen.
Zum Beispiel kann die Matrix Nc = 8 Spalten
für Nc/γ Datentransportrahmen
haben, wo γ=1,2,4
oder 8 ist, die Matrix entsprechend Nr/γ Zeilen hat, mit
einer folglichen Modifikation von Schritt 3, um n Spalten der Matrix
pro Funkrahmen entsprechend auszulesen. Wegen der Einfachheit in
der nachfolgenden Beschreibung wird angenommen, dass γ=1 mit Nc=8.
-
Für Schritt
2 wird der Zeilenpermutationsparameter αr als
größte Primzahl
ausgewählt,
die kleiner ist als l NR/log2 (log2 (NR))J, der Spaltenpermutationsparameter αc wird
als größte Primzahl
kleiner als L Nc-I, die Funktion fc(1)=m1+[Nr+1]mod2, wobei m eine ganze Zahl ist gleich
zu ⌈ Nr/Nc und
die Funktion fr von (k)=2k+[Nc+1]mod2.
Die Symbole ⌊ und ⌋ beziehen sich auf das Abrunden
auf eine ganze Zahl und die Symbole ⌈⌉ beziehen
sich auf das Abrunden auf eine ganze Zahl. Es kann begrüßt werden,
dass [Nr+1]mod2 Null ist, wenn Nr ungerade ist und 1 ist, wenn Nr gerade
ist, und dass [Nc+1]mod2 Null ist, wenn
Nc ungerade ist und 1 ist, wenn Nc gerade ist, sodass diese Teile der Funktionen
fc(I) und fr(k)
einfach die Addition von 1 sind, wenn die jeweilige Anzahl Nr oder Nc gerade
ist.
-
Wie
oben angedeutet, (löscht)
punktiert die Ratenanpassungredundante Datenbits (welche als Ergebnis
der FEC Kodierungsblöcke 22 vorliegen)
für den
Fall, dass die Datentransportrahmengröße größer ist als die Funkrahmengröße, wobei
ein ma ximales Punktierverhältnis
20% der Transportrahmengröße beträgt. Umgekehrt,
falls die Datentransportrahmengröße kleiner
ist als die Funkrahmengröße, werden
Bits des Transportrahmens wiederholt, um eine Ratenanpassung zu
erreichen. Die Ratenanpassung wird soweit als möglich gewünscht, um die Trennabstände zwischen
den punktierten Bits zu maximieren und die Anzahl von punktierten Bits
in jedem Funkrahmen auszugleichen, d.h. die punktierten Bits gleichförmig unter
den Funkrahmen bei maximaler Trennung zu verteilen.
-
Im
Fall, in dem der Ratenanpassungsblock 26 dem Kanalverschränker 28 voransteht,
wie gezeigt in 1, kann ein bekanntes Ratenanpassungsverfahren
wie gezeigt in 2 verwendet werden.
-
Mit
Bezug auf 2 werden für jeden Funkrahmen der Segmentierungsgröße von NI Bits in einem Block 40 eine ganze
Zahl y zu y=Nr–NI bestimmt,
wobei y größer als
Null ist (positiv) im Fall, dass Punktierung erforderlich ist, kleiner
als Null ist (negativ) im Fall, dass Wiederholung von |y| Bits erforderlich
ist, und Null ist, falls keine Punktierung oder Wiederholung erforderlich
ist, wobei ein Stoppblock 41 im letzteren Fall erreicht wird.
Weil die Schritte, die in 2 gezeigt
werden, im wesentlichen die gleichen sind für Bitwiederholung (y<0, gezeigt rechts
in 2) wie für
Punktierung (y>0,
gezeigt links in 2) mit der Ausnahme der Verwendung von
|y| und stattdessen Wiederholung von y, wird lediglich der Fall
der Punktierung nachfolgend im einzelnen beschrieben.
-
Falls
y>0, ist die Punktierung
von y der Nr Bits des Transportrahmens erforderlich
und die NI Bits des Funkrahmens zu produzieren.
In diesem Fall wird in einem Block 42 ein Parameter e zu
einem Startversatz eos initialisiert, welcher
auf beliebige gewünschte
Weise für
den speziellen Funkrahmen bestimmt wird, und ein Zeilenzähler r wird
zu 1 initialisiert. In einem Block 43 wird bestimmt, ob
r£Nr ist und, falls dies der Fall ist, wird in
einem Block 44 der Wert von e um 2y verringert. In einem
nachfolgenden Entscheidungsblock 45 wird bestimmt, ob e£0 ist,
und falls dies der Fall ist, wird das Bit in der Zeile r im Block 46 punktiert,
der Wert von e wird um 2Nr in einem Block 47 erhöht, der
Zeilenzähler
r wird um 1 in einem Block 48 erhöht, und eine Rückverzweigung
durchgeführt
zum Entscheidungsblock 43 wird vorgenommen. Eine negative
Entscheidung im Block 45 (d.h. e>0) führt
zu einer Rückverzweigung
zum Block 43 über
den Block 48, um den Zeilenzähler r zu inkrementieren, ohne
irgendeine Punktierung oder Veränderung
im Wert von e. Eine negative Entscheidung im Block 43 (d.h.
r>Nr)
zeigt an, dass das Ende des Rahmens erreicht wurde, und entsprechend
endet die Sequenz im Stoppblock 41.
-
Jedoch
im Fall, in dem der Ratenanpassungsblock 26 dem Kanalverschränker 28 folgt,
wird die Ratenanpassung für
den permutierten (verschränkten)
Bitstrom durchgeführt
und das Problem der Ratenanpassung ist beträchtlich komplizierter. Allgemein
sind die Erfordernisse der Kanalverschränkung und des Ratenanpassungsprozesses
nicht konsistent.
-
Spezieller
stellt der Entwurf eines geeigneten und wünschenswert optimierten Ratenanpassungsmusters
von punktierten oder wiederholten Bits innerhalb der Bitmatrix nach
dem Kanalverschränkungsprozess eine
sehr komplexe oder undurchführbare
Aufgabe dar. Diese Erfindung vermeidet dieses Problem, indem sie ein
geeignetes und wünschenswert
optimiertes Ratenanpassungsmuster von punktierten oder wiederholten Bits
für die
Matrix vor der Verschränkung
bereitstellt und einen Entschränkungsprozess
oder Dekodierungsprozess verwendet, um entsprechende am Ausgang
des Kanalverschränkers
zu punktierende oder zu wiederholende Bits zu bestimmen. Dieser
Prozess wird durch die Tatsache vereinfacht, dass der Entschränkungs-, oder
Dekodierungsprozess durch exakt die gleiche Struktur wie der Verschränkungsprozess
implementiert werden kann, wie nachfolgend weiter beschrieben wird.
Wegen der Bequemlichkeit und Klarheit bezieht sich die nachfolgende
Beschreibung auf die Bitmatrix vor der Verschränkung (oder nach der Entschränkung) als der
natürlichen
Matrix NM, und auf die Matrix der Bits nach der Verschränkung als
der Zufallsmatrix RM.
-
3 veranschaulicht
eine Implementierung eines Kanalverschränkers 28 und Ratenanpassungsblocks 26.
Wie in 3 veranschaulicht, enthält der Verschränker 26 einen
Arbeitsspeicher 50 mit zwei Hälften, die wechselweise auf
bekannte Weise zum Einschreiben und Auslesen des Speicher verwendest
werden, jeder zum Speichern der NrNc Datenbits, die in der Matrix, wie oben
beschrieben, dargestellt sind, wobei diese Datenbits in den Speicher
linear geschrieben werden, entsprechend der Zeilen für Zeilen
Organisation der Matrix. Ein Modulo-Nr Zeilenzähler 51 reagiert
auf ein Taktsignal CLK, um einen Zählerstand bereit zu stellen,
der den Zeilenindex k darstellt, und ein Übertragsausgang dieses Zählers 51 wird
einem Modulo-Nc Spaltenzähler 52 zugeführt, um
einen Zählwert
bereitzustellen, der den Spaltenindex 1 repräsentiert.
Die Zählerstände k und 1
der Zähler 51 und 52 werden
einem Adresskodierer 53 zugeführt, der in einem gestrichelten
Rechteck in 3 dargestellt ist. Spezieller,
wird der Zählerstand
des Spaltenzählers 53 den
Multiplexern 54 und 55 zugeführt, welche ebenso jeweils
mit den Parametern αc und m versorgt werden, um jeweils Produkte
zu produzieren, die αcI und m darstellen, und der Zählerstand
des Zeilenzählers 51 wird
den Multiplizierern 56 und 57 zugeführt, welche
ebenso mit der ganzen Zahl 2 und dem Parameter αr jeweils
versorgt werden, um Produkte zu produzieren, die jeweils 2k und αrk
repräsentieren.
Ein Addierer 58 addiert die Ausgänge der Multiplizierer 54 und 56 und
addiert wahlweise 1 oder 0 abhängig
davon, ob Nc gerade ist oder jeweils ungerade
ist, und der Ausgang des Addierers 58 wird zur Modulo-Nc Form reduziert durch eine Modulo-Funktion 59,
um die Spaltenpermutationsfunktion, die oben beschrieben wurde,
abzuschließen.
Ein Addierer 60 addiert die Ausgänge der Multiplizierer 55 und 57 und
addiert wahlweise 1 oder 0 abhängig
davon, ob Nr gerade oder jeweils ungerade ist,
und der Ausgang des Addierers 60 wird auf die Modulo-Nr Form durch eine Modulo-Funktion 61 reduziert, um die
oben beschriebene Zeilenpermutationsfunktion abzuschließen. Jede
der Modulo-Funktionen 59 und 61 kann Vergleichs-
und Subtraktionsfunktionen beinhalten. Die Ausgänge der Funktionen 59 und 61 werden
in einem Leseadressenkombinierer 62 kombiniert, um eine
Adresse zum Lesen des jeweiligen Datenbits in ihrer verschränkten Sequenz
aus dem Speicher 50 zu produzieren. Wie veranschaulicht
in 3 wird die Leseadresse dem Speicher 50 über einen
Schalter 63 zugeführt,
welcher wie nachfolgend beschrieben bereitgestellt wird.
-
Falls
die Anzahl der Zeilen Nr eine Potenz von
2 ist, dann kann der Adressenkombinierer 62 einfach den
Ausgang der Modulo-Funktion 61 als die wenigst bedeutenden
Bits kombinieren, und den Ausgang der Modulo-Funktion 59 als
die meist bedeutenden Bits der Leseadresse des Speichers 50; äquivalent
wird der Ausgang der Funktion 61 durch den Adressenkombinierer 62 zu
Nr mal dem Ausgang der Funktion 59 addiert.
-
Es
kann gewünscht
werden, Datenbits in beliebig bemessenen Rahmen zu verschränken, die
kein ganzzahliges Vielfaches von Nc sind.
In diesem Fall wird die Anzahl von Zeilen der Matrix gewählt, um
alle der zu verschränkenden
Datenbits aufzunehmen, und es wird nicht in die letzten wenigen
(kleiner als Nc) Speicherorte im Arbeitsspeicher 50 eingeschrieben.
Um die Datenbits von diesen Speicherorten aus den verschränkten Datenbits
wegzulassen, enthält
der Verschränker 28 aus
-
3 ebenso
einen Dekoder 64, welcher diese Speicherorte in der Leseadresse
detektiert, die vom Adresskombinierer 62 ausgegeben wird,
und bei einer solchen Detektion den Schalter 63 öffnet, um
das Lesen der Daten vom Speicher 50 in Bezug auf diese
Orte zu verhindern. Um eine konstante Datenausgaberate von verschränkten Datenbits
aus dem Speicher 50 bereitzustellen, enthält der Verschränker 28 aus 3 ferner einen
FIFO (first-in first-out) Speicher 65, der durch ein Taktsignal
CLK getaktet wird, über
welches die verschränkten
Datenbits einer Ausgangsleitung 66 des Verschränkers zugeführt werden,
wobei das FIFO 65 zu Beginn jeder Verschränkungsoperation
vorgefüllt
wird und eine Abmessung (d.h. bis zu Nc)
aufweist, die ausreicht um nicht gelesene und folglich unterlassene
Speicherorte zu ermöglichen.
-
Die
verschränkten
Datenbits auf der Leitung 66 werden dem Ratenanpassungsblock
oder der Funktion 26 zugeführt, der ebenso in 3 dargestellt
ist. Diese Ratenanpassungsfunktion beinhaltet einen Ratenanpassungsadressgenerator 70,
der ebenso mit dem Taktsignal CLK versorgt wird, einen Adressseparator 71,
einen Adressdekoder 72, einen Puffer oder Speicher 73,
Vergleicher 74 und einen Datenbitwähler 75, der einen
Raten angepassten Datenausgang auf einer Leitung 76 bereitstellt. Ähnlich zur
Bereitstellung des FIFO 65, das für eine konstante Datenbitratenausga be
des Verschränkers 28 sorgt,
kann die Ratenanpassungsfunktion 26 ebenso einen FIFO oder
anderen Puffer (nicht gezeigt) enthalten zur Bereitstellung einer
konstanten Datenbitrate von der Ausgangsleitung 76.
-
Der
Ratenanpassungsadressgenerator 70 erzeugt an seinen Ausgang,
wie weiter unten beschrieben, die Adresse in der natürlichen
Matrix NM von jedem punktierten oder wiederholten Datenbit in Übereinstimmung
mit dem Punktierungs- oder Wiederholungsmuster, welches für diesen
Prozess bestimmt ist. Diese Adresse wird aufgetrennt in meist bedeutende
und wenigst bedeutende Komponenten durch den Adressseparator 71,
dessen Betrieb invers ist zu dem des Adresskombinierers 62,
der oben beschrieben wurde. Folglich, falls die Anzahl von Zeilen
Nr eine Potenz von 2 ist, kann der Adressseparator 71 einfach
die Adressbits separieren, die durch den Generator 70 ausgegeben
werden in meist bedeutende Bits und wenigst bedeutende Bits; in
gleicher Weise wird die Adresse des Generators 70 durch
Nr dividiert, um einen ganzzahligen Quotienten
und einen Rest zu produzieren, welche die zwei Ausgänge des
Adressseparators 71 bilden.
-
Der
Adressdekodierer 72 führt
die inverse Funktion des Adresskodierers 53 aus. Wie oben
angedeutet, kann bei dem algebraischen Verschränkungsprozess, der hierin beschrieben
wurde, die Struktur des Entschränkers
exakt die gleiche sein wie die Struktur des Verschränkers, und
entsprechend ist der Adressdekoder 72 exakt der gleiche
wie der Adresskodierer 53. Entsprechend ist die detaillierte
Struktur des Adressdekoders 72 nicht in 3 dargestellt,
da sie identisch zur Struktur des Adresskodierers 53 ist,
die in 3 gezeigt ist. Es kann begrüßt werden, dass die gleiche
Struktureigenschaft der komplementären Operationen zum Verschränken und
Entschränken
für einen
beträchtlichen
Vorteil sorgt und für
eine Vereinfachung bei der Implementierung dieser Funktionen.
-
Die
Ausgaben des Adressdekoders 72 werden im Speicher 73 gepuffert
und die gepufferten Ausgaben des Speichers werden in den Vergleichern 74 jeweils
mit den aktuellen Zählerständen k und
I des Zeilenzählers 51 und
Spaltenzählers 52 des
Kanalverschränkers 28 verglichen,
um ein Wählersteuerungssignal
auf einer Lei tung 77 bereitzustellen mit einem vorbestimmten
Zustand, wenn die verglichenen Werte die gleichen sind. Das Wählersteuerungssignal
wird folglich auf der Leitung 77 mit diesem Zustand zu
jedem Zeitpunkt produziert, an dem ein Bit auf der Leitung 66 punktiert
oder wiederholt wird. Zu anderen Zeiten, für Bits welche nicht punktiert
oder wiederholt werden, steuert das Steuerungssignal auf Leitung 77 den
Wähler
75, um seiner Ausgangsleitung 76 synchron wie bestimmt
durch das Taktsignal CLK ein Bit von der Leitung 66 zuzuführen, das einem
mittleren zugeführt
(wie gezeigt in 3) von diesen drei Eingängen des
Wählers 75 zugeführt wird. Zum
Zeitpunkt jedes zu wiederholenden oder zu punktierenden Bits, steuert
das Steuerungssignal auf der Leitung 77 anstatt dessen
den Wähler 75,
um seiner Ausgangsleitung ein Bit von entweder seinem oberen Eingang
oder seinem unteren Eingang (wie gezeigt in 3) zuzuführen, abhängig davon,
ob Bits jeweils zu wiederholen oder punktieren sind, wie bestimmt
durch einen weiteren Steuerungseingang P/R für den Wähler 75. Der obere
Eingang des Wählers 75 ist
mit der Ausgangsleitung 76 verbunden, um Bitwiederholung
bereitzustellen, und der untere Eingang des Wählers 75 ist so dargestellt,
dass er keine Verbindung hat, um für Bitpunktierung zu sorgen.
-
Wie
oben dargestellt, wird für
eine konstante Ausgabedatenbitrate der verschränkten und Raten angepassten
Datenbits durch einen Puffer (nicht gezeigt) gesorgt, welchem die
Datenbits an der Ausgangsleitung 76 zugeführt werden.
-
Wegen
der Adressdekodierung, die durch den Dekoder 72 in der
Ratenanpassungsfunktion 26 bereitgestellt wird, kann der
Ratenanpassungsadressgenerator 70 einfach das gewünschte Muster
von punktierten oder wiederholten Bits in Begriffen der normalen
Matrixadressen auf die oben beschriebene Weise mit Bezug auf 2 bestimmen,
indem er den einzelnen Parameter eos verwendet,
der auf eine gewünschte
Weise bestimmt wird, um dieses Muster zu optimieren. Zum Beispiel
könnte
dieser Parameter durch eine Gleichung wie eos=[2py+1]mod2Nr bestimmt werden, wo wie oben beschrieben
y die Anzahl von zu punktierenden oder wiederholenden Bits für jede Spalte
der Matrix ist und p ein Spaltenindex von 0 bis 7 ist (für den Fall
von Nc=8).
-
Dieses
Beispiel, mit Verschränkung
wie oben beschrieben von 8 Datentransportrahmen, jeder von 10 Bits,
und welcher eine maximale Punktierungsrate von 20% erfordert, um
Kanal verschränkte
und Raten angepasste Funkrahmen von jeweils 8 Bits zu produzieren
(eine Gesamtheit von 16 von 80 Bits wird punktiert oder gelöscht) wird
ferner veranschaulicht durch die folgenden Tabellen 1, 2 und 3.
Folglich Nc=8 und Nr=10.
-
Tabelle
1 veranschaulicht den Eintrag von 80 Datenbits, nummeriert von 0
bis 79 Zeile für
Zeile in einer 10 mal 8 natürlichen
Matrix mit dem Zeilenindex k von 1 bis 10 und dem Spaltenindex 1
von 1 bis 8.
-
-
Die
Kanalverschränkung
wie oben beschrieben erzeugt eine Zufallsmatrix wie gezeigt in der
nachfolgenden Tabelle 2:
-
-
Die
oben beschriebene Ratenanpassung punktiert dann 16 Bits, zwei von
jeder Spalte der Zufallsmatrix in einem Muster, das durch den Ratenanpassungsalgorithmus
erzeugt wird, um eine punktierte Zufallsmatrix zu erhalten, wie
in der nachfolgenden Tabelle 3 gezeigt.
-
-
Die
Kanal verschränkten
und Raten angepassten Datenbits werden Spalte für Spalte aus Tabelle 3 abgeleitet,
d.h. in der Reihenfolge [57, 35,..., 51, 7, 67 ,40,..., 26, 4].
Die punktierten Bits sind 2, 9, 11, 16, 25, 29, 31, 32, 34, 38,
47, 54, 61, 64, 68 und 75, für
welche die maximale Punktierungsdistanz 9 beträgt (25 – 16) und die minimale Punktierungsdistanz
1 beträgt
(32 – 31);
dieser kleine minimale Punktierungsabstand zeigt an, dass dieses
spezielle Beispiel nicht optimal ist, weil eine größere Punktierungsdistanz
wünschenswert
ist. Es kann begrüßt werden,
dass zahlreiche andere Bestimmungen von Parametern speziell des
Parameters eos bereitgestellt werden können, um
den Punktierungsprozess zu optimieren.
-
Wie
oben dargestellt, ist es für
den Betrieb des zweiten Verschränkers 34 wünschenswert,
nicht die erreichte Leistungsfähigkeit
als ein Ergebnis des ersten Verschränkers 28 zu verschlechtern,
und zu diesem Zweck ist es vorteilhaft, dass der zweite Verschränker 34 auf
eine einfache Mischungsoperation reduziert wird, welche Datenströme mit verschiedenen
QoS verschränkt,
während
sie die Sprei zungseigenschaften beibehält, die durch den ersten Verschränker 28 für jeden
QoS Datenstrom erreicht wurden.
-
4 zeigt
ein Ablaufdiagramm eines Bitmischungsalgorithmus, der vorteilhaft
verwendet werden kann, um die Bits von zwei Datenströmen von
verschränktem
Funkrahmen zu mischen, die wie oben beschrieben bereitgestellt werden
von jeweiligen Diensteblöcken 12, über den
Dienstemultiplexer 10 in 1 bereitgestellt
werden. Ein Strom wird mit TQ1 bezeichnet,
der Rahmen von N1 Bit hat und ein zweiter
Strom mit TQ2, der Rahmen von N2 Bits
hat, wobei N1 3N2, veranschaulicht 4, wie die
Bits des Stroms TQ2 in den Strom TQ1 eingefügt
werden. Mit Bezug auf 4 wird zunächst in einem Block 82 ein
Parameter e zu N1 initialisiert und ein
Zähler
r wird zu 1 initialisiert. In einem Block 83 wird bestimmt,
ob r ≤ N1 ist und falls dies der Fall ist, wird in
einem Block 84 der Wert von e um 2N2 verringert.
In einem nachfolgenden Entscheidungsblock 85 wird bestimmt,
ob e ≤ 0
ist, und falls dies so ist, wird in einem Block 86 das
nächste
Bit im Strom TQ2 in den Strom TQ1 eingefügt,
der Wert von e wird um 2N1 in einem Block 87 erhöht, der
Zähler
r wird um 1 in einem Block 88 erhöht, und eine Rückverzweigung
wird zum Entscheidungsblock 83 durchgeführt. Eine negative Entscheidung
im Block 85 (d.h. e>0)
führt zu
einer Rückverzweigung
zum Block 83 über
den Block 88, um den Zähler r
zu inkrementieren, ohne eine Biteinfügung oder Änderung im Wert von e. Eine
negative Entscheidung im Block 83 (d.h. r>N1)
zeigt an, dass das Ende des Rahmens erreicht wurde und entsprechend
endet die Sequenz im Stoppblock 81.
-
Für mehr als
zwei Datenströme
wird der gleiche Prozess rekursiv auf die aufeinander folgenden
Datenströme
angewendet. Es kann aus der obigen Beschreibung begrüßt werden
und der Veranschaulichung in 4, dass
die Schritte dieses Prozesses eine direkte Korrelation mit den Schritten
der Punktierungs- und Wiederholungsprozesse aus 2 haben,
sodass die Implementierung dieses rekursiven Mischungsprozesses
speziell bequem sein kann.
-
Wie
oben angedeutet, wird die Punktierung von Bits, um die gewünschte Ratenanpassung
zu erhalten, auf Datenbits angewendet, welche Redundanz aufgrund
der FEC Kodierung aufweisen, die durch die Kodierer 22 bereitgestellt
wird. Eine bevorzugte Form von Kodierung ist die sogenannte Turbo
(parallel verkettete gefaltete) Kodierung, in welcher die kodierten
Datenbits die Eingangsdatenbits selbst aufweisen, die als systematische
Datenbits S bezeichnet werden, und die Parity Bits P1 und P2, die
durch die Faltungskodierer bereitgestellt werden, die auf die Eingangsdatenbits
arbeiten und die verschränkten
Eingangsdatenbits. Die Parity Bits P1 und P2 werden typischerweise
innerhalb des Turbokodierers punktiert, um einen Turbokodierer von gewünschter
Rate bereitzustellen. Für
Kodierer 22 die durch Turbokodierer aufgebaut werden können, ist
es notwendig sicherzustellen, dass die nachfolgende Ratenanpassungsfunktion 26 nicht
irgendwelche der systematischen Bits S punktiert, sondern lediglich
die Parity Bits P1 und/oder P2. Im Falle der Wiederholung wurde bestimmt,
dass die Wiederholung der Parity Bits P1 und P2 um einen Faktor
von der Größenordnung
von 2 oder 3 mal der Wiederholung der systematischen Bits S, für eine Leistungssteigerung
sorgt.
-
Zu
diesen Zielen, veranschaulicht 5 eine Modifikation
eines Teils der Anordnung aus 1 für die Kanalverschränkung und
Ratenanpassung von Daten, die durch Turbokodierung kodiert wurden.
Mit Bezug auf 5 wird ein Turbokodierer gezeigt,
der einen der FEC Kodierer 22 aufbaut innerhalb eines gestrichelten Rechtecks 90 und
der wie wohl bekannt ist, einen Turbocodeverschränker 91 aufweist,
welcher die Eingangsdatenbits verschränkt und zwei Faltungskodierer 92,
welche auf die Eingangsdatenbits arbeiten vor und nach der Verschränkung, um
Parity Bits P1 und P2 zu produzieren, wobei die Eingangsdatenbits
ebenso den Kodiererausgängen
als systematische Bits S zugeführt
werden. Ein Punktierungsblock, nicht gezeigt, kann ebenso vorliegen,
um lediglich einige der Parity Bits P1 und P2 zur Zufuhr zu den
Kodiererausgängen
auszuwählen.
-
Anstatt
eines einzigen Kanalverschränkers
wie oben beschrieben veranschaulicht 5 der individuelle
Kanalverschränker 93 für den systematischen
Bitstrom und den Parity Bitstrom bereitgestellt werden. Wie in 5 gezeigt,
gibt es drei Kanalverschränker 93,
aber es kann begrüßt werden,
dass die Ströme
von Parity Bits P1 und P2 zusammen kombiniert und verschränkt werden
können,
sodass lediglich zwei Kanalverschränker bereitgestellt werden,
einer für
den systematischen Bitstrom und der andere für den Parity Bitstrom. Weitere
Eingänge
zu den Kanalverschränkern 93 in 5 zeigen
das Multiplexieren von systematischen und Parity Bitströmen jeweils
an für
mehrere Kanäle
entsprechend dem Multiplexer 24 in 1.
-
Die
Ratenanpassungsfunktion, welche den Kanalverschränkern 93 folgt, wird
mit einem gestrichelten Rechteck 94 dargestellt. Eine Punktierungsfunktion 95 wird
lediglich auf die Kanal verschränkten
Parity Bitströme
angewendet, wohingegen eine Wiederholungsfunktion 96 auf
die Parity und systematischen Bitströme angewendet werden kann,
wobei ein Wähler 97 dargestellt
ist, um die Kanal verschränkten
Bits entsprechend zu koppeln. Die Punktierung und Wiederholung kann
so sein wie oben beschrieben. Es kann begrüßt werden, dass die Darstellung
in 5 in dieser Hinsicht diagrammatisch beabsichtigt
ist, um das Prinzip darzustellen, dass die Punktierung nicht auf
die systematischen Bits angewendet wird anstatt die tatsächliche
Implementierung der Ratenanpassungsfunktion zu zeigen. Es kann begrüßt werden,
z.B., dass Punktierung oder Wiederholung wie benötigt lediglich auf die Parity
Bitströme
angewendet werden könnte,
um die gewünschte
Ratenanpassung bereitzustellen, ohne jegliche Punktierung oder Wiederholung
des systematischen Bitstroms.
-
Obwohl
die obige Beschreibung auf separate Funktionen und Einheiten der
verschiedenen hierin beschriebenen Prozesse Bezug nimmt, kann es
begrüßt werden,
dass diese in vielen Fällen
implementiert werden können,
indem Funktionen von einem oder mehreren digitalen Signalprozessoren
oder anderen integrierten Schaltkreisen verwendet werden.
-
Obwohl
spezielle Ausführungsformen
und Beispiele der Erfindung oben beschrieben wurden, kann es begrüßt werden,
dass zahlreiche Modifikationen, Veränderungen und Anpassungen durchgeführt werden
können,
ohne vom Schutzbereich der Erfindung wie vorgegeben in den Ansprüchen abzuweichen.