Beschreibung
Mobilfunkempfänger-Architektur und Verfahren zum Synchronisieren von Hardware-Blöcken eines Mobilfunkempfängers
Die Erfindung betrifft einen Mobilfunkempfänger zur gleichzeitigen Demodulation mehrerer physikalischer Kanäle mit unterschiedlichen Rahmen-Zeitlagen sowie ein Verfahren zur Synchronisation von Hardware-Blöcken eines Mobilfunkempfängers, welcher für eine gleichzeitige Demodulation mehrerer physikalischer Kanäle mit unterschiedlichen Rahmen-Zeitlagen ausgelegt ist.
Moderne Mobilfunkempfänger zeichnen sich dadurch aus, dass eine Vielzahl von Rechenalgorithmen in Hardware - d.h. in festverdrahteten Hardware-Schaltungen - ausgeführt werden. Diese festverdrahteten Hardware-Schaltungen, die in der Literatur vielfach auch als "hardware Supports" (Hardeware- UnterStützungen) oder "dedicated (hardware) data paths" (aufgabenspezifische Hardware-Datenpfade) bezeichnet werden, ermöglichen eine schnelle und stromsparende Abarbeitung wiederkehrender Rechenoperationen.
Eine Schwierigkeit bei diesem Konzept (Auslagerung von be- stimmten Rechenoperationen oder Algorithmen in festverdrahtete Hardware-Blöcke) besteht in der Synchronisierung der Hardware-Blöcke, d.h. in der Notwendigkeit, die Abarbeitung von Algorithmen in den verschiedenen Hardware-Blöcken zeitlich zu koordinieren.
Als Beispiel eines Hardware-Blockes wird eine Entspreizungs- Einheit betrachtet, welche einen Spreizcode zeitrichtig mit einem Datenstrom multipliziert, welcher aus den erhaltenen Abtastwerten eines Empfangssignals besteht. Um die zeitrich- tige Aufmultiplikation des Spreizcodes auf den Abtastwerte- Strom zu gewährleisten, ist es erforderlich, die folgenden Einflussgrößen zu berücksichtigen:
- Aufgrund der Mehrwegeausbreitung treffen Signalkomponenten eines Funksignals zu unterschiedlichen Zeiten am Empfänger ein. Diese Ausbreitungsweg-Verzögerungen werden im Empfänger geschätzt. Jede Signalkomponente wird in einem Rake- Empfänger separat in einem der sogenannten Rake-Finger entspreizt. Die Entspreizungsstufen der Rake-Finger müssen dabei entsprechend den geschätzten Ausbreitungsweg-Verzögerungen synchronisiert werden;
- Signale, die von unterschiedlichen Basisstationen ausge- sandt werden, sind zeitlich nicht korreliert. Im Empfänger werden die unterschiedlichen Rahmen-Zeitlagen der Signale von unterschiedlichen Basisstationen gemessen. Sie müssen ebenfalls bei der Entspreizung des Empf ngssignals (Strom von Abtastwerten) berücksichtigt werden; - darüber hinaus werden nutzerseitig unterschiedliche Startzeitpunkte für die Entspreizung verschiedener empfangener Signale (physikalischer Kanäle) vorgegeben. Das System muss eine kanalindividuelle Vorgabe bestimmter gewünschter Startzeitpunkte für die Entspreizung (z.B. für Messzwecke) unterstützen.
Bisher wurde das Problem der Synchronisierung unterschiedlicher Hardware-Blöcke durch unabhängige Zeitgeber (Timer) gelöst, die vom digitalen Signalprozessor (DSP) programmiert werden. Jeder Zeitgeber wird einer aktiven Basisstation (von der ein Signal empfangen wird) zugeordnet und erzeugt ein Ba- sisstations-spezifisches Triggersignal. Mittels dieses Triggersignals wird ein Hardware-Block gestartet. Das Triggersignal gewährleistet, dass genau die gewünschten bzw. "riehti- gen" Abtastwerte in dem Hardware-Block prozessiert werden.
Beispielsweise kann das Triggersignal den Anfang eines Zeitrahmens anzeigen, wenn der Hardware-Block am Zeitrahmenanfang aktiviert werden soll. Oder es ist möglich, dass das Triggersignal den Beginn einer zu startenden Leistungsmessung an- zeigt, welcher koinzident mit dem Beginn einer Symbolgrenze eines von einer bestimmten Basisstation empfangenen Datenstroms ist.
Fig. 1 zeigt die allgemeine Architektur eines Mobilfunkempfängers nach dem Stand der Technik. Über eine Datenverbindung 1 wird einem Rake-Demodulator RK ein Strom von Abtastwerten zugeleitet. Zum einfacheren Verständnis wird die Mehrwegeausbreitung zunächst vernachlässigt. Es werden drei identische Signale betrachtet, die von drei unterschiedlichen Basisstationen über jeweils nur einen Ausbreitungsweg am Empfänger empfangen werden. Um eine zeitrichtige Demodulation dieser drei Signale in den Rake-Fingern zu ermöglichen, wird die
Rahmen-Zeitläge jedes der drei empfangenen Signale gemessen und von dem DSP über eine Datenverbindung 2 und einen Bus 3 den unabhängigen Zeitgebern TM1, TM2 , TM3 mitgeteilt. Die Zeitgeber TM1, TM2 , TM3 erzeugen daraufhin Triggersignale Sl, S2, S3, welche über die Datenleitungen 4.1, 4.2 und 4.3 ausgegeben werden. Jedes Triggersignal Sl, S2, S3 weist zu einem bestimmten Zeitpunkt einen Puls auf, welcher einen Finger des Rake-Demodulators RK startet, siehe Fig. 2. Über eine Datenverbindung 5, 6 und einen Multiplexer MUX wird eines der Triggersignale Sl, S2 , S3 ausgewählt und an einen Trigger- Eingang 7 des Rake-Demodulators RK angelegt. Die Auswahl des zugehörigen Rake-Fingers (nicht dargestellt) des Rake- Demodulators RK wird über die Datenverbindungen 5, 6, 8 vorgenommen. Der ausgewählte Rake-Finger demoduliert dann das von der ausgewählten Basisstation stammende Signal beginnend ab dem von dem Triggersignal vorgegebenen Zeitpunkt. Sofern (wie üblich) die Signale mehrerer Basisstationen gleichzeitig demoduliert werden sollen, müssen dem Rake-Demodulator RK mehrere Triggersignale Sl, S2, S3 über drei Trigger-Eingänge (jeweils entsprechend dem Trigger-Eingang 7) zugeleitet werden. Am Ausgang 9 des Rake-Demodulators RK wird ein demoduliertes Signal ausgegeben, das auf die empfangenen Signale mehrerer Basisstationen zurückgeht.
Die anhand der Figuren 1 und 2 erläuterte zeitliche Steuerung des Rake-Demodulators RK mittels unabhängiger Zeitgeber TM1, TM2, TM3 ist bei der Überwachung einer Vielzahl von Basissta-
tionen nicht mehr praktikabel. In modernen UMTS (Universal Mobile Telecommunications System) Mobilfunkempfängern werden die Signale von bis zu 6 Basisstationen (bzw. Zellen) gleichzeitig demoduliert (sogenanntes Active Set) , und es werden darüber hinaus Signale von maximal 26 Basisstationen im sogenannten Monitor Set überwacht (die im Monitor Set überwachten weiteren Basisstationen sind mögliche Kandidaten, welche unter gewissen Bedingungen im Verlauf einer Verbindung in das Active Set übernommen werden können) . Infolgedessen werden im ungünstigsten Fall 32 unabhängige Zeitgeber benötigt, die jeweils eine eigene Zeitbasis für eine Basisstation (z.B. in Form eines Triggersignal am Anfang des jeweiligen Zeitrahmens oder am Anfang einer durchzuführenden Leistungsmessung) für den Rake-Demodulator RK bzw. einen Hardware-Block innerhalb des Rake-Demodulators RK erzeugen.
Neben dem hohen Hardware-technischen Aufwand für die Implementierung von 32 Zeitgebern ist das Controlling derart vieler Zeitgeber relativ kompliziert, insbesondere dann, wenn zeitgemultiplexte Rake-Finger für verschiedene Demodulation- saufgaben benutzt werden sollen.
Der Erfindung liegt die Aufgabe zugrunde, ein einfaches Konzept für die Synchronisierung von Hardware-Blöcken in einem Mobilfunkempfänger zu schaffen, welcher zur gleichzeitigen
Demodulation mehrerer von verschiedenen Basisstationen ausgesandter Signale mit unterschiedlichen Rahmen- eitlagen ausgelegt ist. Ferner zielt die Erfindung darauf ab, ein Verfahren zur Synchronisation von Hardware-Blöcken eines Mobilfunkemp- fängers, welcher für eine gleichzeitige Demodulation mehrerer von verschiedenen Basisstationen ausgesandter Signale mit unterschiedlichen Rahmen-Zeitlagen ausgelegt ist, anzugeben.
Die der Erfindung zugrunde liegende Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst.
Nach Anspruch 1 umfasst ein Mobilfunkempfänger einen digitalen Signalprozessor (DSP) , eine Mehrzahl von Hardware-Blöcken zum Prozessieren von Signalen mit unterschiedlichen Rahmen- Zeitlagen, wobei jeder Hardware-Block einen Timing-Eingang zur Entgegennahme eines Referenzzeit-Triggersignals und einen Port zur Entgegennahme von Offset-Parametern, welche einen zeitlichen Offset zwischen einem gewünschten Prozessierungs- Timing des Hardware-Blocks und dem Referenzzeit-Triggersignal bestimmen , aufweist, einen einzigen Zeitgeber, welcher für sämtliche Hardware-Blöcke ein gemeinsames Referenzzeit- Triggersignal erzeugt und dieses den Timing-Eingängen der Hardware-Blöcke zuleitet, und eine oder mehrere Datenverbindungen, welche die Ports mit dem digitalen Signalprozessor verbindet bzw. verbinden, zur Programmierung der Hardware- Blöcke mit den Offset-Parametern.
Die der Erfindung zugrunde liegende Idee besteht darin, für die gesamte Hardware lediglich einen einzigen Zeitgeber (Timer) und somit lediglich eine einzige Zeitbasis (gegeben durch das Referenzzeit-Triggersignal) vorzusehen. Bezüglich dieses Referenzzeit-Triggersignals werden die einzelnen Hardware-Blöcke des Mobilfunkempfängers dezentral mit jeweiligen Offset-Parametern programmiert. Die Offset-Parameter nehmen Bezug auf unterschiedliche Ausbreitungswege, auf unterschied- liehe Start-Bedingungen zur Demodulation, auf unterschiedliche unkorrelierte Rahmen-Zeitlagen der Signale von unterschiedlichen Basisstationen oder auch auf eine unterschiedliche zeitliche Zuordnung der Spreading-Codes (Scrambling-Code, Channelization-Code) .
Das Vorhandensein lediglich eines einzigen Zeitgebers bedeutet eine Vereinfachung der Hardware - aber auch eine Vereinfachung der Synchronisierung als solcher, da lediglich ein einziges, systemweit gültiges Referenzzeit-Triggersignal be- achtet werden muss. Die im Stand der Technik (siehe Figuren 1 und 2) auftretenden Triggersignale Sl, S2 und S3 , die sich an den jeweiligen Rahmen-Zeitlagen der von verschiedenen Basis-
Stationen erhaltenen Signale orientieren, entfallen. Ferner entfällt die im Stand der Technik benötigte Zuteilung von Hardware-Blöcken zu bestimmten Zeitgebern.
Die Programmierung des zeitlichen Verhaltens der Hardware- Blöcke erfolgt erfindungsgemäß über die Offset-Parameter direkt am Hardware-Block selbst und nicht über eine Programmierung jeweiliger Zeitgeber. Dies hat zur Folge, dass der DSP für die unterschiedlichen Hardware-Blöcke dasselbe Program- mierprinzip (Programmierung der Hardware-Blöcke mit Referenz- zeit-bezogenen Offset-Parametern) verwendet, d.h. ein einheitliches Interface zwischen dem DSP und der Hardware realisiert ist. Dies erhöht einerseits die Skalierbarkeit der Hardware (für neu hinzukommende Hardware-Blöcke muss ledig- lieh ein weiterer Satz von Offset-Parametern im DSP berechnet werden) , und erleichtert andererseits die optimale Ausnutzung der Hardware-Blöcke durch Zeitmultiplex-Techniken, da (anders als im Stand der Technik) keine Triggersignale den zugeordneten Hardware-Blöcken im Zeitmultiplex-Raster zur Verfügung gestellt werden müssen.
Eine besonders bevorzugte Ausgestaltung der Erfindung kennzeichnet sich dadurch, dass die Hardware-Blöcke die Finger eines Rake-Demodulators sowie Adressgeneratoren und Code- Generatoren sind. In diesem Fall wird dem gesamten Rake- Demodulator nur das eine systemweit einzige Referenzzeit- Triggersignal zugeleitet. Dieses eine Referenzzeit-Triggersignal zeigt vorzugsweise die Zeitlage des Rahmenbeginns des Pilotkanals, insbesondere CPICH (Common Pilot Channel) im UMTS-Standard, der zuerst detektierten Basisstation
(Referenz-Basisstation) an. Dadurch wird gewährleistet, dass zum frühestmöglichen Zeitpunkt während der Signalakquisition - nämlich bereits nach der Synchronisation mit der ersten Basisstation - das Referenzzeit-Triggersignal zur Verfügung steht.
Eine weitere Möglichkeit besteht darin, dass das Referenzzeit-Triggersignal an den SendeZeitpunkt im Mobilfunkempfänger gekoppelt wird. Im UMTS-Standard wird als Zeitreferenz für die Mobilstation nicht der Empfangszeitpunkt (Rahmen- beginn des CPICH-Kanals) , sondern der SendeZeitpunkt definiert. Dieser ist gegenüber dem Rahmenbeginn des CPICH-Kanals um eine Zeitdifferenz von 1024 Chips verschoben. Im Verlauf der Verbindung kann der SendeZeitpunkt jedoch mit einer definierten Rate verändert werden. Insbesondere wird diese Proze- dur durchgeführt, wenn die Referenz-Basisstation wegfällt und eine andere Basisstation als Referenz-Basisstation gewählt werden muss. In diesem Fall wird der SendeZeitpunkt sukzessive (mit einer vordefinierten Maximal-Änderungsrate) geändert bzw. nachgeführt, bis am Ende der Prozedur der Sendezeitpunkt in einem zeitlichen Abstand von 1024 Chips zum Rahmenbeginn des CPICH-Kanals der neuen Referenz-Basisstation liegt.
Vorzugsweise weist ein Rake-Demodulator einen den Rake-Fin- gern gemeinsamen Rake-Speicher zur Zwischenspeicherung von in den Rake-Fingern zu prozessierenden Abtastwerten und einen
Adressgenerator zur Erzeugung von Leseadressen für den Rake- Speicher auf, wobei der Adressgenerator den Port zur Eingabe von Offset-Parametern und den Ti ing-Eingang umfasst. Dabei geben die Offset-Parameter die Verzδgerungszeiten unter- schiedlicher Ausbreitungswege, bezogen auf das Referenzzeit- Triggersignal, an, und die Leseadressen für die einem Ausbreitungsweg zugeordneten Abtastwerte werden in Abhängigkeit von dem Referenzzeit-Triggersignal und dem (den) diesem Ausbreitungsweg zugeordneten Offset-Parameter (n) generiert. Durch die Programmierung des Adressgenerators mit den für die
Ausbreitungsweg-Verzögerung charakteristischen Offset-Parametern werden die Wegverzögerungen der über unterschiedliche Ausbreitungswege übertragenen Signalkomponenten eines Signals berücksichtigt .
Eine weitere bevorzugte AusführungsVariante der Erfindung kennzeichnet sich durch einen einem Rake-Finger zugeordneten
Code-Generator zur Erzeugung eines Spreizcodes zum Entsprei- zen einer in einem der Rake-Finger prozessierten Wegekomponente eines Signals, wobei der Code-Generator den Port zur Eingabe von Offset-Parametern und den Timing-Eingang umfasst, und ferner den für den Rake-Finger vorgesehenen Spreizcode zu einem Zeitpunkt erzeugt, welcher abhängig ist von dem Referenzzeit-Triggersignal und dem diesem Rake-Finger zugeordneten Offset-Parameter. Bei dieser Lösung erfolgt eine Programmierung des Code-Generators durch den Offset-Parameter bezug- nehmend auf den durch das Referenzzeit-Triggersignal vorgegebenen systemweit gültigen Trigger-Zeitpunkt .
Weitere vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Die Erfindung wird nachfolgend anhand eines Ausführungsbei- spiels unter Bezugnahme auf die Zeichnung näher erläutert; in dieser zeigt:
Fig. 1 eine schematische Darstellung eines Mobilfunkempfängers mit einem von mehreren Zeitgebern gesteuerten Rake-Demodulator nach dem Stand der Technik;
Fig. 2 ein Schaubild der von den in Fig. 1 dargestellten Zeitgebern ausgegebenen Triggersignale;
Fig. 3 eine schematische Darstellung des Aufbaus eines erfindungsgemäßen Mobilfunkempf ngers mit einem von einem zentralen Zeitgeber gesteuerten Rake-Demodulator;
Fig. 4 ein Schaubild des von dem in Fig. 3 dargestellten zentralen Zeitgeber ausgegebenen Referenzzeit-Triggersignals ;
Fig. 5 ein Blockschaltbild der in Fig. 3 dargestellten Anordnung;
Fig. 6 ein Schaubild zur Erläuterung der Offset-Parameter zur Programmierung eines Code-Generators für die Code- Erzeugung; und
Fig. 7 ein Schaubild zur Erläuterung des Offset-Parameters zur Programmierung eines Rake-Speichers für die Berücksichtigung der Wegeverzögerung im Rake-Demodulator.
Die Figuren 3 und 4 zeigen die Grundkonzeption der vorliegenden Erfindung. Dieselben Komponenten wie in den Figuren 1 und 2 sind in den Figuren 3 und 4 mit denselben Bezugszeichen gekennzeichnet. Der DSP steht über eine Datenverbindung 20 mit einem zentralen Zeitgeber (Timer) TM_C in Verbindung. Der zentrale Zeitgeber TM_C gibt ein Referenzzeit-Triggersignal 40 aus, das in Fig. 4 dargestellt ist. Das Referenzzeit- Triggersignal kann beispielsweise aus einem Puls bestehen, welcher zum Zeitpunkt REF auftritt. Das Referenzzeit- Triggersignal 40 wird dem Rake-Demodulator RK zugeleitet. Ferner empfängt der Rake-Demodulator RK von dem DSP ein oder mehrere Offset-Parameter über eine Datenverbindung 30. Der oder die Offset-Parameter beziehen sich auf den Zeitpunkt tREp des Referenzzeit-Triggersignals und geben an, um welche Zeitdauern nach dem Auftreten des Referenzzeit-Triggersignals be- stimmte Tätigkeiten (die noch näher anhand der Fig. 5 erläutert werden) gestartet bzw. beendet werden. Die Zeit wird in Einheiten eines gemeinsamen Systemtaktes clk dargestellt, welcher sowohl dem zentralen Zeitgeber TM_C als auch dem Rake-Demodulator RK zugeleitet wird. Der wesentliche Unter- schied zu der in den Figuren 1 und 2 dargestellten Anordnung besteht darin, dass dem Rake-Demodulator RK nur ein einziges, universelles Referenzzeit-Triggersignal 40 zugeführt wird, obwohl Signale von unterschiedlichen Basisstationen mit un- korrelierten Rahmen-Zeitlagen und sogar unterschiedlichen We- gekomponenten der Mehrwegeausbreitung in dem Rake-Demodulator RK demoduliert werden.
Fig. 5 zeigt ein Blockschaltbild der in Fig. 3 dargestellten Schaltung. Die über die Datenverbindung 1 einem Speicher RAKE_RAM zugeführten Abtastwerte werden in nicht dargestellter Weise durch Heruntermischen eines analogen Antennensig- nals in das Basisband oder in einen Zwischenfrequenzbereich und eine nachfolgende Abtastung mit einer ausreichend hohen Abtastrate gewonnen. Im UMTS-Standard beträgt die Chip- Zeitdauer Tc = 0,26 μs, d.h. die Chip-Rate Tc"1 beträgt 3,84 MHz. Die Abtastwerte, welche Chips (Abtastrate 3,84 MHz) oder vorzugsweise Halb-Chips (Abtastrate 7,68 MHz) darstellen, werden in dem Speicher RAKE_RAM gesammelt. Dem Speicher RAKE_RAM sind mehrere (N) Rake-Komponenten RD1, RD2 , ..., RDN nachgeschaltet. Die Rake-Komponenten RD1, RD2 , ..., RDN sind baugleich und werden exemplarisch anhand der Rake-Komponente RD1 erläutert.
Die Rake-Komponente RD1 umfasst einen Interpolator TVI (Time Variant Interpolator) , eine Entspreizungsstufe DS, die das interpolierte Signal mit einem Scrambling-Code und einem Channelization-Code entspreizt, eine Integrate&Dum -Einheit
I&D, welche eine Integration der entspreizten Chips über eine SymbolZeitdauer vornimmt (d.h. es werden jeweils sf Chips addiert und der dabei gewonnene Wert als Symbol ausgegeben; sf bezeichnet den Spreizfaktor des Channelization-Codes) und ei- nen Multiplizierer M, welcher die von der Einheit I&D erhaltenen Symbole mit einem Kanalgewicht multipliziert. Die Ausgänge der Rake-Komponenten RD1, RD2 , ..., RDN werden einem Kombinierer (Maximum-Ratio-Combiner) MRC zugeleitet, welcher diejenigen Symbole, welche (zwar über unterschiedliche Aus- breitungswege empfangen und möglicherweise auch von unterschiedlichen Basisstationen ausgesendet aber) demselben Signal zugeordnet sind, addiert . Am Ausgang 9 des Kombinierers MRC werden in üblicher Weise die demodulierten Symbole von ein oder mehreren Signalen ausgegeben.
Die Entspreizungsstufe DS kann durch zwei seriell angeordnete Entspreizungs-Einheiten (Multiplizierer) DSCR und DCHN reali-
siert sein. Die Entspreizungs-Einheit DSCR führt das sogenannte De-Scrambling (Entwürfein) der erhaltenen Folge von Chip-Werten durch. (Sofern es sich bei den im Speicher RAKE_RAM abgelegten Abtastwerten um Halb-Chips handelt, be- wirkt der Interpolator TVI eine Ratenerniedrigung um den Faktor 2, so dass am Eingang der Entspreizungsstufe DS stets Chip-Werte vorliegen.) Hierzu wird der Entspreizungs-Einheit DSCR von einem Scrambling-Code-Generator SCR_GEN über, die Datenverbindung 50.1 ein Scrambling-Code zugeleitet. Weitere von dem Scrambling-Code-Generator erzeugte Scrambling-Codes werden über die Datenverbindungen 50.2, ..., 50.N entsprechenden Entspreizungs-Einheiten DSCR in den weiteren Rake- Komponenten RD2 , ... , RDN zugeführt .
Wie allgemein bekannt, werden Scrambling-Codes verwendet, um Signale, die von unterschiedlichen Basisstationen stammen, unterscheidbar zu machen. Genauer werden die von einer bestimmten Basisstation ausgesandten Signale senderseitig mit einem Basisstation-spezifischen Scrambling-Code multipli- ziert. Durch das De-Scrambling in der Entspreizungs-Einheit DSCR wird die betrachtete Rake-Komponente RD1 einer bestimmten Basisstation zugeordnet.
Die De-Channelization-Einheit DCHN nimmt eine Entspreizung bezüglich des Channelization-Codes vor. Sie wird also (in hier nicht näher dargestellter Weise) mit einem Channelization-Code gespeist. Die hierfür verwendete Schaltung umfasst einen Channelization-Code-Generator . Sie entspricht der Schaltung für das De-Scrambling und ist in Fig. 5 aus Gründen der Übersichtlichkeit nicht eingezeichnet. Durch den Channelization-Code wird die Rake-Komponente RD1 einem bestimmten physikalischen Kanal zugeordnet. (Wie allgemein bekannt, werden physikalische Kanäle in CDMA-Systemen durch Aufmultiplizieren eines Channelization-Codes voneinander unterscheidbar gemacht. Insbesondere wird durch die Channelization-Codes die Teilnehmerseparierung ermöglicht. Jedem Teilnehmer eines Mobilfunknetzes wird ein bestimmter Channelization-Code zuge-
wiesen. Die (nur) für diesen Teilnehmer bestimmten Symbole werden senderseitig mit dem diesem Teilnehmer zugeordneten Channelization-Code multipliziert. Durch die Beaufschlagung der Entspreizungs-Einheit DCHN mit diesem Teilnehmer-spezi- fischen Channelization-Code wird die CDMA-typische Teilnehmer-spezifische Nutzdaten-Demodulation erreicht.)
Anstelle der in Fig. 5 gezeigten Anordnung können die beiden Entspreizungs-Einheiten DSCR und DCHN auch durch eine einzige Entspreizungs-Einheit (Multiplizierer) realisiert sein, welche in diesem Fall durch ein Produkt aus Scrambling-Code und Channelization-Code beaufschlagt wird. Allgemein bezeichnet der Begriff Spreizcode in dieser Anmeldung Scrambling-Codes, Channelization-Codes sowie auch Produkte dieser Codes.
Die (bekannte) Funktionsweise des Rake-Empfängers RK besteht darin, dass jeder Rake-Finger durch ein eingangsseitig vorhandenes Verzögerungsglied auf einen bestimmten Ausbreitungsweg "gesetzt" wird, d.h. dass die Ausbreitungsweg-Verzδ- gerungen, welche aufgrund der Mehrwegeausbreitung eines von einer Basisstation ausgesandten Signals auftreten, am Eingang jedes Rake-Fingers kompensiert werden. Im vorliegenden Ausführungsbeispiel geschieht dies dadurch, dass die über den Eingang 1 in chronologischer Reihenfolge erhaltenen Abtast- werte der Reihe nach in dem zyklischen Speicher RAKE_RAM abgelegt werden, jedoch für die Rake-Komponenten RD1, RD2 , ..., RDN mit unterschiedlichen Leseadressen „gleichzeitig" ausgelesen werden. „Gleichzeitig" bedeutet, dass innerhalb einer Chip- eitdauer durch einen entsprechend hohen Systemtakt clk für jede aktive Rake-Komponente RD1, RD2 , ..., RDN ein Abtastwert ausgelesen wird. Die unterschiedlichen Leseadressen AD(1), ..., AD(N) für die Rake-Komponenten RD1 , RD2 , ..., RDN werden einem Adressdecoder AD_DEC des Speichers RAKE_RAM von dem Adressgenerator AD_GEN bereitgestellt. Der Speicher RAKE_RAM mitsamt dem Adressgenerator AD_GEN und dem Adress- decoder AD_DEC erlaubt daher die Mehrwegeausbreitungsverzöge- rung in den einzelnen Rake-Fingern zu kompensieren. Der Spei-
eher RAKE_RAM stellt somit die Verzögerungsglieder für alle Rake-Finger dar. Jeder Rake-Finger umfasst demnach eine Rake- Komponente RD1, ... , RDN sowie den (gemeinsamen) Speicher RAKE_RAM.
Im Folgenden wird die Programmierung des Adressgenerators AD_GEN und des Scrambling-Code-Generators SCR_GEN mittels Parameterwerten, welche von dem DSP über die Datenverbindung 30 übermittelt werden, erläutert. Zum besseren Verständnis wird zuvor kurz auf die in UMTS verwendete KanalStruktur eingegangen, welche in dem UMTS-Standard 3GPP TS 25.211 V4.4.0 (2002- 03) spezifiziert ist.
CPICH
Jede Basisstation sendet gemäß Kapitel 5.3.3.1.1. der oben genannten Spezifikation genau einen CPICH pro Zelle aus. Dieser eine CPICH ist für die gesamte Zelle gültig. Der von einer Basisstation mit dem Index 0 ausgesandte CPICH wird im Folgenden als CPICH_BS(0) bezeichnet, und der von einer Basisstation mit dem Index 1 ausgesandte CPICH wird im Folgenden als CPICH_BS(1) bezeichnet. Da für sämtliche CPICH der gleiche Channelization-Code eingesetzt wird, unterscheiden sich die von unterschiedlichen Basisstationen ausgesandten CPICH lediglich durch ihren Sramblingcode.
Ein Rahmen des CPICH-Kanals dauert 10 ms. Der Rahmen umfasst 15 Zeitschlitze. Gemäß der oben genannten UMTS-Spezifikation enthält jeder Zeitschlitz 2560 Chips. Die Rahmenzeitdauer be- trägt somit 38400 Chip-Zeitdauern. Innerhalb eines Zeitschlitzes werden 10 Symbole (10 x 256 Chips) des CPICH-Kanals ausgesandt .
Nach der Zeitschlitz- und Rahmensynchronisation werden die Zellen-spezifischen CPICH-Kanäle einem Prozess des Matched- Filtering unterzogen. In Halb-Chip-Abständen werden z.B. 512 aufeinanderfolgende Halb-Chip-Empfangsdaten mit den bekannten
CPICH-Symbolen Zellen-spezifisch (die Zellen werden durch den Scrambling-Code unterschieden) korreliert und aufintegriert . Aus der Leistungsverteilung der Korrelationsergebnisse in Abhängigkeit von dem Anfangszeitpunkt der Korrelation lassen sich die Mehrwegekomponenten der Ausbreitung innerhalb der betreffenden Zelle erkennen. Dasselbe Verfahren wird für alle bekannten Zellen wiederholt.
In den Figuren 6 und 7 ist jeweils im unteren Bereich der Fi- guren die Rahmen-Zeitläge der Kanäle CPICH_BS(0) und
CPICH_BS(1) dargestellt (fett gezeichnete Linien; die x-Achse entspricht der Zeitrichtung) . Die jeweiligen Rahmenanfänge sind mit den Bezugszeichen 100.0 (des CPICH_BS(0)) bzw. 100.1 (des CPICH_BS(1)) bezeichnet. Die am Empfänger auftretende Zeitdifferenz zwischen dem Rahmenanfang des Kanals
CPICH_BS(1) und dem Rahmenanfang des Kanals CPICH_BS(0) wird mit CPICHJDEL(l) bezeichnet und ist nach der Akquisition im Empfänger bekann .
DPCH
Nutzdaten werden in UMTS über die teilnehmerspezifischen (dedizierten) Downlink-Kanäle DPCH (Dedicated Physical Channel) übertragen. Die Rahmen der DPCH-Kanäle sind in den Figu- ren 6 und 7 mit DPCH_BS(0) für die Basisstation mit dem Index 0 und DPCH_BS(1) für die Basisstation mit dem Index 1 bezeichnet. Die Rahmen der DPCH-Kanäle weisen ebenfalls eine Dauer von 10 ms und eine Länge von 15 Zeitschlitzen auf. CPICH- und DPCH-Rahmen von ein und derselben Basisstation sind jedoch nicht synchron. Es wird die folgende Bezeichnung verwendet :
frame_offset (i) Zeitversatz des DPCH_BS (i) -Rahmens gegenüber dem CPICH_BS (i) -Rahmen für die Ba- sisstation BS(i) mit dem Index i.
Der Zeitversatz frame_offset (i) wird von der jeweiligen Basisstation BS(i) mitgeteilt. Die Werte frame__offset (i) sind im Empfänger somit für alle überwachten Basisstationen der Indizes i bekannt. Es gilt frame_offset (i) = n(i)*256 Chips, wobei n(i) = 1, 2, 3, ..., d.h. der Zeitversatz zwischen den Rahmen-Zeitlagen der DPCH- und CPICH-Kanäle einer Basisstation ist jeweils ein ganzzahliges Vielfaches der Symboldauer im CPICH-Kanal .
Wenn zu einem bestimmten Zeitpunkt B_TS die Demodulation sowohl des DPCH_BS(0) Kanals als auch des DPCH_BS(1) Kanals in dem Rake-Empfänger gestartet werden soll - beispielsweise weil über beide Kanäle dasselbe Signal übertragen wird und beide Kanäle für die Demodulation ausgenutzt werden sollen - werden erfindungsgemäß die folgenden Schritte ausgeführt :
1. Vorgabe einer einheitlichen Zeitbasis:
Das über die Signalleitung 40 übertragene Referenzzeit-Trig- gersignal des zentralen Zeitgebers TM_C wird auf den Rahmenanfang 100.0 des bei der Akquisition zuerst identifizierten CPICH-Rahmens CPICH_BS(0) gesetzt oder ganz generell auf eine Zeitreferenz, die sich am SendeZeitpunkt orientiert. Wie bereits oben erläutert, kann sich dieser Zeitpunkt z.B. bei Verlust der aktuellen Referenz-Basisstation mit einer vorgegebenen Rate verändern, bis das Referenzzeit-Triggersignal 40 des zentralen Zeitgebers TM_C koinzident mit einer neuen Zeitreferenz ist, die sich am Empfangszeitpunkt des CPICH- Kanals einer anderen Basisstation orientiert .
Der zuerst identifizierte Zeitrahmen CPICH_BS(0) legt also die universelle Zeitbasis in dem Empfänger fest. Der gewünschte StartZeitpunkt für die Demodulation orientiert sich an diesem Referenzzeit-Triggersignal und beträgt somit B_TS . In den Fig. 6 und 7 wurde angenommen, dass das Referenzzeit- Triggersignal 40 die Zeitlage des Rahmenbeginns 100.0 des Kanals CPICH BS(0) anzeigt.
Dieses Referenzzeit-Triggersignal bleibt gültig, solange diese Basisstation BS(0) vom Empfänger empfangen wird. Sobald der Empfang des CPICH_BS(0) verloren geht, wird das Referenz- zeit-Triggersignal mit einer vordefinierten Maximalrate nachgeführt und indirekt über den neuen SendeZeitpunkt bezüglich des CPICH-Rahmenanfangs einer anderen, durch Higher Layer mitgeteilten Basisstation definiert. In der Folgezeit bestimmt dann diese andere Basisstation die Zeitbasis im Emp- fänger.
2. Programmierung des Scrambling-Code-Generators SCR_GEN für die Scrambling-Code-Erzeugung:
Gemäß den im Standard TS 25.213 V4.3.0 in Kapitel 5.2.2 angegebenen Vorgaben für die Erzeugung von Scrambling-Codes im UMTS-Standard können 262143 unterschiedliche Scrambling-Codes erzeugt werden, die durch eine Nummer zwischen 0 und 262142 bezeichnet werden. Um eine Demodulation des Datenkanals DPCH_BS(i) mit einem bestimmten Scrambling-Code zu erreichen, muss dieser Scrambling-Code zum Zeitpunkt B_TS von dem Scrambling-Code-Generator SCR_GEN geladen sein. Der Ladezeitpunkt des Scrambling-Codes für den DPCH_BS (i) -Kanal bezieht sich aber nicht auf den Rahmenanfang des DPCH_BS (i) -Kanals, sondern auf den Rahmenanfang des zugehörigen CPICH_BS (i) - Kanals. Der Rahmenanfang des DPCHJ3S (i) -Kanals ist um fra- me_offset(i) Zeiteinheiten gegenüber dem CPICH_BS (i) -Rahmen verschoben. Innerhalb des CPICH_BS (i) -Rahmens wird für jeden Chip ein komplexes Code-Wort durch den Scrambling-Code- Generator SCR_GEN geliefert, bis am Anfang eines neuen
CPICH_BS (i) -Rahmens der Code-Generator mit dem ursprünglichen der Basisstation i zugeordneten Scrambling-Code geladen wird und die zyklische Erzeugung der Scrambling-Code-Worte fortgesetzt wird.
Mit "Laden des Scrambling-Codes" ist gemeint, dass die beiden Schieberegister des Code-Generators (Code-Generatoren werden
durch rückgekoppelte Schieberegister realisiert; der Code- Generator für die Erzeugung von Scrambling-Codes im UMTS- Standard ist in Kapitel 5.2.2, Fig. 10, der Spezifikation TS 25.213 V4.3.0 dargestellt) zum Ladezeitpunkt mit der durch die Code-Nummer vorgegebenen Anfangsbelegung (bezogen auf die CPICH-BS (i) -Rahmen-Grenze) sowie der zeitlichen Verschiebung zwischen dem CPICH-BS (i) -Rahmenbeginn und dem Zeitpunkt B_TS vorbereitet werden. D.h. , der am Zeitpunkt B_TS zur Verfügung stehende Scrambling-Code beinhaltet einen Vorlauf des mit dem Scrambling-Code der Nummer SCR_CNR(i) geladenen Scrambling- Code-Generators SCR_GEN um frame_offset (i) + start_offset (i) Zeiteinheiten (Chips) , also genau um die Zeitdifferenz zwischen dem CHPICH_BS (i) -Rahmenbeginn und dem Anfang der Demodulation. start__offset (i) gibt die Zeitspanne an, um welche der Zeitpunkt B_TS (Start der Demodulation zum Zeitpunkt
B_TS) gegenüber dem Anfang des DPCHJ3S (i) -Rahmens verzögert ist .
Es werden ferner die folgenden Bezeichnungen verwendet :
SCR_CNR(i) Nummer des Scrambling-Codes der Basisstation mit dem Index i . B_SCR_CNR(i) Anfangswert des Scrambling-Codes zum Zeitpunkt B__TS (wird durch das Laden des Scrambling- Code-Generators mit SCR_CNR(i) und dem Vorlauf des Scrambling-Code-Generators um frame_off- set(i) + start_offset (i) Zeiteinheiten erzeugt) . R_TS(i) Zeitpunkt für das Laden des der Basisstation mit dem Index i zugeordneten nicht durch Vorlauf veränderten Scrambling-Codes der Nummer SCR_CNR(i) in den Scramblin-Code-Generator (immer am Rahmenbeginn des CPICH_BS(i)- Rahmens) .
Fig. 6 zeigt die oben diskutierten Zeitverhältnisse zwischen CPICH BS(i)- und DPCH BS(i) -Rahmen mit der Zeitdifferenz von
frame_offset (i) . Da in dem hier dargestellten Beispiel (Fig. 6) der Start der Demodulation zum Zeitpunkt BT_S nicht identisch mit dem Rahmenanfang einer der beiden DPCH-Rahmen ist, muss start_offset (i) berücksichtigt werden. Es gilt
B_TS = frame_offset (i) + start_offset (i) + CPICH_DEL(i)
Die Scrambling-Code-Nummer SCR_CNR(i) ist auf den Rahmenanfang des zugehörigen CPICH-Kanals CHPICH_BS(i) bezogen. Der Wert B_SCR_CNR(i) des Scrambling-Codes zum Zeitpunkt B_TS, d.h. mit Beginn der Demodulation, ergibt sich durch Laden des Scrambling-Code-Generators mit SCR_CNR(i) und dem Vorlauf der im Generator vorhandenen rückgekoppelten Schieberegister um die Zeitdifferenz frame_offset (i) + start__offset (i) . D.h., B_SCR_CNR(i) ist durch die relative Verzögerung zwischen den jeweiligen CPICH_BS(i)- und DPCH_BS(i)- Kanälen und dem Wert start_offset (i) bestimmt.
Aufgrund des notwendigen Vorlaufs des Scrambling-Code-Gene- rators SCR_GEN für die Demodulation und der Definition des
Scrambling-Codes als ein mit den CPICH_BS (i) -Grenzen zyklisch zu wiederholendes Muster, wird während der Demodulation ein Zeitpunkt R__TS(i) auftreten, an dem der Scrambling-Code- Generator wieder neu mit der Scrambling-Code-Nummer SCR_CNR(i) geladen werden muss. Wenn nicht die Verschiebung zwischen dem DPCH_BS(i)- und dem CPICH_BS (i) -Kanal gleich Null ist, wird dieser Zeitpunkt inmitten des DPCH_BS(i)- Rahmens liegen.
R_TS(i) stimmt mit der Rahmen-Grenze des CPICH_BS (i) -Rahmens überein:
R_TS(i) = (B_TS - frame_offset (i) - start__offset (i) ) mod 38400
Die zeitliche Verschiebung frame_offset (i) zwischen dem DPCH__BS(i)- und dem CPICHJBS (i) -Kanal, die Verzδgerungszeit
der Demodulation des DPCH_BS (i) -Kanals start_offset (i) werden dem Scrambling-Code-Generator SCR_GEN über die in Fig. 5 gezeigte Datenverbindung 30.1 mitgeteilt. Mit der für die jeweilige Basisstation gültigen Scrambling-Code-Nummer SCR__CNR(i) wird ein Vorlauf des Scrambling-Code-Generators eingeleitet. Die Anzahl der mitgeteilten Offset-Werte richtet sich nach der Anzahl der im Active Set und im Monitor Set ü- berwachten Basisstationen.
Der Anfangswert der Scrambling-Code-Nummer zum Zeitpunkt B_TS ergibt sich nach:
B_SCR__CNR(i) = SCR_CNR(i) + frame_offset (i) + start_offset (i)
3. Programmierung des Adressgenerators AD_GEN für die Verzögerungskompensation
Die in Fig. 7 veranschaulichte Verzögerungskompensation betrifft die DPCH-Kanäle der Basisstationen des Active Set. Wird der Kanal DPCH_BS(0) der Basisstation mit dem Index 0 als Referenz gewählt, kann die Ausbreitungsweg-Verzögerung actframe_offset (i) folgendermaßen definiert werden:
actframe_offset (i) zeitlicher Versatz zwischen dem Zeitpunkt des Rahmenanfangs DPCH_BS(0) und dem
Zeitpunkt des Rahmenanfangs DPCH_BS(i)
Die Ausbreitungsweg-Verzögerung actframe_offset (i) ist eine im Empfänger ermittelte Messgröße. Die Werte für actframe_offset (i) werden von dem DSP z.B. in Zeiteinheiten eines Chips berechnet und über die Datenverbindung 30.2 an den Adressgenerator AD_GEN ausgegeben. Der Adressgenerator AD_GEN rechnet die Zeitdifferenzen actframe_offset (i) in Adressen-Differenzen um (wenn in dem Speicher RAKE_RAM bei- spielsweise pro Speicherplatz ein Halb-Chip abgespeichert ist, ist die Differenz zwischen den Leseadressen AD(nl) und AD(n2) für die beiden Rake-Komponenten RD(nl) bzw. RD(n2),
die die Kanäle DPCH_BS(0) bzw. DPCH_BS (i) entspreizen, 2*actframe_offset (i) ) .
In Abhängigkeit von den erhaltenen Werten für die Ausbrei- tungsweg-Verzogerung actframe_offset (i) berechnet der Adressgenerator AD_GEN auf diese Weise für jeden Ausbreitungsweg zwischen jeder Basisstation des Active Set und dem Empfänger eine Leseadresse AD(1) , ... , AD (N) . Die unter den Adressen AD(1), ..., AD(N) abgespeicherten Abtastwerte werden gleich- zeitig aus dem Speicher RAKE_RAM ausgelesen. Wie bereits erläutert, bedeutet dies, dass der Speicher RAKE_RAM innerhalb einer Chip-Zeitdauer bis zu 2*N mal ausgelesen wird (sofern alle Rake-Komponenten RD1, RD2, ..., RDN aktiv sind und jeweils zwei Halb-Chips pro Chip-Zeitdauer und Rake-Komponente ausgelesen werden) , so dass in jedem Chip-Zeittakt für jede Rake-Komponente RD1, RD2 , ..., RDN hinter dem Interpolator TVI ein Abtastwert bereit steht. Die Größe des Speichers RAKE_RAM muss dabei so gewählt werden, dass die Abtastwerte für sämtliche Ausbreitungswege aller Zellen des Active Set in dem Speicher RAKE_RAM gleichzeitig verfügbar sind. D.h., dass der Speicher RAKE_RAM bei Abspeicherung von Halb-Chips eine größere Anzahl von Speicherplätzen als der maximale Wert von 2*actframe_offset (i) aufweisen muss (eine Speichergröße für 400 Chips ist ausreichend) .
Die Parameter actframe_offset (i) bezeichnen nur die relativen Zeitdifferenzen der verschiedenen Mehrwege-Komponenten zueinander. Diese relativen Zeitangaben müssen auf eine absolute Zeitangabe bezogen werden. Hierzu werden mit dem Parameter frame_offset (0) die relativen Zeitangaben auf den CPICH-
Rahmen-Beginn der Referenz-Basisstation referenziert . In diesem Fall werden die Parameter actframe_offset (i) und fra- me_offset(0) über die Datenverbindung 30.2 übertragen. Stattdessen können natürlich die relativen Zeitangaben auf eine absolute Zeit bezogen werden, die am SendeZeitpunkt der Mobilstation orientiert ist. Die Referenzierung auf eine absolute Zeit ist notwendig, da das RAKE RAM bezogen auf die ab-
solute Zeitangabe zyklisch mit Empfangsdaten gefüllt wird und damit auch eine Beziehung zwischen Schreib-Zeiger und Auslese-Zeiger hergestellt werden muss.
Die Datenverbindung 30.3 zwischen dem DSP und den Rake- Komponenten RD1, RD2 , ..., RDN ermöglicht eine Programmierung der Rake-Komponenten RD1, RD2 , ..., RDN mittels Offset- Parametern bezogen auf das Referenzzeit-Triggersignal 40.