Codifica di canale
La codifica di canale' è in telecomunicazioni il processo volto a garantire la trasmissione ottimale di un messaggio trasmesso attraverso un canale con rumore.
Modalità di scambio delle informazioni e dialogo dei protocolli
Le informazioni vengono scambiate in modalità:
- simplex, il messaggio viaggia in una sola direzione
- half-duplex, i messaggi viaggiano in entrambe le direzioni, ma alternativamente
- Duplex, i messaggi vengono scambiati in entrambe le direzioni anche contemporaneamente.
I protocolli comunicano tra loro usando le discipline One Way, Two Way Alternate o Two Way Simultaneous
Codici di controllo e correzione
A seconda del tipo di messaggio da trasmettere si sceglierà il tipo di controllo degli errori e, eventualmente, di correzione (infatti, nell'invio es.: di fotogrammi video in videoconferenza non sarà richiesto che arrivino integri tutti i dati; al contrario, es.: trasmissione FTP, sarà imperativo garantire l'arrivo corretto di tutti i dati. Di seguito sono brevemente introdotte le due modalità di codifica più usate.
ARQ (Automatic Repeat-reQuest)
Modalità a sua volta divisa in tre politiche:
- Stop and Wait: il mittente invia un messaggio e attende dal destinatario una conferma positiva (ACK), negativa (NACK) o un comando; se scade il tempo di attesa per uno di questi tre, il mittente provvederà a rispedire il pacchetto e il destinatario si incaricherà di scartare eventuali repliche.
- Go Back N: il mittente dispone di un buffer dove immagazzina N pacchetti da spedire, man mano che riceve la conferma ACK svuota il buffer e lo riempie con nuovi pacchetti; nell'eventualità di pacchetti persi o danneggiati e scartati avviene il re-invio del blocco di pacchetti interessati, I pacchetti ricevuti dal destinatario dopo quello scartato vengono eliminati.
- Selective Repeat: in questo caso anche il destinatario dispone di un buffer dove memorizzare i pacchetti ricevuti dopo quello/quelli scartati; quando il pacchetti interessati vengono correttamente ricevuti, entrambi i buffer vengono svuotati (mittente) o i pacchetti contenuti salvati (destinatario).
FEC (Forward Error Correction)
Al messaggio vengono aggiunte informazioni aggiuntive che consentono di rilevare, e talvolta correggere, gli errori introdotti nella trasmissione.
Valutazione di un Codice
Le prestazioni di un codice vengono misurate in:
- capacità di rilevazione: numero massimo di errori che esso riesce a rilevare in una parola di codice.
- capacità di correzione: numero massimo di errori che esso riesce a correggere in una parola di codice (minore a quella di rilevazione)
- code rate: è il rapporto fra la lunghezza totale della parola di codice (n) e bit di messaggio (k), , rappresenta una misura in termini di efficienza del codice.
Tipologie di codici
Esistono varie tipologie di codici, principalmente divisibili in codici a blocchi (o lineari, come quello di Hamming) e codici convoluzionali.
Nel primo caso, codici a blocchi, tutti i blocchi-dati sono legati tra loro da sequenze aggiunte ai pacchetti e distinguibili tra loro; nel secondo caso, invece, ai pacchetti viene raggiunta una certa ridondanza Q e i pacchetti, sebbene non distinguibili, sono comunque tra loro legati.