Korrelative Phasenauswertung
Die theoretische Grundlage der korrelationsbasierten Auswertung der DCF77-Phaseninformation (PZF) — Matched Filter, Verarbeitungsgewinn, Latenzbilanz und ein Anwendungsbeispiel per prädiktiver Taktdisziplinierung.
Verfahren und theoretische Grundlage eines Korrelationsempfängers für die pseudozufällige Phasenmodulation (PZF) des DCF77-Trägers.
- Träger: 77,5 kHz, PZF seit 1983 (PTB)
- Ziel-Genauigkeit: µs-Bereich statt ms-Bereich (AM-Flanke)
- Bezug: knüpft thematisch an Stufe 1 und Stufe 2 an (dieselbe DCF77-Zeitzeichenauswertung); die praktische Umsetzung in Stufe 4 verwendet allerdings eine eigenständige IQ-Aufnahme statt der dortigen Hüllkurven-Kette
Warum Phase statt Amplitude?
Die bestehende Auswertung gewinnt die Sekundenmarken aus der Hüllkurve — begrenzt durch Filterflanke, Rauschen und Debounce auf realistisch ±1–5 ms Zeitunsicherheit. Die dem Träger zusätzlich aufgeprägte Phaseninformation erlaubt mit Korrelationsverfahren eine um zwei bis drei Größenordnungen bessere Zeitauflösung.
DCF77 moduliert den 77,5 kHz-Träger seit 1983 zusätzlich zur bekannten Amplitudentastung (AM, 100/200 ms-Absenkung für die BCD-Zeitinformation) mit einer pseudozufälligen Phasenmodulation (PZF): einer im Sekundentakt wiederholten, aus einem rückgekoppelten Schieberegister erzeugten Bitfolge (Maximalfolge), die den Träger um einen kleinen, festen Winkel vor- und zurückschiebt. Diese Modulation stört die AM-Dekodierung nicht (sie ist amplitudenneutral), liefert aber ein deterministisches, im Empfänger exakt nachbildbares Referenzsignal — die Grundvoraussetzung für ein Korrelationsverfahren. Aufbau und Erzeugung dieser Folge im Detail: Die PZF-Sequenz von DCF77.

