SDR DVB-T2 Receiver an C++

Software Defined Radio ass eng Method fir Metallaarbecht ze ersetzen (wat tatsächlech gutt ass fir Är Gesondheet) duerch de Kappwéi vun der Programméierung. SDRs viraussoen eng grouss Zukunft an den Haaptvirdeel gëtt als d'Ewechhuele vu Restriktiounen an der Ëmsetzung vu Radioprotokoller ugesinn. E Beispill ass d'OFDM (Orthogonal Frequency-Division Multiplexing) Modulatiounsmethod, déi nëmmen duerch d'SDR Method méiglech ass. Awer SDR huet och eng méi, reng Ingenieursméiglechkeet - d'Fäegkeet fir e Signal op all arbiträr Punkt mat dem mannsten Effort ze kontrolléieren an ze visualiséieren.

Ee vun den interessanten Kommunikatiounsnormen ass terrestresch terrestresch Fernseh DVB-T2.
Fir wat? Natierlech kënnt Dir einfach den Fernseh unschalten ouni opzestoen, awer do ass absolut näischt ze kucken an dat ass net méi meng Meenung, mee e medizinesche Fakt.

Eescht, DVB-T2 ass mat ganz breet Fäegkeeten entworf, dorënner:

  • Indoor Applikatioun
  • Modulatioun vu QPSK op 256QAM
  • bandwidth vun 1,7MHz ze 8MHz

Ech hunn Erfahrung am Empfang vun digitale Fernseh mam SDR Prinzip. Den DVB-T Standard ass am bekannte GNURadio Projet. Et gëtt e gr-dvbs2rx Block fir den DVB-T2 Standard (all fir déiselwecht GNURadio), awer et erfuerdert eng virleefeg Signalsynchroniséierung an et ass inspiréierend (speziell Merci un Ron Economos).

Wat mir hunn.

Et gëtt en ETSI EN 302 755 Standard deen d'Transmissioun detailléiert, awer net Empfang.

D'Signal ass op der Loft mat enger Samplingfrequenz vun 9,14285714285714285714 MHz, moduléiert duerch COFDM mat 32768 Träger, an enger Band vun 8 MHZ.

Et ass recommandéiert sou Signaler mat duebeler Probefrequenz ze kréien (fir näischt ze verléieren) an op der Tëschenfrequenz méi Bandbreedung (Superheterodyne Empfang), fir den Direktstroum (DC) Offset a "Leakage" vum lokalen Oszilléierer lass ze ginn. (LO) an den Empfängerinput. Apparater déi dës Konditiounen erfëllen sinn ze deier fir nëmme Virwëtz.

SdrPlay mat 10Msps 10bit oder AirSpy mat ähnlechen Charakteristiken ass vill méi bëlleg. Et gëtt keng Fro vun duebel probéieren Frequenz hei an Empfang kann nëmme mat direkter Konversioun gemaach ginn (Zero IF). Dofir (aus finanzielle Grënn) wiessele mir op d'Säit vun den Anhänger vun "rengen" SDR mat engem Minimum vun Hardware Konversioun.

Et war néideg fir zwee Problemer ze léisen:

  1. Synchroniséierung. Fannt déi genau Phase-genaue RF Ofwäichung a Probefrequenzabweichung eraus.
  2. Schreift den DVB-T2 Standard no hannen.

Déi zweet Aufgab erfuerdert vill méi Code, awer ka mat Ausdauer geléist ginn a kann einfach mat Testsignaler verifizéiert ginn.

Testsignaler sinn um BBC Server ftp://ftp.kw.bbc.co.uk/t2refs/ mat detailléierte Instruktioune verfügbar.

D'Léisung vum éischte Problem ass héich ofhängeg vun de Charakteristiken vum SDR-Apparat a seng Kontrollfäegkeeten. Benotzen der recommandéiert Frequenz Kontroll Funktiounen, wéi se soen, war net erfollegräich, mee huet vill Erfahrung liesen déi. Dokumentatioun, Programméiere, Fernsehserie kucken, philosophesch Froen léisen ... kuerz, et war net méiglech de Projet opzeginn.

De Glawen un "reng SDR" ass nëmme méi staark ginn.

Mir huelen d'Signal wéi et ass, interpoléieren et bal zu engem Analog an huelen en diskret eraus, awer ähnlech wéi déi richteg.

Synchroniséierungsblockdiagramm:

SDR DVB-T2 Receiver an C++

