Tere, Habr!
Praegu on olemas üsna vähe side standardeid, mis ühel poolt on huvitavad ja tähelepanuväärsed, teiselt poolt ei vaja nende kirjeldamine 500-leheküljelist PDF-dokumenti. Üks selline, kergesti dešifreeritav signaal on VHF Omni-directional Radio Beacon (VOR), mida kasutatakse õhutranspordis.

VOR Beacon (c) wikimedia.org
Küsimus lugejatele — kuidas moodustada signaal nii, et suunamata vastuvõtja antenniga saaks kindlaks teha suunda? Vastus on allpool.
Ülevaade
Süsteem (VOR) on õhutranspordis kasutusel olnud alates 1950. aastatest ning koosneb suhteliselt lühikese ulatusega (100-200 km) raadiomajaidest, mis töötavad sagedusalas UHF 108-117 MHz. Praegu, gigahertside ajastul, kõlab very high frequency nende sageduste kohta veidi naljakalt ja ütleb rohkem kui piisavalt selle standardi vanusest , aga muide, majakad , mis töötavad keskmise laine vahemikus 400-900 kHz, on endiselt aktiivsed.
Suunatud antenni paigaldamine lennukile on konstruktiivselt ebamugav, seetõttu tekkis ülesanne, kuidas kodeerida signaalis teavet suuna kohta majakale. Tööpõhimõtet saab seletada järgmiselt. Kujutame ette tavalist majakat, mis kiirgab kitsast roheline valgust, mille lamp pöörleb 1 kord minutis. Ilmselgelt näeme me kord minutis valguse sähvatust, kuid üks selline sähvatus ei kanna palju teavet. Lisame majakale teise suunamata punane lamp, mis välgub hetkel, kui tuletorni valgus "läbib" põhja suuna. Kuna välgude periood ja tuletorni koordinaadid on teada, saab punase ja rohelise välgu vahemaa mõõtmisega välja arvutada azimuti põhja suunas. Kõik on lihtne. Jäänud on teha sama, kuid raadiotehnoloogia abil. See lahendati faaside muutmisega. Edastamiseks kasutatakse kahte signaali: esimese faas on konstantne (reference), teise (variable) faas muutub keeruliselt vastavalt kiirituule suunale - igale nurgale vastab oma faasi nihke. Seeläbi saab iga vastuvõtja signaali oma faasi nihkega, mis on proportsionaalne tuletorni azimutile. "Ruumi modulatsiooni" tehnoloogia teostatakse spetsiaalse antenni (Alford Loop, vt KDPV) ja eriliste, üsna nutikate modulatsioonide abil. Just see ongi selle artikli teema.
Kujutame ette, et meil on tavaline pärandtyöimerkki, mis on töötanud alates 50. aastatest ja edastab signaale tavalises AM-modulatsioonis Morze tähestikus. Ilmselt kuulas kunagi navigator tõeliselt neid signaale kõrvaklappides ja märkis suundi joonlaua ja kompassiga kaardile. Tahame lisada signaalile uusi funktsioone, kuid nii, et see ei rikuks vanade seadmete ühilduvust. Teema on tuttav, mitte midagi uut... See viidi ellu järgmiselt — AM-signaalile lisati madallsageduslik 30 Hz toon, mis toimib reference-phase signaalina, ning kõrgsageduslik komponent, mis on kodeeritud sagedusmodulatsioonis sagedusel 9.96 kHz, edastades variable phase signaali. Erakordides kaks signaali ja võrreldes faase, saame otsitava nurga vahemikus 0 kuni 360 kraadi, mis on vajalik azimut. Samal ajal ei takista see kuulata majakat "tavalisel viisil" ja jääb ühilduvaks vanade AM-vastuvõtjatega.
Liigume teooriast praktikas. Käivitame SDR-vastuvõtja, valime AM-modulatsiooni ja ribalaiuseks 12 kHz. VOR-majakate sagedusi saab kergesti internetist leida. Spektris näeb signaal välja järgmiselt:

Selles juhul edastatakse maamärgi signaal sagedusel 113.950 MHz. Keskuses on selgelt eristatav amplituudmodulatsiooni joon ja Morse'aabitsat näitavad signaalid (.- — … mis tähendab AMS, Amsterdam, lennujaam Schiphol). Ümberringi, 9.6 kHz kandis, on nähtavad kaks piiki, mis edastavad teist signaali.
Salvestame signaali WAV-formaadis (mitte MP3 — kadudega kompresseerimine "hävitab" signaali struktuuri) ja avame selle GNU Radios.
Dekodeerimine
Samm 1. Avame salvestatud signaaliga faili ja rakendame sellele madalfrequencies filtrit, et saada esimene reference-signaal. GNU Radio graafik on näidatud joonisel.

Tulemus: madalsageduslik signaal sagedusega 30 Hz.

Samm 2: dekodeerime variable phase signaali. Nagu varem mainitud, asub see sagedusel 9.96 kHz, peame viima selle nullsagedusele ja andma FM-demodulaatorile.
GNU Radio graafik:

Nüüd on ülesanne lahendatud. Näeme kahte signaali, mille faasi erinevus näitab nurka vastuvõtjast VOR-majakani:

Signaal on piisavalt mürane ja faasi erinevuse lõplikuks arvutamiseks võib olla vajalik täiendav filtreerimine, kuid põhimõte, loodan, on selge. Neile, kes on unustanud, kuidas faasi erinevus määratakse, pilt :

Õnneks ei pea kõike seda käsitsi tegema: juba on olemas Pythonis, mis dekodeerib VOR-signaale WAV-failidest. Tegelikult inspireeris mind selle uurimine selle teema uurimiseks.
Soovijad saavad programmi käivitada konsoolis ja saada valmis nurga kraadides juba salvestatud failist:

Lennunduse fännid saavad isegi ehitada endale kaasaskantava vastuvõtja RTL-SDR ja Raspberry Pi-st. Muide, „päris“ lennukis näeb see indikaator välja umbes nii:

Image ©
Kokkuvõte
Sarnased „mineviku” signaalid on kindlasti huvitavad analüüsimiseks. Esiteks, need on piisavalt lihtsad, modernne DRM või veelgi enam GSM, nii ei saa neid enam „näpuga näidata” dekodeerida. Need on vastuvõtuks avatud, neis pole võtmeid ega krüptograafiat. Teiseks, tulevikus võivad need minna ajalukku ja asenduda satelliitnavigation ja kaasaegsemate digitaalsete süsteemidega. Kolmandaks, selliste standardite uurimine võimaldab teada huvitavaid tehnilisi ja ajaloolisi detaile, kuidas ülesandeid lahendati eelmise sajandi erineva skeemitehnika ja elementide baasil. Seega võiks vastuvõtjate omanikele soovitada selliseid signaale vastu võtta, seni kuni need veel töötavad.
Nagu alati, soovin kõigile edukat katsetamist.
Allikas: habr.com
