-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft Maximum-Likelihood-Detektoren zur Wiederherstellung gesendeter
Signale. Genauer gesagt betrifft die Erfindung die Anwendungen von
Kugeldecodierern auf die Wiederherstellung von Informationen, die
von Mehrfachgruppenantennen gesendet werden.
-
Allgemeiner Stand der Technik
-
Auf
dem Gebiet der drahtlosen Kommunikation ziehen Techniken der mehreren
Eingänge
und mehreren Ausgänge
(MIMO) auf Grund der hohen Datenraten, die sie erzielen können, Interesse
auf sich. Bei der MIMO-Kommunikation werden gesendete Datensymbole über mehrere
Sendeantennen verteilt und die empfangenen Symbole werden über mehrere
Empfangsantennen verteilt. Da jede Empfangsantenne ein zusammengesetztes
Signal mit Beiträgen
von jeder der Sendeantennen erfaßt, ist Signalverarbeitung
notwendig, um die ursprünglichen Datensymbole
zu rekonstruieren, die gesendet wurden. In vielen Fällen verwendet
diese Signalverarbeitung eine Kanalmatrix H, die die Amplituden-
und Phasenänderung
ausdrückt,
die ein konstantwertiger Impuls bei Transit von jeder Sendeantenne
zu jeder Empfangsantenne erfährt.
H wird im allgemeinen aus Messungen von Pilotsignalen geschätzt.
-
Ein
Detektor des Typs Maximum-Likelihood (ML) mit Informationen über a-posteriori-Wahrscheinlichkeit
(APP) hat sich in MIMO-Empfängern
als sehr effektiv erwiesen. Diese Form der Detektion ist besonders
nützlich,
weil sie sogenannte "Soft-Informationen" über die decodierten Bit liefert.
Soft-Eingangsdecoder, wie zum Beispiel Turbodecoder, verwenden die
Soft-Informationen
zur Korrektur von Fehlern in geeignet codierten Bitströmen. Die
mit einem gegebenen detektierten Bit assoziierten Soft-Daten bestehen
in der Regel aus einem Acht-Bit-Wort, das ein log- Wahrscheinlichkeitsverhältnis (LLR)
ausdrückt,
auf einem Maßstab
von –127 bis
+127, der zwei möglichen
Ergebnisse (d. h. logisch 1 oder logisch 0) der Detektion des gegebenen Bit.
-
Im
Sender wird gemäß bestimmten
MIMO-Verfahren ein Datenwort x, das aus einer Binärkette besteht,
auf ein Vektorsymbol s abgebildet. Das Vektorsymbol hat so viele
Komponenten, wie Sendeantennen vorliegen. Jede Komponente wird aus
einer entsprechenden Konstellation von (möglicherweise komplexen) Symbolen,
wie zum Beispiel einer QPSK- oder QAM-Konstellation ausgewählt. Solche Symbole
sollen hier als skalare Symbole bezeichnet werden. Bei der Übertragung
sendet jede Sendeantenne ein jeweiliges der gewählten skalaren Symbole.
-
Die
Antenne reagiert im Empfänger
wie durch den Vektor y symbolisiert, der eine jeweilige Komponente
von jeder der Empfangsantennen enthält.
-
Der
Effekt des Ausbreitungskanals wird durch die Gleichung y = Hs +
n dargestellt, worin n ein Vektor ist, der additives Rauschen repräsentiert.
-
Das
Ziel der ML-APP-Detektion ist bei gegebenem y den Wert von s (oder äquivalent
von x) zu bestimmen, der die Kostenfunktion J = ∥Hs – y∥2 minimiert,
sowie die LLRs für
jedes für
die Bit in dem Datenwort x zu bestimmen. Die Suche nach dem minimierenden
Wert von s wird auf das Gitter beschränkt, das durch die diskreten
skalaren Symbole der Konstellation definiert wird.
-
Es
wurden verschiedene Verfahren zur Durchführung der Suche nach dem minimierenden Wert
von s vorgeschlagen. Obwohl ausschöpfendes Suchen zu extrem niedrigen
Bitfehlerraten (BERs) führen
kann, wird es undurchführbar
komplex für Konstellationen
vernünftiger
Größen, wenn mehr
als zwei oder drei Sendeantennen vorliegen. Deshalb wurden andere
Verfahren vorgeschlagen, die weniger als eine erschöpfende Suche
ausführen.
-
Ein
solches Verfahren ist der Kugeldecoder, der zum Beispiel in David
Garrett et al., "APP
Processing for High Performance MIMO Systems", in Proc. Custom Integrated Circuits
Conference, September 2003, S. 271-274; und in David Garrett et al., "Silicon Complexity
for Maximum Liklihood MIMO Detection using Spherical Decoding", geplante Veröffentlichung in
IEEE Journal an Solid-State Circuits, Sommer 2004, beschrieben wird.
-
-
Jedes
skalare Symbol, das von einer Antenne gesendet wird, soll einen
Teil der Binärkette
x übermitteln.
Für einen
gegebenen Empfangssignalvektor y führt der Kugeldecoder eine Baumsuche durch.
Jede Ebene des Baums entspricht einer jeweiligen der Sendeantennen
gemäß einer
Ordnung, die ihnen auferlegt wurde. Auf jeder Ebene des Baums gibt
es so viele Zweige pro Knoten wie skalare Symbole für die betreffende
Antenne, aus denen auszuwählen
ist. Somit akkumuliert sich auf einem Weg von der Wurzel des Baums
zu einem Blatt ein Teil einer Binärkette an jedem Knoten und
jedes Blatt des Baums entspricht einem der Kandidaten für die volle Kette
x.
-
Der
Kugeldecoder berücksichtigt
nicht jedes Blatt des Baums. Stattdessen wird ein Radius r gewählt. Zusammen
mit dem Kettenteil, der sich an jedem Knoten akkumuliert, akkumuliert
sich auch ein entsprechender Beitrag zu der Kostenfunktion J. Wenn
sich an einem gegebenen Knoten zeigt, daß J (bis zu diesem Punkt akkumuliert)
r übersteigt,
werden die Child-Knoten des gegebenen Knotens als außerhalb
des Suchradius deklariert und nicht berücksichtigt. Folglich können große Komplexitätsreduktionen
in bezug auf die erschöpfende
Suche erzielt werden.
-
Weitere
Reduktionen der Komplexität
lassen sich erzielen, wenn man erlaubt, daß die Kugel schrumpft. Das
heißt,
daß jedesmal,
wenn eine Kandidatenkette gefunden wird, die die Bedingung J < r erfüllt, wird
der Radius auf einen kleineren Wert gesetzt.
-
Wie
bei anderen Arten von ML-APP-Detektion gibt der Kugeldecoder Soft-Daten
zurück,
die bei der iterativen Decodierung der Ausgangsbinärkette nützlich sind.
Es wurde jedoch beobachtet, daß die Qualität der Soft-Daten beeinträchtigt werden
kann, weil der Umfang der Suche häufig drastisch zurückgeschnitten
wird. Somit wurde ein Detektionsverfahren benötigt, das die Vorteile der
Kugeldecodierung unter Erhaltung der Qualität der Soft-Daten aufweist.
-
Kurzfassung der Erfindung
-
Die
Verfasser haben ein solches Detektionsverfahren gefunden. Dieses
Verfahren ist ein Kugeldecoder, der im wesentlichen wie oben beschrieben angewandt
wird, um nach der Binärkette,
die das eingeschränkte
ML-Problem löst,
zu suchen und diese zu erhalten. Eine solche Kette wird als die
höchstwahrscheinliche
Binärkette
bezeichnet. Außerdem wird
für jedes
Bit der Binärkette
ein LLR berechnet. Die Berechnung des LLR reagiert nicht nur auf
die partiellen Ketten, die während
der Suche betrachtet wurden, sondern auch auf eine weitere Menge
von Binärketten.
Die weitere Menge umfaßt
jede Bitkette, die durch Umklappen eines oder mehrerer Bit der höchstwahrscheinlichen
Kette erhalten werden kann. Bei spezifischen Ausführungsformen
der Erfindung wird jede weitere Kette erhalten, indem man genau ein
Bit der höchstwahrscheinlichen
Kette umklappt.
-
Kurze Beschreibung der Zeichnung
-
1 ist
ein Konzeptdiagramm eines im Stand der Technik bekannten MIMO-Kommunikationssystems.
-
2 ist
ein Diagramm einer in der Technik bekannten Baumsuche.
-
3 ist
ein Konzeptflußdiagramm
eines Kugeldecoders. 4 ist ein Konzeptflußdiagramm eines
Nachprozessors für
einen Kugeldecoder, der im Stand der Technik bekannt ist.
-
5 ist
ein Konzeptflußdiagramm
eines Nachprozessors für
einen Kugeldecoder gemäß den Prinzipien
der vorliegenden Erfindung in einer Ausführungsform.
-
Ausführliche
Beschreibung
-
In 1 kommunizieren
der Sender 10 und der Empfänger 20 über den
Ausbreitungskanal 50 über
vier Sendeantennen 30a–30d und
vier Empfangsantennen 40a–40d. Allgemeiner
liegen M Sendeantennen vor, die mit 0, 1, ..., M-1 indiziert werden, und
N Empfangsantennen, die mit 0, 1, ..., N-1 indiziert werden. Kanal 50 wird
durch eine N×M-Kanalmatrix
H mit Koeffizienten hij gekennzeichnet.
In der Figur sind zwei solche Koeffizienten angegeben.
-
Jede
gleichzeitige Übertragung
eines skalaren Symbols von jeder Sendeantenne wird als eine "Kanalbenutzung" bezeichnet. Um auf
jede Kanalbenutzung vorzubereiten, wird eine Binärkette x auf ein Vektorsymbol
s = (s0, s2, sM-1) abgebildet, wobei jedes der si ein aus der Konstellation ausgewähltes skalares
Symbol ist. Wenn die Gesamtzahl der Symbole in der Konstellation
P beträgt,
ist Q = log2 P die Anzahl der Bit pro Symbol.
Somit wird eine Q Bit lange Binärkette
auf jedes skalare Symbol abgebildet und die Länge der kompletten bei einer
Kanalbenutzung zu übertragenden
Binärkette
ist MQ.
-
Wie
bereits erwähnt,
sucht der Empfänger nach
dem Kandidatenvektorsymbol s, das die Kostenfunktion J minimiert,
die oben als J = ∥y – Hs35∥2 definiert wurde. Es soll nun eine neue
Kostenfunktion definiert werden, die zweckmäßiger ist, aber für die Zwecke
der Suche, die beschrieben werden soll, gleichermaßen gültig ist.
Im folgenden wird J die neue Kostenfunktion bezeichnen.
- (1) HHH ist eine M×M-Matrix, wobei das hochgestellte
H komplexe Transponierung bedeutet. Durch wohlbekannte lineare algebraische
Methoden kann man ohne weiteres eine obere Dreiecksmatrix U erhalten,
die UHU = HHH erfüllt.
- (2) Die Pseudoinverse von H ist die Matrix (HHH) –1HH. Bei gegebenem y ist eine grobe Approximation
an die ML-Lösung
die uneingeschränkte ML-Lösung ŝ (HHH) –1HHy.
- (3) Bei gegebenem Kandidatenvektorsymbol s wird die neue Kostenfunktion
durch J = (s-ŝ)HUHU(s-ŝ) definiert.
Für die
Zwecke der Kugelsuche ist somit für jedes gegebene Vektorsymbol,
das aus den Empfangsantennen eingegeben wird, die Mitte der Kugel
der Vektor ŝ.
-
Im
Empfänger
verwendet man bekannte Techniken der MIMO-Signalverarbeitung, um (im allgemeinen
in verfälschter
Form) das durch jede Sendeantenne gesendete skalare Symbol wiederherzustellen
und es als Eingabe dem Kugeldecoder zuzuführen. Der Kugeldecoder vergleicht
dann jedes Eingangssymbol mit mindestens einem Teil der Kandidatensymbole.
Wie gezeigt (z. B. in 2), wird der Vergleichsvorgang
gemäß einer
Baumsuche durchgeführt.
-
Nunmehr
mit Bezug auf 2 ist ersichtlich, daß in dem
hier dargestellten Beispiel vier Sendeantennen mit dem Index i =
0, 1, 2, 3 vorliegen. Es gibt P Kandidaten-Skalarsymbole mit dem
Index P = 0, 1, 2, ..., P-1. Das p-te Kandidatensymbol an der i-ten Sendeantenne
wird somit als s (p) / i bezeichnet.
-
Beginnend
mit der Wurzel 50 des Baums schreitet die Suche nach unten
der Reihe nach von Ebene i = 3, die die letzte Sendeantenne repräsentiert,
zu den Blättern
des Baums auf der Ebene i = 0, die die erste Sendeantenne repräsentiert,
herunter. Auf jeder Ebene wird die Kostenfunktion für jedes Kandidatensymbol
inkrementiert, die Kandidatensymbole, für die die Radiusprüfung erfüllt ist,
werden für
die Suche auf der nächsten
Ebene gesichert, und die, die die Radiusprüfung nicht bestehen, werden verworfen.
Das Verfahren zur Inkrementierung der Kostenfunktion wird nachfolgend
beschrieben.
-
Jedes
Kandidatensymbol, das gesichert wird, trägt ein Segment mit einer Länge von
Q Bit zu einer Kandidaten-Binärkette bei.
Eine komplette Trajektorie durch den Baum ist in 2 durch
Kanten dargestellt, die fett durchgezogen sind und die Bezugszahl 60 tragen.
Wenn z. B. vier Symbole in der Konstellation vorliegen, (d. h. P
= 4), trägt
jedes Symbol zwei Bit bei und die komplette durch die Trajektorie 60 repräsentierte
Binärkette
ist 00110001.
-
Die
Kostenfunktion J kann in rekursiver Form, die Berechnungen erleichtert,
umgeschrieben werden. Man bezeichne die Koeffizienten der Matrix U
als u
ij und definiere für jedes Paar (i, j) q
ij = (u
ij/u
ii). Ferner definiere man für die i-te
Sendeantenne
und definiere Increment
p(i) = u 2 / ii|s (p) / i – ŝ
j +
Innersum(i)|
2. In dem Ausdruck für Innersum(i)
werden die Symbole s
j nicht durch p, d.
h. nach Kandidatensymbol, indiziert, weil die Ebenen j = i + 1,
..., M – 1
bereits durchquert wurden und die entsprechenden Kandidatensymbole
für die
gegebene Trajektorie hier bereits bestimmt wurden. Im Gegensatz
dazu führen auf
der neuen Suchebene i die P möglichen
Auswahlen des Kandidatensymbols jeweils zu einem verschiedenen Wert
für Increment
p(i) und sind dann natürlich der Abzweigungspunkt
für eine
verschiedene Trajektorie.
-
Mit
dieser Nomenklatur lautet die auf der i-ten Ebene des Suchbaums
berechnete partielle Kostenfunktion
Increment
p( k )(k), wobei ausdrücklich angegeben
wurde, daß die
Wahl p des Kandidatensymbols für
jede Ebene k der Suche verschieden sein kann. Es sei Outersum(i)
die partielle Kostenfunktion auf der i-ten Ebene. Man erhält somit
die rekursive Formel Outersum
p(i) = Outersum(i
+ 1) + Increment
p(i). Wenn man nach unten
durch den Suchbaum (siehe
2) arbeitet,
d. h. mit abnehmenden Werten von i, muß die Suchmaschine nur Increment
p(i) auf jeder Ebene für jedes der Kandidatensymbole
berechnen.
-
3 zeigt
den Gesamtfluß für den Kugeldecodierungsprozeß. Für einen
gegebenen Eingangsvektor y berechnet Block 70 die Schätzung ŝ für uneingeschränkte ML,
die dem Block 80 als Eingabe zugeführt wird. Block 75 führt die
obere Triangulisierung der Matrix H durch, um die Matrix U zu erhalten. Dieses
Ergebnis kann wiederverwendet werden und somit für einen oder mehrere Eingangsvektoren
y verwendet werden. Block 80 ist die Suchmaschine, die
die oben beschriebene Baumsuche durchführt. Für einen gegebenen Eingangsvektor
y enthält
die Ausgabe des Blocks 80 alle Kandidatenvektorsymbole
s (oder ihre äquivalenten
Binärketten),
die die Radiusprüfung
bestanden haben. Zusammen mit jedem Kandidatenvektorsymbol s liefert
die Suchmaschine im Block 80 außerdem den assoziierten Wert J
= Outersum(0) der Kostenfunktion.
-
Bei
Durchführung
gemäß der vorliegenden Erfindung
enthält
die Ausgabe der mit Block 80 assoziierten Operationen in
der Regel außerdem
den höchstwahrscheinlichen
Kandidatenvektor sML. Der Vektor sML ist in 3 als in
der Ausgabe von Block 80 enthaltend angegeben.
-
Block 90 ist
der APP-Nachprozessor. Er nimmt die Kandidatenvektorsymbole und
ihre assoziierten Kostenfunktionen als Eingabe an, und das Ziel des
Blocks 90 ist die Ausgabe eines Vektors mit derselben Dimension
wie x, d.h. mit MQ Einträgen,
wobei jeder Eintrag das log-Wahrscheinlichkeitsverhältnis (LLR)
für ein
entsprechendes Bit von x ist.
-
Eine
Version des APP-Nachprozessors wird in der oben angeführten Patentanmeldung
EP-A-1460813 beschrieben.
4 zeigt
ein Funktionsflußdiagramm
eines solchen Nachprozessors im Stand der Technik. Die Ausgabe einer
Sequenz von Verarbeitungsschritten, die in der Figur durch die Blöcke
100–
130 dargestellt
ist, umfaßt
einen Vektor von log-Wahrscheinlichkeitsverhältnissen LLR(i), i = 1, K, MQ – 1.
-
Wie
in Block 100 von 4 angegeben,
erhält
man die Kandidatenvektorsymbole s, die die Kugelsuche überlebt
haben. Die Menge überlebender Kandidaten
wird in der Figur als die Menge S' bezeichnet. Im Block 110 wird
der Wert der Kostenfunktion J(s')
für jeden
der Kandidatenvektoren s' in
der Menge S' erhalten.
-
Zumindest
in bestimmten Fällen
wird es vorteilhaft sein, in S' einige
oder alle der Blattknoten aufzunehmen, die geprüft wurden, aber die Kugelprüfung nicht
bestanden haben, um gute Soft-Informationen bereitzustellen.
-
Im
Block
120 wird LLR(i) für
jede Bitposition i gemäß der Formel
berechnet. In der Formel
ist der erste Term das Ergebnis der Suche nach den niedrigsten Kosten über die
Elemente von S' hinweg,
die ein 0-Bit in der i-ten Position aufweisen. Ähnlich ist der zweite Term
das Ergebis einer Suche über
die Elemente von S' hinweg,
die ein 1-Bit in der i-ten Position aufweisen. Der resultierende
LLR-Vektor wird im Block
130 ausgegeben.
-
In
bestimmten Fällen
kann es passieren, daß aufgrund
unzureichender Daten keine Bitkosten berechnet werden konnten. In
einem solchen Fall kann ein unterstellter Wert, wie zum Beispiel
ein Mittelwert, an der betreffenden Position i des LLR-Vektor unterstellt
werden.
-
Es
versteht sich, daß 4 und
das begleitende Diagramm mäßig veranschaulichend
sind. Für Fachleute
ist erkennbar, daß verschiedene
Algorithmen im wesentlichen äquivalente
Ergebnisse herbeiführen.
Alle solchen Algorithmen werden als in den Schutzumfang der vorliegenden
Erfindung fallend betrachtet.
-
Bei
bestimmten Ausführungsformen
der vorliegenden neuen Decodierungsprozedur wird eine Kugelsuche
mit einem schrumpfenden Radius verwendet. Da der Radius mindestens
in den Anfangsphasen der Suche schnell schrumpft, ist die Auswahl des
Anfangsradius nicht kritisch, solange er nicht zu klein ist. Die
Kugelsuche wird im wesentlichen wie oben ausgeführt. Jedesmal, wenn die Suche
ein Blatt des Suchbaums, d. h. einen Knoten auf der Ebene i = 0,
erreicht, wird jedoch der Radius mit dem kleineren des aktuellen
Werts und des Werts an dem neuen Blatt aktualisiert.
-
Wie
oben wird jedes Blatt, das die Suche erreicht, als ein Kandidatenvektorsymbol
an den Nachprozessor weitergeleitet. Da der Suchbaum mit schrumpfendem
Radius zurückgeschnitten
wird, wird es jedoch im allgemeinen weniger resultierende Kandidaten
geben als im Fall einer Suche mit konstantem Radius.
-
Die
Suche mit schrumpfendem Radius identifiziert auch den Kandidaten,
der mit den geringsten Kosten J assoziiert ist. Dieser Kandidat
soll als der höchstwahrscheinliche
Kandidat bezeichnet werden und die entsprechende Binärkette xML soll als die höchstwahrscheinliche Kette bezeichnet
werden.
-
Der
vorliegende Nachprozessor unterscheidet sich in bestimmten wichtigen
Aspekten von dem Nachprozessor von 4. Der vorliegende
neue Nachprozessor wird zweckmäßigerweise
mit Bezug auf 5 beschrieben.
-
Im
Block 140 von 5 erhält man den höchstwahrscheinlichen
Kandidaten sML.
-
Im
Block 150 von 5 konstruiert man eine Menge
S'' von Kandidatenvektoren,
die aus der Vereinigungsmenge der oben definierten Menge S' mit der Menge aller
Kandidatenvektoren s, für
die die entsprechende Binärkette
x(s) in einem oder mehreren Bit von xML verschieden
ist, besteht. Bei einer beispielhaften Ausführungsform liegt der Unterschied
in genau einem Bit. In einem solchen Fall ist die weitere Menge
die Menge aller Kandidatenvektoren s mit |xML⨁ x(s)|2 = 1, wobei ⨁ die parallele Exklusiv-oder-Operation
bedeutet.
-
Im
Block
160 erhält
man den Wert der Kostenfunktion J(s'')
für alle
Vektoren s'', die Elemente der
Menge S'' sind. Im Block
170 wird
LLR(i) für
jede Bitposition i gemäß der Formel
berechnet.
-
Signifikanterweise
wird die Suche nun über die
ergänzte
Suchmenge S'' hinweg ausgeführt. In der
Formel ist der erste Term das Ergebnis der Suche nach den geringsten
Kosten über
die Elemente von S'' hinweg, die ein
0-Bit in der i-ten Position aufweisen. Ähnlich ist der zweite Teil
das Ergebnis einer Suche über
die Elemente von S'' hinweg, die ein
1-Bit in der i-ten Position aufweisen. Der resultierende LLR-Vektor
wird im Block 180 ausgegeben.
-
Es
versteht sich, daß 5 und
das begleitende Diagramm lediglich veranschaulichend sind. Für Fach- Leute ist erkennbar,
daß verschiedene
Algorithmen im wesentlichen äquivalente
Ergebnisse hervorbringen. Alle solchen Algorithmen werden als in
den Schutzumfang der vorliegenden Erfindung fallend betrachtet.
-
Ein
Vorteil der vorliegenden neuen Prozedur besteht darin, daß sie bessere
Soft-Informationen zur Verwendung in einem Turbodecoder oder dergleichen
im Kontext einer Kugelsuche mit stark verringerter Komplexität zum Beispiel
aufgrund eines schrumpfenden Radius bereitstellt. Mit dem vorliegenden
Verfahren ist es nicht notwendig, daß man sich für Soft-Informationen
allein auf die sehr kleine Menge von Kandidatenvektoren verläßt, die
eine Kugelsuche mit schrumpfendem Radius überleben. Stattdessen werden
die Ergebnisse der Kugelsuche mit schrumpfendem Radius oder einer
anderen Art von Suche durch zusätzliche
Kandidatenvektoren ergänzt,
bei denen es aufgrund der Art und Weise ihrer Konstruktion hochwahrscheinlich
ist, daß sie
nützlich sein
werden.
-
1
-
-
2
-
-
3
- 70
- UNEINGESCHRÄNKTE ML-SCHÄTZUNG
- 75
- OBERE
TRIANGULARISIERUNG
- 80
- KUGEL-KANDIDATENSUCHE
- 90
- APP-NACHPROZESSOR
-
4
-
-
5
- 140
- ERHALTE
sML
- 150
- ERHALTE
DIE MENGE S'' = S'U {s MIT |x(s) XOR
xML|2 = 1}
- 160
- ERHALTE
J(s'') FÜR ALLE s'' ∈ S''
- 170
- FÜR JEDE BITPOSITION
i, i = 1, ..., MQ – 1, BERECHNE
LLR(i) = J(s'') xi(s'') = 0 xi(s') = 1
- 130
- AUSGABE
LLR(i), i = 1, ... MQ – 1