Alles hei ass no dem Léierbuch. Nächst ass e bësse méi komplizéiert. Ofwäichunge musse berechent ginn. Et gëtt vill Literatur a Fuerschungsartikelen déi d'Virdeeler an Nodeeler vu verschiddene Methoden vergläichen. Vun de Klassiker - dat ass "Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design fir OFDM-Based Broadband Transmission - Part I and II." Mee ech hunn nach keen eenzegen Ingenieur begéint, dee kann a wëll zielen, also gouf eng ingenieur Approche benotzt. Mat der selweschter Synchroniséierungsmethod gouf d'Detuning an d'Testsignal agefouert. Andeems Dir verschidde Metriken mat bekannten Ofwäichunge vergläicht (hien huet se selwer agefouert), goufen déi bescht fir d'Leeschtung an d'Ëmsetzung vun der Ëmsetzung ausgewielt. D'Empfangsfrequenzabweichung gëtt berechent andeems de Schutzintervall a säi Widderhuelungsdeel vergläicht. D'Phase vun der Empfangsfrequenz an der Samplingfrequenz ginn aus der Phasabweichung vun de Pilotsignaler geschätzt an dëst gëtt och an engem einfachen, linearen Ausgläich vun engem OFDM Signal benotzt.

Equalizer Charakteristik:

SDR DVB-T2 Receiver an C++

An all dat funktionnéiert gutt wann Dir wësst wéini den DVB-T2 Frame ufänkt. Fir dëst ze maachen, gëtt d'Preambel Symbol P1 am Signal iwwerdroen. D'Methode fir de P1 Symbol z'entdecken an ze decodéieren ass an der Technescher Spezifizéierung ETSI TS 102 831 beschriwwen (et ginn och vill nëtzlech Empfehlungen fir Empfang).

Autokorrelatioun vum P1 Signal (den héchste Punkt um Ufank vum Frame):

SDR DVB-T2 Receiver an C++

Éischt Bild (nëmme sechs Méint bis zum bewegende Bild...):

SDR DVB-T2 Receiver an C++

An dat ass wou mir léiere wat IQ Ongläichgewiicht, DC Offset an LO Leckage sinn. Als Regel, Kompensatioun fir dës Verzerrungen spezifesch fir direkt Konversioun ass am SDR Apparat Chauffer ëmgesat. Dofir huet et laang gedauert fir ze verstoen: d'Stären aus dem frëndleche Stärebild QAM64 ausschloen ass d'Aarbecht vun de Kompensatiounsfunktiounen. Ech hu missen alles auszeschalten a mäi Vëlo schreiwen.

An dann ass d'Bild geplënnert:

SDR DVB-T2 Receiver an C++

QAM64 Modulatioun mat spezifesche Konstellatiounsrotatioun am DVB-T2 Standard:

SDR DVB-T2 Receiver an C++

Kuerz gesot, dëst ass d'Resultat vum Gehacktes zréck duerch d'Fleeschmüller. De Standard stellt véier Aarte vu Vermëschung vir:

  • bëssen interleaving
  • Zell Interleaving (Mëschung vun Zellen an engem Kodéierungsblock)
  • Zäit Interleaving (et ass och an der Grupp vu Kodéierungsblocken)
  • Frequenzinterleaving (Frequenzvermëschung an engem OFDM Symbol)

Als Resultat hu mir de folgende Signal um Input:

SDR DVB-T2 Receiver an C++

All dëst ass e Kampf fir Kaméidi Immunitéit vum kodéierte Signal.

D 'Resultat

Elo kënne mir net nëmmen d'Signal selwer a seng Form gesinn, awer och Serviceinformatioun.
Et ginn zwee Multiplexen op der Loft. All huet zwee kierperlech Channels (PLP).

Eng Komeschheet gouf am éischte Multiplex gemierkt - déi éischt PLP ass "Multiple" bezeechent, wat logesch ass, well et méi wéi een am Multiplex ass, an déi zweet PLP ass "Single" bezeechent an dëst ass eng Fro.
Nach méi interessant ass déi zweet Odditéit am zweete Multiplex - all Programmer sinn am éischte PLP, awer an der zweeter PLP gëtt et e Signal vun enger onbekannter Natur mat enger gerénger Geschwindegkeet. Op d'mannst de VLC Player, deen ongeféier fofzeg Videoformate versteet an déiselwecht Quantitéit un Audio, erkennt et net.

De Projet selwer fannt Dir hei.

De Projet gouf erstallt mam Zil d'ganz Méiglechkeet ze bestëmmen fir DVB-T2 mat SdrPlay ze dekodéieren (an elo AirSpy.), Also dëst ass net emol eng Alpha Versioun.

PS Wärend ech den Artikel mat Schwieregkeeten geschriwwen hunn, hunn ech et fäerdeg bruecht PlutoSDR an de Projet z'integréieren.

Eppes wäert direkt soen datt et nëmmen 6Msps fir den IQ Signal um USB2.0 Output ass, awer Dir braucht op d'mannst 9,2Msps, awer dëst ass en separaten Thema.

Source: will.com

Setzt e Commentaire