Software

Ein automatischer Recorder (nicht nur) für die Ortsfrequenz

Vorsicht. Der vorliegende Artikel ist als Programmvorstellung zu betrachten. Ich bitte um Verständnis dafür, dass ich keine vollständige Konfigurations- oder Installationsanleitung gebe. Interessierte Leser sind eingeladen, das Programm zu installieren und eigene Erfahrungen zu sammeln. Ich betrachte das Programm als Machbarkeitsstudie, es taugt aber durchaus für den Einsatz im Funkalltag. Ich bin nicht Autor des Programms, hinterlege aber für den Fall von Fragen meine Kontaktdaten am Ende des Artikels.

Man stelle sich einen Empfänger vor, der über bis zu 10 frequenzvariable Demodulatoren verfügt. Ein solcher Empfänger wäre in der Lage, 10 Signale parallel zu empfangen. Muss dieser Empfänger teuer sein?

Nein, er ist, je nach Anforderungen an die Bandbreite, sehr preiswert. Wo ist der Haken? Den Empfänger gibts nicht als Fertiggerät. Der Bau erfordert keinerlei Lötkenntnisse da er nur aus Software besteht, aber wir brauchen Linux, GNU-Radio und einen SDR RX. Zum Beispiel einen der vielen verschiedenen DVB-T Sticks auf Basis des RTL2832u Demodulators.

Herkömmliche Scannerempfänger wechseln automatisch von Kanal zu Kanal und stoppen, wo ein Signal gefunden wird. Auf diese Weise können große Frequenzbereiche abgesucht werden. Allerdings dauert eine komplette Runde, je nach Anzahl der Kanäle, mehrere Sekunden. Nur kurz anliegende Signale werden nicht zuverlässig gefunden. Außerdem ist immer nur die Demodulation eines Signals möglich, der Scannvorgang pausiert auf jeder belegten Frequenz.

Die hier vorgestellte Software funktioniert anders. Die Besonderheit unseres Empfängers: der zu überwachende Frequenzbereich wird nicht abgescannt. Belegte Frequenzen werden mittels Spektrumanalyse ermittelt. Enthält das Ergebnis der Analyse ein Signal mit einer genügend großen Signalstärke, so wird dessen Frequenz an einen verfügbaren Demodulator übergeben. Die Kanalsuche (Spektrumanalyse) läuft parallel weiter. Mehrere Demodulatoren können auf diese Weise parallel arbeiten. Der Vorteil: eine Kanalbelegung wird innerhalb eines Bruchteils einer Sekunde erkannt und mehrere Signale können gleichzeitig empfangen werden. Der Ton jedes Demodulators landet auf Wunsch zur späteren Wiedergabe in einer WAV-Datei.

Die Software heisst “ham2mon” und sieht so aus:

image01

Im oberen Bereich der Programmoberfläche finden wir die von vielen anderen SDR Programmen bekannte Spektrumanzeige (SPECTRUM). Der überwachbare Frequenzbereich richtet sich nach der Leistungsfähigkeit der verwendeten Hardware. Die gestrichelte Linie innerhalb der Spektrumanzeige markiert die Signalstärke die überschritten werden muss, damit ein Signal in Form einer WAV Datei aufgezeichnet wird. Zum Zeitpunkt des Screenshots wurden zwei Signale (145.675 und 145.225) zeitgleich demoduliert. Beide ueberschreiten die Aufnahmeschwelle, sie werden demoduliert und ihr Audiosignal wird aufgezeichnet.

Erkannte und aktuell demodulierte Signale werden in der “CHANNELS” Anzeige unten links aufgelistet. Störsignale oder Frequenzen mit weniger interessanter Belegung (z.B. APRS) können von der Überwachung und Aufzeichnung ausgenommen werden. Sie landen unten mittig in der “LOCKOUT” Liste. Unten rechts werden zudem noch wichtige Parameter angezeigt, z.B. die Mittenfrequenz, die Verstärkung und die Bandbreite. Zum Zeitpunkt des Screenshots wurde mit einer Mittenfrequenz von 145.500 und einer Bandbreite von 1 MHz gearbeitet (letzteres erkennbar an der Sampelrate von 1 Msps).

Ehe wir die Bedienung des Programms im Detail betrachten, lohnt ein Blick auf ein Video des Programmautors, welches ham2mon in Aktion zeigt.

ham2mon nutzt den Funktionsumfang von GNU Radio. GNU Radio ist ein universelles DSP und SDR Framework. Das schränkt die Nutzbarkeit von ham2mon auf Betriebssysteme ein, für die auch GNURadio verfügbar ist. Das sind zum gegenwaertigen Zeitpunkt beispielsweise alle Linux-Distributionen, MacOS und weitere. Unter Windows nutzt man eine Virtuelle Maschine mit Linux, bracht dann aber umso mehr einen schnellen Rechner)

