Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Salut, Habr!

În prezent, nu există atât de multe standarde de comunicare care, pe de-o parte, să fie interesante și curioase, iar pe de altă parte, descrierea lor să nu ocupe 500 de pagini în format PDF. Unul dintre acestea, ușor de decodat, este semnalul VHF Omni-directional Radio Beacon (VOR), utilizat în aeronautică.

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio
VOR Beacon (c) wikimedia.org

Pentru început, o întrebare pentru cititori - cum se poate forma un semnal astfel încât, folosind o antenă de recepție omnidirecțională, să se poată determina direcția? Răspunsul este mai jos.

Informații generale

Sistem Very High Frequency Omni-directional Range (VOR) este folosit în aeronautică încă din anii '50 ai secolului trecut și constă din radiomaiacuri de relativ scurtă distanță (100-200 km), care funcționează în intervalul de frecvențe VHF 108-117 MHz. Acum, în era gigaherților, denumirea de very high frequency aplicabilă acestor frecvențe sună amuzant și deja sugerează vârsta acestui standard, dar, de altfel, mai funcționează mai multe radiomaia NDB, care operează în intervalul mediilor de undă 400-900 kHz.

Amplificarea antenei direcționate pe avion este construcțional incomodă, așa că a apărut problema cum să codificăm informația despre direcția spre radiomaiac chiar în semnal. Principiul de funcționare poate fi explicat în termeni simpli. Imaginați-vă că avem un radiomaiac obișnuit, care trimite un fascicul îngust de lumină verde, ale cărui lampi se rotesc o dată pe minut. Este evident că, o dată pe minut, vom vedea o fulgerare de lumină, dar o astfel de fulgerare nu poartă multe informații. Să adăugăm radiomaia omnidirecționată o lampă de culoare roșie, care pâlpâie în momentul în care fasciculul farului "trece" în direcția nord. Deoarece perioada de fulgere și coordonatele farului sunt cunoscute, calculând întârzierea între fulgerile roșie și verde, putem determina azimutul față de nord. Totul este simplu. Rămâne să facem același lucru, dar cu ajutorul radio. Acest lucru a fost rezolvat prin modificarea fazelor. Pentru transmitere sunt utilizate două semnale: faza primului este constantă (referință), iar faza celui de-al doilea (variabilă) se schimbă într-un mod complex în funcție de direcția radiației - fiecărui unghi îi corespunde un anumit decalaj de fază. Astfel, fiecare receptor va primi semnalul cu "decalajul" său de fază, proporțional cu azimutul către far. Tehnologia „modulației spațiale” se realizează cu ajutorul unei antene speciale (Alford Loop, vezi KDPV) și a unei modulații destul de ingenioase. Aceasta este, de fapt, tema acestui articol.

Să ne imaginăm că avem un far legacy obișnuit, care funcționează din anii '50 și transmite semnale în modulare AM obișnuit, folosind Alfabetul Morse. Probabil, cândva, navigatorul asculta cu adevărat aceste semnale în căști și marca direcțiile cu un riglă și un compas pe hartă. Vrem să adăugăm funcții noi semnalului, dar fără a "păru să" compatibilitatea cu cele vechi. Tema este familiară, nimic nu e nou... A fost realizat în felul următor - semnalului AM i s-a adăugat un ton de frecvență joasă de 30 Hz, care servește ca semnal de fază de referință, și o componentă de frecvență înaltă, codificată prin modulare de frecvență la 9.96 kHz, care transmite semnalul de fază variabilă. Separând cele două semnale și comparând fazele, obținem unghiul dorit de la 0 la 360 de grade, care este azimutul necesar. Totodată, toate acestea nu vor împiedica ascultarea farului „în mod obișnuit” și rămâne compatibil cu vechile receptoare AM.

Trecem de la teorie la practică. Să pornim receptorul SDR, să alegem modularea AM și o lățime de bandă de 12 kHz. Frecvențele farurilor VOR pot fi ușor găsite online. Pe spectru, semnalul arată astfel:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

În acest caz, semnalul farului este transmis la o frecvență de 113.950 MHz. La mijloc se vede o linie de modulație a amplitudinii ușor de recunoscut și semnale în cod Morse (.- — … care înseamnă AMS, Amsterdam, aeroportul Schiphol). În jur, la o distanță de 9.6 kHz de purtător, se văd două vârfuri care transmit semnalul secundar.

Să înregistrăm semnalul în format WAV (nu MP3 — compresia cu pierderi va distruge întreaga structură a semnalului) și să-l deschidem în GNU Radio.

Decodare

Pasul 1. Vom deschide fișierul cu semnalul înregistrat și aplicăm un filtru de frecvențe joase pentru a obține primul semnal de referință. Graficul GNU Radio este prezentat în imagine.

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Rezultatul: semnal de frecvență joasă cu o frecvență de 30 Hz.

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Pasul 2: decodificăm semnalul de fază variabilă. Așa cum am menționat anterior, acesta se află la frecvența de 9,96 kHz, trebuie să-l mutăm la frecvența zero și să-l trimitem la demodulatorul FM.

Graficul GNU Radio:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Totul este rezolvat. Vedem două semnale, diferența de fază a cărora indică unghiul dintre receptor și farul VOR:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Semnalul este destul de zgomotos și pentru calculul final al diferenței de fază poate fi necesară filtrarea suplimentară, dar sper că principiul este clar. Pentru cei care au uitat cum se determină diferența de fază, imaginea din aviation.stackexchange.com:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Din fericire, nu trebuie să facem toate acestea manual: există deja un proiect gata în Python, care decodifică semnalele VOR din fișiere WAV. De fapt, studiul acestuia m-a inspirat să cercetez acest subiect.

Cei interesați pot rula programul în consolă și obține unghiul în grade dintr-un fișier deja înregistrat:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio

Pasionații de aviație pot chiar să își construiască un receptor portabil din RTL-SDR și Raspberry Pi. Apropo, pe un avion „adevărat”, acest indicator arată cam așa:

Determinăm direcția către aeroport folosind RTL-SDR și GNU Radio
Imagine © www.aopa.org

Concluzie

Astfel de semnale „din secolul trecut” sunt cu siguranță interesante pentru analiză. În primul rând, sunt destul de simple, DRM-ul modern sau, cu atât mai mult, GSM-ul, nu pot fi decodificate atât de simplu. Ele sunt deschise pentru recepție, nu au chei și criptografie. În al doilea rând, este posibil ca în viitor ele să dispară în istorie și să fie înlocuite de navigația prin satelit și sisteme digitale mai moderne. În al treilea rând, studiul acestor standarde permite descoperirea unor detalii tehnice și istorice interesante despre modul în care problemele au fost rezolvate în trecut cu alte scheme și baze de elemente. Așadar, posesorilor de receptoare li se poate recomanda să primească aceste semnale, cât timp încă funcționează.

Ca de obicei, tuturor experimente reușite.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster