Aufgabe
der Erfindung ist es, einen Filter-Coprozessor und einen Entzerrer
in einem Empfänger
eines drahtlosen Kommunikationssystems zu schaffen, der mehrere
nach dem Stand der Technik von verschiedenen DSP durchgeführte Signalverarbeitungen
ausführt.
1 zeigt
als Blockdiagramm allgemein die Hardwarearchitektur eines Filter-Coprozessors
entsprechend der Erfindung.
2 stellt
eine allgemeine Organisation von Daten, Koeffizienten und Ausgaben
zur Verwendung im Filter-Coprozessor der 1 dar.
3 bis 12 zeigen
wie 2 die allgemeine Datenorganisation für veränderliche
Dezimierungswerte der Korrelation und der Faltung für die Moden
0 und 1, angewendet auf die Hardwarearchitektur der 1.
13 stellt
allgemein einen Entzerrer dar, der den Filter-Coprozessor entsprechend
der Erfindung nutzen kann.
14 bis 19 zeigen
wie 2 die allgemeine Datenorganisation für veränderliche
Dezimierungswerte der Korrelation und für auf die Moden 2 und 3 angepaßtes Filtern,
angewendet auf die Hardwarearchitektur der 1.
20 zeigt
allgemein, wie der Filter-Coprozessor der 1 in einem
Empfänger
eines drahtlosen Kommunikationssystems vorteilhaft eingesetzt werden
kann.
Allgemein
ausgedrückt,
nutzt ein Filter-Coprozessor beim Entzerren innerhalb eines digitalen
Signalprozessors (DSP) die orthogonale Natur modulierter Signale.
Da nur bestimmte Real- und
Imaginärteile
des empfangenen Signals nach dem Empfang für eine Demodulation nützlich sind,
verarbeitet der Filter-Coprozessor
nur diese Teile, um das übertragene
Signal zu bestimmen. Durch Verarbeiten nur der für die Demodulation nützlichen
Teile kann der Filter-Coprozessor in einer Zeitspanne mehr Information
verarbeiten, was gegenüber dem
Stand der Technik zu einer gesteigerten Verarbeitung führt.
In
der bevorzugten Ausführungsform
umfaßt
der Filter-Coprozessor
einen ersten Speicher zum Speichern von Dateninformation, einen
zweiten Speicher zum Speichern von Koeffizienten. Der Filter-Coprozessor enthält außerdem eine
Steuerung zum Steuern eines Multiplizierers/Zwischenspeichers für Multiplizier- und Akkumulationsfunktionen
in mehreren Betriebsmoden und zum Koordinieren der Wiedergewinnung
der Dateninformation und der Koeffizienten.
In
der bevorzugten Ausführungsform
umfaßt
ein Betriebsmodus außerdem
eine Korrelation zwischen einer komplexen Datenfolge und einer Mid-Amble-Folge,
wobei die Mid-Amble-Folge abwechselnd rein reale und rein imaginäre komplexe
Werte umfaßt.
Außerdem
umfaßt
ein weiterer Betriebsmodus eine Dezimierung des Ausgangs der Korrelation.
Bei der mit der Korrelation verbundenen Ausführungsform umfaßt ein weiterer Betriebsmodus
außerdem
eine Korrelation zwischen einer 2-fach überabgetasteten komplexen Datenfolge und
einer Mid-Amble-Folge, wobei die Mid-Amble-Folge 1x im Wechsel rein
reale und rein imaginäre
komplexe Werte umfaßt.
In
der bevorzugten Ausführungsform
umfaßt
ein Betriebsmodus außerdem
angepaßtes
Filtern, wobei der Eingabewert komplex ist, die mit dem angepaßten Filtern
verwendeten Koeffizienten komplex sind und der Ausgang eine Folge
von im Wechsel rein realen und rein imaginären Daten ist. Ein weiterer
Betriebsmodus umfaßt
eine Dezimierung der Ausgabe des angepaßten Filterns.
Der
obige Filter-Coprozessor erzeugt eine Ausgabe für einen Algorithmus zur Abschätzung der
Folge mit der maximalen Wahrscheinlichkeit (Maximum Likelihood Sequence
Estimation = MLSE). Die Koeffizienten des Filter-Coprozessors umfassen
Koeffizienten der Kanalantwort und Koeffizienten des angepaßten Filters. Um
die Zugriffe auf eine zentrale Prozessoreinheit zu verringern, arbeitet
der Filterkoprozessor in einem Betriebsmodus, bei dem direkt auf
den Speicher zugegriffen wird, um Eingabedaten vom Speicher zum
Filter-Coprozessor und eine Ausgabe vom Filter-Coprozessor zum Speicher
zu leiten.
Der
Filter-Coprozessor kann bei einem Entzerrer in einem Empfänger angewendet
werden, der mit einem drahtlosen Kommunikationssystem kompatibel
ist. In dieser Ausführungsform
umfaßt
der Entzerrer eine Korrelationseinheit zum Korrelieren einer komplexen
Datenfolge mit einer Mid-Amble-Folge, wobei die Mid-Amble-Folge
im Wechsel rein reale und rein imaginäre komplexe Werte und eine
angepaßte
Filtereinheit zum angepaßten
Filtern des komplexen Eingang unter Verwendung komplexer Koeffizienten
und zum Ausgeben einer realen Folge von abwechselnd rein realen
und rein imaginären
Daten umfaßt.
Ein Abschätzungsblock
für die
Folge mit maximaler Wahrscheinlichkeit (MLSE) schätzt das
vom drahtlosen Kommunikationssystem übertragene Signal auf der Grundlage
der Ausgabe der angepaßten
Filtereinheit ab.
Bei
dieser Ausführungsform
werden die Korrelationseinheit und die angepaßte Filtereinheit unter Verwendung
eines ersten und zweiten Speichers und einer Steuerung zum Steuern
eines Multiplizierers/Zwischenspeichers ausgeführt, um Multipikations/Akkumulationsfunktionen
auszuführen
in einem ersten Modus in Bezug auf die Korrelation und in einem
zweiten Modus in Bezug auf das angepaßte Filtern. Der mit der Korrelation
verbundene erste Modus und der mit dem angepaßten Filtern verbundene zweite
Modus werden in einem Filter-Coprozessor in einem digitalen Signalprozessor
ausgeführt.
1 stellt
allgemein die Architektur der Hardware eines Filter-Coprozessors
entsprechend der Erfindung dar. In der bevorzugten Ausführungsform
ist der Filter-Coprozessor ein Coprozessor mit begrenzter Pulsantwort
(Finite-Impulse-Response = FIR). Wie in 1 gezeigt,
besteht das System aus einer Speicherdatenbank 103 und
einer Koeffizientendatenbank 106, die mit einem Multiplizierer/Zwischenspeicher
(MAC) 109 gekoppelt sind. Die Größe der Datenbanken werden von
der Auslegung der Hardware bestimmt, sie sollte jedoch groß genug
sein, den GSM- Kommunikationsstandard aufzunehmen. Außerdem gibt
es, wie in 1 gezeigt, zwei für einen
direkten Speicherzugang (DMA) vorgesehene Kanäle 112 und 113,
wobei der erste Kanal 112 zur Datenübertragung in die Datenbank
und der zweite Kanal 113 zur Datenübertragung der FIR-Ergebnisse
zurück
zur zentralen Prozessoreinheit CPU dient. Bei dieser Anordnung ist
die Wirkung der CPU auf die Initialisierung reduziert. Ein Eingangspuffer 115 für vier Wörter und
ein Ausgangspuffer 118 für ein Wort dienen als Schnittstelle
zwischen dem DMA-Übertragungverfahren
und dem FIR- Datenerfassungsverfahren. Der Filterzähler 121 soll
die Länge
des FIR-Filters steu ern. Der Adreßgenerator 124 soll
die Adreßzeiger
auf die Datenbanken 103 und 106 gemäß eines
gewählten
Modus erzeugen. Die Steuereinheit 127 steuert den FIR-Betrieb,
und sie ist mit der CPU gekoppelt.
Wie 1 zeigt,
wird pro Taktzyklus nur eine Multiplikations-/Akkumulations- (MAC-)
Operation durchgeführt.
Diese Architektur ermöglicht
eine maximale Flexibilität,
um viele Anwendungen von FIR-Filtern zu unterstützen, wobei für jede Anwendung
nur minimale Berechnungsschritte erforderlich sind. Dies trägt zu kostengünstigen
Lösungen
in Bezug auf die gesamte Rechenzeit bei.
Wie
oben beschrieben, kann die Architektur des in 1 gezeigten
Filter-Corprozessors verschiedene Moden unterstützen. In der bevorzugten Ausführungsform
werden (van 2 Modenbit konfiguriert) vier Betriebsmoden unterstützt:
- 1. Mode 0 – Real-FIR-Filter
- 2. Mode 1 – Komplex-FIR-Filter.
- 3. Mode 2 – Komplex-FIR-Filter,
der abwechselnd einen rein realen und einen rein imaginären Ausgang
erzeugt.
- 4. Mode 3 – komplexe
Korrelation zwischen einer vollständig komplexen Datenfolge und
einer komplexen Folge, die sich alternierend aus rein realen und
rein imaginären
Datenelementen zusammensetzt.
Ein
weiteres Modenbit wird eingeführt,
das Keine- Dezimierung bzw. eine Dezimierung um 2 anzeigt, um Kommunikationssysteme
mit dem Abstand T und mit dem Abstand T/2 zu unterstützen. Mit
den drei programmierbaren Bit können
sehr viele FIR-Filter effizient realisiert werden, von denen einige
im folgenden aufgelistet und kurz beschrieben werden:
- • Real-Faltungs-FIR-Filter
(3)
- • Real-Faltungs-FIR-Filter
mit Ausgangsdezimierung um 2 (4)
- • Real-Korrelations-FIR-Filter
(5)
- • Real-Korrelations-FIR-Filter
mit Ausgangsdezimierung um 2 ( 6)
- • Komplex-Faltungs-FIR-Filter
(7)
- • Komplex-Faltungs-FIR-Filter
mit Ausgangsdezimierung um 2 ( 8)
- • Komplex-Faltungs-FIR-Filter
(9), das nur reale Ausgaben erzeugt.
- • Komplex-Faltungs-FIR-Filter,
das nur imaginäre
Ausgaben ( 10) erzeugt.
- • Komplex-Korrelations-FIR-Filter
(11)
- • Komplex-Korrelations-FIR-Filter
mit Ausgangsdezimierung um 2 (12)
- • Komplex-FIR-Filter
(14), das abwechselnd rein reale und rein imaginäre Ausgaben
erzeugt.
- • Komplex-FIR-Filter
(15), das abwechselnd rein reale und rein imaginäre um 2
dezimierte Ausgänge erzeugt.
- • Komplexe
Korrelation zwischen einer rein komplexen Datenfolge und einer komplexen
Folge aus abwechselnd rein realen und rein imaginären Datenelementen
(16 und 17).
- • Komplexe
Korrelation zwischen einer 2-fach überabgetasteten rein komplexen
Datenfolge und einer komplexen Folge aus abwechselnd rein realen
und rein imaginären
Datenelementen (18 und 19).
Die
Architektur der Hardware des Filter-Coprozessor ist entsprechend
der Erfindung kompatibel mit dem GSM- Kommunikationsstandard. Bei
GSM wird ein Zeitvielfachzugriff (TDMA) verwendet, wobei ein Rahmen
mit 8 Zeitfenstern 4,615 Millisekunden dauert. Jedes Zeitfenster
besteht aus 156,25 Bit. Ein normaler Datenblock enthält zweimal
58 verschlüsselte
Datenbit, 26 Vorbereitungsfolgebit, 6 Schlußbit und 8,25 Leitbit. Ein Datenblock
mit Zugangsdaten enthält
36 verschlüsselte
Datenbit, 41 Vorbereitungsfolgebit, 8 erweiterte Schlußbit, 3
Schlußbit
und 68,25 erweiterte Leitbit. Das Modulationsverfahren ist ein verzögert kodiertes Gauß-gefiltertes
MSK (GMSK).
3 bis 12 zeigen,
wie die allgemeine Datenorganisation von 2 für veränderliche
Dezimierungswerte der Korrelation und Faltung für die Moden 0 und 1 auf die
Hardwarearchitektur der 1 angewendet wird. Für jede Figur
werden die Schritte, die Daten zu initialisieren und zu verarbeiten;
in einer Übersieht
dargestellt, wobei außerdem
die anwendbare Gleichung, die zur Verarbeitung verwendet wird, notiert
ist.
– Real-Faltungs-FIR-Filter
(3)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in umgekehrter Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um bis zu 4 neue Datenwörter zu übertragen.
- • Initialisiere
die Daten in der Datenbank, in richtiger Reihenfolge, wie der Hauptspeicher-DMA
die #-Filterzähler-Schreiboperationen
ausführt.
- • Berechne
F(n), speichere das Ergebnis, löse
den Hauptspeicher-DMA aus.
- • Füge neues
Datenwort in die Datenbank ein und setze den Datenbankzeiger hoch.
• Real-Faltungs-FIR-Filter mit
Ausgangsdezimierung von 2 (4)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in umgekehrter Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um bis zu 4 neue Datenwörter zu übertragen.
- • Initialisiere
die Daten in der Datenbank, in richtiger Reihenfolge, wie der Hauptspeicher-DMA
# Filterzähler-Schreiboperationen
ausführt.
- • Berechne
F(n), speichere das Ergebnis, löse
den Hauptspeicher-DMR aus.
- • Füge ein neues
Datenwort in die Datenbank ein und setze den Datenbankzeiger herauf,
- • Füge ein neues
Datenwort in die Datenbank ein und setze den Datenbankzeiger herauf.
• Real-Korrelations-FIR-Filter
(5)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in normaler Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um bis zu 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in der richtigen Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt.
- • Berechne
F (n), speichere das Ergebnis, löse
den Hauptspeicher-DMA aus.
- • Füge ein neues
Datenwort in die Datenbank ein, und setze den Datenbankzeiger herauf.
• Real-Korrelations-FIR-Filter
mit Ausgangsdezimierung um 2 (6)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um bis zu 4 neue Datenwörter zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die # Filterzähler-Schreiboperationen
durchführt.
- • Berechne
F(n), speichere das Ergebnis, löse
den Hauptspeicher-DMA aus.
- • Füge ein neues
Datenwort in die Datenbank ein, und setze den Datenbankzeiger herauf.
- • Füge ein neues
Datenwort in die Datenbank ein, und setze den Datenbankzeiger herauf.
• Komplex-Faltungs-FIR-Filter
(7)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge.
- • Der
Hauptspeicher führt
# Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
Eingabedatenpuffer leer ist, löse
den Hauptspeicher-DMA
aus, um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), speichere das Ergebnis] löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-Faltungs-FIR-Filter
mit Ausgangsdezimierung um 2 (8)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge.
- • Der
Hauptspeicher führt
# Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-Faltungs-FIR-Filter,
das nur reale Ausgaben erzeugt (9).
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in entgegengesetzter
Reihenfolge, während imaginäre Koeffizienten
zuerst negiert werden.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
Eingabedatenpuffer leer ist, löse
den Hauptspeicher-DMA
aus, um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die # Filterzähler-Schreiboperationen
durchführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-Faltungs-FIR-Filter,
das nur imaginäre
Ausgaben erzeugt (10).
Initialisierung
- • Setze
Modus & Filterzähler (=
# der Koeffizientenwerte).
- • Daten
gegliedert in Im/Re-Paare.
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in entgegengesetzter
Reihenfolge, während imaginäre Koeffizienten
zuerst negiert werden.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
Eingabedatenpuffer leer ist, löse
den Hauptspeicher-DMA
aus, um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler
Schreiboperationen durchführt.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
• Komplex-Korrelations-FIR-Filter
(11)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge, während
imaginäre
Koeffizienten zuerst negiert werden.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-Korrelations-FIR-Filter
mit Ausgangsdezimierung um 2 (12)
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge, während
die imaginären
Koeffizienten zuerst negiert werden.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), Speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
Die
in 1 dargestellte Hardwarearchitektur ist besonders
nützlich,
wenn sie in einem Entzerrer eines Empfängers verwendet wird. 13 zeigt
allgemein dargestellt solch einen Entzerrer, bei dem die orthogonalen
Signale I und Q in eine Korrelationseinheit 203 eingegeben
werden. Es sollte beachtet werden, daß die Erfindung die Orthogonalität zwischen
I und Q ausnutzt, wodurch der Filter-Coprozessor der 1 vorteilhaft
in einem orthogonal modulierten System eingesetzt werden kann. Der
Ausgang der Korrelationseinheit 203 wird in ein angepaßtes Filter 206 eingegeben.
In das angepaßte
Filter 206 werden außerdem
die orthogonalen Signale I und Q eingegeben. Der Ausgang des angepaßten Filters 206 wird
in einen Viterbi-Dekodierer 209 eingegeben. Die Korrelationseinheit 203,
das angepaßte
Filter 206 und der Viterbi-Dekodierer 209 bilden den
Entzerrer, wie in der Technik allgemein bekannt ist. Der Ausgang
des Viterbi- Dekodierers 209 wird in einen (nicht dargestellten)
Kanaldekodierer eingegeben, der das empfangene Signal weiter verarbeitet.
14 bis 19 zeigen
die allgemeine Datenorganisation von 2 für veränderliche
Dezimierungswerte der Korrelation (Mode 3) und angepaßtes Filtern
(Mode 2), angewendet auf die Hardwarearchitektur der 1.
Als erstes wird das Korrelationsverfahren analysiert. Seim Korrelationsverfahren
wird der Eingabewert mit dem Muster eines Synchronworts in Form
eines Mid-Amble in Beziehung gesetzt. Aufgrund der Natur des GMSK-Modulationsverfahrens
bei GSM wechseln sieh im Synchronwort die rein realen und rein imaginären Teile
ab. Normalerweise würde
eine volle komplexe Multiplikation vier Multiplikations- und Additionsoperationen
erfordern. Wegen der Natur der Synchronworts sind nur zwei Multiplikationen
notwendig, da sowohl der Real- als auch der Imaginärteil "O" (d.h. orthogonal) ist. Der Filter-Coprozessor
aus 1 nutzt diese Eigenschaft, um die Berechnungszeit
auf die Hälfte
zu reduzieren. Es werden wiederum für jede Figur, die Initialisierungschritte
und sowohl die Ver arbeitung der Daten in einer Übersicht als auch die zum Ausführen der Verarbeitung
anwendbare Gleichung zusammengestellt.
• Komplex-Korrelation zwischen
einer voll komplexen Datenfolge und einer komplexen Folge, die sich
abwechselnd aus rein realen und rein imaginären Datenelementen zusammensetzt
(16 und 17).
Die
Vorbereitungsfolge (empfangene Daten) ist komplex (ein Paar von
I&Q-Abtastungen
pro Bit). Die Mid-Amble-Folge (Referenzdaten) besteht abwechselnd
aus rein realen und rein imaginären
komplexen Werten (eine rein komplexe Zahl pro Bit), die die in 16 gezeigte
Tabelle bilden.
Gleichung
- • Die
Korrelationsfunktion ist:
- • Unter
Verwendung der orthogonalen Bestandteile der Mid-Amble-Folge ergibt sich:
- • Dementsprechend
wird für
jeden komplexen Eingang ein komplexes Korrelationsergebnis berechnet,
das nur die Hälfte
der MAC-Operationen
erfordert.
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Immer
wenn der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 2 oder 4 neue Datenwerte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, in der
der Hauptspeicher-DMA die 2x # Filterzähler-Schreiboperationen ausführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-Korrelation zwischen
einer 2-fach überabgetasteten
voll komplexen Datenfolge und einer komplexen Folge, die sich abwechselnd
aus rein realen und rein imaginären
Datenelementen zusammensetzt (18 und 19).
Die
Folge zum Vorbereiten (die empfangenen Daten) ist 2-fach überabgetastet
(2x I&Q Abtastungen pro
Bit). Die Mid-Amble-Folge (die Referenzdaten) besteht im Wechsel
aus rein realen und rein imaginären Teilen
(eine reine komplexe Zahl pro Bit). Vor der Korrelation wird die
Mid-Amble-Folge durch Hinzufügen
einer komplexen Null zwischen den rein komplexen Werten 2x interpoliert,
was die in 18 gezeigte Tabelle ergibt.
Gleichung
- • Die
Korrelationsfunktion ist:
- • Unter
Verwendung der orthogonalen Bestandteile der interpolierten Mid-Amble-Folge
ergibt sich:
- • Es
kann leicht gezeigt werden, daß der
Ausgang des Filters von den "ungeraden" Eingabewerten unabhängig ist,
wenn n "gerade" ist, und daß der Ausgang
des Filters von den "geraden" Eingabewerten unabhängig ist,
wenn n "ungerade" ist. Daher können gerade
und ungerade Filterausgänge
unabhängig
voneinander berechnet werden; was nur die halbe Datenbank erfordert.
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in aufsteigender
Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Immer,
wenn der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 2 oder 4 neue Datenwerte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, in der
der Hauptspeicher-DMA die 2x #-Filterzähler nur gerade oder nur ungerade
Schreiboperationen ausführt.
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
Die
zweite Analyse untersucht das Verfahren bei angepaßtem Filter.
Beim Verfahren mit angepaßtem Filter
werden zwei für
das im GSM-System verwendete Entzerrungsverfahren spezielle Bauelemente
verwendet. Zuerst werden nur die realen und imaginären Ausgangswerte
abwechselnd berechnet. Dies nutzt wiederum die orthogonalen Eigenschaften
des GMSK-Modulationsverfahrens. Außerdem werden die Ausgangsdaten
um zwei dezimiert, um 2-fach überabgetastete
Daten zu verarbeiten und einen einzigen Wert pro Ausgangsbit bereitzustellen.
Die Ausgangsfolge wird für
die weitere Verarbeitung im Viterbi-Dekodierer 209 als eine
rein reale Folge behandelt. Wiederum nutzt der angepaßte Filtermodus
des Filter-Coprozessors diese Eigenschaften, um die Rechenzeit im
Vergleich zur Ausführung
der vollständigen
komplexen Multiplikationen zu reduzieren. Wiederum werden für jede Figur,
die Initialisierungs- und Verarbeitungsschritte für die Daten
in Übersichtsform
mit der anwendbaren Gleichung, die verwendet wird, um die Verarbeitung
auszuführen,
aufgelistet.
• Komplex-FIR-Filter, das abwechselnd
rein reale und rein imaginäre
Ausgänge
erzeugt (14).
Initialisierung
- • Setze
den Modus & den
Filterzähler
(= # der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in entgegengesetzter
Reihenfolge.
- • Der
Hauptspeicher führt
#-Filterzähler-Schreiboperationen
aus.
Verarbeitung
- • Wenn
Eingabedatenpuffer leer ist, löse
den Hauptspeicher-DMA
aus, um 2 oder 4 neue Datenworte zu übertragen.
- • Initialisiere
die Daten in der Datenbank in aufsteigender Reihenfolge, wie der
Hauptspeicher-DMA die #-Filterzähler-Schreiboperationen
durchführt,
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
• Komplex-FIR-Filter, das alternierend
rein reale und rein imaginäre
um 2 dezimierte Ausgänge
erzeugt (15).
Initialisierung
- • Setze
Modus & den Filterzähler (=
# der Koeffizientenwerte).
- • Initialisiere
die Koeffizienten in der Koeffizientendatenbank in umgekehrter Reihenfolge.
Verarbeitung
- • Wenn
der Eingabedatenpuffer leer ist, löse den Hauptspeicher-DMA aus,
um 4 neue Datenwörter
(2 komplexe Daten) zu übertragen.
- • Initialisiere
die Daten in aufsteigender Reihenfolge (der Hauptspeicher-/DMA-Schreiboperationen).
- • Berechne
FR (n), speichere das Ergebnis, löse den Hauptspeicher-DMA aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
- • Berechne
FI (n), speichere das Ergebnis, löse den Hauptspeicher-DMR aus.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), Setze den Datenbankzeiger hoch.
- • Hole
neues Datenwort (DR), setze den Datenbankzeiger hoch
- • Hole
neues Datenwort (DI), setze den Datenbankzeiger hoch.
Zuvor
wurden diese Aufgaben durch fest gespeicherte Standardprogramme,
die auf dem Hauptprozessor liefen, durchgeführt. Die folgende Tabelle veranschaulicht
die erreichten Verbesserungen, wenn der Filter-Coprozessor verwendet
wird.
Tabelle
1: Normaler Datenblockvergleich
Tabelle
2: Zusätzlicher
Datenblockvergleich
20 zeigt
allgemein, wie der Filter-Coprozessor der 1 vorteilhaft
in einem Empfänger
eines drahtlosen Kommunikationssystems eingesetzt wird. Allgemein
gesagt, empfängt
der Empfänger
in der Empfängereingangsstufe 406 ein
orthogonal moduliertes Signal 400. Das orthogonal modulierte
Signal 400 besteht aus mehreren Zeichen. In der bevorzugten
Ausführungsform
werden die Zeichen in einem ersten und in einem zweiten Zweig der
Empfängereingangsstufe 406 empfangen,
und der Empfang der Zeichen wird zwischen dem ersten und dem zweiten
Zweig um eine vorgegebene Zeitdauer verschoben. Bei der Kanalentzerrung 212,
die in der Filter-Coprazessor-Hardware, wie in 1 dargestellt, durchgeführt wird,
werden Zeichen mit gerader Numerierung vom ersten Zweig des Empfängers unabhängig entschlüsselt, und
Zeichen mit ungerader Numerierung vom zweiten Zweig des Empfängers unabhängig entschlüsselt, um
für jeden
Zweig des Empfängers
entschlüsselte
Information zu erzeugen. Die entschlüsselte Information für jeden
Zweig des Empfängers
wird dann in eine (nicht dargestellte) Endstufe des Empfängers geleitet
und verarbeitet.
In
der bevorzugten Ausführungsform
umfaßt
das orthogonal modulierte Signal außerdem ein Offset-Quadraturphasenänderungs-
(QPSK-) moduliertes Signal, das insbesondere ein moduliertes Gauß-Minimalumtast- (GMSK-)
Signal ist. Andere Modulationsarten, wie etwa Minimalumtast- (MSK-)
Modulation, können
ebenfalls verwendet werden. Der Empfänger in 20 ist
mit einer Zeitvielfachzugriffs- (TDMA-) Funkschnittstelle kompatibel
und insbesondere mit der Gruppen-Speziellen-Mobilen-
(GSM-) TDMA- Funkschnittstelle.
Zeichen
mit gerader Numerierung werden vom ersten Zweig des Empfängers unabhängig entschlüsselt, und
Zeichen mit ungerader Numerierung vom zweiten Zweig des Empfängers unabhängig entschlüsselt, um
für jeden
Zweig entschlüsselte
Information vom Empfänger
zu erzeugen. Um das unabhängige
Entschlüsseln
auszuführen,
werden die I- und
Q-Daten in Beziehung zu einer Folge zum Vorbereiten gesetzt, um
vor dem angepaßten
Filtern der vom abgeschätzten
Kanal empfangenen Daten die Pulsantwort des Kanals abzuschätzen. Die
Vorbereitungsfolge (die Referenzdaten) besteht im Wechsel aus rein
realen und rein imaginären komplexen
Werten (eine rein komplexe Zahl pro Bit), wie in der Tabelle von 16 gezeigt.
Es wird dann eine Einschätzung
der Folge mit der maximalen Wahrscheinlichkeit (Maximum Likelihood
Sequence Estimation = MLSE) und ein Unterdrücken der Überlagerung zwischen den Zeichen
(Inter-Symbol interference cancellation) ausgeführt, um die weiche Abfragedatenfolge
abzuschätzen.
Die weichen Abfragedaten werden dann zur weiteren Verarbeitung zum
Kanaldekodierer (Endstufe des Empfängers) geleitet. Der hier beschriebene
und in 1 dargestellte Filter-Coprozessor führt sowohl
das Korrelationsverfahren für
die Pulsantwort des Kanals als auch das angepaßte Filtern der vom abgeschätzten Kanal
empfangenen Daten aus. Durch die Verwendung des GMSK-Modulationsverfahrens
des GSM-Systems
wird die Anzahl der Schritte zum Bestimmen der Korrelation und zum
angepaßten
Filtern wesentlich reduziert, und daher werden weniger DSP pro HF-Träger gebraucht.