Nella teoria dei codici, "quanto è buono un codice" indica quanti errori di canale possono essere corretti o, meglio, il livello di rumore massimo che il codice può gestire.
Per ottenere codici migliori, i codici sono progettati utilizzando un alfabeto grande (anziché binario). E poi, il codice è buono se può gestire una grande quantità di "simboli" errati.
Perché non considerare questo imbroglio? Voglio dire, non dovremmo preoccuparci solo di ciò che accade quando "traduciamo" ogni simbolo in una stringa binaria? La "velocità di errore bit" è diversa dalla frequenza di "errore simbolo". Ad esempio, il tasso di errore bit non può superare 1/2 mentre (se lo capisco correttamente), con un alfabeto abbastanza grande, l'errore del simbolo può arrivare a . È perché limitiamo artificialmente il canale a cambiare solo "simboli" anziché bit, oppure perché il codice è effettivamente migliore?