Grundlagen
Vom realen zum digitalen Signal
Wie aus einer elektromagnetischen Welle in der Luft eine Information im Computer wird — am Beispiel des Wetterdatensenders DDH47.
In der digitalen Signalverarbeitung (DSP) wird ein analoges Signal durch Abtastung (Sampling) und Quantisierung digitalisiert. Um komplexe Hochfrequenzsignale effizient zu verarbeiten, verschiebt ein SDR das Signal durch Mischung (Downmixing) ins Basisband. Dabei werden die relevanten Frequenzen um 0 Hz zentriert. Alle weiteren Schritte wie Filterung, Demodulation oder Spektralanalyse (FFT) finden dann rein mathematisch auf digitaler Ebene statt.
Bevor wir uns in die mathematischen Tiefen von Filtern oder Algorithmen verlieren, müssen wir eine fundamentale Frage klären: Wie wird aus einer elektromagnetischen Welle in der Luft eigentlich eine Information in meinem Computer?
Der erste Teil dieses Weges erfordert Hardware, eine Antenne und einen passenden SDR-Empfänger. Die wichtigsten Parameter sind im Grundlagen-Artikel beschrieben. Output der Hardware sind Daten in Form von einzelnen, diskreten Messwerten des Signals.
Ab hier ist alles reine Mathematik. Für das folgende Beispiel verwenden wir daher eine Konserve, die diese Werte enthält. Die Werte sind mittels eines KiwiSDR-Empfängers aufgezeichnet worden. Das ermöglicht es auch ohne eigene Infrastruktur, in die Tiefen des SDR zu tauchen. Zudem kann mittels der in KiwiSDR implementierten Demodulationsblöcke das erwartete Ergebnis schon mal vorab festgelegt werden.
Beispiel: Wetterdatensender DDH47
Der Deutsche Wetterdienst sendet auf 147,3 kHz Wetterdaten für die Schifffahrt (Betriebsart F1B).

