SDR DVB-T2 móttakari í C++

Hugbúnaðarskilgreint útvarp er aðferð til að skipta um málmvinnu (sem er í rauninni gott fyrir heilsuna) fyrir höfuðverk forritunar. SDR spáir mikilli framtíð og er helsti kosturinn talinn vera afnám takmarkana við innleiðingu útvarpssamskiptareglna. Dæmi er OFDM (Orthogonal frequency-division multiplexing) mótunaraðferðin, sem er aðeins möguleg með SDR aðferðinni. En SDR hefur líka eitt í viðbót, eingöngu verkfræðilegt tækifæri - getu til að stjórna og sjá fyrir merki á hvaða handahófskenndum stað með minnstu fyrirhöfn.

Einn af áhugaverðu samskiptastöðlunum er jarðbundið sjónvarp DVB-T2.
Til hvers? Auðvitað geturðu einfaldlega kveikt á sjónvarpinu án þess að standa upp en það er nákvæmlega ekkert að horfa á þar og þetta er ekki lengur mín skoðun heldur læknisfræðileg staðreynd.

Í alvöru, DVB-T2 er hannað með mjög breiðum getu, þar á meðal:

  • umsókn innanhúss
  • mótun frá QPSK í 256QAM
  • bandbreidd frá 1,7MHz til 8MHz

Ég hef reynslu af því að taka á móti stafrænu sjónvarpi með SDR meginreglunni. DVB-T staðallinn er í hinu þekkta GNURadio verkefni. Það er gr-dvbs2rx blokk fyrir DVB-T2 staðalinn (allt fyrir sama GNURadio), en það þarf bráðabirgðasamstillingu merkja og það er hvetjandi (sérstaklega þökk sé Ron Economos).

Það sem við höfum.

Það er ETSI EN 302 755 staðall sem lýsir sendingu en ekki móttöku.

Merkið er á lofti með sýnatökutíðni 9,14285714285714285714 MHz, mótað af COFDM með 32768 burðarberum, á 8 MHZ bandi.

Mælt er með því að taka á móti slíkum merkjum með tvöfaldri sýnatökutíðni (til að missa ekki neitt) og á millitíðni meiri bandbreidd (superheterodyne móttaka), til að losna við jafnstraumsjöfnun (DC) og "leka" staðbundins sveiflu. (LO) við inntak móttakara. Tæki sem uppfylla þessi skilyrði eru of dýr fyrir eina forvitni.

SdrPlay með 10Msps 10bit eða AirSpy með svipaða eiginleika er miklu ódýrara. Hér er engin spurning um tvöfalda sýnatökutíðni og móttöku er aðeins hægt að gera með beinni umbreytingu (Zero IF). Þess vegna (af fjárhagsástæðum) erum við að skipta yfir á hlið fylgismanna „hreint“ SDR með lágmarks umbreytingu vélbúnaðar.

Það var nauðsynlegt að leysa tvö vandamál:

  1. Samstilling. Finndu út nákvæmlega fasa-nákvæmt RF frávik og sýnatökutíðni frávik.
  2. Skrifaðu DVB-T2 staðalinn aftur á bak.

Annað verkefnið krefst miklu meiri kóða, en hægt er að leysa það með þrautseigju og auðvelt er að sannreyna það með prófunarmerkjum.

Prófunarmerki eru fáanleg á BBC netþjóninum ftp://ftp.kw.bbc.co.uk/t2refs/ með nákvæmum leiðbeiningum.

Lausnin á fyrsta vandamálinu er mjög háð eiginleikum SDR tækisins og stjórnunargetu þess. Notkun ráðlagðra tíðnistjórnunaraðgerða, eins og sagt er, tókst ekki, en gaf mikla reynslu af lestri þeirra. skjölun, dagskrárgerð, horfa á sjónvarpsþætti, leysa heimspekilegar spurningar... í stuttu máli, það var ekki hægt að hætta við verkefnið.

Trúin á „hreint SDR“ hefur aðeins styrkst.

Við tökum merkið eins og það er, túlkum það næstum í hliðrænt merki og tökum út stakt, en svipað og hið raunverulega.

Samstillingarblokkskýringarmynd:

SDR DVB-T2 móttakari í C++

