SDR DVB-T2 tigdawat sa C++

Ang Software Defined Radio usa ka pamaagi sa pag-ilis sa metal nga trabaho (nga sa pagkatinuod maayo alang sa imong panglawas) sa sakit sa ulo sa programming. Gitagna sa mga SDR ang usa ka maayong kaugmaon ug ang panguna nga bentaha giisip nga pagtangtang sa mga pagdili sa pagpatuman sa mga protocol sa radyo. Usa ka pananglitan mao ang OFDM (Orthogonal frequency-division multiplexing) nga pamaagi sa modulasyon, nga nahimong posible pinaagi lamang sa SDR nga pamaagi. Apan ang SDR usab adunay usa pa, puro nga oportunidad sa inhenyero - ang abilidad sa pagkontrol ug paghanduraw sa usa ka signal sa bisan unsang arbitraryong punto nga adunay labing gamay nga paningkamot.

Usa sa makapaikag nga mga sumbanan sa komunikasyon mao ang terrestrial terrestrial nga telebisyon DVB-T2.
Para unsa? Siyempre, mahimo nimong i-on ang TV nga dili mobangon, apan wala’y hingpit nga pagtan-aw didto ug dili na kini akong opinyon, apan usa ka medikal nga kamatuoran.

Seryoso, ang DVB-T2 gidisenyo nga adunay lapad kaayo nga mga kapabilidad, lakip ang:

  • sulod nga aplikasyon
  • modulasyon gikan sa QPSK ngadto sa 256QAM
  • bandwidth gikan sa 1,7MHz hangtod sa 8MHz

Ako adunay kasinatian sa pagdawat sa digital nga telebisyon gamit ang prinsipyo sa SDR. Ang DVB-T nga sumbanan anaa sa iladong proyekto sa GNURadio. Adunay usa ka gr-dvbs2rx block alang sa DVB-T2 nga sumbanan (tanan alang sa parehas nga GNURadio), apan kini nanginahanglan pasiuna nga pag-synchronize sa signal ug kini makapadasig (espesyal nga salamat sa Ron Economos).

Ang naa nato.

Adunay ETSI EN 302 755 nga sumbanan nga nagdetalye sa transmission, apan dili pagdawat.

Ang signal anaa sa hangin nga adunay sampling frequency sa 9,14285714285714285714 MHz, modulated sa COFDM uban sa 32768 carrier, sa usa ka banda sa 8 MHZ.

Girekomenda nga makadawat sa ingon nga mga signal nga doble ang sampling frequency (aron dili mawala ang bisan unsang butang) ug sa intermediate frequency mas daghang bandwidth (superheterodyne reception), aron makuha ang direktang kasamtangan (DC) offset ug "leakage" sa lokal nga oscillator (LO) ngadto sa receiver input. Ang mga himan nga makatagbaw niini nga mga kondisyon mahal kaayo alang sa pagkamausisaon lamang.

Ang SdrPlay nga adunay 10Msps 10bit o AirSpy nga adunay parehas nga mga kinaiya mas barato. Wala’y pangutana nga doble ang frequency sa sampling dinhi ug ang pagdawat mahimo ra sa direkta nga pagkakabig (Zero IF). Busa (alang sa pinansyal nga mga rason) kita mobalhin ngadto sa kilid sa mga sumusunod sa "puro" SDR uban sa usa ka minimum nga hardware pagkakabig.

Gikinahanglan ang pagsulbad sa duha ka mga problema:

  1. Pag-synchronize. Hibal-i ang eksakto nga hugna-tukma nga RF deviation ug sampling frequency deviation.
  2. Isulat pag-usab ang DVB-T2 nga sumbanan pabalik.

Ang ikaduha nga buluhaton nanginahanglan labi pa nga code, apan mahimong masulbad uban ang paglahutay ug dali nga mapamatud-an gamit ang mga signal sa pagsulay.

Ang mga signal sa pagsulay anaa sa BBC server ftp://ftp.kw.bbc.co.uk/t2refs/ nga adunay detalyadong instruksyon.

Ang solusyon sa unang problema nagdepende pag-ayo sa mga kinaiya sa SDR device ug sa mga kapabilidad sa pagkontrol niini. Ang paggamit sa girekomendar nga frequency control function, ingon sa ilang giingon, dili malampuson, apan naghatag daghang kasinatian sa pagbasa sa mga. dokumentasyon, programming, pagtan-aw sa mga serye sa TV, pagsulbad sa pilosopikal nga mga pangutana..., sa laktud, dili posible nga biyaan ang proyekto.

Ang hugot nga pagtuo sa "pure SDR" misamot kalig-on.

Gikuha namon ang signal ingon nga kini, gi-interpolate kini hapit sa usa ka analogue ug gikuha ang usa ka discrete, apan parehas sa tinuod.

Pag-synchronize sa block diagram:

SDR DVB-T2 tigdawat sa C++

