Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Eigener DAB Sender, die Zweite
#1
Hallo zusammen,

vor einigen Tagen hatte ich ja über ein sehr preisgünstiges SDR,  eine USB3.0 VGA Videokarte, berichtet.
Heute will ich einmal den Weg zum eigenen DAB+ Sender aufzeigen.

Was brauchen wir?

1. Sendematerial in CD-Qualität 48k 16 Bit oder ein Programm was einen Internetradiosender empfängt und in ein CD-Format on-the-fly transcodieren kann (VLC kann das!).

2. Die Tools aus dem OpenDigitalRadio-Projekt, siehe https://github.com/Opendigitalradio/

3. Einen halbwegs "leistungsfähigen" PC (so ab Core2QUAD aufwärts) mit genügend RAM, also nix besonderes mehr.

4. Eine Fl2K USB3.0 VGA Grafikkarte für 10-20 Euro als Sender + Kleinkram für Ausgangsfilter ......

5. Ein paar Biere oder Kaffees um den ganzen Theoriekram zu verstehen.


Schauen wir uns ersteinmal den Sendezweig eines DAB+ SDR an.

   


Wie wir sehen, kommen die ganzen Audiosignale aus Studio A,B,... in CD-Qualität über irgendwelche Datenprotokolle zu uns zum Sender. Hier in unseren Beispiel nutzen wir einfach mal zwei Kanäle, die wir als 48k-WAV bereits auf der Festplatte vorliegen haben. Es könnten aber auch real existierende Zuspieler aus Studios sein, oder Internetradiostationen die wir empfangen und transcodieren.

Wir, der Multiplex Operator, codieren mit einem Tool aus dem OpenDigitalradioProjekt die Audioprogramme DAB(+) konform um.

Dazu benötigen wir diese Software:
https://github.com/Opendigitalradio/ODR-AudioEnc

Wir holen uns die Software aus dem github und kompilieren sie entsprechend der README.md auf unserem Computer.

Danach verfahren wir wie in Punkt 4.1 (Offline Betrieb mit Dateien) dieser Anleitung. http://opendigitalradio.github.io/mmbtoo...btools.pdf

Haben wir unsere Radioprogramme in ein DAB(+)-konformes Format gebracht, bauen wir mit dem Tool odr-dabmux unseren sendefähigen
Multiplex.

odr-dabmux bekommt man gebenfalls aus dem Github-Repository von OpenDigitalRadio: https://github.com/Opendigitalradio/ODR-DabMux

Damit odr-dabmux laufen kann, müssen wir wie in Punkt 4.1 der oben gezeigten Anleitung, eine Beschreibungsdatei des Multiplex erstellen. Ein Beispiel ist in der PDF-Anleitung enthalten, ich habe hier mal schnell eine eigene Beschreibung angelegt.

Zitat:general {
    dabmode 1
    nbframes  0
}
remotecontrol { telnetport 0 }
ensemble {
    id 0x4fff
    ecc 0xec ; Extended  Country  Code
    local -time -offset  auto
    international -table 1
    label "mmbtools"
    shortlabel "mmbtools"
}
services {
    srv-p1 { label "Nightwish Kanal1" }
    srv-p2 { label "Tarja Turunen K2" }
}
subchannels {
    sub-p1 {
        ; MPEG
        type  audio
        inputfile "prog1.mp2"
        bitrate 88
        id 10
        protection 1
        }
    sub-p2 {
        type  dabplus
        inputfile "prog2.dabp"
        bitrate 88
        id 1
        protection 1
        }
}
components {
    comp-p1 {
        label Prog1
        service srv-p1
        subchannel sub-p1
        }
    comp-p2 {
        label Prog2
        service srv-p2
        subchannel sub-p2
        }
}
outputs { output1 "file://sende.eti?type=raw" }

Ich will die Datei mal oberflächlich erklären, genaue Infos findet man in der Dokumentation zum OpenDigitalRadio-Projekt.

Also mein Multiplex soll im DABMode 1 laufen, ohne zeitliche Beschränkung, also dauerhaft nbframe=0.
Der Multiplex soll mit der ID=0x4fff und dem Ländercode 0xec ausgestrahlt werden. Label und Shortlabel sind "mmbtools" .
Der Multiplex soll zwei Services, also Radiokanäle haben. Als Fan der finnischen Band Nightwish werden die beiden
Radiostationen "Nightwish Kanal 1" und "Tarja Turunen K2" sein. Die Namen können frei vergeben werden, solange Sie die 16-Zeichengrenze
nicht überschreiten.
Im Block Subchannels werden die beiden Radioprogramme noch näher definiert. Der Radiosender "Nightwish Kanal1" hat sein Programm DVB-konform in der Datei prog1.mp2 auf der Festplatte vorliegen. Radiokanal "Tarja Turunen K2" hat sein Sendematerial DVB-konform in prog2.dabp. Die Kanäle benutzen aktuell eine 88er Bitrate mit Fehlerschutz 1. 
Nochmal, eine tiefgehende Bedeutung sämtlicher DAB-Parameter findet man in der öffentlichen DAB(+) Spezifikation! Es würde zu weit gehen das hier alles zu erklären.
In "components" wird der Mix entgültig zusammengebaut, der Muxer soll uns den sendefähigen Mux als ETI-File unter dem Namen sende.eti auf der Festplatte ablegen, fertig.

