Su tutti gli elementi della catena, ed in particolare
sul canale, agiscono fenomeni esterni aleatori (detti Rumore o
genericamente Disturbi) che alterano il corretto funzionamento della
trasmissione. Verrà definita Probabilità di errore di un canale il
rapporto tra il numero di segnali alterati e il totale dei segnali
trasmessi: in genere è un valore molto basso.
Utilizzando la tecnica della Ridondanza è
possibile ridurre la probabilità di errore di un canale. La ridondanza
consiste nell'aggiungere un certo numero di bit al messaggio in modo da
aiutare il ricevitore a riconoscere una comunicazione ed eventualmente a
ricostruire il messaggio corretto, senza chiederne la ritrasmissione.
Non
è possibile portare a zero la probabilità di errore di un canale
soggetto a disturbi.
Controllo
di Parità
Il trasmettitore aggiunge ad ogni carattere un bit in coda, alto o
basso, in modo da rendere Pari il numero di bit alti, con un semplice circuito
combinatorio.
-
se, durante il
trasferimento, un bit viene alterato, il ricevitore riconosce
l'errore dalla mancanza di parità e rifiuta il messaggio (ad
esempio chiedendone la ritrasmissione).
-
se subiscono alterazioni un numero pari di bit,
il ricevitore accetta il dato come corretto.
Ovviamente l'errore potrebbe interessare anche gli
stessi bit di parità. Talvolta viene utilizzato il controllo di parità
Dispari, che non prevede la sequenza composta da tutti bit bassi.
Controllo di Parità
Incrociata
In aggiunta alla parità orizzontale sul singolo carattere, viene
aggiunta un'intera codifica al termine di un pacchetto di lunghezza
fissata.
Ogni bit della codifica aggiunta è stato calcolato con il controllo di
parità su tutti i bit di ugual posto del pacchetto.
-
se un solo bit del pacchetto viene alterato, il
ricevitore riconosce la riga e la posizione dell'errore e
ricostruisce il bit errato negandolo.
-
se due o più bit vengono modificati, il
ricevitore riconosce l'errore senza poterlo correggere e chiede la
ripetizione del messaggio.
-
solo se quattro bit si alterano "a
rettangolo" il ricevitore non riconosce l'errore e accetta il
messaggio.
Controllo Polinomiale
(Cyclic Redundant Codes)
Gli N bit di un intero pacchetto di caratteri sono considerati come i
coefficienti di un polinomio P(x) da
dividere per un polinomio G(x), detto
Polinomio Generatore, formato da una sequenza prestabilita di M bit:
-
agli N bit del pacchetto vengono aggiunti M-1
zeri;
-
il polinomio ottenuto viene diviso per il
polinomio generatore (utilizzando un'aritmetica "modulo
2", cioè non considerando i prestiti);
-
gli M-1 bit del resto così ottenuto (il grado
del polinomio resto è inferiore a quello divisore) sono accodati
agli N bit del pacchetto e trasmessi sul canale;
-
il ricevitore esegue la divisione del pacchetto
ottenuto per G(x): se il resto è nullo, presume che non vi siano
stati errori, viceversa c'è sicuramente qualche bit alterato e il
pacchetto è rifiutato.
Scegliendo opportunamente il polinomio generatore, il
metodo risulta molto affidabile, poiché scavalcheranno il controllo
solo i disturbi che creano un errore esattamente multiplo di G(x).
Tecnica
di Hamming
Questo metodo aggiunge più bit ridondanti a ciascun carattere, in modo
da poter verificare e correggere un solo bit errato, e almeno verificare
il caso di due bit errati sul singolo carattere. Ovviamente la
migliorata efficienza nel controllo degli errori si paga con un notevole
rallentamento nella trasmissione delle informazioni.
Consideriamo ad esempio un codice a 4 bit c3
c2 c1 c0 :
-
calcoliamo tre bit di parità p2
su c3 c1 c0, p1 su c3 c2 c0
, p0 su c3 c2 c1;
-
trasmettiamo la sequenza dei sette simboli p2
p1 p0
c3 c2 c1 c0;
-
il ricevitore ricalcola i tre bit di parità e li
confronta con quelli ricevuti:
-
p2 e p1 errati indicano un errore su c0
-
p2 e p0 errati indicano un errore su c1
-
p1 e p0 errati indicano un errore su c2
-
p2 p1 e p0 errati indicano un errore su c3
(in questi casi il ricevitore ricostruisce il messaggio negando il
bit errato)
-
se i bit coincidono, si presume che il
messaggio sia corretto;
-
ogni altro risultato del confronto indica che
c'è un errore non recuperabile: il messaggio viene rifiutato.