Software Defined Radio (software-defined radio) er en metode til at erstatte metalarbejde (som i princippet er gavnligt for sundheden) med hovedpine ved programmering. SDR forudsiges at have en stor fremtid, og den primære fordel betragtes at være fjernelse af begrænsninger i implementeringen af radioprotokoller. Et eksempel er OFDM (Orthogonal frequency-division multiplexing) moduleringsmetoden, som kun er blevet muliggjort gennem SDR. Men SDR tilbyder også en anden, rent ingeniørmæssig mulighed - evnen til at kontrollere og visualisere signalet på enhver vilkårlig punkt med minimal indsats.
En af de interessante kommunikationsstandarder er terrestrisk digital tv DVB-T2.
Hvorfor? Selvfølgelig kan man blot tænde for tv'et uden at rejse sig, men der er absolut intet at se, og det er allerede ikke bare min mening, men en medicinsk kendsgerning.
Hvis vi taler alvorligt, er DVB-T2 udviklet med meget brede muligheder, herunder:
- indendørs anvendelse
- modulering fra QPSK til 256QAM
- båndbredde fra 1,7MHz til 8MHz
Der er erfaring i at modtage digital tv baseret på SDR-princippet. DVB-T standarden findes i det velkendte projekt GNURadio. Der findes en blok gr-dvbs2rx for DVB-T2 standarden (alt dette for GNURadio), men den kræver forudgående signal-synkronisering, og den inspirerer (en særlig tak til Ron Economos).
Hvad har vi.
Der er en standard ETSI EN 302 755, der detaljeret beskriver transmission, men ikke modtagelse.
Signalet i luften har en samplefrekvens på 9,14285714285714285714 MHz, moduleret med COFDM med 32768 bærebølge i et bånd på 8 MHz.
Det anbefales at modtage sådanne signaler med en fordoblet samplefrekvens (for ikke at miste noget) og ved en mellem frekvens der er større end båndbredden (superheterodyn-modtagelse), for at eliminere DC-forskydning (Direct Current) og 'indlejring' af den lokale generator (LO) ved modtagerens indgang. Enheder, der opfylder disse betingelser, er for dyre for simpel nysgerrighed.
SdrPlay med 10Msps 10bit eller AirSpy med lignende specifikationer er meget billigere. Her er der ikke tale om en fordoblet samplefrekvens, og modtagelsen kan kun foregå med direkte konvertering (Zero IF). Derfor (af økonomiske årsager) skifter vi til tilhængere af 'rent' SDR med minimum hardwarekonvertering.
Der var to opgaver, der skulle løses:
- Synkronisering. At finde det nøjagtige afvigelse fra radiobølgelængden med præcision til fase og afvigelse fra samplefrekvensen.
- Skriv DVB-T2-standarden bagvendt.
Den anden opgave kræver meget mere kode, men kan løses med tålmodighed og kan let verificeres med test-signaler.
Test-signaler er tilgængelige på BBC's server ftp://ftp.kw.bbc.co.uk/t2refs/ med detaljerede instruktioner.
Løsningen på den første opgave afhænger meget af SDR-enhedens specifikationer og kontrolmuligheder. At bruge de anbefalede kontrolfunktioner har, som man siger, ikke været en succes, men det gav meget erfaring i at læse teknisk dokumentation, programmere, se serier og løse filosofiske spørgsmål... kort sagt, vi kunne ikke opgive projektet.
Troen på 'pure SDR' er kun blevet stærkere.
Vi modtager signalet, som det er, interpolerer det praktisk talt til en analog og udtrækker derefter et diskret signal, der ligner det ægte.
Synchroniserings-diagram:

Her er alt efter lærebogen. Det bliver lidt mere kompliceret herfra. Det er nødvendigt at beregne afvigelser. Der er meget litteratur og forskningsartikler, der sammenligner fordele og ulemper ved forskellige metoder. Fra klassikerne er det "Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design for OFDM-Based Broadband Transmission – Part I og II". Jeg har dog ikke mødt en eneste ingeniør, der kan og vil regne, derfor blev der anvendt en ingeniørmæssig tilgang. Samme metode til synkronisering har introduceret forstyrrelser i testsignalet. Ved at sammenligne forskellige målinger med kendte afvigelser (det var mig, der indførte dem) blev de bedste for ydeevne og enkeltheder valgt. Afvigelsen i modtagerfrekvensen beregnes ved at sammenligne beskyttelsesintervallet og dets gentagne del. Phasen af modtagerfrekvensen og samplingsfrekvensen vurderes ud fra afvigelsen i fasepilot-signaler og anvendes derefter i en simpel, lineær equalizer af OFDM-signalet.
Equalizer-specifikation:

Og alt dette fungerer godt, hvis man ved, hvornår DVB-T2-rammen begynder. For dette sendes præambel-symbolet P1 i signalet. Metoden til at detektere og dekode symbolet P1 er beskrevet i Technical Specification ETSI TS 102 831 (og der er også mange nyttige anbefalinger til modtagelse).
Autokorrelationen af signalet P1 (det øverste punkt ved begyndelsen af rammen):

Det første billede (der er kun seks måneder tilbage, før det bevægelige billede...):

Og her lærer vi, hvad IQ-ubalance, DC-offset og LO-lækage er. Som regel er kompensationen for disse specifikke for direkte konverteringsforvridninger implementeret i SDR-enhedens driver. Det har taget tid at forstå, at det at fjerne stjernerne fra det harmoniske QAM64-konstellation er kompensationsfunktionernes arbejde. Jeg måtte slukke for det hele og bygge min egen løsning.
Og nu begynder billedet at bevæge sig:

QAM64-modulation med en specifik konstellationsdrejning i DVB-T2-standarden:

Kort sagt er dette resultatet af at køre farsen tilbage gennem kødhakkeren. Standarden forudsætter fire typer af blanding:
- bit interleaving (bitinterleaving med drejning af søjler)
- cell interleaving (blanding af celler i kodningsblokken)
- time interleaving (også i kodenhedsgruppen)
- frequency interleaving (blanding af frekvenser i OFDM-symbolen)
Resultatet er et sådant signal ved indgangen:

Alt dette er en kamp for interferenssikkerhed i det kodede signal.
Resultat
Nu kan vi se ikke kun selve signalet og dets form, men også styringsoplysningerne.
Der er to multiplexere i æteren. Hver med to fysiske kanaler (PLP).
En underlighed er bemærket i den første multiplex — den første PLP har mærket "multiple", hvilket er logisk, da den ikke er alene i multiplexen, mens den anden PLP har mærket "single", og det er et spørgsmål.
Endnu mere interessant er den anden underlighed i den anden multiplex — alle programmer er i den første PLP, og den anden PLP på en lav hastighed har et signal af ukendt art. I det mindste genkender VLC-afspilleren, som forstår omkring halvtreds videoformater og lige så mange lydformater, det ikke.
.
Projektet blev oprettet for at bestemme muligheden for at dekode DVB-T2 ved hjælp af SdrPlay (og nu også AirSpy), så det er ikke engang en alfa-version.
P.S. Mens artiklen blev skrevet med besvær, lykkedes det at tilføje PlutoSDR til projektet.
Nogen vil straks sige, at der kun er 6Msps for IQ-signalet på USB2.0-udgangen, mens der skal være mindst 9,2Msps, men det er allerede et separat emne.
Kilde: habr.com