Hér er allt samkvæmt kennslubókinni. Næsta er aðeins flóknara. Reikna þarf frávik. Til er mikið af bókmenntum og rannsóknargreinum þar sem kostir og gallar ólíkra aðferða eru bornir saman. Frá klassíkinni - þetta er "Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design for OFDM-Based Broadband Transmission - Part I and II." En ég hef ekki hitt einn einasta verkfræðing sem getur og vill telja og því var beitt verkfræðiaðferð. Með því að nota sömu samstillingaraðferðina var afstillingu innleidd í prófunarmerkið. Með því að bera saman mismunandi mælikvarða við þekkt frávik (hann kynnti þau sjálfur) voru þær bestu valdar fyrir frammistöðu og auðvelda útfærslu. Frávik móttökutíðni er reiknað út með því að bera saman verndarbilið og endurtekningarhluta þess. Fasi móttökutíðnarinnar og sýnatökutíðnin eru metin út frá fasafráviki flugmerkja og þetta er einnig notað í einföldum, línulegum tónjafnara OFDM merkis.

Einkenni tónjafnara:

SDR DVB-T2 móttakari í C++

Og allt þetta virkar vel ef þú veist hvenær DVB-T2 ramminn byrjar. Til að gera þetta er formálstáknið P1 sent í merkinu. Aðferðin til að greina og afkóða P1 táknið er lýst í Tæknilýsingu ETSI TS 102 831 (það eru líka margar gagnlegar ráðleggingar um móttöku).

Sjálffylgni P1 merkisins (hæsti punkturinn í upphafi rammans):

SDR DVB-T2 móttakari í C++

Fyrsta myndin (aðeins sex mánuðir eftir af myndinni á hreyfingu...):

SDR DVB-T2 móttakari í C++

Og þetta er þar sem við lærum hvað IQ ójafnvægi, DC offset og LO leki eru. Að jafnaði eru bætur fyrir þessar röskun sem eru sértækar fyrir beina umbreytingu innleiddar í SDR tækjadrifinn. Þess vegna tók það langan tíma að skilja: að slá út stjörnur úr vinalegu QAM64 stjörnumerkinu er verk bótaaðgerðanna. Ég þurfti að slökkva á öllu og skrifa hjólið mitt.

Og svo hreyfðist myndin:

SDR DVB-T2 móttakari í C++

QAM64 mótun með sérstökum snúningi stjörnumerkis í DVB-T2 staðlinum:

SDR DVB-T2 móttakari í C++

Í stuttu máli má segja að þetta sé afleiðing þess að hakkakjötið er farið aftur í gegnum kjötkvörnina. Í staðlinum er kveðið á um fjórar tegundir af blöndun:

  • smá fléttun
  • frumuflæði (blanda frumum í kóðunarblokk)
  • tímafléttun (það er líka í hópi kóðunarblokka)
  • tíðnifléttun (tíðniblöndun í OFDM tákni)

Fyrir vikið höfum við eftirfarandi merki við inntakið:

SDR DVB-T2 móttakari í C++

Allt er þetta barátta fyrir hávaðaónæmi kóðuðu merksins.

Samtals

Nú getum við séð ekki aðeins merkið sjálft og lögun þess, heldur einnig þjónustuupplýsingar.
Það eru tvö margfeldi á lofti. Hver hefur tvær líkamlegar rásir (PLP).

Tekið var eftir einum skrýtni í fyrsta multiplexinu - fyrsta PLP er merkt "margfalda", sem er rökrétt, þar sem það eru fleiri en einn í margfeldinu, og seinni PLP er merkt "einn" og þetta er spurning.
Jafnvel áhugaverðara er annað skrýtið í seinni multiplexinu - öll forritin eru í fyrsta PLP, en í öðru PLP er merki af óþekktum toga á lágum hraða. Að minnsta kosti VLC spilarinn, sem skilur um fimmtíu myndbandssnið og sama magn af hljóði, þekkir það ekki.

Verkefnið sjálft má finna hér.

Verkefnið var búið til með það að markmiði að ákvarða möguleikann á að afkóða DVB-T2 með SdrPlay (og nú AirSpy.), þannig að þetta er ekki einu sinni alfa útgáfa.

PS Á meðan ég var að skrifa greinina með erfiðleikum tókst mér að samþætta PlutoSDR í verkefnið.

Einhver mun strax segja að það séu aðeins 6Msps fyrir IQ merkið við USB2.0 úttakið, en þú þarft að minnsta kosti 9,2Msps, en þetta er sérstakt efni.

Heimild: www.habr.com

Bæta við athugasemd