SDR DVB-T2 uztvērējs C++

Programmatisk definēta radiostacija (SDR) ir metode, kā nomainīt metalurģisko darbu (kas, principā, ir lietderīgs veselībai) uz programmu izstrādi. SDR paredz lielu nākotni, un tās galvenā priekšrocība ir ierobežojumu noņemšana radioprotokolu īstenošanā. Piemērs ir OFDM (ortogonāla frekvences dalījuma многašana) modulas metode, kas kļuva iespējama tikai ar SDR metodi. Taču SDR piedāvā vēl vienu, tīri inženierijas iespēju — iespēju kontrolēt un vizualizēt signālu jebkurā taisnā punktā ar minimālu piepūli.

Viens no interesantiem sakaru standartiem ir zemes kapitāla televīzija DVB-T2.
Kāpēc? Protams, var vienkārši ieslēgt televizoru, nepieceļoties, bet skatīties tur nav nekas interesants, un tas vairs nav mans viedoklis, bet medicīnisks fakts.

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

  • iekštelpu pielietojums
  • modulācija no QPSK līdz 256QAM
  • pārsūtīšanas josla no 1,7 MHz līdz 8 MHz

Do computer aided reception of digital TV based on SDR is possible. DVB-T standarts ir pazīstamajā GNURadio projektā. Ir gr-dvbs2rx bloks DVB-T2 standartam (viss tam pašam GNURadio), bet tam nepieciešama iepriekšēja signāla sinhronizācija, kas iedvesmo (pateicība Ron Economos).

Ko mēs iegūstam.

Ir ETSI EN 302 755 standarts, kas sīkāk apraksta pārsūtīšanu, bet ne uzņemšanu.

Signāls ēterā ar paraugu frekvenci 9,14285714285714285714 MHz, ko modulē COFDM ar 32768 nesējiem, 8 MHz joslā.

Ieteicams uzņemt šādus signālus ar divkāršu paraugu frekvenci (lai neko nepazaudētu) un uz starpfrekvences, kas pārsniedz joslas platumu (superheterodīna uzņemšanas gadījumā), lai atbrīvotos no DC nobīdes un lokālā ģeneratora (LO) noplūdes uz uztvērēja ieeju. Ierīces, kas atbilst šiem nosacījumiem, ir pārāk dārgas vienkāršai ziņkārībai.

SdrPlay ar 10Msps 10bit vai AirSpy ar līdzīgām īpašībām ir daudz lētāk. Šeit nav runa par divkāršu paraugu frekvenci, un uztveršanu var veikt tikai ar tiešo transformāciju (Zero IF). Tādējādi (finanšu apsvērumu dēļ) pārejot uz tīro SDR piekritēju pusi ar minimālu aparatūras transformāciju.

Bija jārisina divi uzdevumi:

  1. Sinhronizācija. Uzzināt precīzu radio frekvences novirzi ar fāzes precizitāti un paraugu frekvences novirzi.
  2. Pārveidot standartu DVB-T2 otrādi.

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

Testa signāli ir pieejami serverī BBC ftp://ftp.kw.bbc.co.uk/t2refs/ ar detalizētām instrukcijām.

Pirmā uzdevuma risinājums stipri ir atkarīgs no SDR iekārtas specifikācijām un vadības iespējām. Ieteikto frekvences vadības funkciju izmantošana, kā zināms, nav vainagojusies ar panākumiem, taču sniedza daudz pieredzes tehniķu dokumentācijas lasīšanā, programmēšanā, seriālu skatīšanā un filozofisku jautājumu risināšanā… īsi sakot, projektu atteikt nebija iespējams.

Pārliecība par «pure SDR» tikai kļuva stiprāka.

Pieņemam signālu kā tādu, interpolējam to praktiski līdz analoga līmenim un iznākam jau diskretizētā, bet līdzīgu reālajam.

Sinhronizācijas blokshēma:

SDR DVB-T2 uztvērējs C++

