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

Ehi Habr!

Attualmente non esistono molti standard di comunicazione che, da un lato, siano curiosi e interessanti, dall'altro la loro descrizione non occupa 500 pagine in formato PDF. Uno di questi segnali facile da decodificare è il segnale radiofaro omnidirezionale VHF (VOR) utilizzato nella navigazione aerea.

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

Innanzitutto una domanda per i lettori: come generare un segnale in modo che la direzione possa essere determinata utilizzando un'antenna ricevente omnidirezionale? La risposta è sotto taglio.

Informazioni generali

Sistema Gamma omnidirezionale ad altissima frequenza (VOR) è stato utilizzato per la navigazione aerea dagli anni '50 del secolo scorso ed è costituito da radiofari a raggio relativamente corto (100-200 km), operanti nella gamma di frequenze VHF 108-117 MHz. Ora, nell'era dei gigahertz, il nome frequenza molto alta in relazione a tali frequenze suona divertente e di per sé parla di età questo standard, ma comunque i beacon funzionano ancora NDB, operante nella gamma delle onde medie 400-900 kHz.

Posizionare un'antenna direzionale su un aereo è strutturalmente scomodo, quindi è sorto il problema di come codificare le informazioni sulla direzione del faro nel segnale stesso. Il principio di funzionamento “sulle dita” può essere spiegato come segue. Immaginiamo di avere un normale faro che emette uno stretto raggio di luce verde, la cui lampada ruota 1 volta al minuto. Ovviamente, una volta al minuto vedremo un lampo di luce, ma uno di questi lampi non trasporta molte informazioni. Aggiungiamone un secondo al faro non direzionale una lampada rossa che lampeggia nel momento in cui il fascio del faro “passa” in direzione nord. Perché si conosce il periodo dei lampi e le coordinate del faro; calcolando il ritardo tra il lampeggio rosso e quello verde si può conoscere l'azimut verso nord. È semplice. Resta da fare la stessa cosa, ma usando la radio. Questo è stato risolto cambiando le fasi. Per la trasmissione vengono utilizzati due segnali: la fase del primo è costante (riferimento), la fase del secondo (variabile) cambia in modo complesso a seconda della direzione della radiazione - ogni angolo ha il proprio sfasamento. Pertanto, ciascun ricevitore riceverà un segnale con il proprio sfasamento, proporzionale all'azimut del faro. La tecnologia di “modulazione spaziale” viene eseguita utilizzando un'antenna speciale (Alford Loop, vedi KDPV) e una modulazione speciale, piuttosto complicata. Che è in realtà l'argomento di questo articolo.

Immaginiamo di avere un normale faro legacy, operativo dagli anni '50, che trasmette segnali nella normale modulazione AM in codice Morse. Probabilmente, un tempo, il navigatore ascoltava effettivamente questi segnali in cuffia e segnava le direzioni con righello e bussola sulla mappa. Vogliamo aggiungere nuove funzionalità al segnale, ma in modo tale da non “rompere” la compatibilità con quelle vecchie. L'argomento è familiare, niente di nuovo... È stato fatto come segue: al segnale AM ​​è stato aggiunto un tono a bassa frequenza da 30 Hz, che svolge la funzione di un segnale di fase di riferimento, e un componente ad alta frequenza, codificato dalla frequenza modulazione ad una frequenza di 9.96 KHz, trasmettendo un segnale a fase variabile. Selezionando due segnali e confrontando le fasi, otteniamo l'angolo desiderato da 0 a 360 gradi, che è l'azimut desiderato. Allo stesso tempo, tutto ciò non interferirà con l'ascolto del radiofaro “nel solito modo” e rimarrà compatibile con i vecchi ricevitori AM.

Passiamo dalla teoria alla pratica. Lanciamo il ricevitore SDR, selezioniamo la modulazione AM e la larghezza di banda 12 KHz. Le frequenze dei radiofari VOR possono essere facilmente trovate online. Sullo spettro, il segnale appare così:

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

In questo caso il segnale beacon viene trasmesso alla frequenza di 113.950 MHz. Al centro puoi vedere la linea di modulazione di ampiezza facilmente riconoscibile e i segnali in codice Morse (.- - ... che significa AMS, Amsterdam, Aeroporto di Schiphol). Intorno ad una distanza di 9.6 KHz dalla portante sono visibili due picchi che trasmettono il secondo segnale.

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

Decodifica

Passo 1. Apriamo il file con il segnale registrato e applichiamogli un filtro passa-basso per ottenere il primo segnale di riferimento. Il grafico GNU Radio è mostrato in figura.

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

Risultato: segnale a bassa frequenza a 30 Hz.

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

Passo 2: decodifica il segnale a fase variabile. Come accennato in precedenza si trova ad una frequenza di 9.96 KHz, dobbiamo spostarlo alla frequenza zero e alimentarlo al demodulatore FM.

Grafico radio GNU:

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

Questo è tutto, problema risolto. Vediamo due segnali, la cui differenza di fase indica l'angolo dal ricevitore al faro VOR:

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

Il segnale è piuttosto rumoroso e potrebbe essere necessario un ulteriore filtraggio per calcolare finalmente la differenza di fase, ma spero che il principio sia chiaro. Per coloro che hanno dimenticato come viene determinata la differenza di fase, un'immagine da Aviation.stackexchange.com:

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

Fortunatamente non devi fare tutto questo manualmente: esiste già progetto finito in Python, decodifica segnali VOR da file WAV. In realtà, il suo studio mi ha ispirato a studiare questo argomento.

Chi è interessato può eseguire il programma nella console e ottenere l'angolo finito in gradi dal file già registrato:

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

Gli appassionati di aviazione possono persino creare il proprio ricevitore portatile utilizzando un RTL-SDR e un Raspberry Pi. A proposito, su un aereo “reale” questo indicatore assomiglia a questo:

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

conclusione

Tali segnali “del secolo scorso” sono sicuramente interessanti per l’analisi. In primo luogo, sono DRM abbastanza semplici e moderni o, soprattutto, GSM, non è più possibile decodificarli “sulle dita”. Sono aperti all'accettazione e non hanno chiavi o crittografia. In secondo luogo, forse in futuro diventeranno storia e saranno sostituiti dalla navigazione satellitare e da sistemi digitali più moderni. In terzo luogo, lo studio di tali standard consente di apprendere interessanti dettagli tecnici e storici su come i problemi sono stati risolti utilizzando altri circuiti ed elementi base del secolo scorso. Pertanto si può consigliare ai proprietari del ricevitore di ricevere tali segnali mentre stanno ancora funzionando.

Come al solito, buoni esperimenti a tutti.

Fonte: habr.com

Aggiungi un commento