Grundlage: Matched Filter und Autokorrelation
Die Korrelation ist hier kein heuristischer Trick, sondern der informationstheoretisch optimale Detektor für ein bekanntes Signal in additivem weißem Rauschen — Herleitung und Grundlagen dazu stehen im Artikel Matched Filter.
Matched-Filter-Theorem: Für ein bekanntes Sendesignal $s[n]$, das mit unbekannter Verzögerung $\tau$ in additivem weißem Rauschen empfangen wird, maximiert der auf $s[n]$ angepasste Korrelationsfilter das Signal-Rausch-Verhältnis am Ausgang. Die Position des Korrelationsmaximums ist der Maximum-Likelihood-Schätzer für $\tau$.
$$R_{xs}[\tau] = \sum_n x[n] \cdot s^*[n - \tau]$$
Für die PZF-Folge wird als Referenz $s[n]$ eine lokal im Empfänger erzeugte, bitidentische Kopie der PTB-Pseudozufallsfolge verwendet (Startpunkt an der bekannten Sekundenflanke aus der AM-Grobsynchronisation). Entscheidend ist die Autokorrelationseigenschaft von Maximalfolgen: nahezu deltaförmig, mit Nebenkeulen der Größenordnung $1/N$ bezogen auf den Hauptpeak ($N$ = Folgenlänge in Chips). Das ergibt einen Verarbeitungsgewinn:
$$G_p \approx 10 \cdot \log_{10}(N) \;\text{dB}$$
Bereits bei einer typischen Folgenlänge im Bereich einiger hundert Chips ergibt das 20–30 dB SNR-Gewinn gegenüber der Einzel-Chip-Detektion — der Korrelationspeak bleibt damit auch bei Empfangsbedingungen auswertbar, unter denen die AM-Hüllkurve bereits stark verrauscht ist. Die erreichbare Zeitauflösung ist nicht mehr durch die Filterflanke, sondern durch die Schärfe des Korrelationspeaks bestimmt — bei Bandbreite $B$ des Chip-Signals typischerweise
$$\sigma_\tau \sim \frac{1}{B \sqrt{2 \cdot \text{SNR} \cdot N}}$$
also im Mikrosekundenbereich statt Millisekunden.
Von der Theorie zur Praxis
Der oben hergeleitete Ansatz ist der theoretisch einfachste Weg: den empfangenen Phasor auf den Einheitskreis normieren (Hüllkurve entfernen, reine Phase behalten), mit einem lokal erzeugten Referenzträger konjugiert komplex multiplizieren (Trägerauskopplung) und das Ergebnis mit der PZF-Referenzfolge korrelieren. Dieser Weg setzt voraus, dass Frequenz und Phase des lokalen Referenzträgers bereits mit ausreichender Genauigkeit bekannt sind.
In der Praxis — insbesondere bei Aufnahmen über Web-Empfänger — ist die tatsächliche Trägerablage weder exakt bekannt noch konstant, sondern driftet. Ein fest eingestellter Referenzoszillator müsste dafür wiederholt neu kalibriert werden. Die in Stufe 4 tatsächlich umgesetzte Kette verwendet deshalb statt eines festen Referenzträgers eine Regelschleife (Costas Loop), die den Träger laufend selbst nachführt — robuster gegenüber unbekannter, driftender Ablage, dafür mit eigenen Dimensionierungsfragen (Einrastverhalten, Regelschleifenbandbreite), die dort ausführlich an realen Aufnahmen gemessen und dokumentiert sind. Der letzte Schritt — die Korrelation der Phasenabweichung gegen die bekannte PZF-Folge — bleibt inhaltlich derselbe wie hier hergeleitet; nur der Weg zur trägerbereinigten Phase unterscheidet sich.
Latenzbetrachtung
Die Korrelation kostet Zeit — und zwar aus zwei grundverschiedenen Quellen, die in der Praxis oft verwechselt werden.
| Quelle | Größenordnung | Charakter |
|---|---|---|
| Rechenzeit der Korrelation selbst (FFT/FIR) | µs – wenige ms | vernachlässigbar, reine CPU-Zeit |
| Beobachtungsfenster (Folgenlänge muss erst „durchlaufen" sein) | bis zu 1 Sekunde | fundamental, nicht wegoptimierbar |
| Gruppenlaufzeit vorgeschalteter Filter (Hilbert, ggf. Tiefpass) | wenige ms – 60 ms | konstant, siehe Filteranalyse |
Die dominante Latenz ist keine Rechenlatenz, sondern eine Beobachtungslatenz: Ein Korrelationspeak kann erst dann eindeutig erkannt werden, wenn die vollständige Referenzfolge (bis zu 1 s Dauer) am Empfänger vorbeigelaufen ist. Ein Ergebnis „jetzt" beschreibt daher zwangsläufig ein Ereignis, das bis zu eine Sekunde in der Vergangenheit liegt — unabhängig davon, wie schnell die zugrundeliegende FFT oder FIR-Faltung gerechnet wird. Diese Verzögerung ist der Faltung selbst inhärent (ein Matched Filter der Länge $N$ braucht $N$ Samples Vorlauf, um bei $n$ den Korrelationswert für die bei $n-N$ begonnene Folge auszugeben).
Abb. 1 — Naive Blockkorrelation: das Ergebnis für Sekunde t₀ steht erst bei t₀ + 1 s zur Verfügung.
Anwendungsbeispiel: Latenzeliminierung durch prädiktive Taktdisziplinierung
Die Beobachtungslatenz lässt sich nicht aus der Korrelation selbst entfernen — wohl aber aus dem Signalpfad, der beim Nutzer ankommt, indem Korrelation und Zeitausgabe entkoppelt werden.
Prinzip: Statt bei jeder Sekunde auf das aktuelle Korrelationsergebnis zu warten, führt der Empfänger einen freilaufenden, lokalen Sekundentakt (typischerweise aus einem TCXO/OCXO abgeleitet) und behandelt jeden — verzögert eintreffenden — Korrelationspeak nicht als Ausgabewert, sondern als Korrekturmessung für ein Zeitmodell, das kontinuierlich in die Zukunft extrapoliert. Ausgegeben wird immer die Prädiktion, nie das Rohergebnis der Korrelation.
$$\hat{t}[n+1] = \hat{t}[n] + T + \alpha \cdot e[n]$$
$$\hat{f}[n+1] = \hat{f}[n] + \frac{\beta}{T} \cdot e[n]$$
$$e[n] = t_{\text{Korrelation}}[n-N] - \hat{t}[n-N] \quad (N = \text{Sekunden Beobachtungsverzug})$$
Der Fehler $e[n]$ wird also gegen die um $N$ Sekunden in der Vergangenheit liegende Prädiktion ausgewertet — genau dort, wo das verzögerte Korrelationsergebnis tatsächlich hingehört — und fließt gedämpft ($\alpha$, $\beta$) in die laufende Extrapolation ein. Kurzfristige Ausgaben stützen sich ausschließlich auf das lokale Oszillatormodell, das über Sekunden bis Minuten hinweg eine Frequenzstabilität im ppb-Bereich aufweist; die Korrelation liefert lediglich die langfristige Drift- und Offsetkorrektur.
Abb. 2 — Der Anwender erhält durchgehend die Prädiktion; die verzögert eintreffende Korrelation korrigiert im Hintergrund nur noch das Modell für die nächste Prädiktion.
Download
python3 pzf_sequence_generator.py
python3 pzf_sequence_generator.py
Enthält die Referenzfolge (512-Bit-PZF, LFSR-Polynom 0x110) als eigenständiges Werkzeug zur Sequenzerzeugung. Der vollständige, lauffähige Korrelationsempfänger als GNU-Radio-Flowgraph steht im Download zu Stufe 4.
Stufe 1: Signal demodulieren
Vom rohen WAV-Mitschnitt zur lesbaren Uhrzeit über Hilbert-Transformation und Hüllkurve.
Stufe 2: Demodulation in GNU Radio
Dieselbe Verarbeitungskette als echtzeitfähige Blockverschaltung im GNU Radio Companion.
Stufe 4: PZF-Demodulation in der Praxis
Diese Theorie als lauffähiger Flowgraph — jeder Block mit Begründung, Dimensionierung und Prüfweg.