Hai Geektimes.
Siaran digital mulai diperkenalkan secara bertahap di berbagai negara. Di Eropa dan Australia itu adalah
DAB / DAB + standar , di
Radio HD USA, di
CDR Cina (China Digital Radio). Dari plus bagi pengguna adalah suara yang lebih bersih karena aliran digital, layanan tambahan (misalnya, nama lagu dan nama artis pada layar penerima), dan, dalam kasus DAB, jumlah stasiun lebih besar dibandingkan dengan FM. Penerima radio digital sekarang relatif murah, dengan harga mulai sekitar $ 40.
Rusia belum secara resmi bergabung dengan salah satu standar, tetapi jika ini terjadi, kemungkinan besar akan menjadi DAB. Operasi uji telah dilakukan di Moskow, dan penerima pasar Eropa untuk Federasi Rusia secara geografis lebih mudah diakses daripada yang Amerika. Mobil-mobil Eropa baru (yang, sekali lagi, lebih banyak daripada yang Amerika) sering sudah dilengkapi dengan penerima DAB. Sementara itu, untuk tujuan pengujian, siapa pun dapat memulai DAB di rumah, dengan transceiver SDR.

(Sumber Gambar / Getty)
Detail di bawah cut (hati-hati, banyak konfigurasi panjang dan membosankan).
Bagaimana cara kerjanya
Sayangnya, standar yang berbeda tidak kompatibel satu sama lain.
DAB Eropa adalah aliran MP2 atau AAC yang ditransmisikan menggunakan ODFM dalam saluran dengan frekuensi dari 174 hingga 239 MHz. Sebanyak mungkin
lebih dari 30 saluran , masing-masing selebar sekitar 1,5 MHz, beberapa stasiun dapat ditransmisikan secara bersamaan dalam satu saluran. Menurut
Wikipedia , penggunaan DAB saat menggunakan bit rate 192kbps adalah 3 kali lebih efektif dalam hal jumlah stasiun daripada FM konvensional.
Spektrum satu saluran DAB pada layar SDR terlihat seperti ini:

Sebagai perbandingan, jadi pada skala yang sama, stasiun FM terlihat seperti:

Di American
HD Radio, mereka mengambil jalur yang berbeda - saluran digital ditambahkan "ke samping" ke stasiun FM yang ada. Ini memungkinkan kami untuk tidak mengalokasikan frekuensi baru dan meninggalkan kompatibilitas dengan penerima lama. Kelemahannya adalah bahwa di kota-kota besar, siaran FM sudah diambil. Di sisi lain, bahkan jumlah maksimum 50 stasiun untuk FM cukup baik, kemungkinan besar pendengar tidak membutuhkannya.
Spektrum Radio HD terlihat seperti ini (tangkapan layar dari youtube):
CDR Cina memutuskan untuk menyalin
pendekatan Amerika , sayangnya, pengetahuan saya tentang Cina tidak cukup untuk menemukan informasi lebih rinci tentang itu.
Sedangkan untuk penerima, harga mereka di amazon berkisar dari $ 30 untuk model paling sederhana, hingga> $ 100 untuk yang lebih canggih dengan layar sentuh, Wifi atau layar warna.

