Gold Code
Pseudozufällige Sequenzen mit niedriger Kreuzkorrelation für CDMA-Systeme wie GPS.
Der Goldcode (oder Gold-Sequence) ist eine spezielle Art von Pseudozufallsfolgen, die in der Datenübertragung verwendet wird. Technisch betrachtet basiert der Goldcode auf der Kombination zweier maximaler lineare Rückkopplungs-Register (Linear Feedback Shift Registers, LFSR). Ein Goldcode besteht aus einer Folge binärer Werte (0 und 1), die fast zufällig erscheinen, aber dennoch deterministisch und reproduzierbar sind. Die wichtigsten Eigenschaften dieser Codes sind:

Lange Periode: Ein Goldcode hat eine Länge von 2^n − 1, wobei n die Länge des Registers in den LFSRs ist. Dadurch kann eine ausreichend lange Pseudozufallsfolge erzeugt werden.
Niedrige Korrelation: Goldcodes besitzen eine niedrige Kreuzkorrelation zu anderen Goldcodes, was bedeutet, dass sie sich leicht voneinander unterscheiden lassen, um Interferenzen zwischen verschiedenen Kommunikationskanälen zu minimieren.
Autokorrelationseigenschaften: Ein Goldcode hat eine Autokorrelation, die es erlaubt, empfangene Signale auch bei Zeitverzögerungen korrekt zu erkennen.
Bildquelle: Goldcode
Vorteile
Multiplexing: Da jeder Teilnehmer einen einzigartigen Goldcode verwendet, können mehrere Nutzer dasselbe Frequenzspektrum teilen, ohne sich gegenseitig stark zu stören. Die niedrige Kreuzkorrelation der Codes ermöglicht es, die Signale wieder sauber zu trennen.
Interferenzunterdrückung: Die Autokorrelationseigenschaften des Goldcodes helfen, das eigene Signal trotz Störungen oder Reflexionen zu erkennen, was besonders in drahtlosen Kommunikationssystemen wichtig ist.
Spread Spectrum: Durch die Modulation mit dem Goldcode wird das Signal auf ein breiteres Frequenzspektrum verteilt, was die Kommunikation robuster gegen Störungen und Abhören macht.
Der Goldcode spielt eine zentrale Rolle z.B. im Global Positioning System (GPS), indem er zur Trennung der Signale der verschiedenen Satelliten verwendet wird. GPS verwendet eine Technik namens CDMA (Code Division Multiple Access), um es mehreren Satelliten zu ermöglichen, gleichzeitig im gleichen Frequenzspektrum Signale zu senden. Jeder GPS-Satellit ist mit einem einzigartigen Goldcode ausgestattet, um eine klare Identifikation und Trennung der Signale zu gewährleisten.
GPS C/A-Code im Detail: Gemeinsamkeit und Unterschiede zu DCF77
Der Gold-Code wird — wie jede LFSR-basierte Pseudozufallsfolge — durch rückgekoppelte Schieberegister erzeugt. Beim GPS-Standard-C/A-Code auf der L1-Frequenz ($1575{,}42\,\text{MHz}$) nutzt man dabei dasselbe Grundprinzip zur Datenübertragung wie bei der DCF77-PZF-Sequenz: Code-Invertierung per XOR. Aufbau und Nutzung der Codes unterscheiden sich aber deutlich.
Das Gemeinsame: Datenübertragung durch Invertierung
Genau wie bei DCF77 wird auch bei GPS eine pseudozufällige Bitfolge (der Gold-Code, auch PRN-Sequenz genannt) zur Datenübertragung genutzt:
- Die GPS-Navigationsnachricht (Uhrzeit, Satellitenbahnen etc.) wird mit extrem langsamen $50\,\text{Bit/s}$ gesendet.
- Der Gold-Code ist $1023$ Bits (Chips) lang und wiederholt sich $1000$-mal pro Sekunde — er läuft also in genau $1\,\text{ms}$ einmal durch.
- Das XOR-Prinzip: Ist das Navigationsdaten-Bit eine 0, wird der Gold-Code für die Dauer des Bits ($20\,\text{ms}$) normal gesendet. Ist das Navigationsdaten-Bit eine 1, wird der Gold-Code invertiert. Ein Navigations-Bit erstreckt sich also über genau $20$ komplette Durchläufe der Gold-Code-Sequenz.
Das ist exakt dieselbe XOR-Invertierung wie beim am_bit-Parameter der DCF77-PZF-Erzeugung (chip ^ am_bit, siehe Referenzimplementierung) — nur dass DCF77 die Sequenz einmal pro Sekunde neu startet und mit genau einem AM-Bit verknüpft, während GPS dieselbe $1023$-Chip-Sequenz $20$-mal pro Navigations-Bit wiederholt.
Die Unterschiede zu DCF77
Während DCF77 nur eine einzige statische Sequenz für den gesamten Sender nutzt, hat GPS ein deutlich größeres Problem zu lösen: CDMA (Code Division Multiple Access).
| DCF77-PZF | GPS-C/A-Code | |
|---|---|---|
| Register | ein einzelnes 9-Bit-LFSR | zwei gekoppelte 10-Bit-Register ($G_1$, $G_2$) |
| Sequenzlänge | 512 Chips (kein $2^n-1$, siehe PZF-Sequenz) | 1023 Chips ($=2^{10}-1$, echte Maximalfolge) |
| Anzahl Sequenzen | eine, für alle Empfänger identisch | 32+ verschiedene, eine pro Satellit (PRN 1, PRN 2, …) |
| Zweck der Vielzahl | — | CDMA: alle Satelliten senden gleichzeitig auf derselben Frequenz, der Code selbst identifiziert den Satelliten |
Jeder Satellit hat seinen eigenen Gold-Code. Alle GPS-Satelliten senden gleichzeitig auf exakt derselben Frequenz. Damit der Empfänger sie unterscheiden kann, besitzt jeder Satellit seine eigene Gold-Code-Sequenz. Diese Codes sind zueinander orthogonal (niedrige Kreuzkorrelation, siehe oben) — sie stören sich gegenseitig kaum, selbst wenn die Signale im Empfänger überlagert eintreffen.
Erzeugung durch zwei Schieberegister. Bei DCF77 reicht ein einzelnes 9-Bit-Register. Ein GPS-Gold-Code wird dagegen durch zwei gekoppelte 10-Bit-Schieberegister erzeugt: $G_1$ läuft bei allen Satelliten exakt gleich, $G_2$ wird an unterschiedlichen Bitpositionen (Taps) angezapft, je nachdem welcher Satellit erzeugt werden soll. Die Ausgänge beider Register werden wieder per XOR kombiniert — genau das Prinzip, das die Gold-Code-Konstruktion (Abschnitt oben) allgemein beschreibt, hier mit $n=10$.
Software vs. Hardware: dieselbe LUT-Praxis wie bei DCF77
Auch beim GPS-Empfänger gilt dieselbe Überlegung wie bei DCF77: Da die Basissequenzen fest und bekannt sind, muss das Schieberegister nicht bei jedem Empfang live durchgerechnet werden.
- Hardware-Empfänger (ASICs/FPGAs) haben oft kleine Register-Logiken verbaut, die die Bits mit $1{,}023\,\text{MHz}$ in Echtzeit generieren — bei nur 1023 Bits ist der Hardwareaufwand dafür minimal.
- SDRs und moderne GPS-Chips berechnen die 1023 Bit langen Gold-Codes aller 32 Satelliten vorab und legen sie als feste Look-up-Table im RAM ab. Sucht der Empfänger nach Satellit 12, lädt er einfach die fertige 1023-Bit-Tabelle für PRN 12 und korreliert sie mit dem Antennensignal — kein bitweises Nachrechnen des Schieberegisters zur Laufzeit nötig.