Un codice PRN (Pseudo-Random Noise) genera una sequenza binaria apparentemente casuale, ma deterministica e ripetibile. I sistemi di navigazione satellitare, come GPS, Galileo e BeiDou, e diverse applicazioni di comunicazione, si basano su questi codici.
I codici PRN presentano caratteristiche chiave che li rendono essenziali per la navigazione e la comunicazione.
Seguono un modello deterministico poiché gli algoritmi li generano, garantendo una riproduzione precisa. Nonostante la loro struttura, presentano proprietà statistiche simili al rumore bianco, che li fa apparire casuali.
Gli ingegneri progettano codici diversi in modo che siano ortogonali o unici, riducendo così la correlazione incrociata e minimizzando le interferenze.
Nelle applicazioni GPS e GNSS (ad esempio, i sistemi aerei senza pilota), ogni satellite della costellazione trasmette un codice PRN unico.
Questi codici hanno molteplici funzioni: aiutano i ricevitori GPS a distinguere i segnali provenienti da diversi satelliti, consentono di calcolare la portata confrontando i codici trasmessi con una versione generata localmente per determinare il tempo di percorrenza del segnale e supportano la modulazione a spettro diffuso.
Questa tecnica di modulazione consente ai segnali di trasmettere su un'ampia larghezza di banda, aumentando la resistenza alle interferenze e ai disturbi.
Il GPS utilizza diversi tipi di codici PRN. Il codice C/A (Coarse/Acquisition) supporta la navigazione GPS standard e si ripete ogni 1 millisecondo. Il codice P(Y), progettato per applicazioni militari, cripta i dati e si ripete ogni sette giorni.
Il codice M, una versione militare avanzata, migliora le capacità anti-jamming.
I Linear Feedback Shift Registers (LFSR) generano i codici PRN, producendo sequenze con proprietà di correlazione desiderabili per un preciso tracciamento del segnale.
Mantenendo le caratteristiche pseudo-casuali e garantendo al contempo prevedibilità e ripetibilità, gli LFSR rendono questi codici altamente affidabili per la navigazione e la comunicazione.
Rappresentazione matematica del codice PRN
Per G1 e G2, la relazione di ricorrenza è:
G1(n) = G1(n−3) ⊕ G1(n−10)
G2(n) = G2(n−2) ⊕ G2(n−3) ⊕ G2(n−6) ⊕ G2(n−8) ⊕ G2(n−9) ⊕ G2(n−10)
Dove ⊕ (XOR) è l'operazione di addizione binaria.
Il codice PRN viene quindi formato come:
PRN(n) = G1(n) ⊕ G2 (n+delay)
Il ritardo varia per ogni satellite GPS, garantendo sequenze PRN univoche.