SDR-DVB-navale2: differenze tra le versioni

Da PNLUG.
(Spiegazione di GNU AIS)
(Tipi di pacchetti ricevuti)
 
(11 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:
 
<div style="text-align:justify">
 
<div style="text-align:justify">
  
<big>Ricezione del traffico navale tramite radio SDR con il DVB-T RTL820T </big>
+
<big>Ricezione del traffico navale tramite radio SDR con il DVB-T RTL820T e GNU radio SDR </big>
 
[[Immagine:Dvb-t.png|right|300px]]  
 
[[Immagine:Dvb-t.png|right|300px]]  
  
Riga 40: Riga 40:
  
 
===Il programma GNU radio===
 
===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).
+
[[Immagine:Gnuradio-logo.png|right|300px]]
 +
Per scaricare ed installare automaticamente il programma GNU Radio e le sue numerose applicazioni, seguite le informazioni che trovate descritte in [https://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGRFromSource#Using-the-build-gnuradio-script questa pagina] e in [http://sdr.osmocom.org/trac/wiki/rtl-sdr questa pagina].
 +
 +
Scaricate ora il file .grc file a questo link: [https://gist.github.com/csete/6524653 https://gist.github.com/csete/6524653] (salvatelo selezionando prima il formato "raw", poi 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.
 
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.
+
Dopo il demodulatore abbiamo un campionamento a 48 ksps e una conversione del flusso a 16 bit per i numeri interi. Esaminando il codice sorgente gnuais si è scoperto che utilizza lo stesso formato campione indipendentemente dal fatto che si utilizzi l'ingresso audio o un file audio. Questo formato è 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.
+
L'uscita demodulata e convertita 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, avviamo il programma gnuais con il parametro -l.
 +
 
 +
È una buona idea creare ed editare un file di configurazione di gnuais come suggerito dall'applicazione. Questo vi permetterà di configurare facilemente gnuais per decodificare ambedue i canali AIS utilizzando l'audio stereo.
  
 
===Il programma GNU AIS===
 
===Il programma GNU AIS===
Riga 56: Riga 61:
 
  sudo apt-get update
 
  sudo apt-get update
  
and then you can easily install gnuais with
+
e poi potrete installaree facilmente gnuais con il comando
 
  sudo apt-get install gnuais
 
  sudo apt-get install gnuais
  
Riga 77: Riga 82:
  
  
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.
+
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.  
  
 
[[Immagine:Navale2.png|center|600px]]  
 
[[Immagine:Navale2.png|center|600px]]  
Riga 91: Riga 96:
  
  
Pagina di riferimento per questo articolo: http://gnuais.sourceforge.net
+
Pagina di riferimento per questo articolo: [http://www.oz9aec.net/index.php/gnu-radio-blog/482-a-2-channel-ais-receiver-using-rtl-sdr-and-gnuais gnu-radio-blog/482-a-2-channel-ais-receiver-using-rtl-sdr-and-gnuais]
  
 
Altre pagine sull'argomento:  
 
Altre pagine sull'argomento:  
 
* [http://www.rtl-sdr.com/2-channel-ais-receiver-rtl-sdr-gnuais/ http://www.rtl-sdr.com/2-channel-ais-receiver-rtl-sdr-gnuais/]
 
* [http://www.rtl-sdr.com/2-channel-ais-receiver-rtl-sdr-gnuais/ http://www.rtl-sdr.com/2-channel-ais-receiver-rtl-sdr-gnuais/]
 
* [http://www.reddit.com/r/RTLSDR/comments/1mcikt/for_the_nautical_set_rtlsdr_with_grais_and_opencpn/  http://www.reddit.com/r/RTLSDR/comments/1mcikt/for_the_nautical_set_rtlsdr_with_grais_and_opencpn/]
 
* [http://www.reddit.com/r/RTLSDR/comments/1mcikt/for_the_nautical_set_rtlsdr_with_grais_and_opencpn/  http://www.reddit.com/r/RTLSDR/comments/1mcikt/for_the_nautical_set_rtlsdr_with_grais_and_opencpn/]
 +
* [http://nmearouter.com/docs/ais/aerial.html come realizzare un'antenna collineare autocostruita]
 
   
 
   
 
</div>
 
</div>

Versione attuale delle 07:57, 23 nov 2015


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

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

Gnuradio-logo.png

Per scaricare ed installare automaticamente il programma GNU Radio e le sue numerose applicazioni, seguite le informazioni che trovate descritte in questa pagina e in questa pagina.

Scaricate ora il file .grc file a questo link: https://gist.github.com/csete/6524653 (salvatelo selezionando prima il formato "raw", poi 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 abbiamo un campionamento a 48 ksps e una conversione del flusso a 16 bit per i numeri interi. Esaminando il codice sorgente gnuais si è scoperto che utilizza lo stesso formato campione indipendentemente dal fatto che si utilizzi l'ingresso audio o un file audio. Questo formato è S16_LE a 48 ksps.

L'uscita demodulata e convertita 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, avviamo il programma gnuais con il parametro -l.

È una buona idea creare ed editare un file di configurazione di gnuais come suggerito dall'applicazione. Questo vi permetterà di configurare facilemente gnuais per decodificare ambedue i canali AIS utilizzando l'audio stereo.

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

e poi potrete installaree facilmente gnuais con il comando

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.

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: gnu-radio-blog/482-a-2-channel-ais-receiver-using-rtl-sdr-and-gnuais

Altre pagine sull'argomento: