جهاز استقبال SDR DVB-T2 في C ++

يعد الراديو المعرّف بالبرمجيات طريقة لاستبدال الأعمال المعدنية (التي هي ، من حيث المبدأ ، صحية) بصداع البرمجة. تتنبأ حقوق السحب الخاصة بمستقبل عظيم والميزة الرئيسية هي إزالة القيود في تنفيذ البروتوكولات الراديوية. ومن الأمثلة على ذلك طريقة التشكيل OFDM (تعدد الإرسال المتعامد بتقسيم التردد) ، والتي أصبحت ممكنة فقط بواسطة طريقة SDR. ولكن هناك إمكانية هندسية بحتة أخرى في SDR - وهي القدرة على التحكم في الإشارة وتصورها في أي نقطة عشوائية بأقل جهد.

يعد التلفزيون الأرضي DVB-T2 أحد معايير الاتصال المثيرة للاهتمام.
لماذا؟ بالطبع ، يمكنك فقط تشغيل التلفزيون دون النهوض ، لكن لا يوجد شيء على الإطلاق لمشاهدته هناك ولم يعد هذا رأيي ، بل حقيقة طبية.

على محمل الجد ، تم تصميم DVB-T2 مع وضع الكثير من الميزات في الاعتبار ، بما في ذلك:

  • تطبيق داخلي
  • التعديل من QPSK إلى 256QAM
  • عرض النطاق الترددي من 1,7 ميجا هرتز إلى 8 ميجا هرتز

هناك خبرة في استقبال التلفزيون الرقمي على مبدأ حقوق السحب الخاصة. معيار DVB-T موجود في مشروع GNURadio المعروف. توجد كتلة gr-dvbs2rx لمعيار DVB-T2 (جميعها لنفس GNURadio) ، ولكنها تتطلب مزامنة أولية للإشارة وهي مصدر إلهام (شكر خاص لـ Ron Economos).

ما لدينا.

يوجد معيار ETSI EN 302 يوضح تفاصيل الإرسال وليس الاستقبال.

إشارة على الهواء بتردد أخذ العينات 9,14285714285714285714 ميجاهرتز ، تم تعديله بواسطة COFDM مع 32768 من الموجات الحاملة ، في نطاق 8 ميجا هرتز.

يوصى باستقبال مثل هذه الإشارات بمضاعفة تردد أخذ العينات (حتى لا تفقد أي شيء) وبتردد متوسط ​​أعلى من عرض النطاق الترددي (استقبال المتغاير الفائق) ، للتخلص من تحيز التيار المستمر و "تسرب" المذبذب المحلي (LO) ) إلى إدخال جهاز الاستقبال. الأجهزة التي تلبي هذه الشروط باهظة الثمن لمجرد الفضول.

SdrPlay مع 10Msps 10bit أو AirSpy بخصائص مماثلة أرخص بكثير. ليس هناك شك في مضاعفة معدل أخذ العينات هنا ، ولا يمكن أن يتم الاستقبال إلا من خلال التحويل المباشر (Zero IF). لذلك (لأسباب مالية) نحن ننتقل إلى جانب أتباع حقوق السحب الخاصة "الخالصة" مع الحد الأدنى من تحويل الأجهزة.

كان من الضروري حل مشكلتين:

  1. التزامن. اكتشف الانحراف الدقيق لتردد التردد الراديوي مع دقة الطور وانحراف عينات التردد.
  2. أعد كتابة معيار DVB-T2 إلى الخلف.

تتطلب المهمة الثانية الكثير من التعليمات البرمجية ، ولكن يمكن حلها بمثابرة ويمكن التحقق منها بسهولة عن طريق إشارات الاختبار.

تتوفر إشارات الاختبار على خادم BBC ftp://ftp.kw.bbc.co.uk/t2refs/ مع إرشادات مفصلة.

يعتمد حل المهمة الأولى بشكل كبير على خصائص جهاز SDR وقدرات التحكم. استخدام وظائف التحكم في التردد الموصى بها ، كما يقولون ، لم تكن ناجحة ، لكنها أعطت الكثير من الخبرة في قراءتها. التوثيق ، البرمجة ، مشاهدة المسلسلات ، حل الأسئلة الفلسفية ... باختصار ، لا يمكن التخلي عن المشروع.

لقد نما الإيمان بـ "حقوق السحب الخاصة الخالصة".

