Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Ciao, Habr!

Attualmente ci sono pochi standard di comunicazione che, da un lato, sono curiosi e interessanti, e dall'altro, non richiedono 500 pagine di descrizione in formato PDF. Uno di questi, facilmente decodificabile, è il segnale VHF Omni-directional Radio Beacon (VOR), utilizzato in aeronautica.

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio
VOR Beacon (c) wikimedia.org

Iniziamo con una domanda per i lettori: come si può formare un segnale in modo da poter determinare la direzione usando un'antenna ricevente omnidirezionale? La risposta è dopo il tag.

Informazioni generali

Sistema Very High Frequency Omni-directional Range (VOR) è utilizzato in aeronautica fin dagli anni '50 dello scorso secolo, ed è composto da radiomarker relativamente a bassa distanza (100-200 km) che operano nella gamma di frequenze VHF 108-117 MHz. Oggi, nell'era dei gigahertz, il termine very high frequency applicato a tali frequenze suona divertente e già solo questo parla dell' età di questo standard, ma, tra l'altro, i beacon NDB, che operano nella gamma delle onde medie 400-900 kHz, sono ancora in funzione.

Posizionare un'antenna direzionale su un aereo è strutturalmente scomodo, quindi è emersa la necessità di codificare nel segnale stesso le informazioni sulla direzione verso il faro. Il principio di funzionamento può essere spiegato in modo semplice. Immaginiamo di avere un faro convenzionale che emette un fascio stretto di luce verde, la cui lampada ruota una volta al minuto. È evidente che una volta al minuto vedremo un lampeggio di luce, ma un solo lampeggio non porta molte informazioni. Aggiungiamo al faro un secondo non direzionale una lampada di colore rosso, che lampeggia nel momento in cui il raggio del faro "passa" nella direzione nord. Poiché il periodo di lampeggi e le coordinate del faro sono noti, calcolando il ritardo tra i lampi rosso e verde, è possibile determinare l'azimut verso nord. È semplice. Rimane da fare la stessa cosa, ma utilizzando la radio. Questo è stato risolto attraverso una variazione di fase. Per la trasmissione vengono utilizzati due segnali: la fase del primo è costante (reference), mentre la fase del secondo (variable) varia in modo complesso a seconda della direzione di emissione — a ciascun angolo corrisponde un proprio spostamento di fase. In questo modo, ogni ricevitore riceverà un segnale con il proprio spostamento di fase, proporzionale all'azimut verso il faro. La tecnologia di "modulazione spaziale" è realizzata utilizzando un'antenna speciale (Alford Loop, vedi KDPV) e una modulazione piuttosto sofisticata. Questa è in effetti il tema di questo articolo.

Immaginiamo di avere un normale faro legacy, in funzione dagli anni '50, che trasmette segnali in modulazione AM utilizzando il codice Morse. Probabilmente, tanto tempo fa, il navigatore ascoltava davvero questi segnali con le cuffie e tracciava le direzioni con un righello e un compasso sulla mappa. Vogliamo aggiungere nuove funzionalità al segnale, ma senza "rovinarne" la compatibilità con i vecchi sistemi. È un tema familiare, nulla di nuovo... È stato fatto in questo modo: al segnale AM è stato aggiunto un tono a bassa frequenza di 30 Hz, che funge da segnale di riferimento di fase, e una componente ad alta frequenza, codificata in modulazione di frequenza a 9,96 kHz, che trasmette un segnale di fase variabile. Se isoliamo i due segnali e confrontiamo le fasi, otteniamo l'angolo ricercato da 0 a 360 gradi, che rappresenta l'azimut necessario. Tutto ciò non ostacolerà l'ascolto del faro "nel modo tradizionale" e rimane compatibile con i vecchi ricevitori AM.

Passiamo dalla teoria alla pratica. Avviamo un ricevitore SDR, selezioniamo la modulazione AM e una larghezza di banda di 12 kHz. Le frequenze dei fari VOR possono essere facilmente trovate online. Sullo spettro, il segnale appare come segue:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

In questo caso, il segnale del faro viene trasmesso alla frequenza di 113.950 MHz. Al centro si vede una linea di modulazione di ampiezza facilmente riconoscibile e segnali in codice Morse (.- — … che significa AMS, Amsterdam, aeroporto di Schiphol). Intorno, a una distanza di 9.6 kHz dalla portante, sono visibili due picchi che trasmettono un secondo segnale.

Registriamo il segnale in WAV (non MP3 — la compressione con perdita "distruggerà" l'intera struttura del segnale) e apriamolo in GNU Radio.

Decodifica

Passo 1. Apriremo il file con il segnale registrato e applicheremo un filtro passa basso per ottenere il primo segnale di riferimento. Il grafico di GNU Radio è mostrato nell'immagine.

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Risultato: segnale a bassa frequenza con una frequenza di 30 Hz.

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Passo 2: decodifichiamo il segnale a fase variabile. Come accennato in precedenza, si trova alla frequenza di 9.96 kHz, dobbiamo spostarlo sulla frequenza zero e inviarlo a un demodulatore FM.

Grafico di GNU Radio:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Tutto, il problema è risolto. Vediamo due segnali, la differenza di fase dei quali indica l'angolo dal ricevitore al faro VOR:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Il segnale è sufficientemente rumoroso, e per il calcolo finale della differenza di fase potrebbe essere necessaria un'ulteriore filtrazione, ma il principio spero sia chiaro. Per coloro che hanno dimenticato come viene determinata la differenza di fase, ecco un'immagine da aviation.stackexchange.com:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Fortunatamente, non è necessario fare tutto questo manualmente: esiste già un progetto pronto in Python, che decodifica i segnali VOR da file WAV. In effetti, il suo studio mi ha ispirato ad approfondire questo argomento.

Coloro che sono interessati possono eseguire il programma nella console e ottenere l'angolo pronto in gradi da un file già registrato:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio

Gli appassionati di aviazione possono persino creare un ricevitore portatile usando RTL-SDR e Raspberry Pi. A proposito, su un aereo "reale" questo indicatore appare più o meno così:

Determiniamo la direzione verso l'aeroporto utilizzando RTL-SDR e GNU Radio
Image © www.aopa.org

Conclusione

Tali segnali "del secolo scorso" sono sicuramente interessanti da analizzare. Innanzitutto, sono abbastanza semplici; non sarà possibile decodificare facilmente i moderni DRM o GSM. Sono aperti alla ricezione, non contengono chiavi né crittografia. In secondo luogo, è possibile che in futuro diventino obsoleti e vengano sostituiti dalla navigazione satellitare e da sistemi digitali più moderni. In terzo luogo, lo studio di tali standard permette di apprendere dettagli tecnici e storici interessanti su come venivano risolti i problemi utilizzando circuiti e componenti del secolo scorso. Pertanto, ai proprietari dei ricevitori si consiglia di captare tali segnali finché sono ancora attivi.

Come al solito, buon esperimento a tutti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster