SDR DVB-T2 uztvērējs C++ formātā

ProgrammatÅ«ras definētais radio ir metode metālapstrādes (kas patiesÄ«bā ir laba jÅ«su veselÄ«bai) aizvietoÅ”anai ar programmÄ“Å”anas izraisÄ«tām galvassāpēm. SDR paredz lielu nākotni un par galveno priekÅ”rocÄ«bu tiek uzskatÄ«ta ierobežojumu atcelÅ”ana radio protokolu ievieÅ”anā. Kā piemēru var minēt OFDM (Orthogonal Frequency-division multiplexing) modulācijas metodi, kas kļuva iespējama tikai ar SDR metodi. Taču SDR ir arÄ« vēl viena, tÄ«ri inženiertehniska iespēja ā€“ iespēja ar vismazāko piepÅ«li kontrolēt un vizualizēt signālu jebkurā patvaļīgā punktā.

Viens no interesantākajiem sakaru standartiem ir virszemes televīzija DVB-T2.
Par ko? Protams, var vienkārÅ”i ieslēgt televizoru, neceļoties, bet tur nav absolÅ«ti ko skatÄ«ties un tas vairs nav mans viedoklis, bet gan medicÄ«nisks fakts.

Ja nopietni, DVB-T2 ir izstrādāts ar ļoti plaŔām iespējām, tostarp:

  • iekÅ”telpu pielietojums
  • modulācija no QPSK uz 256QAM
  • joslas platums no 1,7MHz lÄ«dz 8MHz

Man ir pieredze digitālās televÄ«zijas uztverÅ”anā pēc SDR principa. DVB-T standarts ir plaÅ”i pazÄ«stamajā GNUradio projektā. DVB-T2 standartam ir gr-dvbs2rx bloks (viss tam paÅ”am GNURadio), taču tam nepiecieÅ”ama iepriekŔēja signāla sinhronizācija un tas ir iedvesmojoÅ”i (Ä«paÅ”s paldies Ronam Economos).

Kas mums ir.

Ir ETSI EN 302 755 standarts, kas detalizēti nosaka pārraidi, bet ne uztverÅ”anu.

Signāls tiek pārraidÄ«ts ar iztverÅ”anas frekvenci 9,14285714285714285714 MHz, ko modulē COFDM ar 32768 nesējiem, 8 MHZ joslā.

Šādus signālus ieteicams uztvert ar dubultu iztverÅ”anas frekvenci (lai neko nezaudētu) un starpfrekvencē lielāku joslas platumu (superheterodÄ«na uztverÅ”ana), lai atbrÄ«votos no lÄ«dzstrāvas (DC) nobÄ«des un lokālā oscilatora ā€œnoplÅ«desā€. (LO) uz uztvērēja ieeju. IerÄ«ces, kas atbilst Å”iem nosacÄ«jumiem, ir pārāk dārgas vienkārÅ”ai zinātkārei.

SdrPlay ar 10Msps 10bit vai AirSpy ar lÄ«dzÄ«gām Ä«paŔībām ir daudz lētāks. Å eit nav runas par dubultu iztverÅ”anas biežumu, un uztverÅ”anu var veikt tikai ar tieÅ”u konvertÄ“Å”anu (Zero IF). Tāpēc (finansiālu apsvērumu dēļ) mēs pārejam uz ā€œtÄ«rasā€ SDR piekritēju pusi ar minimālu aparatÅ«ras pārveidoÅ”anu.

Bija jāatrisina divas problēmas:

  1. Sinhronizācija. Uzziniet precÄ«zu fāzes precÄ«zo RF novirzi un paraugu ņemÅ”anas frekvences novirzi.
  2. Pārrakstiet DVB-T2 standartu atpakaļgaitā.

Otrajam uzdevumam ir nepiecieŔams daudz vairāk koda, taču to var atrisināt ar neatlaidību un to var viegli pārbaudīt, izmantojot testa signālus.

Testa signāli ir pieejami BBC serverī ftp://ftp.kw.bbc.co.uk/t2refs/ ar detalizētiem norādījumiem.

Pirmās problēmas risinājums ir ļoti atkarÄ«gs no SDR ierÄ«ces Ä«paŔībām un tās vadÄ«bas iespējām. Ieteicamo frekvenču kontroles funkciju izmantoÅ”ana, kā saka, nebija veiksmÄ«ga, taču deva lielu pieredzi, lasot tās. dokumentācija, programmÄ“Å”ana, seriālu skatÄ«Å”anās, filozofisku jautājumu risināŔana..., Ä«si sakot, atteikties no projekta nebija iespējams.

TicÄ«ba ā€œtÄ«rai SDRā€ ir tikai kļuvusi stiprāka.

Mēs uztveram signālu tādu, kāds tas ir, interpolējam to gandrīz līdz analogam un izņemam diskrētu, bet līdzīgu reālajam.

Sinhronizācijas blokshēma:

SDR DVB-T2 uztvērējs C++ formātā

