Software Defined Radio (SDR) mit Linux
Aus BraLUG-Wiki
...derzeit in Arbeit!
Inhaltsverzeichnis |
Was ist Software Defined Radio (SDR)?
...für den Anfang mal die Definition von Wikipedia zu SDR-
Hardware
Software
rtl-sdr
...
Installation (mit udev-Regel):
$ apt-get update $ apt-get install cmake libusb-1.0-0-dev git ... $ git clone git://git.osmocom.org/rtl-sdr.git ... $ cd rtl-sdr $ mkdir build $ cd build $ cmake ../ -DINSTALL_UDEV_RULES=ON ... $ make $ sudo make install ... $ sudo ldconfig
In den meisten Fällen ist das automatische Laden des DVB-T-Treibers zu verhindern. Dazu muss eine Datei /etc/modprobe.d/rtlsdr.conf mit folgenden Inhalt (als root) angelegt werden:
blacklist dvb_usb_rtl28xxu
Test mit rtl_test:
$ rtl_test Found 1 device(s): 0: NOXON, DAB Stick, SN: 0 Using device 0: Terratec NOXON DAB/DAB+ USB dongle (rev 1) Found Fitipower FC0013 tuner Supported gain values (23): -9.9 -7.3 -6.5 -6.3 -6.0 -5.8 -5.4 5.8 6.1 6.3 6.5 6.7 6.8 7.0 7.1 17.9 18.1 18.2 18.4 18.6 18.8 19.1 19.7 Sampling at 2048000 S/s. Info: This tool will continuously read from the device, and report if samples get lost. If you observe no further output, everything is fine. Reading samples in async mode...
Test mit rtl_sdr:
$ rtl_sdr /tmp/capture.bin -s 1800000 -f 392000000 Found 1 device(s): 0: NOXON, DAB Stick, SN: 0 Using device 0: Terratec NOXON DAB/DAB+ USB dongle (rev 1) Found Fitipower FC0013 tuner Sampling at 1800000 S/s. Tuned to 392000000 Hz. Tuner gain set to automatic. Reading samples in async mode...
...und was nun damit anfangen?
Scanner
rtl_power
Das Kommandozeilentool rtl_power ermöglicht das Scannen eines Frequenzbereiches für eine bestimmte Zeit oder fortlaufend in definierten Frequenz- und Zeitschritten.
> rtl_power -f 433M:435M:10k -i 1s -e 15m ism_433.csv Number of frequency hops: 1 Dongle bandwidth: 2000000Hz Downsampling by: 1x Cropping by: 0.00% Total FFT bins: 256 Logged FFT bins: 256 FFT bin size: 7812.50Hz Buffer size: 16384 bytes (4.10ms) Reporting every 1 seconds Found 1 device(s): 0: NOXON, DAB Stick, SN: 0 Using device 0: Terratec NOXON DAB/DAB+ USB dongle (rev 1) Found Fitipower FC0013 tuner Tuner gain set to automatic. Exact sample rate is: 2000000.052982 Hz ...
Obiges Beispiel scannt 15 Minuten lang den Frequenzenbereich zwischen 433MHz und 435MHz in 10-kHz-Schritten (tatsächlich eigentlich 7812.50Hz; siehe Programmausgaben...) jede Sekunde und schreibt die Werte in die Datei ism_433.csv.
In der csv-Datei werden für jede Messreihe die Intensitäts-Werte (in db) abgelegt. Daraus lassen sich dann nette Heatmap-Diagramme (x: Timestamp; y: Frequenz; z: Intensität) erstellen, welche recht anschaulich zeigen, was in dem untersuchten Frequentbereich so los ist. Zur komfortablen Weiterverarbeitung der csv-Daten habe ich mir ein kleines Tcl-Script geschrieben, welches im Ergebnis ein entsprechendes Heatmap-Diagramm mittels gnuplot generiert.
Gqrx
...
UKW-Radio hören
Radioempfang mit rtl_fm:
$ rtl_fm -M fm -s 64k -o 4 -A fast -l 0 -E deemp -f 106.2M | play -r 64k -t raw -e s -b 16 -c 1 -V1 - Warning: -o is very buggy Found 1 device(s): 0: NOXON, DAB Stick, SN: 0 Using device 0: Terratec NOXON DAB/DAB+ USB dongle (rev 1) -: (raw) Encoding: Signed PCM Channels: 1 @ 16-bit Samplerate: 64000Hz Replaygain: off Duration: unknown In:0.00% 00:00:00.00 [00:00:00.00] Out:0 [ | ] Clip:0 Found Fitipower FC0013 tuner Tuner gain set to automatic. Tuned to 106456000 Hz. Oversampling input by: 4x. Oversampling output by: 4x. Buffer size: 8.00ms Sampling at 1024000 S/s. Output at 64000 Hz. In:0.00% 00:00:22.78 [00:00:00.00] Out:1.45M [ =====|===== ] Hd:4.1 Clip:0
"Automatic Dependent Surveillance Broadcast (ADS-B)" empfangen/darstellen
Flugzeuge gucken ;-)...
$ git clone git://github.com/MalcolmRobb/dump1090.git ... $ cd dump1090.git $ make ... $ ./dump1090 --interactive --net
Im Browser:
http://localhost:8080/
Eigene Software
- rtl_power_gnuplot.tcl: Tcl-Script zum Generieren von Heatmaps aus den Messreihen von rtl_power
Informationsquellen
- http://sdr.osmocom.org/trac/wiki/rtl-sdr
- http://superkuh.com/rtlsdr.html
- https://www.ccc-mannheim.de/wiki/DVB-T_Stick_als_SDR-Receiver
- http://floatblog.de/699/gnu-radio-und-rtl-sdr-sticks
- http://wiki.yobi.be/wiki/RTL-SDR
- http://donny.de/index.php/interessen/technik/funk/gnu-radio/59-installation-von-gnu-radio-unter-ubuntu
- http://donny.de/index.php/interessen/technik/funk/gnu-radio/61-ein-einfacher-radioempfaenger-mit-dem-gnu-radio-companion
- http://rtlsdr.org/
- http://www.rtl-sdr.com/
- http://www.reddit.com/r/RTLSDR/
- http://www.asciimation.co.nz/bb/2014/03/19/using-rtl-sdr-to-automatically-receive-weather-satellite-images
- http://www.andreas-zahnleiter.de/html/sdr.html
Antennen: