Projekte
Korrelative Phasenauswertung
Korrelationsbasierte Auswertung der DCF77-Phaseninformation (PZF) für Zeitauflösung im Mikrosekundenbereich — inklusive Latenzbilanz und einem latenzfreien Anwendungsbeispiel per prädiktiver Taktdisziplinierung.
Verfahren, theoretische Grundlage und technische Umsetzung eines Korrelationsempfängers für die pseudozufällige Phasenmodulation (PZF) des DCF77-Trägers — als Erweiterung der bestehenden Hilbert/Envelope-Verarbeitungskette aus den vorigen beiden Stufen.
- Träger: 77,5 kHz, PZF seit 1983 (PTB)
- Ziel-Genauigkeit: µs-Bereich statt ms-Bereich (AM-Flanke)
- Bezug: Erweiterung der bestehenden Hilbert/Envelope-Kette aus Stufe 1 und Stufe 2
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.
Technische Umsetzung
Die Erweiterung setzt vor dem bestehenden complex_to_mag-Block an, da dieser die Phaseninformation durch Betragsbildung unwiderruflich verwirft.
Ein Vorbehalt bleibt: Die erreichbare absolute Zeitgenauigkeit ist durch die Stabilität des Mischoszillators begrenzt, den der KiwiSDR intern für die Herunterkonvertierung verwendet — jede Drift dieses fremden, nicht selbst kontrollierten Oszillators erscheint in der Korrelation ununterscheidbar von einer echten Trägerphasendrift. Für eine reproduzierbare µs-Referenz wäre eine eigene IQ-Aufnahme (z. B. RTL-SDR/HackRF direkt auf 77,5 kHz) vorzuziehen, da dort der Down-Conversion-Oszillator selbst bekannt und kalibrierbar ist.
Normierung auf den Einheitskreis (complex ÷ |complex|): Entfernt die AM-Hüllkurve aus dem analytischen Signal, ohne die Phaseninformation zu berühren — übrig bleibt ein reiner Phasor $e^{j\varphi(t)}$. Numerisch unkritisch, solange kurz vor den AM-Nulldurchgängen (tiefe Modulation) auf Betrag > ε geprüft wird, um Division durch Werte nahe null zu vermeiden.
Trägerauskopplung (× conj(lokaler NCO)): Ein lokal erzeugter, auf die Nennfrequenz und bekannte Grobphase (aus der AM-Sekundenmarke) synchronisierter numerisch kontrollierter Oszillator wird mit dem normierten Phasor konjugiert komplex multipliziert. Das Ergebnis ist die reine Phasenabweichung $\Delta\varphi(t)$ gegenüber dem Nennträger — das eigentliche PZF-Chipsignal, jetzt als Basisbandgröße vorliegend.
Matched Filter / Korrelator (FIR-Korrelation oder FFT-Blockkorrelation): Zwei äquivalente Implementierungen: (a) zeitkontinuierlicher FIR-Filter, dessen Taps die zeitgespiegelte, konjugierte Referenzfolge sind — läuft sample-für-sample mit, Ausgang ist ein fortlaufendes Korrelationssignal. (b) blockweise FFT-Korrelation $\text{IFFT}(\text{FFT}(x) \cdot \overline{\text{FFT}(s)})$ — rechnerisch günstiger bei langen Folgen, aber grundsätzlich blockbasiert. Für die Latenzbetrachtung weiter unten ist genau dieser Unterschied entscheidend.
Peak-Interpolation (parabolische Interpolation): Da die Abtastrate (1200 Hz im bestehenden Graphen) gröber ist als die angestrebte µs-Auflösung, wird die Peak-Lage nicht dem nächstgelegenen Sample entnommen, sondern durch parabolische Interpolation der drei Abtastwerte um das Maximum geschätzt — Standardtechnik aus GPS-Codekorrelatoren, reduziert den Quantisierungsfehler um etwa eine Größenordnung.
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.