مرحبًا Geektimes.
يجري إدخال البث الرقمي تدريجياً في بلدان مختلفة. في أوروبا وأستراليا هو معيار
DAB / DAB + ، في
راديو HD الأمريكي ، في الصين
CDR (راديو الصين الرقمي). من الإيجابيات للمستخدم صوت أنظف بسبب التدفق الرقمي ، وخدمات إضافية (على سبيل المثال ، اسم الأغنية واسم الفنان على شاشة جهاز الاستقبال) ، وفي حالة DAB ، عدد أكبر من المحطات مقارنة FM. تعد أجهزة استقبال الراديو الرقمية رخيصة الثمن نسبيًا ، وتبدأ الأسعار من حوالي 40 دولارًا.
لم تنضم روسيا رسميًا بعد إلى أي من المعايير ، ولكن إذا حدث ذلك ، فمن المرجح أن يكون DAB. وقد تم تنفيذ عملية الاختبار الخاصة به بالفعل في موسكو ، ويمكن الوصول إلى أجهزة استقبال السوق الأوروبية للاتحاد الروسي جغرافيًا أكثر من الأجهزة الأمريكية. السيارات الأوروبية الجديدة (التي ، مرة أخرى ، أكثر من السيارات الأمريكية) غالبًا ما تكون مجهزة بالفعل بجهاز استقبال DAB. في هذه الأثناء ، ولأغراض الاختبار ، يمكن لأي شخص بدء تشغيل DAB في المنزل باستخدام جهاز إرسال / استقبال SDR.

(مصدر الصورة / غيتي)
التفاصيل تحت القطع (بعناية ، الكثير من التكوينات الطويلة والمملة).
كيف يعمل
لسوء الحظ ، لا تتوافق المعايير المختلفة مع بعضها البعض.
DAB الأوروبي هو دفق MP2 أو AAC يتم إرساله باستخدام ODFM في قنوات بترددات من 174 إلى 239 ميجاهرتز.
قدر الإمكان
أكثر من 30 قناة ، كل منها حوالي 1.5 ميغاهرتز ، يمكن إرسال عدة محطات في وقت واحد في قناة. وفقًا
لويكيبيديا ، فإن استخدام DAB عند استخدام معدل بت 192 كيلوبت في الثانية أكثر فعالية 3 مرات في عدد المحطات منه في FM العادي.
يبدو طيف قناة DAB واحدة على شاشة SDR كما يلي:

للمقارنة ، على نفس المقياس ، تبدو محطات FM مثل:

في
راديو HD الأمريكي
، اتخذوا مسارًا مختلفًا - أضافت القنوات الرقمية "إلى الجانب" إلى محطات FM الحالية. سمح لنا هذا بعدم تخصيص ترددات جديدة وترك التوافق مع أجهزة الاستقبال القديمة. الجانب السلبي هو أنه في المدن الكبيرة ، يتم بث البث FM بالفعل. من ناحية أخرى ، حتى الحد الأقصى لعدد 50 محطة لمحطات FM جيد جدًا ، على الأرجح أن المستمعين لا يحتاجون إليها.
يبدو طيف راديو HD على النحو التالي (لقطة شاشة من youtube):

قرر
مجلس الإنماء والإعمار الصيني نسخ
النهج الأمريكي ، للأسف ، إن معرفتي الصفرية بالصينية لا تكفي للعثور على معلومات أكثر تفصيلاً عنها.
أما بالنسبة إلى أجهزة الاستقبال ، فإن سعرها على أمازون يتراوح من 30 دولارًا لأبسط الموديلات ، حتى> 100 دولار للطرازات الأكثر تقدمًا مع شاشة تعمل باللمس أو واي فاي أو شاشة ملونة.

لكن "Chukchi ليس قارئًا" ، لذلك سنطلق الراديو التجريبي بتنسيق DAB / DAB + بأنفسنا. لا يعمل راديو HD ، للأسف ، يتم إغلاق التنسيق ، ولا تتوفر برامج تشفير له.
تشغيل DAB / DAB +
العملية في الواقع ليست معقدة ، ولكنها شاقة للغاية من حيث إنشاء التكوينات الضرورية. للاختبار ، نحتاج إلى Linux و SDR مع القدرة على النقل ، على سبيل المثال ، HackRF أو USRP.
1. تجميع المشروع
هناك حاجة إلى لينكس لترجمة التشفير. استخدمت Ubunty ، تم تنزيل الصورة النهائية لـ VirtualBox من
http://www.osboxes.org/ubuntu/ .
تجميع ODR-AudioEncتحتاج أولاً إلى تجميع برنامج التشفير الصوتي DAB / DAB + ، ويمكنك العثور عليه في صفحة
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
تجميع ODR-DabMuxيجمع ODR-DabMux بين التدفقات الرقمية في تعدد إرسال واحد. تعرف على المزيد على
github.com/Opendigitalradio/ODR-DabMux .
git clone https://github.com/Opendigitalradio/ODR-DabMux.git cd ODR-DabMux/ ./bootstrap.sh ./configure make sudo make install
تجميع ODR-DabModهذا هو المغير الذي يرسل البيانات إلى جهاز الإرسال. مبدأ التجميع هو نفسه ، الأمر الذي يجب تنزيله:
git clone https://github.com/Opendigitalradio/ODR-DabMod.git
إذا لم تكن أي مكتبات كافية أثناء التجميع ، فيجب تثبيتها باستخدام apt-get.
الآن يتم تجميع جميع أجزاء المشروع ،
ومع كل هذا سنحاول الإقلاع .
2. التكوين
لسوء الحظ ، لم يعمل USRP في جهاز افتراضي ، وكان وضع Linux الكامل على القرص كسولًا للغاية. لذلك ، لم أفكر في وضع البث المتدفق - تم تجميع تعدد الإرسال من ملفات mp3 المعدة مسبقًا ، وتم تشغيل ملف IQ الناتج تحت Windows. نعم ، بشكل عام ، البث المتدفق ليس ضروريًا للمنزل ، لم تكن هناك مهمة لإنشاء "محطة قرصنة".
يتم وصف الإعدادات المختلفة بمزيد من التفاصيل هنا:
http://opendigitalradio.imtqy.com/mmbtools-doc/mmbtools.pdf .
إعداد البياناتسيكون هناك قناتان في تعدد الإرسال الخاص بنا ، قمت بتنزيل ملفين mp3 من youtube وأطلق عليهم اسم (الذي كان سيخمن) sound01.mp3 و sound02.mp3 ، على التوالي.
قم بتحويل الملفات إلى WAV بمعدل بت 48000:
ffmpeg -i sound01.mp3 -ar 48000 sound01.wav
ffmpeg -i sound02.mp3 -ar 48000 sound02.wav
قم بتحويلها إلى تنسيق DAB:
odr-audioenc --dab -b 128 -i sound01.wav -o prog1.mp2
odr-audioenc --dab -b 128 -i sound02.wav -o prog2.mp2
يجب أن يكون الإخراج ملفين prog1.mp2 و prog2.mp2.
إنشاء متعددتحتاج أولاً إلى إنشاء ملف يصف تكوين "محطة الراديو" الخاصة بنا. دعني أذكرك أنه في قناة DAB واحدة يمكن أن يكون هناك العديد من المحطات ، لكل منها معلماتها الخاصة.
قم بإنشاء ملف “config.mux” بالنص التالي:
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" }
يصف التكوين القنوات التي ستكون في تعدد الإرسال ومصادر البيانات الخاصة بها. تحدد المعلمة nbframes عدد الإطارات المراد إنشاؤها ؛ 2000 إطارًا تتوافق مع دقيقة واحدة تقريبًا من التشغيل.
عند حفظ الملف ، أنشئ تعدد إرسال:
odr-dabmux config.mux
يجب أن يكون الإخراج هو ملف
output.eti ، في حالتي ، كان حجمه 12 ميغابايت.
نقلهناك احتمالان. في لينكس "الحقيقي" ، يمكن لـ odr-dabmod إرسال البيانات مباشرة إلى جهاز الإرسال والاستقبال ، لكنها لم تعمل تحت VM. لذلك ، كمعلمة إخراج ، قمت بتحديد ملف خام يحتوي على بيانات متوافقة مع راديو جنو.
قم بإنشاء ملف 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
هنا النقطة الأساسية هي تنسيق الإخراج ونوعه. بالنسبة لـ USRP ، أستخدم التنسيق Complex__normalised ، بالنسبة لـ HackRF ، نظريًا ، فإن s8 8 بت مناسب.
احفظ التهيئة ، ابدأ التحويل:
odr-dabmod config1.ini
هذا كل شيء! يجب أن يكون الناتج config.iq ، في حالتي ، حوالي 700 ميجابايت في الحجم لدقيقة واحدة من التسجيل (تنسيق تعويم IQ). نقوم بنسخه إلى الكمبيوتر "الرئيسي" ، ويمكن إغلاق Linux.
3. الاختبار
كما قلت سابقًا ، ليس لدي جهاز استقبال DAB ، ولا أستمع إلى Chukchi ، ولا أستمع إلى الراديو على الإطلاق :) للاختبار ، استخدمت "صافرة" RTL-SDR والبرنامج المجاني
Welle.io .
بادئ ذي بدء ، قم بتوصيل جهاز الاستقبال وتشغيل Welle.io والعثور على قناة مجانية. في حالتي ، أثرت عليهم 12B:

نتذكر التردد وننشئ أبسط رسم بياني للإرسال إلى راديو جنو:

نبدأ ، ننتظر بضع ثوان ، و ... نسمع الموسيقى المسجلة من خلال welle.io.

نتأكد من أن عدد القنوات وأسمائها يتوافق مع تلك المحددة في التكوين.
نعم ، يبدو "مجمع الإرسال" كالتالي:

الخلاصة
ليس الآلهة هم الذين يحرقون الأواني ، ومن الممكن تمامًا لمس التقنيات الحديثة في المنزل دون مغادرة سطح المكتب.
لم يتم ضبط الهوائي ، بالطبع ، على التردد المطلوب (وليس لدي محلل هوائي) ، ومن المحتمل ألا تكون الطاقة القصوى من USB3 أكثر من 1 وات ، وحتى ذلك الحين يتم توزيعها عبر نطاق 1.5 ميجاهرتز. لذا فإن نطاق الإرسال الأقصى هو حوالي 0.5 متر.
إذا أراد شخص ما تكرار التجارب بقوة أكبر ، فإن البحث في موقع ebay عن كلمة "RF Power Amplifier" يوفر الكثير من الروابط المفيدة (رسميًا ، أنت بحاجة إلى ترخيص للبث ، بالطبع ، يجب عليك التأكد من عدم تداخل الخدمات الأخرى).