Šeit viss ir pēc mācību grāmatas. Tālāk ir nedaudz sarežģītāk. Nepieciešams aprēķināt novirzes. Ir daudz literatūras un pētījumu rakstu, kas salīdzina dažādu metožu priekšrocības un trūkumus. No klasikas — tas ir «Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design for OFDM-Based Broadband Transmission – Part I and II». Tomēr es neesmu sastapis nevienu inženieri, kurš spētu un vēlētos rēķināt, tāpēc tika pielietots inženieru piegājiens. Ar to pašu sinhronizācijas metodi tika ieviestas traucējumi testa signālā. Salīdzinot dažādas metrikas ar zināmajām novirzēm (es pats tās ieviesu), tika izvēlētas labākās veiktspējas un vienkāršības īstenošanas labākās. Uztveršanas frekvences novirze tiek aprēķināta, salīdzinot aizsardzības intervālu un tā atkārtojošo daļu. Uztveršanas frekvences fāze un paraugu ņemšanas frekvence tiek novērtētas pēc pilot-signālu fāzes novirzes, un tā tiek izmantota vienkāršā, lineārā OFDM signāla ekvalaizerī.

Ekvalaizera raksturojums:

SDR DVB-T2 uztvērējs C++

Un viss tas labi strādā, ja zināt, kad sākas DVB-T2 kadrs. Tam signālā tiek nosūtīts P1 priekšmeta simbols. P1 simbolu detektēšanas un dekodēšanas metode ir aprakstīta Technical Specification ETSI TS 102 831 (tur ir arī daudz noderīgu ieteikumu par uztveršanu).

P1 signāla auto-korelācija (augstākā punkta sākums kadram):

SDR DVB-T2 uztvērējs C++

Pirmais attēls (līdz kustīgā attēla palicis tikai sešus mēnešus…):

SDR DVB-T2 uztvērējs C++

Un tieši šeit mēs uzzinām, kas ir IQ nelīdzsvarotība, DC nobīde un LO noplūde. Parasti šo specifisko izkropļojumu kompensācija, kas saistīta ar tiešo pārvēršanu, tiek realizēta SDR ierīces draiverī. Tāpēc bija vajadzīgs daudz laika, lai saprastu: zvaigžņu izsistšana no draudzīgā QAM64 konstelācijas ir kompensācijas funkciju darbs. Nācās visu izslēgt un rakstīt savu velosipēdu.

Un tagad attēls sāka kustēties:

SDR DVB-T2 uztvērējs C++

QAM64 modulācija ar specifisku konstelācijas pagriešanu DVB-T2 standartā:

SDR DVB-T2 uztvērējs C++

Ja īsi, tas ir zaudētā maluma atkārtotas izlaides rezultāts, caur gaļas mašīnu. Standarts paredz četrus sajaukšanas veidus:

  • bit interleaving (bitu sajaukšana ar kolonnu savērpi)
  • cell interleaving (šūnu sajaukšana kodēšanas blokā)
  • time interleaving (tā sauktajā blokgrupā kodēšanas)
  • frequency interleaving (frekvences sajaukšana OFDM simbolā)

Rezultātā mēs iegūstam šādu signālu:

SDR DVB-T2 uztvērējs C++

Viss šis ir cīņa par traucējumu noturību kodētajam signālam.

Rezultāts

Tagad mēs redzam ne tikai pašu signālu un tā formu, bet arī papildinformāciju.
Gaisā ir divi multiplekseri. Katram ir divi fiziski kanāli (PLP).

Pirmajā multiplekserā tika novērota dīvaina lieta — pirmajam PLP ir marķējums "multiple", kas ir loģiski, jo tas multiplekserā nav viens, bet otrajam PLP ir marķējums "single", un tas ir jautājums.
Vēl interesantāka otrā dīvainība otrajā multiplekserā — visām programmām pirmajā PLP, bet otrajā PLP ar zemu ātrumu klātbūtnē ir nezināmas dabas signāls. Vismaz VLC atskaņotājs, kas saprot apmēram piecdesmit video formātus un tikpat daudz audio, to neatpazīst.

Pašu projektu var atrast šeit.

Projekts tika izveidots, lai noteiktu pašu iespēju dekodēt DVB-T2, izmantojot SdrPlay (un tagad jau arī AirSpy), tāpēc tas pat nav alfas versija.

P.S. Kamēr rakstījās šis raksts, izdevās pievienot projektam PlutoSDR.

Kāds varēs teikt, ka tur ir tikai 6Msps IQ signālam USB2.0 izejā, bet nepieciešams ne mazāk kā 9,2Msps, bet tas jau ir atsevišķa tēma.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster