Maths Post-Bac Ouvrir l'app

Exercices corrigés — Codes correcteurs

Algèbre · 18 exercices-types du palier socle

L2L3Maths ingénieur

Chaque exercice donne l'énoncé, des indices progressifs et la correction rédigée étape par étape. Ouvre les blocs seulement après avoir cherché.

Revoir le cours : Codes correcteurs Définitions, méthodes et exemples corrigés du chapitre.

Code linéaire : dimension et cardinal

CalculDifficulté 3/5

Soit le code binaire CC engendré par G=(10110110)G=\begin{pmatrix}1&0&1&1\\0&1&1&0\end{pmatrix} sur F2\mathbb{F}_2. Déterminer nn, k=dimCk=\dim C, le cardinal C\lvert C\rvert et lister les mots de code.

Indices (3)

nn est la longueur (nombre de colonnes), kk le rang de GG.

C=2k\lvert C\rvert=2^{k} car CC est un sous-espace.

Les mots sont les combinaisons u1L1+u2L2u_1L_1+u_2L_2, ui{0,1}u_i\in\{0,1\}.

Correction détaillée
Paramètres

GG a 44 colonnes donc n=4n=4, et ses 22 lignes sont indépendantes donc k=dimC=2k=\dim C=2. Comme CC est un sous-espace de dimension 22 sur F2\mathbb{F}_2 : C=22=4\lvert C\rvert=2^{2}=4.

Mots de code

00000000\mapsto 0000, 10101110\mapsto 1011, 01011001\mapsto 0110, 11110111\mapsto 1101. Le code est C={0000,1011,0110,1101}C=\{0000,1011,0110,1101\}.

Réponse. [n,k]=[4,2][n,k]=[4,2], C=4\lvert C\rvert=4, C={0000,1011,0110,1101}C=\{0000,1011,0110,1101\}. (Vérifié machine — A1 ✓)
Faire cet exercice dans l'app →

Distance minimale = poids minimal

DémonstrationDifficulté 3/5

Montrer que pour un code linéaire CC, la distance minimale égale le poids minimal d'un mot non nul : d=minxC,x0w(x)d=\min_{x\in C,\,x\neq 0}w(x). L'appliquer au code [4,2][4,2] de l'exercice précédent.

Indices (3)

d(x,y)=w(xy)d(x,y)=w(x-y) pour la distance de Hamming.

Si x,yCx,y\in C alors xyCx-y\in C (sous-espace).

Faire varier la paire (x,y)(x,y) et le mot z=xyz=x-y.

Correction détaillée
Égalité

Par définition d(x,y)=w(xy)d(x,y)=w(x-y). Quand x,yx,y parcourent CC avec xyx\neq y, z=xyz=x-y parcourt exactement C{0}C\setminus\{0\} (linéarité : zCz\in C, et tout z0z\neq 0 s'écrit z=z0z=z-0). Donc minxyd(x,y)=minz0w(z)\min_{x\neq y}d(x,y)=\min_{z\neq 0}w(z).

Application

Poids des mots non nuls de C={0000,1011,0110,1101}C=\{0000,1011,0110,1101\} : w(1011)=3w(1011)=3, w(0110)=2w(0110)=2, w(1101)=3w(1101)=3. Le minimum est 22, donc d=2d=2 : le code est [4,2,2][4,2,2].

Réponse. d=minx0w(x)d=\min_{x\neq 0}w(x) ; ici d=2d=2. (Vérifié machine : min sur les paires == min des poids — A2 ✓)
Faire cet exercice dans l'app →

Capacité de correction et boules disjointes

DémonstrationDifficulté 3/5

Un code a distance minimale dd. Montrer qu'il corrige t=(d1)/2t=\lfloor(d-1)/2\rfloor erreurs (les boules de Hamming de rayon tt autour des mots de code sont disjointes). Préciser tt pour le code [5,2,3][5,2,3] de générateur G=(1011001011)G=\begin{pmatrix}1&0&1&1&0\\0&1&0&1&1\end{pmatrix}.

Indices (3)

Supposer deux mots ccc\neq c' et un reçu yy avec d(y,c)td(y,c)\leq t et d(y,c)td(y,c')\leq t.

Inégalité triangulaire : d(c,c)d(c,y)+d(y,c)d(c,c')\leq d(c,y)+d(y,c').

En déduire d(c,c)2td1<dd(c,c')\leq 2t\leq d-1<d, contradiction.

Correction détaillée
Boules disjointes

Supposons yy à distance t\leq t de deux mots ccc\neq c'. Par l'inégalité triangulaire d(c,c)d(c,y)+d(y,c)2td(c,c')\leq d(c,y)+d(y,c')\leq 2t. Or 2t=2(d1)/2d1<dd(c,c)2t=2\lfloor(d-1)/2\rfloor\leq d-1<d\leq d(c,c') : contradiction. Donc tout mot reçu est dans au plus une boule de rayon tt : le décodage par plus proche voisin corrige t\leq t erreurs.

Application

Le [5,2,3][5,2,3] a d=3d=3, donc t=2/2=1t=\lfloor 2/2\rfloor=1 : il corrige 11 erreur et en détecte d1=2d-1=2. (Le décodage unique a été vérifié : aucune collision de boules de rayon 11.)

Réponse. Boules de rayon t=(d1)/2t=\lfloor(d-1)/2\rfloor disjointes \Rightarrow corrige tt erreurs ; pour [5,2,3][5,2,3], t=1t=1. (Vérifié machine : boules de rayon 11 disjointes — A3 ✓)
Faire cet exercice dans l'app →

Code à répétition et code de parité

CalculDifficulté 3/5

Donner les paramètres [n,k,d][n,k,d] : (a) du code à répétition {00000,11111}\{00000,11111\} ; (b) du code de parité sur 44 bits (bit de parité ajouté à 33 bits d'information).

Indices (3)

Répétition : un seul bit d'information répété nn fois.

Parité : G=[I31]G=[I_3\mid \mathbf{1}], la dernière colonne est la somme des 33 premières.

dd = poids minimal d'un mot non nul.

Correction détaillée
Répétition

{00000,11111}\{00000,11111\} : n=5n=5, k=1k=1 (11 bit), seul mot non nul 1111111111 de poids 55 donc d=5d=5. C'est un [5,1,5][5,1,5] (il corrige 4/2=2\lfloor 4/2\rfloor=2 erreurs).

Parité

G=(100101010011)G=\begin{pmatrix}1&0&0&1\\0&1&0&1\\0&0&1&1\end{pmatrix} : n=4n=4, k=3k=3. Tout mot non nul a 2\geq 2 coordonnées non nulles (la parité force un nombre pair de 11), donc d=2d=2. C'est un [4,3,2][4,3,2] (détecte 11 erreur).

Réponse. (a) [5,1,5][5,1,5] ; (b) [4,3,2][4,3,2]. (Vérifié machine — A4 ✓)
Faire cet exercice dans l'app →

Énumérateur de poids

CalculDifficulté 3/5

Pour le code [4,2][4,2] de générateur G=(10110110)G=\begin{pmatrix}1&0&1&1\\0&1&1&0\end{pmatrix}, donner la distribution des poids (A0,A1,A2,A3,A4)(A_0,A_1,A_2,A_3,A_4)AiA_i est le nombre de mots de poids ii. Vérifier que iAi=2k\sum_i A_i=2^k et retrouver dd.

Indices (3)

Reprendre les 44 mots de code et compter leurs poids.

A0=1A_0=1 (le mot nul).

dd est le plus petit indice i>0i>0 avec Ai>0A_i>0.

Correction détaillée
Comptage

Mots : 00000000 (poids 00), 10111011 (poids 33), 01100110 (poids 22), 11011101 (poids 33). Donc A0=1A_0=1, A2=1A_2=1, A3=2A_3=2, et A1=A4=0A_1=A_4=0.

Vérifications

iAi=1+1+2=4=22\sum_i A_i=1+1+2=4=2^{2} ✓. Le plus petit poids non nul est 22 : d=2d=2.

Réponse. (A0,,A4)=(1,0,1,2,0)(A_0,\dots,A_4)=(1,0,1,2,0), Ai=4=2k\sum A_i=4=2^k, d=2d=2. (Vérifié machine — A5 ✓)
Faire cet exercice dans l'app →

Un code sur F_3 (au-delà du binaire)

CalculDifficulté 3/5

Sur F3\mathbb{F}_3, soit CC engendré par G=(10120121)G=\begin{pmatrix}1&0&1&2\\0&1&2&1\end{pmatrix}. Déterminer C\lvert C\rvert et la distance minimale dd.

Indices (3)

C=qk=32\lvert C\rvert=q^k=3^2.

dd = poids minimal d'un mot non nul (linéarité, valable sur tout Fq\mathbb{F}_q).

Examiner par exemple la ligne L1=(1,0,1,2)L_1=(1,0,1,2) et les combinaisons.

Correction détaillée
Cardinal

CC est un sous-espace de dimension 22 sur F3\mathbb{F}_3, donc C=32=9\lvert C\rvert=3^{2}=9.

Distance

Les mots non nuls ont tous au moins 22 coordonnées non nulles (les lignes 10121012 et 01210121 ont poids 33 ; aucune combinaison non nulle n'a poids 11). Le minimum des poids vaut 22, donc d=2d=2.

Réponse. C=9\lvert C\rvert=9, d=2d=2. (Vérifié machine sur F3\mathbb{F}_3 — A6 ✓)
Faire cet exercice dans l'app →

De G systématique à H

DémonstrationDifficulté 3/5

Soit G=[IkA]G=[\,I_k\mid A\,] une matrice génératrice systématique. Montrer que H=[ATInk]H=[\,-A^{\mathsf T}\mid I_{n-k}\,] est une matrice de contrôle (i.e. GHT=0GH^{\mathsf T}=0 et rgH=nk\operatorname{rg}H=n-k). Construire HH pour A=(110011101)A=\begin{pmatrix}1&1&0\\0&1&1\\1&0&1\end{pmatrix} sur F2\mathbb{F}_2.

Indices (3)

Calculer GHT=Ik(A)+AInkGH^{\mathsf T}=I_k(-A)+A\,I_{n-k} par blocs.

rgH=nk\operatorname{rg}H=n-k car HH contient le bloc identité InkI_{n-k}.

Sur F2\mathbb{F}_2, A=A-A=A.

Correction détaillée
GHᵀ = 0

Par blocs, G=[IkA]G=[I_k\mid A] et HT=(AInk)H^{\mathsf T}=\begin{pmatrix}-A\\ I_{n-k}\end{pmatrix}, d'où GHT=Ik(A)+AInk=A+A=0GH^{\mathsf T}=I_k\cdot(-A)+A\cdot I_{n-k}=-A+A=0. Le bloc InkI_{n-k} assure rgH=nk\operatorname{rg}H=n-k. Comme dimkerH=n(nk)=k=dimC\dim\ker H=n-(n-k)=k=\dim C et CkerHC\subseteq\ker H, on a C=kerHC=\ker H.

Construction

Sur F2\mathbb{F}_2, AT=AT-A^{\mathsf T}=A^{\mathsf T}. Ici AT=(101110011)A^{\mathsf T}=\begin{pmatrix}1&0&1\\1&1&0\\0&1&1\end{pmatrix}, donc H=[101100110010011001]H=\left[\begin{array}{ccc|ccc}1&0&1&1&0&0\\1&1&0&0&1&0\\0&1&1&0&0&1\end{array}\right]. On vérifie GHT=0GH^{\mathsf T}=0 : tout mot de code a syndrome nul.

Réponse. H=[ATInk]H=[-A^{\mathsf T}\mid I_{n-k}] avec GHT=0GH^{\mathsf T}=0 ; code [6,3,3][6,3,3]. (Vérifié machine — B1 ✓)
Faire cet exercice dans l'app →

Distance et colonnes de H

DémonstrationDifficulté 3/5

Montrer que la distance minimale d'un code vaut le plus petit nombre de colonnes de HH linéairement dépendantes. L'appliquer au [6,3][6,3] de matrice HH ci-dessus pour retrouver d=3d=3.

Indices (3)

xC    HxT=0x\in C\iff Hx^{\mathsf T}=0, i.e. les colonnes HjH_j avec xj0x_j\neq 0 sont liées.

HxT=jxjHjHx^{\mathsf T}=\sum_j x_j H_j.

Un mot de poids ww     \iff une relation de dépendance entre ww colonnes.

Correction détaillée
Équivalence

HxT=jxjHjHx^{\mathsf T}=\sum_{j}x_jH_jHjH_j est la jj-ème colonne. Un mot non nul xCx\in C de poids ww correspond à une relation jSxjHj=0\sum_{j\in S}x_jH_j=0 avec S=w\lvert S\rvert=w : ww colonnes liées. Le plus petit poids non nul =d=d est donc le plus petit nombre de colonnes liées.

Application

Dans le [6,3][6,3], aucune colonne n'est nulle et deux colonnes sont toujours distinctes (indépendantes), mais trois colonnes peuvent se sommer à 00 : le minimum est 33, donc d=3d=3 (le code corrige 11 erreur).

Réponse. dd = plus petit nombre de colonnes de HH liées =3=3 ici. (Vérifié machine — B2 ✓)
Faire cet exercice dans l'app →

Syndrome d'un mot reçu

CalculDifficulté 3/5

Avec H=[101100110010011001]H=\left[\begin{array}{ccc|ccc}1&0&1&1&0&0\\1&1&0&0&1&0\\0&1&1&0&0&1\end{array}\right] ([6,3][6,3] sur F2\mathbb{F}_2), un mot de code cc subit l'erreur e=100000e=100000. Calculer le syndrome s=HrTs=Hr^{\mathsf T} du mot reçu r=c+er=c+e et expliquer pourquoi il ne dépend que de ee.

Indices (3)

HrT=HcT+HeTHr^{\mathsf T}=Hc^{\mathsf T}+He^{\mathsf T} et HcT=0Hc^{\mathsf T}=0.

HeTHe^{\mathsf T} = colonne de HH correspondant à la position erronée.

e=100000e=100000 pointe la 1ʳᵉ colonne.

Correction détaillée
Calcul

s=HrT=H(c+e)T=HcT=0+HeT=HeTs=Hr^{\mathsf T}=H(c+e)^{\mathsf T}=\underbrace{Hc^{\mathsf T}}_{=0}+He^{\mathsf T}=He^{\mathsf T}. Comme e=100000e=100000, HeTHe^{\mathsf T} est la 1ʳᵉ colonne de HH, soit s=(1,1,0)Ts=(1,1,0)^{\mathsf T}.

Indépendance

Le syndrome ne dépend que de l'erreur ee (pas du mot émis cc) : tous les mots reçus d'un même coset c+ec+e ont le même syndrome. C'est la base du décodage.

Réponse. s=(1,1,0)s=(1,1,0) = 1ʳᵉ colonne de HH ; s=HeTs=He^{\mathsf T} ne dépend que de ee. (Vérifié machine — B3 ✓)
Faire cet exercice dans l'app →

Décodage par tableau standard

CalculDifficulté 3/5

Pour le [6,3,3][6,3,3] précédent, expliquer le décodage par syndrome : à chaque syndrome on associe le chef de classe (erreur de poids minimal). Combien y a-t-il de syndromes ? Montrer (idée) que ce décodage corrige toute erreur de poids t=1\leq t=1.

Indices (3)

Il y a qnk=23q^{n-k}=2^{3} syndromes possibles.

Chaque erreur de poids 1\leq 1 a un syndrome distinct (colonnes de HH distinctes et non nulles).

On décode c^=r(chef de classe de s)\hat c=r-\text{(chef de classe de }s).

Correction détaillée
Nombre de syndromes

Le syndrome vit dans F2nk=F23\mathbb{F}_2^{\,n-k}=\mathbb{F}_2^{3} : il y a 23=82^{3}=8 syndromes, un par coset.

Correction des erreurs simples

Les erreurs de poids 00 (syndrome 00) et de poids 11 (syndromes == les 66 colonnes de HH, toutes distinctes et non nulles car d=3d=3) ont des syndromes deux à deux distincts. On les prend comme chefs de classe : recevoir rr de syndrome ss, c'est corriger c^=res\hat c=r-e_s. Toute erreur simple est donc corrigée.

Réponse. 88 syndromes ; les 77 erreurs de poids 1\leq 1 ont des syndromes distincts \Rightarrow correction de 11 erreur. (Vérifié machine : décodage corrige tout poids t\leq t — B4 ✓)
Faire cet exercice dans l'app →

Cosets et syndromes

DémonstrationDifficulté 3/5

Montrer que deux mots reçus ont le même syndrome si et seulement s'ils sont dans le même coset r+Cr+C, et qu'il y a exactement qnkq^{\,n-k} cosets.

Indices (3)

Hr1T=Hr2T    H(r1r2)T=0Hr_1^{\mathsf T}=Hr_2^{\mathsf T}\iff H(r_1-r_2)^{\mathsf T}=0.

HzT=0    zCH z^{\mathsf T}=0\iff z\in C.

Le nombre de cosets de CC dans Fqn\mathbb{F}_q^n est qn/qkq^n/q^k.

Correction détaillée
Même syndrome $\iff$ même coset

s1=s2    Hr1T=Hr2T    H(r1r2)T=0    r1r2C    r1+C=r2+Cs_1=s_2\iff Hr_1^{\mathsf T}=Hr_2^{\mathsf T}\iff H(r_1-r_2)^{\mathsf T}=0\iff r_1-r_2\in C\iff r_1+C=r_2+C. Le syndrome est donc un invariant complet du coset.

Nombre de cosets

L'application « syndrome » Fqn/CFqnk\mathbb{F}_q^{\,n}/C\to\mathbb{F}_q^{\,n-k} est une bijection (injective par ce qui précède, et surjective car HH est de rang nkn-k). Il y a donc qnkq^{\,n-k} cosets == qn/qkq^{\,n}/q^{k}.

Réponse. Syndrome     \iff coset ; qnkq^{n-k} cosets (=8=8 pour le [6,3][6,3]). (Vérifié machine — B5 ✓)
Faire cet exercice dans l'app →

Code dual

DémonstrationDifficulté 3/5

Le code dual C={y:yx=0 xC}C^{\perp}=\{y:y\cdot x=0\ \forall x\in C\}. Montrer que HH engendre CC^{\perp}, que dimC=nk\dim C^{\perp}=n-k, et que (C)=C(C^{\perp})^{\perp}=C.

Indices (3)

yC    yy\in C^{\perp}\iff y\perp toute ligne de GG     GyT=0\iff Gy^{\mathsf T}=0.

HH a pour lignes une base de kerGT=C\ker G^{\mathsf T}=C^{\perp} (rôles de GG et HH échangés).

Dimensions : dimC+dimC=n\dim C+\dim C^{\perp}=n.

Correction détaillée
H engendre C⊥

yC    y(uG)=0 u    (GyT)=0y\in C^{\perp}\iff y\cdot(uG)=0\ \forall u\iff (Gy^{\mathsf T})=0. L'espace des solutions est de dimension nkn-k. Or les lignes de HH sont orthogonales à CC (car GHT=0GH^{\mathsf T}=0) et indépendantes (rang nkn-k) : elles forment une base de CC^{\perp}. Donc CC^{\perp} est le code de matrice génératrice HH (et de matrice de contrôle GG).

Bidual

dimC=nk\dim C^{\perp}=n-k, donc dim(C)=n(nk)=k=dimC\dim(C^{\perp})^{\perp}=n-(n-k)=k=\dim C. Comme C(C)C\subseteq(C^{\perp})^{\perp} (tout xCx\in C est orthogonal à tout CC^{\perp}) et que les dimensions coïncident, (C)=C(C^{\perp})^{\perp}=C.

Réponse. C=lignes de HC^{\perp}=\langle\text{lignes de }H\rangle, dim=nk\dim=n-k, (C)=C(C^{\perp})^{\perp}=C. (Vérifié machine : CCC\perp C^{\perp}, dimC=3\dim C^{\perp}=3 — B6 ✓)
Faire cet exercice dans l'app →

Le code de Hamming [7,4,3]

CalculDifficulté 3/5

On prend pour colonnes de HH tous les vecteurs non nuls de F23\mathbb{F}_2^{\,3} (écrits en binaire 001,,111001,\dots,111). Donner nn, kk, et justifier d=3d=3.

Indices (3)

Il y a 231=72^3-1=7 vecteurs non nuls dans F23\mathbb{F}_2^3.

nk=n-k= nombre de lignes de HH ; k=nrgHk=n-\operatorname{rg}H.

dd = plus petit nombre de colonnes liées.

Correction détaillée
Paramètres

HH est 3×73\times 7 (colonnes == les 77 vecteurs non nuls de F23\mathbb{F}_2^3), donc n=7n=7 et rgH=3\operatorname{rg}H=3, d'où k=73=4k=7-3=4 : code [7,4][7,4].

Distance 3

Les colonnes sont non nulles (pas de mot de poids 11) et deux à deux distinctes (pas de mot de poids 22). Mais trois colonnes peuvent être liées, p.ex. 001+010+011=0001+010+011=0. Donc d=3d=3 : le code de Hamming [7,4,3][7,4,3], qui corrige 11 erreur.

Réponse. [7,4,3][7,4,3] : colonnes de HH == les 77 non-nuls de F23\mathbb{F}_2^3. (Vérifié machine : 77 colonnes distinctes, d=3d=3 — E1 ✓)
Faire cet exercice dans l'app →

Hamming est un code parfait

DémonstrationDifficulté 3/5

Montrer que le code de Hamming [7,4,3][7,4,3] est parfait : les boules de rayon t=1t=1 pavent exactement F27\mathbb{F}_2^{\,7}, i.e. 24V2(7,1)=272^{4}\cdot V_2(7,1)=2^{7}.

Indices (3)

V2(7,1)=(70)+(71)V_2(7,1)=\binom{7}{0}+\binom{7}{1} (boule de rayon 11).

Multiplier par le nombre 242^4 de mots de code.

Comparer à F27=27\lvert\mathbb{F}_2^7\rvert=2^7.

Correction détaillée
Volume de boule

Une boule de rayon t=1t=1 contient le centre plus les 77 mots à distance 11 : V2(7,1)=(70)+(71)=1+7=8=23V_2(7,1)=\binom{7}{0}+\binom{7}{1}=1+7=8=2^{3}.

Pavage

Il y a 24=162^{4}=16 mots de code, donc les boules couvrent 168=12816\cdot 8=128 mots. Or F27=27=128\lvert\mathbb{F}_2^{7}\rvert=2^{7}=128. Les boules étant disjointes (car d=3>2td=3>2t), elles pavent tout l'espace : 24V2(7,1)=272^4\cdot V_2(7,1)=2^7. Le code est parfait.

Réponse. 248=128=272^{4}\cdot 8=128=2^{7} : Hamming [7,4,3][7,4,3] est parfait. (Vérifié machine — E2 ✓)
Faire cet exercice dans l'app →

Borne de Hamming (sphère)

DémonstrationDifficulté 3/5

Établir la borne de Hamming : pour un code corrigeant tt erreurs, CVq(n,t)qn\lvert C\rvert\cdot V_q(n,t)\leq q^{n}. En déduire que pour n=7n=7, t=1t=1 sur F2\mathbb{F}_2, C16\lvert C\rvert\leq 16, et que Hamming est optimal.

Indices (3)

Les boules de rayon tt centrées sur les mots de code sont disjointes.

Leur réunion est incluse dans Fqn\mathbb{F}_q^n.

Sommer les volumes.

Correction détaillée
Inégalité

Les C\lvert C\rvert boules de rayon tt sont disjointes (corrige tt erreurs) et contenues dans Fqn\mathbb{F}_q^{\,n}. En sommant les cardinaux : CVq(n,t)qn\lvert C\rvert\cdot V_q(n,t)\leq q^{n}.

Optimalité de Hamming

Pour n=7n=7, t=1t=1, q=2q=2 : C27/V2(7,1)=128/8=16\lvert C\rvert\leq 2^{7}/V_2(7,1)=128/8=16. Le code de Hamming a exactement C=24=16\lvert C\rvert=2^4=16 mots : il atteint la borne, donc il est optimal (parfait).

Réponse. Cqn/Vq(n,t)\lvert C\rvert\leq q^n/V_q(n,t) ; ici 16\leq 16, atteint par Hamming. (Vérifié machine : borne =16=2k=16=2^k — E3 ✓)
Faire cet exercice dans l'app →

Borne de Singleton et codes MDS

DémonstrationDifficulté 3/5

Démontrer la borne de Singleton dnk+1d\leq n-k+1. Un code MDS atteint l'égalité : vérifier que les codes à répétition [n,1,n][n,1,n] et de parité [n,n1,2][n,n-1,2] sont MDS.

Indices (3)

Projeter les mots sur les k1k-1 premières coordonnées : l'application est injective ou non ?

Deux mots égaux sur nd+1n-d+1 positions sont égaux (sinon d(x,y)<dd(x,y)<d).

Argument de comptage / d'algèbre linéaire sur les coordonnées effacées.

Correction détaillée
Singleton

Effaçons les d1d-1 dernières coordonnées : l'application CFqn(d1)C\to\mathbb{F}_q^{\,n-(d-1)} est injective (deux mots distincts différant seulement sur ces positions seraient à distance d1<d\leq d-1<d). Donc qk=Cqn(d1)q^{k}=\lvert C\rvert\leq q^{\,n-(d-1)}, d'où knd+1k\leq n-d+1, soit dnk+1d\leq n-k+1.

Codes MDS

Répétition [n,1,n][n,1,n] : nk+1=n1+1=n=dn-k+1=n-1+1=n=d ✓ MDS. Parité [n,n1,2][n,n-1,2] : nk+1=n(n1)+1=2=dn-k+1=n-(n-1)+1=2=d ✓ MDS. (Hamming [7,4,3][7,4,3] n'est PAS MDS : nk+1=43n-k+1=4\neq 3.)

Réponse. dnk+1d\leq n-k+1 ; répétition et parité atteignent l'égalité (MDS). (Vérifié machine sur tous les codes — E4 ✓)
Faire cet exercice dans l'app →

Hamming n'est pas MDS

CalculDifficulté 3/5

Pour le code de Hamming [7,4,3][7,4,3], comparer dd et nk+1n-k+1. Conclure sur le caractère MDS.

Indices (3)

n=7n=7, k=4k=4, d=3d=3.

Calculer nk+1n-k+1.

MDS     d=nk+1\iff d=n-k+1.

Correction détaillée
Comparaison

nk+1=74+1=4n-k+1=7-4+1=4, alors que d=3d=3. On a d=3<4=nk+1d=3<4=n-k+1.

Conclusion

L'écart à la borne de Singleton est nk+1d=1n-k+1-d=1 : le code de Hamming n'est pas MDS (il sacrifie 11 unité de distance par rapport à l'optimum de Singleton, mais reste parfait pour la borne de Hamming).

Réponse. d=3<nk+1=4d=3<n-k+1=4 : Hamming [7,4,3][7,4,3] n'est pas MDS. (Vérifié machine — E5 ✓)
Faire cet exercice dans l'app →

Le code dual de Hamming : le simplexe

CalculDifficulté 3/5

Le dual du code de Hamming [7,4,3][7,4,3] est le code simplexe [7,3][7,3], engendré par HH. Montrer que tous ses mots non nuls ont le même poids 44 ; en déduire d=4d^{\perp}=4.

Indices (3)

Le simplexe a 23=82^3=8 mots, dont 77 non nuls.

Chaque coordonnée d'un mot == produit scalaire d'une colonne de HH avec le vecteur de coefficients.

Compter combien de colonnes donnent un produit scalaire non nul.

Correction détaillée
Poids constant

Un mot non nul du simplexe est y=vHy=vH pour vF23{0}v\in\mathbb{F}_2^{3}\setminus\{0\} : sa jj-ème coordonnée est vHjv\cdot H_j. Pour v0v\neq 0 fixé, l'hyperplan v={x:vx=0}v^{\perp}=\{x:v\cdot x=0\} a 22=42^{2}=4 éléments, donc il existe 84=48-4=4 vecteurs xF23x\in\mathbb{F}_2^{3} avec vx=1v\cdot x=1 ; comme v0=0v\cdot 0=0, ces 44 vecteurs sont tous non nuls, donc tous parmi les 77 colonnes HjH_j. D'où w(y)=4w(y)=4 pour tout mot non nul.

Distance

Tous les 77 mots non nuls ont poids 44 : d=4d^{\perp}=4. Le simplexe est un [7,3,4][7,3,4] équidistant (tous les mots non nuls ont le même poids). Il n'est pas MDS : nk+1=73+1=5>4n-k+1=7-3+1=5>4.

Réponse. Simplexe [7,3,4][7,3,4] équidistant : tous les mots 0\neq 0 de poids 44, d=4d^{\perp}=4 (non MDS car nk+1=5n-k+1=5). (Vérifié machine — E6 ✓)
Faire cet exercice dans l'app →

S'entraîner davantage sur codes correcteurs

18 exercices d'entraînement supplémentaires sur ce chapitre, plus le palier approfondissement, les quiz, le tuteur IA et les PDF à imprimer — dans l'app Maths Post-Bac.