Tapi "Chukchi bukan pembaca", jadi kami akan meluncurkan radio uji dalam format DAB / DAB + sendiri. HD Radio, sayangnya, tidak berfungsi, formatnya ditutup, dan tidak ada encoders untuk itu.
Jalankan DAB / DAB +
Prosesnya sebenarnya tidak rumit, tetapi sangat melelahkan dalam hal menciptakan konfigurasi yang diperlukan. Untuk pengujian, kita membutuhkan Linux dan SDR dengan kemampuan untuk mentransfer, misalnya, HackRF atau USRP.
1. Kompilasi proyek
Linux diperlukan untuk mengkompilasi encoder. Saya menggunakan Ubunty, gambar yang sudah jadi untuk VirtualBox diunduh dari
http://www.osboxes.org/ubuntu/ .
Kompilasi ODR-AudioEncPertama Anda perlu mengkompilasi audio encoder DAB / DAB +, Anda dapat menemukannya di halaman
github.com/Opendigitalradio/ODR-AudioEnc .
git clone https://github.com/Opendigitalradio/ODR-AudioEnc.git cd ODR-AudioEnc/ ./bootstrap ./configure --enable-alsa --enable-vlc make sudo make install
Kompilasi ODR-DabMuxODR-DabMux menggabungkan aliran digital menjadi satu multipleks. Pelajari lebih lanjut di
github.com/Opendigitalradio/ODR-DabMux .
git clone https://github.com/Opendigitalradio/ODR-DabMux.git cd ODR-DabMux/ ./bootstrap.sh ./configure make sudo make install
Kompilasi ODR-DabModIni adalah modulator yang benar-benar mengirim data ke pemancar. Prinsip perakitannya sama, perintah untuk mengunduh:
git clone https://github.com/Opendigitalradio/ODR-DabMod.git
Jika selama perakitan semua perpustakaan tidak cukup, mereka harus diinstal menggunakan apt-get.
Sekarang semua bagian dari proyek dirakit,
dan dengan semua ini kami akan mencoba untuk lepas landas .
2. Konfigurasi
Sayangnya, USRP tidak bekerja di mesin virtual, dan meletakkan Linux penuh ke disk terlalu malas. Oleh karena itu, saya tidak mempertimbangkan mode siaran streaming - multipleks dikompilasi dari file mp3 yang sudah disiapkan, dan file IQ yang dihasilkan diluncurkan di bawah Windows. Ya, secara umum, siaran streaming tidak diperlukan untuk rumah, tidak ada tugas untuk membuat "stasiun bajak laut".
Berbagai pengaturan dijelaskan secara lebih rinci di sini:
http://opendigitalradio.imtqy.com/mmbtools-doc/mmbtools.pdf .
Persiapan dataAkan ada 2 saluran dalam multiplex kami, yang mana saya mengunduh 2 file mp3 dari youtube dan menamainya (soundcard) sound01.mp3 dan sound02.mp3.
Konversi file ke WAV dengan bit rate 48000:
ffmpeg -i sound01.mp3 -ar 48000 sound01.wav
ffmpeg -i sound02.mp3 -ar 48000 sound02.wav
Konversikan ke format DAB:
odr-audioenc --dab -b 128 -i sound01.wav -o prog1.mp2
odr-audioenc --dab -b 128 -i sound02.wav -o prog2.mp2
Outputnya harus 2 file prog1.mp2 dan prog2.mp2.
Penciptaan MultipleksPertama, Anda perlu membuat file yang menjelaskan konfigurasi "stasiun radio" kami. Biarkan saya mengingatkan Anda bahwa dalam satu saluran DAB mungkin ada banyak stasiun, masing-masing dengan parameternya sendiri.
Buat file "config.mux" dengan teks berikut:
general { dabmode 1 nbframes 2000 ; Set to true to enable logging to syslog syslog false ; Enable timestamp definition necessary for SFN ; This also enables time encoding using the MNSC. tist false } 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 "Station1" } srv-p2 { label "Station2" } } subchannels { sub-p1 { type audio inputfile "prog1.mp2" bitrate 128 id 10 protection 4 } sub-p2 { type audio inputfile "prog2.mp2" bitrate 128 id 11 protection 4 } } components { comp-p1 { service srv-p1 subchannel sub-p1 } comp-p2 { service srv-p2 subchannel sub-p2 } } outputs { output1 "file://output.eti?type=raw" }
Konfigurasi tersebut menjelaskan saluran yang akan berada dalam multipleks dan sumber datanya. Parameter nbframes menentukan berapa banyak frame untuk dibuat; 2000 frame sesuai dengan sekitar satu menit pemutaran.
Saat file disimpan, buat multipleks:
odr-dabmux config.mux
Keluaran harus berupa file
output.eti , dalam kasus saya, ukurannya 12MB.
TransferAda dua kemungkinan. Di Linux "nyata", odr-dabmod dapat secara langsung mengirimkan data ke transceiver, tetapi tidak bekerja di bawah VM. Oleh karena itu, sebagai parameter output, saya menetapkan file mentah yang akan berisi data yang kompatibel dengan Gnu Radio.
Buat file config.ini:
[input] transport = file source = output.eti loop=0 [modulator] digital_gain=0.9 rate=2048000 [output] output = file [fileoutput] format = complexf_normalised ;format = s8 filename = output.iq
Di sini titik kuncinya adalah format output dan jenisnya. Untuk USRP, saya menggunakan format complexf_normalised, untuk HackRF, secara teori, 8-bit s8 cocok.
Simpan konfigurasi, mulai konversi:
odr-dabmod config1.ini
Itu saja! Outputnya harus config.iq, dalam kasus saya, berukuran sekitar 700MB untuk satu menit perekaman (format float IQ). Kami menyalinnya ke komputer "utama", dan Linux dapat ditutup.
3. Pengujian
Seperti yang saya katakan sebelumnya, saya tidak punya penerima DAB, saya tidak mendengarkan Chukchi, saya tidak mendengarkan radio sama sekali :) Untuk pengujian, saya menggunakan "peluit" RTL-SDR dan program gratis
Welle.io .
Pertama-tama, hubungkan receiver, jalankan Welle.io dan temukan saluran gratis. Dalam kasus saya, 12B memengaruhi mereka:

Kami ingat frekuensinya, dan membuat grafik paling sederhana untuk transmisi ke Gnu Radio:

Kami mulai, tunggu beberapa detik, dan ... kami mendengar musik yang direkam melalui welle.io.

Kami memastikan bahwa jumlah saluran dan namanya sesuai dengan yang ditentukan dalam konfigurasi.
Ya, seluruh "kompleks pemancar" terlihat seperti ini:

Kesimpulan
Bukan dewa yang membakar pot, dan sangat mungkin untuk menyentuh teknologi modern di rumah tanpa meninggalkan desktop.
Antena, tentu saja, tidak disetel ke frekuensi yang diinginkan (dan saya tidak memiliki penganalisa antena), daya maksimum dari USB3 mungkin tidak lebih dari 1W, dan bahkan kemudian didistribusikan melalui pita 1,5 MHz. Jadi jangkauan transmisi maksimum sekitar 0,5m.
Jika seseorang ingin mengulang percobaan dengan kekuatan yang lebih besar, pencarian ebay untuk kata "RF Power Amplifier" menyediakan banyak tautan yang berguna (secara resmi, Anda memerlukan lisensi untuk penyiaran, tentu saja, Anda harus memastikan bahwa layanan lain tidak terganggu).