-
Verfahren und Vorrichtung zur Verarbeitung eines
Datenstroms in einem Funkempfänger
mittels Software- und Hardware-Prozeduren
-
Die Erfindung betrifft ein Verfahren
und eine Vorrichtung zur Verarbeitung eines Datenstroms in einem
Funkempfänger
mittels Software- und Hardware-Prozeduren.
-
In einem Mobilfunkempfänger werden
eine Vielzahl unterschiedlicher Verarbeitungsschritte und Rechenprozeduren
ausgeführt,
um aus einem empfangenen Funksignal das gesendete Signal zu rekonstruieren.
Im Folgenden werden nur die nach einer Analog-Digital-Umsetzung
des empfangenen Signals durchzuführenden
Verarbeitungsschritte betrachtet. Vor der Entzerrung der empfangenen
Symbole wird eine Derotation, eine DC-Korrektur, eine Leistungsnormierung
sowie eine Vorfilterung der Symbole durchgeführt. Ferner setzt die adaptive
Entzerrung eine Schätzung
von Kanalparametern des Übertragungskanals
voraus. Bei der Viterbi-Entzerrung müssen Übergangsmetriken und Zustandsmetriken
berechnet werden, die ACS-(Add Compare Select- )Operationen auf der Basis der berechneten
Zustands- und Übergangsmetriken
durchgeführt
werden, Zustandsvektoren berechnet und zur Berechnung der Soft-Output-Werte
Trace-Back Operationen durchgeführt
werden. Anschließend
müssen
die Soft-Output-Werte entschachtelt und depunktiert werden. Daran
schließt
sich die Kanaldekodierung an. Da die Kanaldekodierung ebenfalls
nach dem Viterbi-Algorithmus erfolgt, sind im Rahmen der Kanaldekodierung
ebenfalls Zustandsmetriken und Übergangsmetriken
zu berechnen sowie ACS- und Trace-Back Operationen auszuführen.
-
Prinzipiell können sämtliche der genannten Aufgaben
mit einem DSP (Digital Signal Processor) ausgeführt werden. In der Praxis ist
es jedoch nicht möglich,
die gesamte Signalverarbeitung von einem DSP bewerkstelligen zu
lassen, da DSPs mit den hierfür
erforderlichen hohen Rechenkapazitäten nicht verfügbar oder
viel zu teuer sind und außerdem
eine zu hohe Leistungsaufnahme zeigen. Aus diesem Grund werden dem
DSP Hardware-Module (z.B. in Form von Coprozessoren) zugeordnet,
welche bestimmte, immer wiederkehrende Rechenprozeduren in Hardware
ausführen.
Diese aufgabenspezifischen Hardware-Module, die häufig auch
als "dedicated hardware", "hardware supports" oder aufgabenspezifische
Datenpfade ("dedicated
data paths") bezeichnet
werden, sind festverdrahtete Schaltungen, die die durch die Festverdrahtung
vorgegebene Rechenprozedur schneller und in der Regel mit geringerer
Leistungsaufnahme als bei einer Abarbeitung durch einen Prozessor
erledigen.
-
Bei der Festlegung eines Empfängerkonzepts
ist somit zunächst
zu überlegen,
welche der als solche bekannten Berechnungsprozeduren in Software
(d.h. durch Abarbeitung eines Datenverarbeitungsprogramms in einem
DSP) und welche der Berechnungsprozeduren in Hardware (d.h. mittels
eines geeignet konzipierten aufgabenspezifischen Hardware-Moduls)
ausgeführt
werden sollen. Ferner sind die Datenübergabe zwischen dem DSP und
den Hardware-Modulen sowie die zeitliche Steuerung der diversen
Berechnungsprozeduren in Hardware und in Software festzulegen.
-
Hinsichtlich des zuletzt genannten
Aspekts ist im Stand der Technik eine sequentielle Abarbeitung von
Hardware- und Software-Rechenprozeduren bekannt. D.h., während der
Berechnung von Ergebniswerten in einem Hardware-Modul, die von dem
DSP für
die Weiterverarbeitung benötigt
werden, ist die Rechenprozedur für
die Weiterverarbeitung der berechneten Ergebniswerte im DSP deaktiv. Erst
wenn das Hardware-Modul die benötigten
Ergebniswerte geliefert hat, wird die Rechenprozedur für die Weiterberechnung
der Ergebniswerte im DSP gestartet. Umgekehrt verhält es sich
genauso. Wenn im DSP eine Rechenprozedur ausgeführt wird, deren Ergebniswerte
in einem Hardware-Modul weiterverarbeitet werden sollen, nimmt das
Hardware-Modul seine Tätigkeit
erst dann auf, wenn die Rechenpro zedur im DSP beendet ist und die
zu prozessierenden Werte vorliegen.
-
Der Erfindung liegt die Aufgabe zugrunde, ein
Verfahren anzugeben, welches in einem Funkempfänger, in welchem bestimmte
Rechenschritte in Software und bestimmte andere Rechenschritte in Hardware
ausgeführt
werden, eine Verbesserung des Zusammenwirkens zwischen Hardware
und Software ermöglicht.
Ferner soll eine Vorrichtung mit einem verbesserten Zusammenwirken
zwischen Hardware- und Software-Rechenprozeduren geschaffen werden.
-
Die der Erfindung zugrunde liegende
Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst.
-
Nach Anspruch 1 umfasst das erfindungsgemäße Verfahren
zum Verarbeiten eines Datenstroms in einem Funkempfänger zumindest
eine erste Rechenprozedur, die in Hardware erfolgt und die Ausführung von
Viterbi-ACS-Operationen umfasst, und zumindest eine zweite Rechenprozedur,
die auf Software-Basis mittels eines Prozessors durchgeführt wird.
Beide Rechenprozeduren werden wiederholt ausgeführt, und die Ergebniswerte
der zweiten Rechenprozedur repräsentieren
dabei Eingabewerte für die
erste Rechenprozedur. Erfindungsgemäß wird der zu verarbeitende
Datenstrom in eine Mehrzahl von Verarbeitungsabschnitte unterteilt.
Die erste Rechenprozedur wird für
einen bestimmten Verarbeitungsabschnitt ausgeführt, und zeitlich überlappend mit
dem Ausführen
der ersten Rechenprozedur wird die zweite Rechenprozedur für einen
anderen Verarbeitungsabschnitt ausgeführt.
-
Mit anderen Worten werden beide Rechenprozeduren
gleichzeitig miteinander ausgeführt.
Die gleichzeitige Ausführung
der beiden Rechenprozeduren bewirkt einen Gewinn an Prozesszeit,
der sich in vielfältiger
Weise ausnutzen lässt.
Es kann auf der Software-Seite ein DSP mit einer vergleichsweise niedrigeren
Rechenkapazität
eingesetzt werden. Damit kann sowohl ein ver minderter Stromverbrauch
als auch eine verminderte Chipfläche
erreicht werden. Leistungsstarke DSPs haben in der Regel einen höheren Stromverbrauch
als dedizierte Hardware. In der dedizierten Hardware wird nur die
Funktionalität verwirklicht,
die zur Bewältigung
der angestrebten Aufgabe erfordderlich ist, ohne – wie beim
DSP – auf eine
möglichst
allgemeine Abdeckung von Funktionen abzuzielen.
-
Eine vorteilhafte Ausgestaltung der
Erfindung kennzeichnet sich dadurch, dass die zweite Rechenprozedur
mit Eingabewerten, die bei einer früheren Ausführung der ersten Rechenprozedur
für einen bereits
prozessierten Verarbeitungsabschnitt erhalten wurden, gespeist wird
und dabei Ergebniswerte berechnet, die Eingabewerte für die Ausführung der ersten
Rechenprozedur für
einen später
zu prozessierenden Verarbeitungsabschnitt sind. In diesem Fall muss
die Einteilung des Datenstroms in Verarbeitungsabschnitte und deren
zeitliche Abarbeitungsreihenfolge so vorgenommen werden, dass eine gleichzeitige
und verzahnte Ausführung
der Rechenprozeduren möglich
ist.
-
Vorzugsweise wird das erfindungsgemäße Verfahren
zum Entzerren eines Signals eingesetzt, wobei die erste Rechenprozedur
als Ergebniswerte die Berechnung von Soft-Output-Werten und/oder Hard-Output-Werten
bei der Viterbi-Entzerrung von Symbolen auf der Basis von berechneten
Kanalparametern umfasst, und die zweite Rechenprozedur die Aktualisierung
von Kanalparametern als Ergebniswerte auf der Basis entzerrter Symbole
(Soft-Output-Werte und/oder Hard-Output-Werte) umfasst. Die Berechnung
bzw. Aktualisierung von Kanalparametern auf der Basis entzerrter
Symbole ist auch als Kanal-Nachführung ("Channel Tracking") bekannt und beispielsweise
in der Patentanmeldung
DE 100
50 330.6 beschrieben. Channel Tracking ermöglicht es, Leistungsschwankungen
des empfangenen Signals bei der Entzerrung zu berücksichtigen.
-
Beim Entzerren erfolgt die Einteilung
des zu entzerrenden Signals in eine Mehrzahl von Verarbeitungsabschnitten
vorzugsweise in der folgenden Weise: Sofern das innerhalb eines
Zeitschlitzes übertragene
Signal eine Trainingssequenz-Mitambel mit im Empfänger bekannten
Symbolen umfasst, werden die Verarbeitungsabschnitte beidseitig
der Trainingssequenz-Mitambel
angeordnet. Mittels der ersten Rechenprozedur werden dann alternierend
rechts und links der Trainingssequenz-Mitambel angeordnete Verarbeitungsabschnitte
von Empfangssymbolen zeitlich aufeinanderfolgend entzerrt.
-
Durch die alternierend rechts und
links der Trainingssequenz angeordneten Verarbeitungsabschnitte
wird gewährleistet,
dass die in der zweiten Rechenprozedur berechneten Kanalparameter
nicht für
die Entzerrung des aktuell (d.h. während der ersten Rechenprozedur)
prozessierten Verarbeitungsabschnittes sondern erst für die Entzerrung
des darauf folgenden Verarbeitungsabschnittes benötigt werden.
Infolgedessen kann trotz der Tatsache, dass die Ergebniswerte beider
Rechenprozeduren jeweils von der anderen Rechenprozedur als Eingabewerte benötigt werden,
eine gleichzeitige Ausführung
der Rechenprozeduren aufrecht erhalten werden.
-
Vor der erfindungsgemäßen Parallelprozessierung
der ersten und der zweiten Rechenprozeduren gemäß den Schritten b1 und b2 sieht
die Erfindung zweckmäßiger Weise
eine Vorverarbeitung der Symbole sämtlicher Verarbeitungsabschnitte
des Zeitschlitzes durch einen reinen Software-Verarbeitungsablauf
vor. Die Vorverarbeitung kann dabei vorzugsweise die Schritte Derotieren
der Symbole und/oder DC-Korrigieren der Symbole und/oder Leistungsnormieren
der Symbole und/oder Durchführen einer
Schätzung
von Kanalparametern auf der Basis der Trainingssequenz und/oder
Vorfiltern der Kanalparameter und der Symbole umfassen.
-
Das erfindungsgemäße Verfahren ist nicht nur
auf die Viterbi-Entzerrung
beschränkt,
sondern kann in vorteilhafter Weise auch zum Viterbi-Kanaldekodieren
der entzerrten Symbole eingesetzt werden. In diesem Fall kennzeichnet
sich eine bevorzugte Verfahrensausgestaltung dadurch, dass die erste Rechenprozedur
die Viterbi-Kanaldekodierung von entschachtelten und depunktierten
Daten umfasst, und die zweite Rechenprozedur die Entschachtelung und
Depunktierung von Daten (Soft-Output-Werten) umfasst.
-
Vorteilhafte Weiterbildungen der
Erfindung sind in den Unteransprüchen
angegeben.
-
Die Erfindung wird nachfolgend anhand
von Ausführungsbeispielen
unter Bezugnahme auf die Zeichnung erläutert. In dieser zeigt:
-
1 eine
Schaltung zur Durchführung
von Viterbi-Berechnungen in Form von Funktionsblöcken;
-
2 die
Architektur einer Empfängerschaltung,
welche einen DSP, eine Hardware-Schaltung für die Viterbi-Entzerrung und
eine Hardware-Schaltung für
die Kanaldekodierung enthält;
-
3 eine
schematische Darstellung von Verarbeitungsabschnitten in der Datenstruktur
eines Bursts für
die Entzerrung desselben;
-
4 ein
Schaubild, das den zeitlichen Ablauf der in Hardware und in Software
durchgeführten Rechenprozeduren
bei der Entzerrung darstellt;
-
5 eine
schematische Darstellung von Verarbeitungsabschnitten in der Datenstruktur
eines Datenblocks für
die Kanaldekodierung desselben; und
-
6 ein
Schaubild, das den zeitlichen Ablauf der in Hardware und in Software
durchgeführten Rechenprozeduren
bei der Kanaldekodierung darstellt.
-
1 zeigt
den generellen Aufbau einer Viterbi-Berechnungseinheit bestehend
aus einer Einheit zur Berechnung von Übergangsmetrikwerten BMU (Branch
Metric Unit), einer Einheit zur Durchführung von ACS-Operationen,
ACS, und einer Einheit zur Durchführung von Trace-Back-Operationen bezüglich der
ermittelten Pfade SMU (Survivor Memory Unit). Eine Viterbi-Berechnungseinheit
der gezeigten Struktur wird sowohl in Entzerrern (Datendetektoren)
als auch in Kanaldekodierern eingesetzt.
-
Die generelle Funktionsweise von
Viterbi-Berechnungseinheiten ist bekannt und wird hier lediglich
kurz erläutert:
-
Allgemein liegt der Viterbi-Berechnung
die Idee zugrunde, durch ein rekursives Verfahren einen kürzesten
Weg durch ein Zustandsdiagramm (sogenanntes Trellis-Diagramm) zu
ermitteln, in welchem die Zustände
eines Schieberegisters über
der Zeit aufgetragen sind. Im Falle der Entzerrung repräsentiert
das Schieberegister das Kanalgedächtnis,
während
im Falle der Kanaldekodierung das Schieberegister des im Sender
enthaltenen Kanalkodierers betrachtet wird. In beiden Fällen wird
pro Zeitschritt eine Dateneinheit (beim Entzerrer: ein Symbol; beim
Kodierer: ein Bit) in das entsprechende Schieberegister eingeschoben
und dadurch der Zustand des Schieberegisters verändert. Die Werte der Dateneinheiten, die
dem jeweiligen Schieberegister in jedem Zeitschritt zugeführt werden,
kommen als mögliche
Empfangswerte in Frage. Die Wahrscheinlichkeit für das Auftreten dieser Dateneinheiten
als Empfangswerte wird mittels der Viterbi-Rekursion Zeitschritt
für Zeitschritt
bestimmt. Dabei berechnet die Einheit BMU für jeden möglichen Übergang im (Kanalkodierer- bzw.
Entzerrer-)Trellis-Diagramm Übergangswahrscheinlichkeiten,
die als Übergangsmetrikwerte
bezeichnet werden. Die Berechnung dieser Übergangsmetrikwerte beruht
auf der der Viterbi-Berechnungseinheit aktuell an einem Eingang 1 zur
Verfügung
stehenden Information, d.h. im Falle der Entzerrung auf den empfangenen
Symbolen und den von einem Kanalschätzer ermittelten Kanalparametern,
und im Falle der Kanaldekodierung auf den von dem Entzerrer ausgegebenen
Soft-Output-Werten.
-
Die in der Einheit BMU zur Berechnung
der Übergangsmetrikwerten
berechneten Übergangsmetrikwerte
werden über
die Datenverbindung 2 der ACS-Einheit zugeführt. In
der ACS-Einheit werden die Übergangsmetrikwerte
den jeweiligen Zustandsmetriken der Vorgänger-Zustände hinzuaddiert (sogenannte "ADD"-Operation), und
es werden die auf diese weise erhaltenen Summen verglichen (sogenannte "COMPARE"-Operation). Derjenige Übergang,
dessen Summe aus Übergangsmetrikwert
und Metrik des Vorgänger-Zustands
minimal ist, wird ausgewählt
(sogenannte "SELECT"-Operation) und bildet
die Verlängerung
des in den Vorgänger-Zustand mündenden
Pfades in den Zielzustand. Diese drei Operationen werden als ACS-Operationen
bezeichnet und von der ACS-Einheit
ausgeführt.
-
Sowohl bei der Viterbi-Entzerrung
als auch bei der Viterbi-Dekodierung
wird der ACS-Schritt innerhalb jedes Zeitschrittes zyklisch für alle Zielzustände ausgeführt, wie
dies durch die Schleife 3 in 1 angedeutet
ist.
-
Nachdem für einen bestimmten Zeitschritt
im Trellis-Diagramm die Metriken sämtlicher Zielzustände bestimmt
sind, werden die zugehörigen
Gewinner-Zustandsübergänge der
Einheit SMU über
die Datenverbindung 4 mitgeteilt. Die Einheit SMU führt eine
Trace-Back-Operation zur Ermittlung eines um eine bestimmte Anzahl
von Zeitschritten zurückliegenden
Datenbits (Kanaldekodierung) bzw. Symbols (Entzerrung) durch. Der
Trace-Back-Operation
liegt zugrunde, dass im Trellis-Diagramm die einzelnen Pfade in
zeitlicher Rückwärtsrichtung
konvergieren, d.h., dass Datenbits/Datensymbole, die für einen
länger
zurückliegenden Übergang
ermittelt wurden, für überlebende
Pfade eine höhere
Sicherheit aufweisen (ob ein Pfad überlebt oder nicht, stellt
sich eben erst nach Abarbeitung einer bestimmten Anzahl weiterer Zeitschritte
heraus).
-
Im Falle der Kanaldekodierung gibt
die Einheit SMU über
die Datenverbindung 5 dekodierte Datenbits aus. Im Falle
der Entzerrung werden über
die Datenverbindung 5 Soft-Output-Werte und Hard-Output-Werte
bereitgestellt.
-
Die anhand 1 erläuterten
Rechenschritte werden teilweise in Hardware (von einem Hardware-Modul)
und teilweise in Software (von einem Prozessor) ausgeführt. Dies
macht Schnittstellen zwischen der Hardware und dem Prozessor erforderlich.
-
2 zeigt
die Architektur einer Empfängerschaltung
mit einem Entzerrer und einem Kanaldekodierer, welche einen digitalen
Signalprozessor DSP und eine mit dem DSP über eine Schnittstelle in Verbindung
stehendes Hardware-Modul für
die Entzerrung und die Kanaldekodierung einsetzt. Der DSP ist über ein
oder mehrere Konfigurationsregister CONFIG mit zwei Viterbi-Rechenschaltungen
RW1 und RW2 verbunden. Die erste Hardware-Schaltung RW1 dient der
Entzerrung des empfangenen Datensignals, die zweite Hardware-Schaltung
RW2 führt eine
Kanaldekodierung durch. Die Hardware-Schaltungen RW1 und RW2 können eine
Entzerrung bzw. Kanaldekodierung sowohl z.B. gemäß dem GSM-(Global System for
Mobile Communications-)Standard als auch gemäß dem EDGE-(Enhanced Data Services
for GSM Evolution-)Standard ausführen.
-
Die erste Hardware-Schaltung RW1
steht über
eine erste bidirektionale Datenverbindung DL1 mit einem ersten flüchtigen
Datenspeicher RAM1 und über
eine zweite bidirektionale Datenverbindung DL2 mit einem zweiten
flüchtigen
Datenspeicher RAM2 in Datenaustauschverbindung. Entsprechende dritte
und vierte bidirektionale Datenverbindungen DL3 und DL4 sind zwischen
der zweiten Hardware-Schaltung RW2 und dem ersten Datenspeicher RAM1
sowie der zweiten Hardware-Schaltung RW2 und dem zweiten Datenspeicher
RAM2 vorgesehen.
-
Beide Hardware-Schaltungen RW1 und RW2
können
ferner auf zwei flüchtige
Datenspeicher RAMW1 und RAMW2 zugreifen. Wie noch näher erläutert wird,
werden in den Datenspeichern RAMW1 und RAMW2 Zwischenergebniswerte
abgelegt, die bei der Entzerrung und/oder der Kanaldekodierung in den
Hardware-Schaltungen RW1 und RW2 anfallen. Der Zugriff vom DSP erfolgt über zwei
Schnittstellen I/O_DEC und I/O_EQ, über einen zentralen Datenbus
DB und über
die internen Datenbusse DB1 (RAM1), DB2 (RAM2), DB3 (RAMW1) und
DB4 (RAMW2). Die Schnittstelle I/O_DEC ist für den Zugriff des DSPs während eines
Kanaldekodiervorgangs und die Schnittstelle I/O_EQ ist für den Zugriff des
DSPs während
eines Entzerrungsvorgangs bestimmt.
-
Die Hardware-Schaltungen RW1, RW2,
die Datenspeicher RAM1, RAM2, RAMW1 und RAMW2 sowie die Datenbusse
DB3, DB4 und die Datenverbindungen DL1, DL2, DL3, DL4 können konstruktiv
in Form eines separaten Arithmetik-Prozessors zusammengefasst sein.
-
1. Viterbi-Entzerrer
-
Der konstruktive Aufbau der ersten
Hardware-Schaltung RW1 zur Entzerrung von Symbolen ist in der internationalen
Anmeldung WO 02/03637 A1 beschrieben, die diesbezüglich durch
Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird.
Die erste Hardware-Schaltung RW1 umfasst demnach in hier nicht näher dargestellter
Weise die folgenden Hardware-Datenpfade:
- – Datenpfad
zur Durchführung
der ACS-Operationen,
- – Datenpfad
zur Berechnung von Übergangsmetrikwerten,
- – Datenpfad
zur Berechnung von Soft-Output-Werten,
- – Datenpfad
zur Berechnung neuer Zustandsvektoren,
- – Datenpfad
zur Berechnung von Adressen der Partialsummen für Übergangsmetrikwerten, und
- – Datenpfad
zur Berechnung von hart entschiedenen Datensymbolen.
-
Die Speicherorganisation ist wie
folgt:
-
Der erste flüchtige Datenspeicher RAM1 dient
als Eingabespeicher für
die Hardware-Schaltung RW1. In RAM1 werden die folgenden Größen gespeichert:
- – die
vom Empfänger
empfangenen Datensymbole xk, mit k wird
der Zeitschritt-Index bezeichnet;
- – vorausberechnete
Partialsummen der Übergangsmetrikwerte
bestehend aus Produkten von Kanalparametern hi und
Symbolen sn des im Sender verwendeten Symbolalphabets:
hi·sn; wobei i= 0, 1, ..., L, der Index der Kanalparameter
ist (L bezeichnet die Anzahl der Speicherplätze des den Übertragungskanal
modellierenden Schieberegisters) und n = 0, 1, ..., N der Symbolindex
ist (wobei N+1 die Wertigkeit des Symbolalphabetes ist). Z.B. gilt
für das
bei EDGE verwendete achtwertige 8PSK-Modulationsalphabet sn = exp(j·n·2π/8), wobei j die imaginäre Einheit
ist.
-
Der zweite flüchtige Datenspeicher RAM2 dient
als Ausgabespeicher für
die Hardware-Schaltung RW1. In RAM2 werden die folgenden Größen gespeichert:
- – die
berechneten Hard-Output-Werte HOk für jeden
Zeitschritt k: im Fall von 8PSK werden für jedes empfangene Datensymbol
xk drei Hard-Output-Werte HOk (Bits)
berechnet, da 8PSK-Symbole
durch drei Bit codiert sind;
- – die
Soft-Output-Werte SOk für jeden Zeitschritt k: im Fall
von 8PSK werden für
jedes empfangene Datensymbol xk drei Datenwörter berechnet,
wobei jedes Datenwort die Konfidenz eines hart entschiedenen Bits
angibt.
-
Der erste flüchtige Datenspeicher RAMW1 dient
als Zwischenwertspeicher bei der rekursiven Trellis-Prozessierung
durch Abarbeitung der ACS-Operationen. In RAMW1 werden die folgenden Größen gespeichert:
- – "alte" Übergangsmetrikwerte im Zeitschritt
k–1 vom
Zustand m in den Zustand m' :
Ik–1 (m→m');
- – "alte" Metrikwerte im Zeitschritt
k–1 zu
jedem Zustand m: Mk–1 (m);
- – "alte" Zustandsvektoren
im Zeitschritt k–1
zu jedem Zustand m: Zk–1 (m).
-
Der zweite flüchtige Datenspeicher RAMW2 dient
als Zwischenwertspeicher bei der rekursiven Trellis-Prozessierung
durch Abarbeitung der ACS-Operationen. In RAMW2 werden die folgenden Größen gespeichert:
- – "neue" Übergangsmetriken im Zeitschritt
k vom Zustand m in den Zustand m' :
Ik (m→m');
- – "neue" Metrikwerte im Zeitschritt
k zu jedem Zustand m: Mk (m);
- – "neue" Zustandsvektoren
im Zeitschritt k zu jedem Zustand m: Zk (m).
-
Mit dem Zeitschrittübergang
k→k+1 nach
Beendigung der Trellis-Prozessierung zum Zeitschritt k werden "neue" Übergangsmetrikwerte, Metrikwerte und
Zustandsvektoren zu "alten" Übergangsmetrikwerten, Metrikwerten
und Zustandsvektoren. Die beiden Zwischenergebnisspeicher RAMW1
und RAMW2 vertauschen dann ihre Funktion, d.h. der Zwischenwertspeicher
RAMW2 enthält
nun die zuvor berechneten, jetzt "alten" Größen und
der Zwischenwertspeicher RAMW2 wird gelöscht und dient zur Speicherung
der zu berechnenden "neuen" Größen.
-
Es wird deutlich, dass die gesamte
in 1 dargestellte Viterbi-Berechnung
bei der in 2 dargestellten
Schaltung in Hardware ausgeführt
wird. Im Allgemeinen müssen
bei der vorliegenden Erfindung jedoch nicht sämtliche bei der Viterbi-Prozessierung durchzuführenden
Rechenschritte in Hardware ausgeführt sein, sondern es ist auch
möglich,
nur Teilschritte (z.B. die ACS-Operationen) in Hardware zu implementieren.
-
3 zeigt
die Datenstruktur eines innerhalb eines Zeitschlitzes zum Empfänger übertragenen
Signals. Das innerhalb eines Zeitschlitzes übertragene Signal wird auch
als Burst bezeichnet. In der Mitte des Bursts befindet sich eine
Trainingssequenz TS bestehend aus Symbolen, die im Empfänger bekannt sind.
Rechts und links der Trainingssequenz TS weist der Burst die Abschnitte
D_r bzw. D_l auf. Die Abschnitte D_r und D_l enthalten die im Empfänger zu rekonstruierenden
Datensymbole.
-
Im EDGE-Standard beträgt die Zeitschlitzdauer
576 μs.
Jeder Abschnitt D_r bzw. D_l des Bursts umfasst z.B. 58 Symbole.
-
4 zeigt
die Verarbeitung der in den Abschnitten D_l und D_r enthaltenen
Symbole in der in 2 gezeigten
Empfängerschaltung,
wobei Verarbeitungsprozeduren, die auf Software-Basis erfolgen,
unterhalb der Zeitachse t dargestellt sind, während Verarbeitungsprozeduren,
die in Hardware (d.h. in der Hardware-Schaltung RW1) durchgeführt werden,
oberhalb der Zeitachse t dargestellt sind.
-
Zunächst werden in den Vorverarbeitungsschritten
v1, v2, ..., v5 Software-Rechenprozeduren ausgeführt. Während dieser Zeitspanne ist
die Hardware-Schaltung RW1 inaktiv.
-
In dem ersten Software-Vorverarbeitungsschritt
v1 wird eine Derotation der erhaltenen Symbole vorgenommen. Bei
einer 8PSK-Modulation erfolgt die Derotation der empfangenen Symbole
mit einem Phaseninkrement von π/4.
-
Im zweiten Software-Vorverarbeitungsschritt v2
wird eine Gleichspannungs-Korrektur vorgenommen. Dabei wird ein
gegebenenfalls auftretender DC-Anteil aus dem durch die empfangenen
Symbole gebildeten Burst herausgerechnet. Im Wesentlichen erfolgt
die DC-Korrektur durch eine Signalmittelung über eine bestimmte Anzahl von
Symbolen (ggf. auch über
mehrere Bursts) und eine nachfolgende Subtraktion des bei der Mittelung
berechneten DC-Offsets von jedem empfangenen Symbol.
-
In dem dritten Software-Vorverarbeitungsschritt
v3 erfolgt optional eine Leistungsanpassung ("power balancing"), die im Wesentlichen eine Skalierung
der Symbole auf eine bestimmte gewünschte Signalhöhe darstellt.
-
Die anschließende Kanalschätzung in
dem vierten Software-Verarbeitungsschritt
v4 erfolgt durch einen Vergleich der empfangenen Symbole der Trainingssequenz
TS mit den im Empfänger
bekannten Symbolen. Aus diesem Vergleich ergeben sich die Kanaleigenschaften,
welche in Form der Kanalparameter h0, h1, ..., hL (für zurückliegende
L Zeitschritte (Taps), wobei "0" den aktuellen Zeitpunkt bzw.
Zeitschritt bezeichnet) dargestellt werden. Die Kanalparameter h0, h1, ..., hL sind die Filterkoeffizienten des Modellfilters,
welches den zeitvarianten Übertragungskanal
modelliert.
-
Anschließend erfolgt in dem fünften Software-Vorverarbeitungsschritt
v5 ein Vorfiltern ("prefiltering") der Kanalparameter
und der empfangenen Symbole. Mit dem Vorfilter wird die Energie,
die in der gesamten Kanalimpulsantwort verteilt ist, in den ersten
Kanalparametern konzentriert: Aus der geschätzten Kanalimpulsantwort, deren
Energie nicht unbedingt in den ersten Kanalparametern konzentriert
ist, wird ein sogenanntes Vorfilter ("Prefilter") berechnet. Aus der geschätzten Kanalimpulsantwort
und dem Vorfilter wird eine neue Kanalimpulsantwort berechnet, deren
Energie nun in den ersten Kanalparametern konzentriert ist. Diese
neue Kanalimpulsantwort wird in der Viterbi-Entzerrung verwendet.
Die empfangenen Symbole werden ebenfalls mit dem Vorfilter gefiltert.
-
Nach etwas mehr als 200 μs sind sämtliche in
Software durchzuführenden
Vorverarbeitungsschritte v1, v2, ..., v5 abgearbeitet. Insbesondere
sind die (vorgefilterten) Kanalparameter h0,
h1, ..., hL bestimmt
. Nachfolgend erfolgt in erfindungsgemäßer Weise eine Parallel-Prozessierung
von Software- und Hardware-Rechenprozeduren.
-
Zur Initialisierung der Hardware-Schaltung RW1
und zur Durchführung
der segmentweisen Entzerrung sind die folgenden im Konfigurationsregister CONFIG
gehaltenen Steuerparameter vorgesehen. Die Steuerparameter sind
durch den DSP steuerbar:
b_mode: | Wahl
zwischen EDGE- und GSM-Entzerrung; |
b_numb: | Anzahl
der Symbole xk in einem Segment l_1, ...,
l_4 oder r_1, ..., r_4; |
b_r/l: | Wahl
zwischen der Entzerrung des rechten oder linken Halb-Bursts D_r
oder D_l; |
b_start: | Starten
der Hardware-Schaltung RW1 zur Durchführung der in Hardware implementierten
ersten Rechenprozedur; |
b_dat_in: | Setzen
des Adresszeigers des Eingabespeichers RAM1 auf den Basiswert für Datensymbole,
um die empfangenen Datensymbole xk in den
Eingabespeicher RAM1 zu schreiben; |
b_par_in: | Setzen
des Adresszeigers des Eingabespeichers RAM1 auf den Basiswert für Partialsummen
der Übergangsmetrikwerte,
um die berechneten bzw. aktualisierten Produkte hi·sn in den Eingabespeicher RAM1 zu schreiben; |
b_hard_out: | Setzen des Adresszeigers des Ausgabespeichers
RAM2 auf den Basiswert für
Hard-Output-Werte, um diese aus dem Ausgabespeicher RAM2 zu lesen; |
b_soft_out: | Setzen des Adresszeigers des Speichers RAM2
auf den Basiswert Soft-Output-Werte, um diese aus dem Ausgabespeicher
RAM2 zu lesen; |
-
Bis auf b_numb sind sämtliche
Steuerparameter binär,
d.h. durch das Setzen eines Bits im Konfigurationsspeicher CONFIG
einstellbar.
-
Zur Initialisierung wählt der
DSP geeignete Parameter für
b_mod und b_numb.
-
Anschließend wird eine segmentweise
Entzerrung des in 3 gezeigten
Bursts durchgeführt. Hierfür werden
die Abschnitte D_l und D_r der in 3 gezeigten
Datenstruktur in einzelne Segmente l_1, l_2, l_3, l_4 bzw. r_1,
r_2, r_3, r_4 unterteilt. Die beiden Segmente l_1 und r_1 sind links
und rechts benachbart der Trainingssequenz TS angeordnet, die Segmente
l_2 und r_2 bzw. l_3 und r_3 bzw. l_4 und r_4 schließen sich
in der genannten Reihenfolge beidseitig an und liegen jeweils symmetrisch
zu der Trainingssequenz TS.
-
Zunächst wird in dem Hardware-Verarbeitungsschritt
h1 eine Entzerrung der Symbole des Segments l_1 vorgenommen. Hierfür wird b_r/l
auf "links" gesetzt und das
Laden des Eingabespeichers RAM1 mit empfangenen Datensymbolen xk und Produkten hi·sn erfolgt durch die Steuerung mittels der Bits
b_dat_in und b_par_in.
-
Der Hardware-Verarbeitungsschritt
h1 wird durch das Setzen des Bits b_start gestartet. Im Rahmen der
Entzerrung werden mit der in 2 dargestellten
Hardware-Schaltung RW1 die Hard-Output-Werte HOk und
die Soft-Output-Werte SOk für die Symbole
des Segments l_1 und die entsprechenden Zustandsvektoren Zk berechnet. Hierfür führt die Hardware-Schaltung
RW1 eine Trellis-Prozessierung in der bereits beschriebenen Weise
durch, d.h. es werden auf der Basis der übermittelten Produkte hi·sn (welche die im Vorverarbeitungsschritt
v4 auf der Basis der Trainingssequenz TS ermittelten und im Vorverarbeitungsschritt
v5 gefilterten Kanalparameter enthalten) die Übergangsmetrikwerte Ik(m→m') für jeden
Zustandsübergang
m→m' berechnet, und es
werden durch wiederholtes Ausführen
der ACS-Operationen neue Zustandsmetriken Mk(m'), Zustandsvektoren
Zk(m')
und pro Zeitschritt k ein (GSM) bzw. drei (EDGE) Hard-Output-Wert
(e) HOk und ein (GSM) bzw. drei (EDGE) Soft-Output-Wert
(e) SOk für ein entzerrtes Symbol berechnet,
welche bei der Prozessierung Zeitschritt für Zeitschritt in den Ausgabespeicher
RAM2 eingeschrieben werden. Die Prozessierung erstreckt sich über b_numb
Zeitschritte.
-
Nach der Abarbeitung der Symbole
des Segments l_1 mittels der Hardware-Rechenprozedur im Hardware-Verarbeitungsschritt
h1 werden die Hard-Output-Werte HOk und
die Soft-Output-Werte SOk des prozessierten
Segments l_1 dem DSP übergeben.
Das Auslesen des Ausgabespeichers RAM2 wird über das Setzen der Bits b_hard_out
und b_soft_out gesteuert.
-
Der DSP führt dann mittels einer zweiten
Rechenprozedur eine Weiterverarbeitung der übermittelten Soft-Output-Werte
SOk während
des Software-Verarbeitungsschrittes s1 durch.
-
Die von der Software durchgeführte zweite Rechenprozedur
umfasst zwei Verarbeitungsabläufe. Zum
einen werden die in dem Vorverarbeitungsschritt v4 ermittelten Kanalparameter
aktualisiert. Die Aktualisierung von Kanalparametern auf der Basis entzerrter
Datensymbole ist bekannt und wird wie bereits erwähnt als
Kanal-Nachführung
(Channel Tracking) bezeichnet.
-
Darüber hinaus umfasst die zweite
Rechenprozedur eine Vorfilter-Operation. Mittels der Vorfilter-Operation
werden die aktualisierten Kanalparameter sowie die Symbole des Datensegments
l_2 vorgefiltert.
-
Nach dem Software-Verarbeitungsschritt
s1 stehen aktualisierte und vorgefilterte Kanalparameter und vorgefilterte
empfangene Symbole bereit. Diese Kanalparameter geben die Eigenschaften
des Übertragungskanals
während
der Zeitdauer, in welcher die Symbole des Segments l_1 übertragen
wurden, besser wieder als die ursprünglich im Vorverarbeitungsschritt
v4 ermittelten Kanalparameter, die sich an der Trainingssequenz
TS orientieren.
-
Zeitgleich oder zumindest zeitlich überlappend
mit dem Software-Verarbeitungsschritt s1 wird die erste Rechenprozedur
im Hardware-Verarbeitungsschritt h2 wiederholt. Der Berechnung liegen nun
die Symbole des Segments r_1 zugrunde. Die Berechnung der Übergangsmetrikwerte
erfolgt auf der Basis der in dem Vorverarbeitungsschritt v5 berechneten
(ursprünglichen,
an der Trainingssequenz orientierten) Kanalparameter. D.h., dass
beim Laden des Eingabespeichers RAM1 allein neue Datensymbole xk (zum Segment r_1) in das RAM1 geschrieben werden
müssen
(wobei der Adresszeiger durch b_dat_in auf die Basisadresse für Datensymbole
gesetzt wird), während
kein Beschreiben des Speicherbereichs für die Produkte hi·sn der Übergangsmetrikwerte
erfolgt (das Bit b_par_in wird nicht gesetzt).
-
Anschließend werden der Hardware-Verarbeitungsschritt
h3 und der Software-Verarbeitungsschritt s2 gleichzeitig oder zumindest
zeitlich überlappend
ausgeführt.
Hierfür
werden zunächst
die Datensymbole xk des Segments l_2 und
die im Software-Verarbeitungsschritt s1 berechneten aktualisierten Produkte
hi·sn in den Eingabespeicher RAM1 geladen (b_dat_in
und b_par_in werden gesetzt). Im Hardware-Verarbeitungsschritt h3
werden nun die Symbole des Segments l_2 mittels der aktualisierten Kanalparameter
(enthalten in den Produkten hi·sn) prozessiert. Da die Symbole des Segments
l_2 zeitlich benachbart zu den Symbolen des Segments l_1 liegen,
welche zur Kanal-Nachführung
verwendet wurden, wird ein besseres Entzerrungsergebnis erhalten,
als wenn die in dem Vorverarbeitungsschritt v4 berechneten Kanalparameter
benutzt würden.
Auf der anderen Seite werden in dem parallel ausgeführten Software-Verarbeitungsschritt
s2 bereits aktualisierte Kanalparameter auf der Basis der im Hardware-Verarbeitungsschritt
h2 berechneten Soft-Output-Werte SOk für die anschließend erfolgende
Entzerrung der Symbole des Segments r_2 berechnet.
-
In den Parallelverarbeitungsschritten
s3, h4 und s4, h5 und s5, h6 und s6, h7 werden die beiden Berechnungsprozeduren
in Software/Hardware zur Abarbeitung sämtlicher Segmente der in 3 gezeigten Datenstruktur
wiederholt. Die in Klammern gesetzten Angaben unter den Software-Verarbeitungsschritten
s1, s2, ..., s6 bezeichnen die Verarbeitungsabschnitte, für welche
aktualisierte Kanalparameter berechnet werden. Mit der abschließenden Entzerrung
der Symbole des Segments r_4 im Hardware-Verarbeitungsschritt h8
mittels der in dem Software-Verarbeitungsschritt
s6 berechneten aktualisierten Kanalparameter ist die Entzerrung
der Symbole des betrachteten Bursts abgeschlossen.
-
Es wird darauf hingewiesen, dass
in der Hardware zusätzliche
Zwischenspeicher (nicht dargestellt) vorgesehen sein müssen, die
nach einem Hardware-Verarbeitungsschritt hi, i=1, 2, ... die Zustandsvektoren
Zk(m) und die Metriken Mk(m)
des letzten prozessierten Zeitschrittes k speichern, um im übernächsten Hardware-Verarbeitungsschritt
hi+2 eine Weiterführung
des Entzerrungsprozesses für
die Symbole des benachbarten Segments zu ermöglichen. Dabei sind die Anfangs-Zustandsvektoren Zk(m) und die Anfangs-Metrikwerte Mk(m) des Verarbeitungsschrittes hi+2 die
End-Zustandsvektoren Zk(m) und End-Metrikwerte Mk(m) des Verarbeitungsschrittes hi.
-
Der Ausgabespeicher RAM2, der wie
bereits erwähnt
die bei der Entzerrung für
ein Segment berechneten Hard-Output-Werte HOk und
Soft-Output-Werte SOk für B_numb Zeitschritte k enthält, wird nach
jedem Hardware-Verarbeitungsschritt hi ausgelesen. Die ausgelesenen
Soft-Output-Werte SOk werden in einem nicht
dargestellten externen Speicher über
die Dauer eines Datenblocks (z.B. 4 Bursts) abgespeichert.
-
2. Kanaldekodierung
-
Bei der anschließenden Kanaldekodierung wird
ebenfalls eine Parallel-Prozessierung von Software- und Hardware-Verarbei tungsschritten
durchgeführt.
Dies wird im Folgenden anhand der 5 und 6 erläutert.
-
6 zeigt
die Verarbeitung eines Datenblockes entzerrter Soft-Output-Werte
SOk in der in 2 gezeigten
Empfängerschaltung,
wobei Verarbeitungsprozeduren, die auf Software-Basis erfolgen, unterhalb
der Zeitachse t dargestellt sind und Verarbeitungsprozeduren, die
in Hardware durchgeführt werden,
oberhalb der Zeitachse t dargestellt sind.
-
Zunächst wird in einem Vorverarbeitungsschritt
v eine Entschachtelung der Soft-Output-Werte SOk durchgeführt. Die
Entschachtelung erfolgt für den
gesamten Datenblock. Bei der Entschachtelung wird die senderseitig
erfolgte blockweise Verschachtelung wieder rückgängig gemacht.
-
5 zeigt
in schematischer Weise den Datenstrom bestehend aus den über die
Dauer eines Datenblockes entzerrten und entschachtelten Soft-Output-Werten
SOk. Dieser Datenstrom wird in einzelne
Segmente a1, a2, ..., ap (p ist die wählbare Gesamtanzahl der Segmente)
unterteilt.
-
Anschließend werden in dem Software-Verarbeitungsschritt
s1 zwei Verarbeitungsabläufe
ausgeführt.
Zum einen wird eine Depunktierung der entschachtelten Soft-Output-Werte
SOk des Segmentes a1 vorgenommen. Bei der
Depunktierung wird eine senderseitig erfolgte Punktierung des Datenstroms wieder
rückgängig gemacht.
-
Wie allgemein bekannt, wird unter
Punktieren das im Sender erfolgende beabsichtigte Weglassen ("Herausstechen") bestimmter Bits
aus dem kanalkodierten Bitstrom verstanden. Die wegzulassenden Bits
sind durch ein Punktierschema vorgegeben. Eine Punktierung mit variablen
Punktierschemata ermöglicht
eine Ratenanpassung des kanalkodierten Datenstroms mit variabler
Koderate.
-
Unter Depunktieren versteht man das
empfängerseitige
Wiederauffüllen
des Datenstroms mit Nullen an den punktierten Stellen.
-
Der zweite, optionale Verarbeitungsschritt betrifft
das Kombinieren der entschachtelten, depunktierten Soft-Output-Werten SOk bei IR (Incremental Redundancy) in einem
ARQ(Automatic Repeat Request-)Modus.
-
ARQ bedeutet, dass fehlerhaft empfangene Datenblöcke automatisch
erneut angefordert werden. Fehlerhaft empfangene Datenblöcke sind
Datenblöcke,
bei denen die Kanaldekodierung fehlschlägt. Wenn der erneut erhaltene
Datenblock fehlerfrei ist, wird er erfolgreich dekodiert und es
ist nichts mehr zu tun. Kann jedoch auch der bei der zweiten Übertragung
erhaltene Datenblock nicht dekodiert werden, müsste eine dritte Übertragung
angefordert werden. IR ist ein Ansatz, mit welchem sich dies zumindest
manchmal vermeiden lässt:
Eine Kombination der beiden einzeln nicht dekodierbaren Datenblöcke kann
nämlich
einen dekodierbaren Datenblock ergeben.
-
Es gibt verschiedene Möglichkeiten
der Kombination zweier nicht dekodierbarer Datenblöcke. Eine
einfache Möglichkeit
ist z.B. die arithmetische Mittelung, d.h. die paarweise Addition
der einander entsprechenden Soft-Output-Werte mit nachfolgender
Division durch den Wert 2.
-
Nach dem Software-Verarbeitungsschritt
s1 stehen entschachtelte, depunktierte und ggf. kombinierte Soft-Output-Werte
SOk bereit. Diese werden im Hardware-Verarbeitungsschritt
h1 der Kanaldekodierung mittels der Hardware-Schaltung RW2 unterzogen.
-
Der konstruktive Aufbau der Hardware-Schaltung
RW2 für
die Viterbi-Kanaldekodierung ist in der deutschen Patentanmeldung
DE 100 64 102 A1 beschrieben,
die diesbezüglich
durch Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird.
Die zweite Hardware-Schaltung RW2 umfasst demnach in hier nicht
näher dargestellter Weise
die folgenden Hardware-Datenpfade:
- – Datenpfad
zur Berechnung von Übergangsmetrikwerten;
- – Datenpfad
zur Durchführung
von ACS-Operationen.
-
Der Datenspeicher RAM2, der wie bereits
erwähnt
die bei der Entzerrung berechneten Hard-Output-Werte HOk und
die Soft-Output-Werte
SOk enthält,
dient für
die Hardware-Schaltung RW2 als Eingabespeicher. Für den Hardware-Verarbeitungsschritt
h1 nimmt er die auf das Segment a1 zurückgehenden entschachtelten,
depunktierten und ggf. kombinierten Soft-Output-Werte SOk zur
Durchführung
der Viterbi-Kanaldekodierung entgegen.
-
Mittels des Datenpfads zur Berechnung
von Übergangsmetrikwerten
werden in bekannter Weise aus den entschachtelten, depunktierten
und ggf. kombinierten Soft-Output-Werten SO
k die Übergangsmetrikwerte
für die
Kanaldekodierung berechnet. Die hierfür erforderliche Kombination
der Soft-Output-Werte hängt
von der senderseitig verwendeten Koderate und dem bei der senderseitigen Kanalkodierung
verwendeten Generatorpolynom ab und ist in der europäischen Patentanmeldung
EP 1 223 679 A1 näher beschrieben,
die diesbezüglich durch
Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird.
Die Übergangsmetrikwerte werden
von dem Datenpfad zur Durchführung
von ACS-Operationen in ebenfalls bekannter Weise prozessiert. Die
dabei anfallenden Metrikwerte werden in den flüchtigen Speichern RAMW1 und
RAMW2 temporär
abgelegt. Pro Trellis-Zustand werden diejenigen Entscheidungswerte
der ACS-Operationen
ermittelt, die für
einen Traceback-Schritt an den DSP übergeben werden.
-
Zeitgleich oder zumindest zeitlich überlappend
mit dem Hardware-Verarbeitungsschritt h1 wird die erste Rechenprozedur
im Software-Verarbeitungsschritt s2 wiederholt. Der Berechnung liegen nun
die entschachtelten Soft-Output-werte SOk des Segments
a2 zugrunde.
-
Nach Beendigung des Software-Verarbeitungsschrittes
s2 werden die berechneten entschachtelten, depunktierten und ggf.
kombinierten Soft-Output-Werte SOk in den
Speicher RAM2 des Empfängers
geschrieben und von der Hardware-Schaltung RW2 ausgelesen. Der Hardware-Verarbeitungsschritt
h2 wird gestartet, während gleichzeitig
bzw. zeitlich überlappend
mit dem Hardware-Verarbeitungsschritt h2 bereits die Daten des Segments
a3 im DSP verarbeitet werden (Software-Verarbeitungsschritt s3).
-
Die Steuerung der Hardware-Schaltung RW2
durch den DSP erfolgt ebenfalls über
das Konfigurationsregister CONFIG, und zwar mittels entsprechender
Steuerparameter (Datenwörter
und Bits), wie sie für
den Fall der Entzerrung im Einzelnen erläutert wurden.
-
In den folgenden Parallelverarbeitungsschritten
h3, s4 und h4, s5, ... werden die beiden Berechnungsprozeduren in
Software/Hardware zur Abarbeitung sämtlicher Segmente a1, a2, ...,
ap des in 5 gezeigten
entschachtelten Datenblocks wiederholt. Mit der abschließenden Kanaldekodierung
der entschachtelten Soft-Output-Werte SOk des
Segments ap im Hardware-Verarbeitungsschritt hp ist die Kanaldekodierung
des betrachteten Datenblockes abgeschlossen.