SDR Software unter Linux

Beispiel: WSPR mit einem SDR Empfänger

SDR Empfänger sind im Prinzip nur einfache Mischer welche die Empfangsfrequenz in einen Bereich umsetzen den eine Soundkarte noch verarbeiten kann, also meist irgendwo um die 20kHz. Simple Direktmisch-Empfänger machen genau das gleiche. SDR Empfänger benutzen jedoch 2 Empfänger gleichzeitig, wobei einer mit einer um 90 Grad phasenverschobenen LO Frequenz gespeist wird.

Man erhält so zwei Empfangssignale, die sich akustisch gleich anhören, jedoch 90 Grad phasenverschoben sind.

Dank dieser Phasenverschiebung kann eine geeignete Software die Demodulation übernehmen was den Aufwand an Bauteilen erheblich reduziert.

SDR auf Singleboard Computern:

Auf Raspi, Odroid und Co. hat man nicht allzuviel Rechenleistung, die üblichen SDR Programme werden die Boards also ziemlich ausreizen, aber egal, wenns geht dann ist es gut.

Mein Wahl fällt auf das Programm "quisk". In aller Regel lässt es sich über die Softwareverwaltung einfach installieren.

Am Beispiel des RaspberryPI-2-ModB:

Image: 

Mit dem originalen Image hat man viel zu tun, Sprache Einstellen, Pakete Installieren usw. Daher hat DG6RCH ein Image vorbereitet, wo schon vieles erledigt ist. Dieses nehme ich als Ausgangsbasis. Das Image kann hier heruntergeladen werden:

http://dv4m.ham-dmr.ch/V1.6/Linux/ARM/RaspberryPI_Images/raspi_2_only_201015.img.gz

* Entpacken unter Linux mit: gzip  -d  raspi_2_only_201015.img.gz
* kopieren des Images auf SD Karte unter Linux mit: dd bs=4M if=raspi_2_only_201015.img of=/dev/???

??? ist der Devicename der SD Karte, also sde, sdf oder wie auch immer. Der Buchstabe hängt vom PC ab (Vorsicht, bei Falscheingabe kann man die Festplatte überschreiben ! Also bitte sicherstellen die richtige Bezeichnung zu benutzen !)

Ist die SD Karte bespielt steckt man sie in den Raspi2B und bootet.

Nach dem Booten startet dieses Image automatisch das Programm dv4mini, wer das nicht benötigt (weil er keinen DV4mini USB Stick hat), der löscht im Symbol "Ordner Autostartdateien" einfach diesen Eintrag.

Installation der für QUISK benötigten Programme:

wie in der Originalanleitung beschrieben: http://james.ahlstrom.name/quisk/docs.html#Installation

installiert man:

apt-get update
apt-get upgrade
apt-get install python2.7-dev  fftw3-dev  libasound2-dev  libpulse-dev  portaudio19-dev python-wxgtk3.0

Installation von QUISK:

Man kann quisk auch mit der Softwareverwaltung installieren. Allerdings bekommt man hier immer eine veraltete Version (Version 3) welche bei mir immer hängen geblieben ist. Die neueste Version 4 muss man per Hand nachinstallieren, dafür erhält man eine viel bessere und stabile Version:

Man lädt quisk von dieser Seite herunter: http://james.ahlstrom.name/quisk/ und zwar "The latest Quisk for Linux or Windows including source".

Die weiteren Arbeiten finden in einer Konsole statt. Zunächst entpackt man die heruntergeladene Datei:
tar xzf quisk-4.0.3.tar.gz

man erhält jetzt ein Unterverzeichnis "quisk-4.0.3" und geht dort hinein.

Zum Erstellen von quisk gibt man ein:  make

Nach kurzer Zeit ist der Vorgang beendet um das neue quisk steht zur Verfügung.

Konfiguration von Quisk:

Vor dem Start muss noch eine Konfigurationsdatei angelegt werden. Diese liegt im Home Verzeichnis und hat den Namen .quisk_conf.py also:
/home/pi/.quisk_conf.py

Diese Datei enthält nur von den Defaulteinstellungen abweichenden Einträge, und das sind nur wenige, hier ein Beispiel das bei mir gut funktioniert:

sample_rate = 48000 
name_of_sound_capt = "hw:1" 
name_of_sound_play = "hw:1" 
channel_i = 0 
channel_q = 1

Die Sample Rate ist 48000 und richtet sich nach der Soundkarte. Es gibt auch Soundkarten die mit 96000 oder gar 192000 arbeiten können.

Der Eintrag "hw:1" gits an dass wir die Soundkarte 1 benutzen wollen, das ist meine extern angeschlossene UCA222. Die Raspi-interne hat die Nummer 0, und die externe daher 1. Man kann das prüfen mit:  aplay -l

Starten von Quisk:

dazu geht man in das Verzeichnis in welchem man vorher quisk erstellt hat und schreibt:  ./quisk

(Experten können sich quisk auch nach /usr/bin kopieren, dann aber nicht vergessen die Defaultkonfigurationsdateien ebenfalls zu kopieren).

erste Prüfung:

Sobald quisk gestartet ist beginnt es sofort von der Soundkarte aufzunehmen. Im Fenster "Graph" kann man ein Spektrum sehen. Schließt man einen Kopfhörer an den Ausgang der Soundkarte an, so kann man das von quisk fertig demodulierte Signal hören, mit der Filter spielen usw.

Der Raspberry PI 2-Mod B ist mit Quisk extrem ausgelastet, fast schon überlastet. Daher sollte man die Bildschirmausgaben so gering wie möglich halten. Ist das "Graph" Fenster offen kann es zu hörbaren Aussetzern kommen. Man wählt das Fenster "Help", dann sind alle Ausgaben abgeschaltet und es bleibt mehr CPU Zeit für die Demodulation.

Jetzt kann man bereits SDR Betrieb machen, falls man aber mit dem Wasserfall usw arbeiten will dann sollte man sich einen schnelleren Computer zulegen, wie den Odroid XU4 oder ähnliches.

Umleitung der Sound-Ausgabe zu anderen Programmen:

ich benötige Quisk nur zur SDR Demodulation um das fertige Sound-Signal mit anderen Programmen (WSPR) weiterzuverarbeiten. Also muss eine Verbindung der Ausgabe von Quisk zur Aufnahme des anderen Programms hergestellt werden. Das macht man mit Puleaudio. Am Raspberry muss man pluseaudio erst installieren, dazu geht man in die Softwareverwaltung und installiert "pavucontrol", den Rest installiert er dann gleich mit.

Laufen alle Programme dann kann man in pavucontrol bei den Aufnahmegeräten für Quisk die Soundkarte auswählen, sowie für das z.B. WSPR Programm den Eintrag "Monitor of..." . Dann wird die Ausgabe von Quisk zum anderen Programm umgeleitet, fertig.

Damit Quisk auf Pulseaudio zugreift muss man ändern in: /home/pi/.quisk_conf.py

name_of_sound_capt = "pluse" 
name_of_sound_play = "pulse" 

Fazit:

SDR mit dem Raspi geht, aber mühsam da er eigentlich zu langsam ist. Spaß macht es aber mit einem Odroid XU4, da gehts richtig schön dahin. Die Installation ist sehr ähnlich wie oben für den Raspi beschrieben.