Å eit viss ir saskaņā ar mācÄ«bu grāmatu. Tālāk ir nedaudz sarežģītāk. Ir jāaprēķina novirzes. Ir daudz literatÅ«ras un pētniecisku rakstu, kuros salÄ«dzinātas dažādu metožu priekÅ”rocÄ«bas un trÅ«kumi. No klasikas - tas ir "Maikls Spets, Stefans Fehtels, Gunārs Foks, Heinrihs Meirs, optimālais uztvērēja dizains OFDM balstÄ«tai platjoslas pārraidei ā€” I un II daļa." Bet neesmu sastapis nevienu inženieri, kurÅ” varētu un gribētu skaitÄ«t, tāpēc tika izmantota inženiertehniskā pieeja. Izmantojot to paÅ”u sinhronizācijas metodi, testa signālā tika ieviesta detuning. SalÄ«dzinot dažādus rādÄ«tājus ar zināmām novirzēm (viņŔ pats tās iepazÄ«stināja), tika atlasÄ«ti labākie, lai nodroÅ”inātu veiktspēju un ievieÅ”anas vieglumu. UztverÅ”anas frekvences novirzi aprēķina, salÄ«dzinot aizsardzÄ«bas intervālu un tā atkārtojoÅ”o daļu. UztverÅ”anas frekvences fāze un iztverÅ”anas frekvence tiek noteikta no pilotsignālu fāzes novirzes un tiek izmantota arÄ« vienkārŔā, lineārā OFDM signāla ekvalaizerā.

Ekvalaizera raksturlielums:

SDR DVB-T2 uztvērējs C++ formātā

Un tas viss darbojas labi, ja zināt, kad sākas DVB-T2 kadrs. Lai to izdarÄ«tu, signālā tiek pārraidÄ«ts preambulas simbols P1. P1 simbola noteikÅ”anas un dekodÄ“Å”anas metode ir aprakstÄ«ta tehniskajā specifikācijā ETSI TS 102 831 (ir arÄ« daudz noderÄ«gu ieteikumu saņemÅ”anai).

P1 signāla autokorelācija (augstākais punkts kadra sākumā):

SDR DVB-T2 uztvērējs C++ formātā

Pirmā bilde (lÄ«dz kustÄ«gajam attēlam atlikuÅ”i tikai seÅ”i mēneÅ”i...):

SDR DVB-T2 uztvērējs C++ formātā

Un Å”eit mēs uzzinām, kas ir IQ nelÄ«dzsvarotÄ«ba, lÄ«dzstrāvas nobÄ«de un LO noplÅ«de. Parasti Å”o tieÅ”ai pārveidei raksturÄ«go izkropļojumu kompensācija tiek ieviesta SDR ierÄ«ces draiverÄ«. Tāpēc bija vajadzÄ«gs ilgs laiks, lai saprastu: zvaigžņu izsist no draudzÄ«gā QAM64 zvaigznāja ir kompensācijas funkciju darbs. Man vajadzēja visu izslēgt un rakstÄ«t savu velosipēdu.

Un tad attēls tika pārvietots:

SDR DVB-T2 uztvērējs C++ formātā

QAM64 modulācija ar īpaŔu konstelācijas rotāciju DVB-T2 standartā:

SDR DVB-T2 uztvērējs C++ formātā

ÄŖsāk sakot, tas ir rezultāts, malto gaļu izlaižot atpakaļ caur gaļas maŔīnā. Standarts paredz četrus sajaukÅ”anas veidus:

  • mazliet savijas
  • Ŕūnu savienoÅ”ana (Ŕūnu sajaukÅ”ana kodÄ“Å”anas blokā)
  • laika interleaving (tā ir arÄ« kodÄ“Å”anas bloku grupā)
  • frekvenču sajaukÅ”ana (frekvenču sajaukÅ”ana OFDM simbolā)

Rezultātā mums ir Ŕāds signāls ieejā:

SDR DVB-T2 uztvērējs C++ formātā

Tas viss ir cīņa par kodētā signāla trokŔņu imunitāti.

Kopsavilkums

Tagad mēs varam redzēt ne tikai paÅ”u signālu un tā formu, bet arÄ« pakalpojumu informāciju.
Ir divi multipleksi ēterā. Katram no tiem ir divi fiziskie kanāli (PLP).

Pirmajā multipleksā tika pamanÄ«ta viena dÄ«vainÄ«ba - pirmais PLP ir apzÄ«mēts ar ā€œmultipleā€, kas ir loÄ£iski, jo multipleksā ir vairāk nekā viens, bet otrais PLP ir apzÄ«mēts ar ā€œviensā€, un tas ir jautājums.
Vēl interesantāka ir otrā dīvainība otrajā multipleksā - visas programmas ir pirmajā PLP, bet otrajā PLP ir nezināma rakstura signāls ar mazu ātrumu. Vismaz VLC atskaņotājs, kas saprot apmēram piecdesmit video formātus un tikpat daudz audio, to neatpazīst.

Ar paŔu projektu var iepazīties Ŕeit.

Projekts tika izveidots ar mērÄ·i noteikt paÅ”u iespēju atÅ”ifrēt DVB-T2, izmantojot SdrPlay (un tagad AirSpy.), tāpēc Ŕī pat nav alfa versija.

PS Kamēr ar grūtībām rakstīju rakstu, man izdevās PlutoSDR integrēt projektā.

Uzreiz kāds teiks, ka pie USB6 izejas IQ signālam ir tikai 2.0Msps, bet vajag vismaz 9,2Msps, bet tā ir atseviŔķa tēma.

Avots: www.habr.com

Pievieno komentāru