Kombiniert die Ergebnisse aus Stufe 2 (AM/BCD-Zeitcode-Dekodierung,
dcf-77-demodulation-in-gnuradio)
und Stufe 4 (PZF-Korrelation, dcf77-pzf-praxis)
in einem einzigen Flowgraph mit ZMQ-Anzeigeclient. Die Anzeige zeigt nun
HH:MM:SS statt nur HH:MM — die Minute kommt aus dem AM-Zeitcode, die
Sekunden werden im Sekundentakt aus den PZF-Korrelationspeaks gezählt.
Beide Auswertungen brauchen zwar unterschiedliche Vorverarbeitung (die
AM-Hüllkurve für Stufe 2, den phasengetreuen Träger für Stufe 4), aber beide
Informationen stecken bereits in derselben IQ-Aufnahme: complex_to_mag
liefert direkt die Hüllkurve (kein Hilbert-Umweg wie in Stufe 1/2 nötig, da
hier schon echtes IQ vorliegt), und der Costas-Loop-Zweig aus Stufe 4 liefert
unverändert die Phase. Der Flowgraph verzweigt daher direkt nach dem
Float To Complex-Block in zwei unabhängige Pfade.
SND.178.63.122.223_2026-07-25T11_29_19Z_77.50_iq.wav (dieselbe wie in Stufe 4).
Diese Aufnahme wurde in Stufe 4 wegen ihrer PZF-Eigenschaften ausgewählt
(kein Einschwing-Sprung, geringe Taktdrift) — für die AM-Dekodierung ist sie
allerdings ungünstiger als andere Testaufnahmen des Projekts: Die AGC des
Empfängers dämpft die 100/200-ms-Amplitudenabsenkungen sichtbar, sodass die
Standard-Schwellwerte aus Stufe 2 (0,15/0,25) hier nicht funktionieren. Nach
Kalibrierung an dieser Aufnahme (Schwellwerte 0,35/0,55) liefert die
Puls-Erkennung 74 von 75 möglichen Pulsen sauber (0 ungültige Klassifikationen).
repeat endlos wiederholt.
Ein vollständiger DCF77-Zeitrahmen erfordert aber eine volle Minute
zusammenhängender Bits ab der erkannten Minutenmarke (der Sekunde ohne
Amplitudenabsenkung) — bei einer 75-Sekunden-Schleife kann das bedeuten, dass
sich der Rahmen erst über den Schleifenübergang hinweg vervollständigt. In
Tests dauerte es rund 100 Sekunden Laufzeit, bis der erste vollständige,
plausible Zeitstempel erschien. Die Sekundenanzeige dagegen tickt von Anfang
an im Sekundentakt, unabhängig vom AM-Rahmen.Der Original-Decoder aus Stufe 2 kennt nur eine Lückenschwelle: Jede Pause
zwischen zwei erkannten Pulsen, die deutlich länger als eine Sekunde ist, wurde
als Minutenmarke (das nicht gesendete 59. Bit) gewertet und löste eine sofortige
Dekodierung aus. Bei dieser Aufnahme reicht das nicht, weil gelegentlich auch
mitten in einer Minute ein einzelner Puls nicht sauber erkannt wird (die
gedämpfte AM-Absenkung liegt näher am Rauschen). Der Decoder in diesem Ordner
unterscheidet deshalb zwei Fälle an der Lückenlänge:
Verifiziert an einer dreifach aneinandergehängten Kopie der Aufnahme: zwei
unabhängig erkannte Minutenrahmen lieferten exakt denselben, plausiblen
Zeitstempel (13:31 Uhr, MESZ, Do. 30.09.2051).
dcf77_kombiniert.grc / .py — der kombinierte Flowgraph.dcf77_display.py — Anzeigeclient (Port 5556, sonst identisch zu Stufe 2'sSND.178.63.122.223_2026-07-25T11_29_19Z_77.50_iq.wav — Testaufnahme.python3 dcf77_kombiniert.py
# in einem zweiten Terminal:
python3 dcf77_display.py
python3 dcf77_kombiniert.py
# in einem zweiten Terminal:
python3 dcf77_display.py
Stufe 2 nutzt Port 5555, dieser Flowgraph Port 5556 — beide Anwendungen
können parallel laufen, ohne sich zu stören.