نحن نقبل الإشارة كما هي ، ونقحمها تقريبًا إلى التناظرية ونخرج الإشارة المنفصلة بالفعل ، ولكنها مماثلة للإشارة الحقيقية.

مخطط كتلة التزامن:

جهاز استقبال SDR DVB-T2 في C ++

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

ميزة المعادل:

جهاز استقبال SDR DVB-T2 في C ++

وكل ذلك يعمل بشكل جيد إذا كنت تعرف متى يبدأ إطار DVB-T2. للقيام بذلك ، يتم إرسال رمز التمهيد P1 في الإشارة. يرد وصف طريقة الكشف عن رمز P1 وفك تشفيره في المواصفة الفنية ETSI TS 102 831 (هناك أيضًا العديد من إرشادات الاستقبال المفيدة).

الارتباط التلقائي لإشارة P1 (أعلى نقطة هي بداية الإطار):

جهاز استقبال SDR DVB-T2 في C ++

الصورة الأولى (ستة أشهر فقط حتى الصورة المتحركة ...):

جهاز استقبال SDR DVB-T2 في C ++

وهذا هو المكان الذي نتعلم فيه ما هو اختلال معدل الذكاء ، وتعويض التيار المستمر ، وتسرب LO. كقاعدة عامة ، يتم تنفيذ التعويض عن هذه التشوهات المباشرة الخاصة بالتحويل في برنامج تشغيل جهاز SDR. لذلك ، استغرق الأمر وقتًا طويلاً لفهم: إخراج النجوم من كوكبة QAM64 الودية هو عمل وظائف التعويض. اضطررت إلى إيقاف تشغيل كل شيء وكتابة دراجتي.

وها هي الصورة تتحرك:

جهاز استقبال SDR DVB-T2 في C ++

تعديل QAM64 مع دوران كوكبة محدد في معيار DVB-T2:

جهاز استقبال SDR DVB-T2 في C ++

باختصار ، هذا نتيجة تمرير اللحم المفروم مرة أخرى عبر مفرمة اللحم. ينص المعيار على أربعة أنواع من الخلط:

  • تشذير البت (تشذير البتات مع التواء العمود)
  • تشذير الخلية (خلط الخلايا في كتلة التشفير)
  • تشذير الوقت (إنه أيضًا في مجموعة فدرات التشفير)
  • تشذير التردد (خلط التردد في رمز OFDM)

نتيجة لذلك ، عند الإدخال لدينا الإشارة التالية:

جهاز استقبال SDR DVB-T2 في C ++

كل هذا هو صراع من أجل المناعة ضد الضوضاء للإشارة المشفرة.

مجموع

الآن يمكننا أن نرى ليس فقط الإشارة نفسها وشكلها ، ولكن أيضًا معلومات الخدمة.
هناك نوعان من تعدد الإرسال على الهواء. لكل منها قناتان مادية (PLP).

لوحظ وجود شذوذ واحد في تعدد الإرسال الأول - يحتوي PLP الأول على تسمية "متعددة" ، وهو أمر منطقي ، نظرًا لأنه ليس وحيدًا في تعدد الإرسال ، بينما يحتوي PLP الثاني على التسمية "single" وهذا سؤال.
الأكثر إثارة للاهتمام هو الغريب الثاني في تعدد الإرسال الثاني - جميع البرامج في PLP الأول ، وفي PLP الثاني بسرعة هادئة توجد إشارة ذات طبيعة غير معروفة. على الأقل ، لا يتعرف مشغل VLC ، الذي يفهم حوالي خمسين تنسيقًا للفيديو ونفس القدر من الصوت ، عليها.

يمكن العثور على المشروع نفسه هنا.

تم إنشاء المشروع من أجل تحديد إمكانية فك تشفير DVB-T2 باستخدام SdrPlay (والآن AirSpy.) ، لذلك هذا ليس حتى إصدار ألفا.

ملاحظة أثناء كتابة المقال بصعوبة ، تمكنا من ربطه بمشروع PlutoSDR.

سيقول شخص ما على الفور أنه لا يوجد سوى 6 ميجابت في الثانية لإشارة الذكاء عند خرج USB2.0 ، لكنك تحتاج إلى 9,2 ميجابت في الثانية على الأقل ، لكن هذه مشكلة منفصلة.

المصدر: www.habr.com

إضافة تعليق