Linux Nutzer installieren GNU Radio. Anschließend laden sie sich ham2mon herunter.

Zusätzlich zur Software wird noch ein SDR Empfänger benötigt. Hier bietet sich der beliebte DVB-T Stick mit RTL2832U Demodulator an. Wer Hinweise zur Auswahl eines Sticks sucht, sei auf den Text unter http://paste.bytespeicher.org/s7wdnzgayqv3 verwiesen. Die Sampelrate dieser preiswerten Hardware erlaubt die Überwachung eines 2 MHz breiten Frequenzbandes, einen ausreichend schnellen Rechner vorausgesetzt. Das ist beispielsweise das komplette 2m Amateurfunkband.

Gestartet wird ham2mon aus einer Shell heraus, also per Kommandozeile. Besitzer eines RTL2832u DVB-T Sticks verwenden üblicherweise folgenden Aufruf:

image00

Die einzelnen Optionen haben dabei folgende Bedeutung:

  • -a legt fest, auf welche SDR Hardware zugegriffen werden soll, “rtl” steht dabei für eine Hardware mit RTL2832u Demodulator, also z.B. einen passenden USB-DVB-T Stick. Unterstützt wird aber auch noch andere Hardware, mehr dazu kann unter https://github.com/madengr/ham2mon nachgelesen werden
  • -n legt die Anzahl der genutzten Demodulatoren fest. Wieviele Demodulatoren tatsächlich genutzt werden können hängt von der Leistungsfähigkeit der eigenen Hardware ab. Es empfiehlt sich, diesen Wert zunächst niedrig zu halten und dann experimentell zu erhöhen. Vier parallele Demodulatoren sollten kein Problem darstellen.
  • -f legt die Mittenfrequenz fest, also die Frequenz, die die in der Mitte des überstrichenen Spektrums liegt, 145E6 steht hierbei für 145 mit 6 Nullen, also 145000000 Hz bzw 145 MHz.
  • -r bestimmt die Samplerate. Ein Wert von 2E6 legt eine Rate von 2MS/s fest, bei einer Mittenfrequenz von 145 MHz reicht der überwachbare Frequenzbereich von 144 MHz bis 146 MHz
  • -g bestimmt die Verstärkung, welche Werte hier möglich sind von der verwendeten Hardware abhängig, mehr dazu, wie mögliche Werte ermittelt werden können, weiter unten.
  • -s konfiguriert den Wert für die Rauschsperre
  • -v stellt die Lautstärke ei
  • -t konfiguriert die Stärke eines Signales, die überschritten werden muss, um eine automatische Aufnahme zu starten
  • -w veranlasst, dass Aufnahmen auf die Festplatte geschrieben werden
  • -c erlaubt eine Frequenzkorrektur. Mehr zu ermittlung des Korrekturwertes weiter unten

Die im Beispiel nicht angegebene Option -m aktiviert bei Bedarf den “Mute” Modus, es werden keine Töne über den Lautsprecher ausgegeben. Dieser Schalter ermöglichst zusätzlich den Einsatz auf Hardware, die nicht über die Möglichkeit einer Soundausgabe verfügt. Auch beim Remoteeinsatz auf z.B. einem Raspberry Pi findet sie Verwendung.

Die Werte einiger Parameter lassen sich zur Laufzeit auch noch mittels Tastaturkürzel variieren, allzu große Angst vor der Vergabe “falscher” Parameter ist daher unnötig.

Wie oben erwähnt, kann ein Wert für die Verstärkung und auch ein Frequenzkorrekturwert angegeben werden. Beide Werte lassen sich für einen geeigneten DVB-T Stick mittels des Werkzeugs “rtl_test” ermitteln. Man ruft dazu “rtl_test -p” auf und lässt es ein paar Minuten laufen. Neben den möglichen Werten für die Verstärkung (Supported gain values) wird auch der gemittelte (cumulative) Wert für die Frequenzkorrektur ausgegeben. Nach ein paar minuten bricht man die Ausgabe mittels STRG+C ab, den letzten gemittelten Wert verwendet man. Es empfiehlt sich, diesen Wert regelmaessig neu zu ermitteln, der Oszillator der meisten DVB-T Sticks ist nicht sehr temperaturstabil.

image03

Wir setzen die ermittelten Werte in den oben aufgeführten Programmaufruf ein und starten ham2mon durch einen Druck auf die ENTER Taste.