Bei FSK springt das Signal zwischen 147.300 Hz + 42,5 Hz und 147.300 Hz - 42,5 Hz.
Bei diesem Modulationsindex (Frequenzhub 42,5 Hz zu 50 Baud, h ≈ 1,7 — also breitbandiges FSK) fällt der Signalanteil genau auf der Mittenfrequenz auf nahezu null ab; die Energie konzentriert sich in zwei Keulen um die Mark- und Space-Frequenz. Das ist kein unterdrückter Träger wie bei PSK oder DSB-SC — FSK strahlt durchgehend Energie ab, nur eben bei wechselnder Frequenz. Bei schmalbandigem FSK (h < 0,5) wäre in der Bandmitte durchaus noch Energie sichtbar.
Ein Funkempfänger, wie der KiwiSDR, erfasst ein breites RF-Spektrum. Die Abtastrate (Sample Rate) bestimmt dabei, wie breit dieser Bereich ist. Ein Bereich von -fs/2 bis +fs/2 wird dabei digital abgebildet.
Die Abtastrate legt fest, wie schnell der Empfänger in der Lage ist, Daten pro Sekunde zu verarbeiten und darzustellen.
- Höhere Samplerate = breiterer Überblick über das Frequenzband.
- Niedrigere Samplerate = schmalerer Ausschnitt, was bei gleicher Rechenlast oft eine detailliertere Darstellung (höhere Frequenzauflösung) ermöglicht.
Die Verarbeitung in GNU Radio (Live vs. Datei)
Während ein Live-SDR eine einstellbare Mittenfrequenz besitzt, verhält sich eine WAV-Datei (eine „Konserve") anders:
- Reelle WAV (Audio): Enthält nur Realanteile. Das Spektrum ist symmetrisch und reicht von 0 Hz bis zur Nyquist-Frequenz (Samplerate/2). Im Grunde bildet dieses Signal den Output eines Lautsprechers ab.
- Komplexe WAV (I/Q): Enthält Real- und Imaginärteil. Hier sehen wir das volle Spektrum von -Samplerate/2 bis +Samplerate/2.
Im Beispiel hier (DDH47) wurde das Signal von einem WebSDR bereits von 147,3 kHz in den Audiobereich heruntergemischt. Die vorliegende WAV-Datei hat eine Samplerate von 8000 Hz.
Mit dem Tool ffprobe sehen wir, dass die Bitrate 128 kbps beträgt. Bei 16 Bit Tiefe ergibt das eine Samplerate von 8000 Hz (128.000 / 16 = 8.000).
Wird diese Datei in GNU Radio über einen Wav File Source Block in einen QT GUI Frequency Sink geleitet, sehen wir zwei Peaks bei ca. 640 Hz und 720 Hz.
Diese Frequenzen resultieren aus dem Downmixing des WebSDR-Empfängers. Die Differenz zwischen den Peaks beträgt genau die erwarteten 80 Hz bis 85 Hz des FSK-Shifts. Da die Datei eine Standard-Audio-WAV ist (reellwertig), erscheint das Spektrum im Display gespiegelt, sofern man nicht nur den Bereich bis 4 kHz betrachtet.
Für ein komplexwertiges Signal (wie z.B. eine SDR-Aufnahme im I/Q-Format, die in einem kompatiblen WAV-Format gespeichert wurde) zeigt die FFT-Analyse das gesamte Band von -Sample Rate/2 bis +Sample Rate/2, zentriert bei 0 Hz. Die horizontale Achse des Spektrum-Displays geht dann von -Sample Rate/2 bis +Sample Rate/2.
Mit einem einfachen Flowchart wird die Datei ausgelesen und über QT Sink im Frequenzbereich angezeigt.

Da die WAV-Datei nur reale Zahlen enthält und keinen Imaginärteil, ergibt sich wie erwartet das symmetrische Spektrum.

- Viele SDR-Weboberflächen (wie der KiwiSDR) oder Funkgeräte sind so gebaut, dass sie das Signal als Audio ausgeben, damit ein Mensch es „beurteilen" kann.
- Dafür nutzt man den USB-Modus (Upper Sideband). In diesem Modus wird das HF-Spektrum einfach 1:1 in den Audiobereich verschoben.
Der Empfänger wurde zur Aufzeichnung des Signals so eingestellt, dass seine „virtuelle Null" (der BFO) etwa 680 Hz unterhalb der Mittenfrequenz von DDH47 liegt.
- Die untere Frequenz 147.300 Hz - 42,5 Hz landet bei ca. 637,5 Hz.
- Die obere Frequenz 147.300 Hz + 42,5 Hz landet bei ca. 722,5 Hz.
Bei Verwendung von IQ-Daten wäre das Signal um 0 Hz zentriert, die WAV-Datei erfordert ggf. weitere Maßnahmen.
Das Verschieben eines Signals von einer beliebigen Frequenz (wie hier 680 Hz) exakt auf 0 Hz nennt man Zentrierung im Basisband. In GNU Radio ist der Frequency Xlating FIR Filter (Xlating steht für Translating/Verschieben) dafür vorgesehen. Ein FIR-Filter hat zudem den Vorteil, dass die Daten aus dem reellen Zahlenraum in IQ-Daten konvertiert werden. Dies hat einige Vorteile bei der weiteren Demodulation.
Eine Demodulation des FSK-Signals ist grundsätzlich auch mit den reellen Zahlen möglich. Man verwendet dazu z.B.:
Zero-Crossing Detektor: Man zählt, wie oft das Signal pro Sekunde die Nulllinie kreuzt. Da die Frequenz bei FSK springt, ändert sich die Anzahl der Nulldurchgänge. Ein einfacher Algorithmus wandelt diese Rate in Bits um.
Diskriminator-Schaltkreis (Filter-Bank): Man nutzt zwei sehr schmale Bandpassfilter. Einer ist auf die „Mark"-Frequenz (z.B. 640 Hz) und einer auf die „Space"-Frequenz (720 Hz) eingestellt. Danach misst man bei beiden die Energie. Wo mehr Energie ist, liegt das Bit.
PLL (Phase Locked Loop): Ein lokaler Oszillator versucht, der Phase des Eingangssignals zu folgen. Die Steuerspannung, die den Oszillator nachregelt, entspricht direkt dem Datensignal.
Der Zero-Crossing-Detektor ist zwar weitgehend amplitudenunabhängig, reagiert aber empfindlich auf zusätzliche, rauschbedingte Nulldurchgänge. Der Diskriminator per Filter-Bank ist dagegen direkt von der Signalamplitude abhängig, da er auf Energiemessung basiert. In Summe sind alle drei Verfahren hinsichtlich Bandbreitenbedarf und Rauschempfindlichkeit der Demodulation über IQ-Daten unterlegen.