Warning: fopen(111data/log202007160146.log): failed to open stream: No space left on device in /home/pde321/public_html/header.php on line 107

Warning: flock() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 108

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 113
Filter-Coprozessor und Entzerrer in einem Empfänger eines drahtlosen Kommunikationssystems, bei dem dieser Filter-Coprozessor eingesetzt wird - Dokument DE19781047B4
 
PatentDe  


Dokumentenidentifikation DE19781047B4 29.09.2005
Titel Filter-Coprozessor und Entzerrer in einem Empfänger eines drahtlosen Kommunikationssystems, bei dem dieser Filter-Coprozessor eingesetzt wird
Anmelder Motorola, Inc., Schaumburg, Ill., US
Erfinder Kundmann, Thomas, Streamwood, Ill., US;
Mansouri, Mack, Wheeling, Ill., US;
Tarrab, Moshe, Holan, IS;
Pisek, Eran, Holon, IS
Vertreter SCHUMACHER & WILLSAU, Patentanwaltssozietät, 80335 München
DE-Anmeldedatum 08.07.1997
DE-Aktenzeichen 19781047
WO-Anmeldetag 08.07.1997
PCT-Aktenzeichen PCT/US97/11435
WO-Veröffentlichungsnummer 0009815056
WO-Veröffentlichungsdatum 09.04.1998
Date of publication of WO application in German translation 17.12.1998
Veröffentlichungstag der Patenterteilung 29.09.2005
Veröffentlichungstag im Patentblatt 29.09.2005
IPC-Hauptklasse H03H 17/02
IPC-Nebenklasse H04L 27/38   G06F 17/15   

Beschreibung[de]

Die vorliegende Erfindung bezieht sich allgemein auf Coprozessoren und insbesondere auf Filter-Coprozessoren, die in digitalen Signalprozessoren eingesetzt werden.

Gängige drahtlose Kommunikationssysteme, wie etwa digitale zelluläre Systeme müssen die Signale ausgiebig digital verarbeiten, um die Kanäle zum Ver-/Entschlüsseln und zur Sprachverschlüsselung zu entzerren. Zu diesen digitalen zellulären Systemen gehört das digitale zelluläre Group-Special-Mobile- (GSM-) System. Bei einer für das GSM typischen digitalen zellulären Anordnung des Systems wird einem Zeitfenster ein separater digitaler Signalprozessor (DSP) zugeordnet, weswegen insgesamt acht DSP benötigt werden, um einen einzelnen Hochfrequenz- (HF-) Träger zu entzerren. Der Ausgang jedes Entzerrers muß dann noch in einen weiteren separaten DSP eingegeben werden, um den Kanal zu entschlüsseln. Somit werden insgesamt 16 DSP benötigt, um einen einzelnen HF-Träger zu entzerren und zu entschlüsseln.

Derartige Prozessoren nach dem Stand der Technik sind bekannt, beispielsweise aus "ECKELMANN, P.: Vorteile des kaskadierbaren Signalprozessors", Elektronik, 1986, Heft 18, Seiten 149-156, ein kaskadierbarer Signalprozessor der als Coprozessor eingesetzt werden kann. Dieser Signalprozessor besitzt ein Dateneingaberegister, Koeffizienten-Register, ein Multiplizierer-/Akkumulierer-Array und ein Datenausgaberegister und arbeitet in mehreren Betriebsmoden. Das Datenausgaberegister gibt Daten aus, die aus den Eingabedaten und den Koeffizienten berechnet werden. Anwendungen dieses Signalprozessors als digitales FIR-Filter, als adaptives Filter zur Korrelation und zur Faltung sind beschrieben.

Aus "BINDIG, S., Realisierung eines Digitalfilters mit dem Signalprozessor &mgr;PD 7720", Nachrichtentechnik Elektronik, 1988, Heft 5, Seiten 170-172, ist ein Signalprozessor bekannt mit einem ersten Speicher zum Speichern von Dateninformation und einem zweiten Speicher zum Speichern von Koeffizienten, einem Multiplizierer und zwei Akkumulatoren, der in mehreren Betriebsmoden arbeitet.

Aus der US 5245611 A ist ein Entzerrer in einem Empfänger zur Wiedergewinnung GMSK-modulierter Daten bekannt.