Nach dem Programmstart sehen wir die bereits weiter oben beschriebene Programmoberfläche. Von nun an kann das Programm mittels verschiedener Tastaturkürzel gesteuert werden:

  • t bzw r variiert die Ansprechschwelle für Aufzeichnungen um +/- 5 dB
  • p bzw o variiert den oberen Grenzwert der angezeigten Signalstärke um +/- 10 dB
  • w bzw q variiert den unteren Grenzwert der angezeigten Signalstärke um +/- 10 dB
  • g bzw f variiert die Verstärkung um +/- 10 dB
  • s bzw a variiert die Ansprechschwelle der Rauschsperre um +/- 5 dB
  • . bzw , variiert die Lautstärke um +/- 1 dB
  • k bzw j variiert die Mittenfrequenz um +/- 100 kHz
  • m bzw n variiert die Mittenfrequenz um +/- 1 MHz
  • v bzw c variiert die Mittenfrequenz um +/- 10 MHz
  • x bzw z variiert die Mittenfrequenz um +/- 100 MHz
  • 0..9 fügt die jeweils gerade aktive Frequenz der Lockout-Liste hinzu (Frequenzen in der Lockout Liste werden nicht überwacht)
  • l löscht die komplette lockout Liste Clear lockouts
    CTRL-C beendet das Programm

Der demodulierte Ton von Signalen, deren Stärke die eingestellte Aufzeichnungsschwelle überschreitet, wird aufgezeichnet. Die zugehörigen WAV Dateien landen dabei in einem Unterordner mit dem Namen “wav”.

Zur Wiedergabe der Aufzeichnungen verwende ich das Konsolenprogramm namens “mocp”. natürlich kann dafür jedes beliebige andere Audiowiedergabeprogramm verwendet werden.

image02

Kommt es während ham2mon läuft zu “Bildwacklern” so liegt dies in der Regel an Performanceproblemen. Oft ist der verwendete Rechner nicht leistungsfähig genug. Eine Reduzierung der Anzahl der verwendeten Demodulatoren, die Reduzierung der verwendeten Sampelrate aber auch ein Wechsel an eine andere USB Schnittstelle bringt in der Regel Abhilfe, probieren geht hier über studieren.

Bei mir läuft ham2mon auf einem Raspberry Pi2 unter Debian an einem DVB-T Stick mit einer Sampelrate von 1 MS/s (Bandreite 1 MHz) und 4 parallelen Demodulatoren. Auch die Nutzung als aufzeichnende “Funkwanze” an entfernten Orten ist denkbar. Nutzer der Software studieren bitte auch §89 TKG. Nicht jedes empfangbare und mittels der Software überwachbare Signal darf auch gehört werden.

Wer tiefer in die Materie einsteigen will oder Informationen zur Funktionsweise und der verwendeten digitalen Signalverarbeitung sucht, findet unter https://github.com/madengr/ham2mon den Quellcode und eine einführende technische Dokumentation. Dank der verwendeten Programmiersprache Python sind eigene Experimente mit Veränderungen am Programmcode leicht.

Es sei noch einmal darauf hingewiesen, dass ham2mon derzeit weniger eine fertige Software, als vielmehr eine Machbarkeitsstudie ist, die aber durchaus praktisch eingesetzt werden kann.

Falls Probleme bei der Installation oder Konfiguration auftreten, bin ich gern bereit zu helfen. Ihr trefft mich unter Anderem regelmäßig im Erfurter Hackerspace Bytespeicher oder auch im IRC (Netzwerk Hackint, Kanal #bytespeicher)

Ich wünsche eine besinnliche Weihnachtszeit und viel Spaß bei Experimenten mit ham2mon.

  1. Super Bericht!!! Vy 73 de Mario , dj7mh

  2. Ein sehr informativer Bericht. Daumen hoch!
    Wie starte ich ham2mon, wenn ich einen hackrf one (der natürlich richtig installiert ist und z.B. von gqrx etc. erkannt wird) benutze?
    Danke!
    JH

  3. Rolf Lohmer

    Hallo, in der Beschreibung kann ich keinen Hinweis finden, wo und wie ham2mon zu installieren ist. GNUradio, Osmosdr und rtl28xxu sind unter mint18 installiert und lauffähig (rtl_test, 433mon, gqrx laufen). Danke Rolf, DD9PR

    • Ich zitiere den entsprechenden Abschnitt aus dem Artikel.

      Linux Nutzer installieren GNU Radio. Anschließend laden sie sich ham2mon herunter.

      Darin ist eine Zip-Datei verlinkt. Nachdem entpacken hilft die Readme-Datei weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*