On peut aussi écrire matriciellement:
avec:
Après transmission, on reçoit le message binaire ,auquel on va faire subir les équations de vérification suivantes:
Il est clair que si aucune erreur n'est apparue lors de la transmission, alors le vecteur est nul, avec:
Sinon, en général, il est non nul; en tout cas, pour un nombre limité
d'erreur (<k), il est systématiquement non nul. Le principe de la
correction d'une erreur est d'établir une bijection entre l'ensemble
des vecteurs non nuls (dits "syndromes
d'erreurs") et l'ensemble des erreurs possibles sachant qu'il est supposé
n'y en avoir qu'une.
Le vecteur ayant k composantes et le vecteur
transmis ayant n composantes (n bits, donc
n erreurs possibles), cela amène à la condition n=2k-1, ce qui
dimensionne le système d'équations, si l'on se fixe n a priori (ou
m). On a par ailleurs évidemment n=m+k.
Il reste à déterminer les valeurs des coefficients des k équations de départ. Pour cela écrivons la relation de vérification sans, puis avec une erreur:
Posons:
Alors, on a:
L'opération est
triviale vu la forme de : le résultat est la
colonne de . Ainsi, à chaque
erreur différente est associée une colonne différente et une seule de
.
La bijection est alors réalisée si toutes les colonnes de sont différentes entre elles et bien sûr non nulles. D'où la
construction de et aussi celle de . Alors, une fois cette construction faite, une erreur sera
localisée grâce à la valeur du syndrome trouvée
grâce à une simple table de correspondance.
Exemple: .
Construction de :
D'où: