DVB-T Stick als SDR-Receiver für Tetra-Funk

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

 

Schreibe einen Kommentar