In Teil 1 haben wir erklärt, wie man mit dem Raspberry Pi und einem DVB-T-USB-Stick einen SDR-Sender aufbaut, der über IP erreichbar ist. Im folgenden Tutorial beschreiben wir, wie mit dem SDR-Receiver Tetra-Funk empfangen und decodiert werden kann.
Dabei ist – in Deutschland – das Telekommunikationsgesetz TKG unbedingt zu beachten. Nicht alles, was man technisch empfangen kann, darf man auch empfangen und auswerten!
Voraussetzungen für den Empfang
Folgende Voraussetzungen müssen erfüllt sein, um mit einem DVB-T USB-Stick Funknetzwerke zu empfangen, aufzuzeichnen und auszuwerten.
- Ein DVB-T USB-Stick auf Basis des Realtek 2832U Chips. Der Link zur Bestellseite ist ebenfalls in Teil 1 des Tutorials beschrieben.
- PC mit Linux-Betriebssystem
- rtl-sdr
- libosmocore
- Gnuradio
Installation von Osmo-tetra
Dateien vom git repository clonen:
git clone git://git.osmocom.org/osmo-tetra.git
osmo-tetra übersetzen:
cd osmo-tetra/src make
Nutzung zum Empfang von Tetra-Funk
Mit dem nachfolgenden Befehl kann man einzelne Samples aus dem Funkempfang aufzeichnen:
rtl_sdr -f 428055000 -s 1024000 /mnt/tmp/capture.bin
428,055 MHz ist die Downlink Frequenz der Tetra-Funk Basisstation. Das kann und muss man natürlich jederzeit den eigenen Bedürfnissen entsprechend anpassen.
Anschließend kann man mit Gnuradio die Samples in ein cfile umwandeln. Wie das funktioniert, wird hier beschrieben.
Im nächsten Schritt muss man das cfile demodulieren: Hierzu führt man im osmo-tetra Verzeichnis den nachfolgenden Befehl aus:
./sdr/osmo-tetra/src/demod/python/tetra-demod.py -i /tmp/capture.cfile -o /tmp/out.float -s 1024000
Das float file in bits umwandeln:
./sdr/osmo-tetra/src/float_to_bits /tmp/out.float /tmp/out.bits
Anschließend den Befehl tetra-rx ausführen:
./sdr/osmo-tetra/src/tetra-rx /tmp/out.bits
Die Ausgabe sollte im Erfolgsfall etwas so aussehen:
TMB-SAP SYNC CC 000001(0x01) TN 01(1) FN 10000(16) MN 123456(128) MCC 0000000001(1) MNC 00000000000001(1) TMV-UNITDATA.ind 51/16/1/000 BSCH CRC=1 SYNC TMV-UNITDATA.ind 51/16/1/000 AACH CRC=1 ACCESS-ASSIGN ACCESS-ASSIGN PDU: DL_USAGE: Unallocated UL_USAGE: Unallocated CRC COMP: 0x1d0f OK SB2 51/16/1/000 type1: 1000001101110000010011000000010001101110011010110111011001101101000000100000000000000000000000011111111111111111110100100101 TMV-UNITDATA.ind 51/16/1/000 UNKNOWN CRC=1 BROADCAST BNCH SYSINFO (DL 428055000 Hz, UL 418055000 Hz), service_details 0x0d25 Hyperframe 46950 Advanced link: 1 Air encryption: 1 SNDCP data: 1 unknown 0x8: 0 Circuit data: 0 Voice service: 1 Normal mode: 0 Migration supported: 0 Cell never uses minimum mode: 1 Priority cell: 0 De-registration mandatory: 1 Registration mandatory: 1