Préparation à l'agrégation 2009/2010 Cours d'algèbre et calcul formel Simulation d'un code de Hamming (4, 7) Le code de Hamming de longueur 7 correspond au codage d'un mot sur {0, 1} de longueur 4 de la façon suivante : 𝔽42 𝛼 𝔽72 → où 𝑎𝑏𝑐𝑑 7→ 𝑎𝑏𝑐𝑑𝑥𝑦𝑧 ⎧ ⎨ 𝑥 = 𝑦 = ⎩ 𝑧 = 𝑏+𝑐+𝑑 𝑎+𝑐+𝑑 𝑎+𝑏+𝑑 Les bits 𝑥, 𝑦, 𝑧 sont les bits de redondance. Écrire la matrice (4, 7), soit 𝐺, de l'application linéaire 𝛼 de la base canonique de 𝔽42 sur la base canonique de 𝔽72 . Calculer l'image de 𝐺 et vérier que deux vecteurs distincts de l'image sont au moins à distance de Hamming 3 (la distance de Hamming de deux vecteurs est le nombre de bits sur lesquels ils dièrent). Le décodage Soit 𝐻 la matrice (3, 7) : ⎛ 1 𝐻=⎝ 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 ⎞ 1 1 ⎠ . 1 Démontrer que 𝐺 𝑡𝐻 = 0. Démontrer que 𝑡𝐻 induit une bijection de l'ensemble des vecteurs de 𝔽72 ayant au plus un bit égal à 1 et 𝔽32 . Comment exprimer simplement cette bijection ? Soit alors 𝑚 un message de 𝔽42 , 𝛼(𝑚) = 𝑚𝐺 le message envoyé et 𝑚𝐺 + 𝑒 le message reçu 𝑒 représente l'erreur éventuelle. Alors le vecteur (𝑚𝐺+𝑒)𝑡𝐻 = 𝑒𝑡𝐻 (appelé syndrome) désigne un unique vecteur ayant au plus un bit égal à 1, qui est exactement 𝑒 síl n'y a pas eu plus d'un bit alteré. Simuler un décodage. Soit 𝑝 la probabilité pour qu'un bit soit alteré. Quelle est la probabilité qu'un message envoyé soit décodé correctement ? On dit qu'un code de longueur 𝑘 est cyclique si il est stable par décalage (𝑏0 𝑏1 ...𝑏𝑘−1 ∈ 𝐶 ⇔ 𝑏1 𝑏2 ...𝑏𝑘−1 𝑏0 ∈ 𝐶 ). Démontrer que le code de Hamming cidessus est cyclique (attention, il ne l'est qu`à une permutation près de 𝑎, 𝑏, 𝑐, 𝑑). On associe au mot 𝑏0 𝑏1 𝑏2 ...𝑏6 la classe du polynôme 𝑏0 + 𝑏1 𝑋 + ⋅ ⋅ ⋅ + 𝑏6 𝑋 6 modulo 𝑋 7 + 1. Démontrer que le code de Hamming correspond à un idéal de 𝔽2 [𝑋]/(𝑋 7 + 1) et en donner un générateur. C. Picaronny & J. Villard E.N.S. de Cachan