Bei der großen Zahl von in einem zellulären System wie etwa dem GSM einsetzten HF-Trägern wird es sehr teuer, viele DSP in einem Empfänger zu verwenden. Zu den Kosten kommt die Größe der DSP, so daß die große Zahl viel teure Nutzfläche im Empfänger erfordert. Außerdem erzeugen die vielen DSP entsprechend viel Wärme, die vom Empfänger abgeleitet werden muß. Die vielen DSP, die ein Empfänger wie oben beschrieben benötigt, stellen einen erheblichen Nachteil dar. Es besteht daher ein Bedarf nach einem Weg, dieselbe Zahl von Signalen auf einem einzelnen HF-Träger zu empfangen, ohne so viele speziell zugeordnete DSP wie nach dem Stand der Technik.

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 steuern. 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)
Gleichung
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)
Gleichung
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)
Gleichung
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)
Gleichung
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)
Gleichung
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)
Gleichung
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).
Gleichung
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).
Gleichung
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)
Gleichung
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)
Gleichung
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 Verarbeitung 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).
Gleichung
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).
Gleichung
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.


Anspruch[de]
  1. Filter-Coprozessor, der umfaßt:

    einen ersten Speicher (103) zum Speichern von Dateninformation,

    einen zweiten Speicher (106) zum Speichern von Koeffizienten und

    eine Steuerung (127) zum Steuern eines Multiplizierers/Zwischenspeichers für Multiplikations-/Akkumulationsfunktionen in mehreren Betriebsmoden und zum Koordinieren der Wiedergewinnung der Dateninformation und der Koeffizienten, wobei zumindest ein Betriebsmodus eine Korrelation zwischen einer komplexen Datenfolge und einer Mid-Amble-Folge umfaßt, wobei die Mid-Amble-Folge abwechselnd rein reale und rein imaginäre komplexe Werte hat.
  2. Filter-Coprozessor, der umfaßt:

    einen ersten Speicher (103) zum Speichern von Dateninformation,

    einen zweiten Speicher (106) zum Speichern von Koeffizienten und

    eine Steuerung (127) zum Steuern eines Multiplizierers/Zwischenspeichers für Multiplikations-/Akkumulationsfunktionen in mehreren Betriebsmoden und zum Koordinieren der Wiedergewinnung der Dateninformation und der Koeffizienten, wobei zumindest ein Betriebsmodus eine Korrelation zwischen einer 2-fach überabgetasteten komplexen Datenfolge und einer Mid-Amble-Folge umfaßt, wobei die Mid-Amble-Folge 1x im Wechsel rein reale und rein imaginäre komplexe Werte umfaßt.
  3. Filter-Coprozessor nach Anspruch 1 oder 2, bei dem ein Betriebsmodus außerdem angepaßtes Filtern umfaßt, wobei der Eingabewert komplex ist, die beim angepaßten Filtern verwendeten Koeffizienten komplex sind und der Ausgang eine Folge von abwechselnd rein realen und rein imaginären Daten ist.
  4. Filter-Coprozessor nach Anspruch 1 oder 2, bei dem ein Betriebsmodus eine direkte Speicherzugangsvorrichtung (112) verwendet, um ohne Zutun einer zentralen Prozessoreinheit Eingabedaten vom Speicher zum Filter-Coprozessor und eine Ausgabe vom Filter-Coprozessor zum Speicher zu bringen.
  5. Entzerrer (212) zur Verwendung in einem mit einem drahtlosen Kommunikationssystem kompatiblen Empfänger, wobei der Entzerrer umfaßt:

    eine Korrelationseinheit (203) 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 umfaßt,

    eine angepaßte Filtereinheit (206) zum angepaßten Filtern des komplexen Eingangs unter Verwendung komplexer Koeffizienten und zum Ausgeben einer Folge von abwechselnd rein realen und rein imaginären Daten und

    eine Abschätzungseinheit für die Folge mit maximaler Wahrscheinlichkeit zum Bestimmen eines vom drahtlosen Kommunikationssystem übertragenen Signals auf der Grundlage der Ausgabe der angepaßten Filtereinheit.
  6. Entzerrer nach Anspruch 5, wobei die Korrelationseinheit und die angepaßte Filtereinheit unter Verwendung eines ersten und zweiten Speichers und einer Steuerung zum Steuern eines Multiplizierer/Zwischenspeichers ausgeführt sind, um Multipikations-/Akkumulationsfunktionen in einem ersten Modus in Bezug auf die Korrelation und in einem zweiten Modus in Bezug auf das angepaßte Filtern auszuführen.
  7. Entzerrer nach Anspruch 6, wobei der mit der Korrelation verbundene erste Modus und der mit dem angepaßten Filtern verbundene zweite Modus in einem Filter-Coprozessor in einem digitalen Signalprozessor ausgeführt sind.
Es folgen 11 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com