Ang tanan dinhi sumala sa libro. Ang sunod kay medyo mas komplikado. Kinahanglang kuwentahon ang mga pagtipas. Adunay daghang mga literatura ug mga artikulo sa panukiduki nga nagtandi sa mga bentaha ug disbentaha sa lainlaing mga pamaagi. Gikan sa mga klasiko - kini mao ang "Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Labing Maayo nga Disenyo sa Pagdawat alang sa OFDM-Based Broadband Transmission - Bahin I ug II." Apan wala koy nahimamat bisan usa ka engineer nga makahimo ug gusto nga mag-ihap, mao nga usa ka pamaagi sa engineering ang gigamit. Gamit ang parehas nga pamaagi sa pag-synchronize, ang detuning gipaila sa signal sa pagsulay. Pinaagi sa pagtandi sa lain-laing mga sukatan uban sa nailhan nga mga pagtipas (iyang gipaila sila sa iyang kaugalingon), ang labing maayo nga mga gipili alang sa performance ug kasayon ​​sa pagpatuman. Ang pagtipas sa frequency sa pagdawat gikalkulo pinaagi sa pagtandi sa agwat sa bantay ug sa nagbalikbalik nga bahin niini. Ang hugna sa pagdawat nga frequency ug ang sampling frequency gibanabana gikan sa phase deviation sa pilot signal ug kini gigamit usab sa usa ka yano, linear equalizer sa usa ka OFDM signal.

Mga kinaiya sa equalizer:

SDR DVB-T2 tigdawat sa C++

Ug kining tanan maayo kung nahibal-an nimo kung kanus-a magsugod ang frame sa DVB-T2. Aron mahimo kini, ang pasiuna nga simbolo nga P1 gipasa sa signal. Ang pamaagi sa pag-detect ug pag-decode sa P1 nga simbolo gihulagway sa Technical Specification ETSI TS 102 831 (adunay daghan usab nga mapuslanon nga mga rekomendasyon alang sa pagdawat).

Autocorrelation sa P1 signal (ang pinakataas nga punto sa sinugdanan sa frame):

SDR DVB-T2 tigdawat sa C++

Unang hulagway (unom na lang ka bulan ang nahabilin hangtud sa naglihok nga hulagway...):

SDR DVB-T2 tigdawat sa C++

Ug dinhi kita makakat-on kung unsa ang IQ imbalance, DC offset ug LO leakage. Ingon sa usa ka lagda, ang bayad alang sa kini nga mga pagtuis nga piho sa direkta nga pagkakabig gipatuman sa driver sa aparato sa SDR. Busa, dugay nga masabtan: ang pagtuktok sa mga bituon gikan sa mahigalaon nga konstelasyon sa QAM64 mao ang buhat sa mga gimbuhaton sa kompensasyon. Kinahanglan nakong i-turn off ang tanan ug isulat ang akong bike.

Ug dayon ang hulagway mibalhin:

SDR DVB-T2 tigdawat sa C++

QAM64 modulasyon uban sa piho nga konstelasyon rotation sa DVB-T2 standard:

SDR DVB-T2 tigdawat sa C++

Sa laktod, kini ang resulta sa pagpasa sa minced meat balik sa gilingan sa karne. Ang sumbanan naghatag alang sa upat ka matang sa pagsagol:

  • gamay interleaving
  • cell interleaving (pagsagol sa mga cell sa usa ka coding block)
  • interleaving sa oras (naa usab kini sa grupo sa mga bloke sa pag-encode)
  • frequency interleaving (pagsagol sa frequency sa simbolo sa OFDM)

Ingon usa ka sangputanan, kami adunay mosunod nga signal sa input:

SDR DVB-T2 tigdawat sa C++

Kining tanan usa ka pakigbisog alang sa kasaba nga resistensya sa naka-encode nga signal.

Ang resulta

Karon atong makita dili lamang ang signal mismo ug ang porma niini, kondili usab ang impormasyon sa serbisyo.
Adunay duha ka multiplex sa hangin. Ang matag usa adunay duha ka pisikal nga kanal (PLP).

Usa ka katingad-an ang namatikdan sa una nga multiplex - ang una nga PLP gimarkahan nga "multiple", nga makatarunganon, tungod kay adunay labaw pa sa usa sa multiplex, ug ang ikaduha nga PLP gimarkahan nga "single" ug kini usa ka pangutana.
Mas makapaikag mao ang ikaduha nga katingad-an sa ikaduha nga multiplex - ang tanan nga mga programa naa sa una nga PLP, apan sa ikaduha nga PLP adunay usa ka signal sa usa ka wala mailhi nga kinaiya sa usa ka mubu nga tulin. Labing menos ang VLC player, nga nakasabut sa mga kalim-an nga mga format sa video ug parehas nga kantidad sa audio, wala makaila niini.

Ang proyekto mismo makita dinhi.

Ang proyekto gimugna uban ang tumong sa pagtino sa posibilidad sa pag-decode sa DVB-T2 gamit ang SdrPlay (ug karon AirSpy.), Mao nga dili kini usa ka alpha nga bersyon.

PS Samtang naglisud ko sa pagsulat sa artikulo, nakahimo ko sa pag-integrate sa PlutoSDR sa proyekto.

Adunay moingon dayon nga adunay 6Msps lamang alang sa signal sa IQ sa output sa USB2.0, apan kinahanglan nimo ang labing menos 9,2Msps, apan kini usa ka lahi nga hilisgutan.

Source: www.habr.com

Idugang sa usa ka comment