Dann wollen wir mal muxen: odr-dabmux Name_der_Muxbeschreibungsdatei

Nach ein paar Sekunden liegt die sendefähige ETI-Datei vor. Diese ETI-Datei müssen wir nun mit einem Modulator in einen typsichen 2.048MS-DAB-Kanal überführen.

Dazu benutzen wir odr-dabmod aus https://github.com/Opendigitalradio/ODR-DabMod   

Diese Modulator starten wir mit unserer ETI-Datei wie folgt:

odr-dabmod sende.eti -g1 -r 2048000 -f odr_dadmod.cf32

Unsere sende.eti von oben wird nun mit den passenden Parametern moduliert und in die Datei odr_dadmod.cf32 überführt.

An dieser Stelle kommt jetzt GNU Radio zum Einsatz. Wir laden unseren DAB+ Sender in GNU Radio rein.

   


Hier die gesamte Senderdefinition als Textdatei.
.txt   fl2k_transmit_dab.grc.txt (Größe: 27,99 KB / Downloads: 50) Man findet den Sender aber auch im fl2k_example-Paket auf der Osmo-Projektseite zum Grafikkarten-SDR.

Im Block "File Source" wählt man die oben erzeugte Modulationsdatei aus. Rechts unten im Grafen im Block "File Sink" wird die Datei angegeben, die die berechnete Hochfrequenz für unseren DAC enthält.

Links im Grafenbild, in der Variablen "out_rate" wählt man die Samplerate, mit der die HF-Datei nachher auch in den DAC geschrieben werden soll. Schnelle PCs machen das locker mit den angegeben 138 MS in Echtzeit. Langsame PCs können hier aber auch 10 MS angeben, wir reiten mit dem DAC ja sowieso auf den Oberwellen. In der Variablen "tx_freq" geben wir noch die Sendefrequenz an, mit 183.648 MHz landen wir also im DAB-Kanal 6B.

Führen wir den Sender in GNU-Radio einfach mal aus und per Terminal schicken wir die in Echtzeit berechnete HF zum DAC.

Für schnelle PCs in 138MS, also mit fl2k_file fl2k_dab.bin -s 138000000

Für langsame PCs mit 10MS, dann also fl2k_file fl2k_dab.bin -s 10000000

An dieser Stelle kann man sich den Umweg über das Dateisystem auch sparen! Anstelle des "File Sink" in GNU Radio kann man auch ein "TCP Sink" definieren und mit dem Tool fl2k_tcp die Daten zum DAC übertragen!



Nachdem die Daten nun in Echtzeit zum DAC übertragen werden, ist unser DAB-Sender bereits onAir. Wir können dies mit einem DAB+ Radio, abgestimmt auf Kanal 6B, überprüfen. Wer kein DAB+ Radio zur Hand hat, dafür einen billigen 10 Euro DAB-Stick, kann dies zum Beispiel mit dem Softwareradio Welle.io machen.


   

Schön sieht er aus, unser gesendeter 6B.

   


Unsere beiden Radioprogramme werden erkannt und auch wiedergegeben.

Auf einen kleinen DABman, sieht das dann so aus:

   

   





Ich bitte die Qualität der Videokamera eines Uralt-iPhones zu entschuldigen, das wird Tarja Turunen
nicht im Ansatz gerecht. Wink Sie kommt aus dem Radio tatsächlich in guter Qualität raus.
Jetzt noch ein Maskenfilter, Sendeverstärker und Antenne und wir wären als Pirat gut in der Umgebung zu hören.

Hier mal eine Anregung wie so ein Sender "mobil" umgesetzt werden könnte: https://drm-radio-kl.eu/berichte_vortrae...der-V2.pdf

Auch interessant und unbedingt wichtig wenn man mit hoher Leistung auf eine Antenne will: https://cdn.rohde-schwarz.com/pws/dl_dow...104_1D.pdf

Denkt an die gesetzlichen Regeln, in manchen Ländern ist ein 100W DAB+ Sender in der Tat ja unproblematisch.
Aber wir sind ja alle vernünftig und verbreiten unsere eigenen DAB(+) Signale nur in einem Hausnetz für unsere alten Radios.

Slideshows/MOT sind jetzt nochmal ein anderes Thema, aber ich will Euch hier und heute nicht erschlagen!


Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Universeller Sender für AM, FM, DAB(+), DVB-x, GPS für 20 Euro. Bernhard45 219 67.423 19.03.2024, 09:34
Letzter Beitrag: Recv24
  MW-Sender mit ESP32 DrNeurosurg 23 4.627 06.02.2024, 14:56
Letzter Beitrag: navi
  Der Phoenix aus der Asche/Zweite Riesen Nixie Uhr guido0815 1 395 24.11.2023, 10:21
Letzter Beitrag: guido0815
  DRM - Sender mit Fl2K-Grafikkarte Bernhard45 0 2.030 21.04.2020, 09:47
Letzter Beitrag: Bernhard45
  HDRadio / IBOC Sender mit FL2K-Grafikkarte Bernhard45 8 4.540 21.01.2020, 20:51
Letzter Beitrag: Bernhard45

Gehe zu: