SDR-DVB-navale2: differenze tra le versioni

Da PNLUG.
(Spiegazione di GNU AIS)
Riga 38: Riga 38:
  
 
Come ricevitore SDR receiver è stato utilizzato un semplice flusso grafico GNU Radio con due ricevitori paralleli che ricevono +/- 25 kHz dal centro banda a 162 MHz.
 
Come ricevitore SDR receiver è stato utilizzato un semplice flusso grafico GNU Radio con due ricevitori paralleli che ricevono +/- 25 kHz dal centro banda a 162 MHz.
 +
 +
===Il programma GNU radio===
 +
Scaricate il file .grc file a questo link: [https://gist.github.com/csete/6524653 https://gist.github.com/csete/6524653] (salvatelo selezionando il formato "raw", attraverso il comando "Salva come..." del tuo browser).
 +
 +
Il demodulatore di quadratura ha il parametro di guadagno (gain) espresso in (samples per symbol ratio). Testi differenti restituiscono definizioni differenti e non si è provato a modificare altro. Il valore esatto non è critico fino a quando l'uscita dal demodulatore non viene saturata.
 +
 +
Dopo il demodulatore il dato viene ricampionato a 48 ksps e convertito in un flusso a 16 bit selezionando i numrei interi. Esaminando il codice sorgente di gnuais source si è potuto notere che usa lo stesso formato di sample rate sia per l'audio in uso che per i file audio pre-caricati. Questo formato è il S16_LE a 48 ksps.
 +
 +
L'uscita del demodulatore e del convertitore dei due canali viene interallacciata  per creare un singolo flusso del formato ABABAB... e inviato verso un pipe unix nominale. Dall'altra parte finale del pipe, inizia l'avvio del programma gnuais che utilizza il parametro -l.
  
 
===Il programma GNU AIS===
 
===Il programma GNU AIS===

Versione delle 09:59, 15 mag 2015


Ricezione del traffico navale tramite radio SDR con il DVB-T RTL820T

Dvb-t.png


Utilizzo di un'antenna efficace

Oltre alla corretta installazione e compilazione dei programmi, non dimenticatevi di utilizzare una buona antenna di ricezione!

Configurazione del device

Configurate l'uscita audio della vostra device radio per permettere poi la decodifica del demodulatore, se necessario.

Frequenza di ricezione

Sintonizzate il vostro ricevitore su una delle due frequenze AIS (161.975 MHz oppure 162.025 MHz)

Consigli di ricezione

Avviare il decodificatore e configurare il programma in modo da avere una migliore ricezione del segnale AIS. Potete provare a regolare l'RF gain per ottenre un segnale robusto ma mantenendo al minimo il rumore di fondo.

Configurare il ricevitore in NFM (Narrow Frequency Modulation), con una larghezza di banda di 12.5 kHz. Nessun Filtro Audio e Squelch su OFF. Assicuratevi di non aver alcun filtro audio, altrimenti potreste non avere alcuna decodifica dei segnali ricevuti.

Sull'indicatore Waterfall i segnali AIS verranno visualizzati come delle grandi linee orizzontali. Se ascoltate i segnali AIS attraverso le casse audio del vostro PC, assomiglieranno a dei picchi di rumore in mezzo al silenzio.

Spiegazione di GNU AIS

GNU AIS - Automatic Identification System per Linux. Questo programma contiene gli algoritmi necessari a demodulare e decodificare i messaggi AIS inviati dalle navi e dalle stazioni costiere. Richiede l'installazione e la connessione di un discriminatore di uscita su un ricevitore VHF al fine di ottenere un funzionamento regolare e la corretta decodifica.
Ci sono diversi pacchetti di applicazioni che permettono la funzione di demodulazione e decodifica dei dati, compresi gr-ais gnuais. In questo articolo useremo un dongle RTL-SDR e il PC per avviare gnuais. Non conosciamo profondamente il programma gnuais, ma possiamo dire che è un programma piccolo ma efficiente per l'impiego che deve assolvere.

Così come compilato, gnuais non contiene nessun demodulatore ma richiede la presenza di un demodulatore esterno. Per questo motivo si potrebbe, per esempio, connettere direttamente l'uscita del discriminatore di un ricevitore FM all'uscita audio del PC dove è stato avviato gnuais. Comunque, in questo progetto utilizzeremo una software defined radio prevista con il funzionamento di un demodulatore, prima di inviare i dati a gnuais.

Il diagramma seguente mostra un anteprima della configurazione del ricevitore usato per questo progetto.

Sdr-ais.jpg


È stata usata un antenna marina filare verticale a 1/2 onda, connessa a un ottimo filtro passa-banda (164 ±10 MHz). La frequenza VHF è verametne piena di ogni sorta di segnali, così da dover obbligatoriamente utilizzare un'antenna accordata e un filtro passa-banda se si desidera ricevere dei segnali oltre alle radio commerciali in FM, sul vostro ricevitore dongle SDR. Ricordatevi che l'aggiunta di un preamplificatore dedicato potrebbe risolvere efficacemente le varie interferenze ma anche peggiorarle,in quanto il preamplificatore non saquale frequenza vi interessi in particolare. Fortunatamente i segnali AIS sono relativamente molto forti e anche un ricevitore scarso dovrebbe essere capace di riuscire a riceverli, se siete vicini al traffico radio matrittimo.

Il seguente filtro passa-banda viene realizzato con il dongle rtl-sdr. È stato testato su un dongle con un tuner R820T.

Rtl-filter-pb.jpg


Come ricevitore SDR receiver è stato utilizzato un semplice flusso grafico GNU Radio con due ricevitori paralleli che ricevono +/- 25 kHz dal centro banda a 162 MHz.

Il programma GNU radio

Scaricate il file .grc file a questo link: https://gist.github.com/csete/6524653 (salvatelo selezionando il formato "raw", attraverso il comando "Salva come..." del tuo browser).

Il demodulatore di quadratura ha il parametro di guadagno (gain) espresso in (samples per symbol ratio). Testi differenti restituiscono definizioni differenti e non si è provato a modificare altro. Il valore esatto non è critico fino a quando l'uscita dal demodulatore non viene saturata.

Dopo il demodulatore il dato viene ricampionato a 48 ksps e convertito in un flusso a 16 bit selezionando i numrei interi. Esaminando il codice sorgente di gnuais source si è potuto notere che usa lo stesso formato di sample rate sia per l'audio in uso che per i file audio pre-caricati. Questo formato è il S16_LE a 48 ksps.

L'uscita del demodulatore e del convertitore dei due canali viene interallacciata per creare un singolo flusso del formato ABABAB... e inviato verso un pipe unix nominale. Dall'altra parte finale del pipe, inizia l'avvio del programma gnuais che utilizza il parametro -l.

Il programma GNU AIS

Il codice sorgente di gnuais viene mantenuto su Github. Potete scaricare clonando il suo repository con il seguente comando da terminale:

git clone https://github.com/rubund/gnuais.git

Se siete utenti con SO Ubuntu, potete aggiungere il PPA ppa:saltmakrell/gnuais con i seguenti comandi:

sudo add-apt-repository ppa:saltmakrell/gnuais
sudo apt-get update

and then you can easily install gnuais with

sudo apt-get install gnuais

o attraverso l'Ubuntu Software Center che manterrà aggiornato il programma ogni volta che verranno trovati aggiornamenti disponibili.

Potete anche installare l'interfaccia grafica GUI, con il seguente comando:

sudo apt-get install gnuaisgui

(ricordatevi di avere l'applicazione gnuais avviata in background prima di avviare l'iterfaccia grafica).

Sorgente in tar.gz: Scarica

Visualizzazione grafica del programma:

Gui-navale.png

Tipi di pacchetti ricevuti

Nella figura seguente, vengono raffigurati tre diversi tipi di pacchetto dati, tipo 1, tipo 4 e tipo 5.
Il tipo 4 sono pacchetti che sono stati inviati dalle stazioni base a terra verso i natanti. Normalmente vengono inviati a intervalli regolari senza interruzione. Il primo numero, 002573325 è il MMSI. Questo è un ID unico che identifica la stazione base. I numeri 0 0 0 24 60 60, sono preceduti dalla data e l'ora, ma sembrano simili a quelli delle stazioni base che che non hanno l'orario o altri dati corretti. Gli ultimi due numeri sono la latitudine e la longitudine.

Per il messaggio tipo 1, il primo numero è il MMSI, i due numeri successivi sono la latitudine e la longitudine. Poi c'è un numero che indica la prua indicata espressa in gradi. 220 indica che la nave ha la prua a sud-ovest. 0 gradi indica il nord. Il numero successivo indica la velocità in nodi. Per informazioni sulle navi si possono controllare su MMSI andando a questo link, dove troverete altri dati extra sulla nave selezionata. Per esempio, il codice MMSI 565427000 indica la nave di nome ARWEN che ha come base navale Singapore.


Il software è capace di decodificare i pacchetti che abbiano il nome e i dati di destinazione presenti, ma questi dati sono molto lunghi e se la ricezione non è molto buona e/o la trasmittente è molto lontana, alcuni di questi dati vengono decodificati con qualche errore. Those packets are of type 5, and if you are lucky you will get some of them decoded too. Below there is one type 5 packet which says that the ship with MMSI 257347700 is called LISE and is heading for Trondheim, it is 15 meters long, 4 meters wide and the height is 1.5 meters.

Navale2.png


Se avete un computer con installato mysql o avete accesso a un server mysql, potete configurare GNU AIS a salvare i dati all'interno di un database. Dovete esere capaci di effettuare le giuste query di richiesta sulla nave cercata, se usate altri software. Per esempio, potete effettuare delle query di ricerca per ottenere informazioni dettagliate riguardanti i posti da dove la nave è partita, la sua velocità del percorso, ecc. . Ci sono alcuni software che attraverso i dati MySQL permettono di posizionare la nave sul programma Google Earth. In questo modo è possibile avere una visione grafica della nave in questione e delle altre navi che navigano nella vostra area.

Navale1.png


Software GNU Radio

Se siete interessati a GNU Radio, potete trovare la versione GNU Radio del programma AIS, con demodulazione e decodifica a questo indirizzo: http://funwithelectronics.com/sdr/ais.php

Grc-ais.png


Pagina di riferimento per questo articolo: http://gnuais.sourceforge.net

Altre pagine sull'argomento: