Si è detto che un codificatore di canale a blocchi può aggiungere k bit (e non uno soltanto!) ogni m. Questo può essere realizzato, ad esempio, se ognuno dei k bit rappresenta la parità calcolata su un sottogruppo degli m bit di ingresso. Dato che questi bit in più non sono qualsiasi, ma dipendono dai primi m (4.22), non tutte le 2m + k possibili configurazioni possono essere emesse: tutte quelle possibili costituiscono il codebook, e prendono il nome di codeword (parole di codice). In presenza di errori, il decodificatore se ne accorge per il fatto di aver ricevuto una non-codeword4.23; se queste ultime sono sufficientemente ``differenti'' l'una dall'altra, allora si può anche tentare di correggere l'errore, anziché chiedere la ritrasmissione della parola.
Un esempio molto semplice di codice a blocchi con proprietà correttive è il codice a ripetizione k : 1, che per ogni bit in arrivo ne produce k identici in uscita, in modo che (se gli errori sono indipendenti) il decisore possa correggere l'errore in base ad una ``votazione a maggioranza'' (majority voting)4.24. In presenza di errori a gruppi, occorre ricorrere allo scrambler, descritto nel seguito.
La capacità di un codice, di correggere uno o più errori, oltre che rivelarne
la presenza, è legata (come abbiamo detto) alla ``differenza'' tra le parole
del codebook. Una misura di questa differenza è la distanza di Hamming
(dH), che rappresenta il minimo numero di bit diversi tra due parole
di codice (ad esempio, nel codice a ripetizione 3 : 1 si hanno 2 parole
di codice, 000 ed 111, e risulta dH = 3). Si dimostra che un codice
di canale è in grado di correggere
errori per parola
e di rivelare dH - 1 errori per parola.
Qualora un codice di canale sia utilizzato in modalità correttiva, si usa descrivere la codifica come una FORWARD ERROR CORRECTION, ossia una correzione di errore ``in avanti''. Se invece il codice è usato solo per rivelare gli errori, allora sarà necessario prevedere l'uso di protocolli detti ARQ (AUTOMATIC REQUEST) che si occupano di chiedere la ritrasmissione della parola errata.