Codes linéaires¶
Définition d’un code linéaire¶
- 
codeLineaireGen(p, G)¶ définition d’un code linéaire sur \(\mathbb{F}_p\) (p est un nombre premier) de matrice génératrice \(G\).
- Paramètres
 p – un nombre premier
G – une matrice
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : C = codeLineaireGen(2, G)
C = Codes lineaire défini sur F_2 de matrice génératrice
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
Voir aussi
fonctions matrice(), In(), rang(), inverseModulo(), transposee(),
vecteur(), vecteurColonne(), concataneLigne(), concataneColonne().
- 
codeLineaireCont(p, H)¶ définition d’un code linéaire sur \(\mathbb{F}_p\) (p est un nombre premier) de matrice de parité (contrôle) \(H\).
- Paramètres
 p – un nombre premier
H – une matrice
Exemple :
simula : H = matrice([ [1,2,0,3,1,1], [3,3,0,1,0,1] ])
H =
[1 2 0 3 1 1 ]
[3 3 0 1 0 1 ]
simula : C = codeLineaireCont(3, H)
C = Codes lineaire défini sur F_3 de matrice de parité
H =
[1 2 0 3 1 1 ]
[3 3 0 1 0 1 ]
Opérations sur les codes linéaires¶
- 
matriceGeneratrice(C)¶ la matrice génératrice du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : H = matrice([ [1,2,0,3,1,1], [3,3,0,1,0,1] ])
H =
[1 2 0 3 1 1 ]
[3 3 0 1 0 1 ]
simula : C = codeLineaireCont(3, H)
C = Codes lineaire défini sur F_3 de matrice de parité
H =
[1 2 0 3 1 1 ]
[3 3 0 1 0 1 ]
simula : G = matriceGeneratrice(C)
G =
[[1 0 0 0 2 0]
 [0 1 0 0 1 0]
 [0 0 1 0 0 0]
 [0 0 0 1 1 2]]
- 
matriceControle(C)¶ la matrice de contrôle (ou de parité) du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : C = codeLineaireGen(2, G)
C = Codes lineaire défini sur F_2 de matrice génératrice
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : H = matriceControle(C)
H = [[1 1 1 0 1 0]
     [1 1 1 1 0 1]]
- 
longueurCode(C)¶ la longueur du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : longueurCode(C)
6
- 
dimensionCode(C)¶ la dimension du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : dimensionCode(C)
4
- 
nombreDeMotsdecode(C)¶ le nombre de mots-de-code du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : nombreDeMotsdecode(C)
16
- 
distanceMinimale(C)¶ la distance minimale du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : distanceMinimale(C)
2
- 
capaciteCorrection(C)¶ la capacité de correction du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : capaciteCorrection(C)
0
- 
tousLesMotsdecode(C)¶ tous les mots-de-code du code \(C\).
- Paramètres
 C – un code linéaire
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
simula : C = codeLineaireGen(2, G)
simula : tousLesMotsdecode(C)
(0, 0, 0, 0, 0, 0)
(0, 1, 1, 1, 0, 1)
(1, 0, 1, 1, 0, 1)
(1, 1, 0, 0, 0, 0)
(0, 1, 0, 0, 1, 1)
(0, 0, 1, 1, 1, 0)
(1, 1, 1, 1, 1, 0)
(1, 0, 0, 0, 1, 1)
(1, 1, 1, 0, 1, 1)
(1, 0, 0, 1, 1, 0)
(0, 1, 0, 1, 1, 0)
(0, 0, 1, 0, 1, 1)
(1, 0, 1, 0, 0, 0)
(1, 1, 0, 1, 0, 1)
(0, 0, 0, 1, 0, 1)
(0, 1, 1, 0, 0, 0)
Les codes de Hamming binaire¶
- 
codeHammingBinnaire(r)¶ définition d’un code de Hamming binaire de longueur \(n = 2^r-1\) et de dimension \(k = n-r\).
- Paramètres
 r – un entier naturel
Exemple :
simula : C = codeHammingBinnaire(3)
C = Code de Hamming binnaire de paramètres (n,k) = (7,4)
simula : matriceControle(C)
[[0 0 0 1 1 1 1]
 [0 1 1 0 0 1 1]
 [1 0 1 0 1 0 1]]
simula : matriceGeneratrice(C)
[[1 0 0 0 0 1 1]
 [0 1 0 0 1 0 1]
 [0 0 1 0 1 1 0]
 [0 0 0 1 1 1 1]]
- 
matControleHamming(r)¶ la matrice de contrôle d’un code de Hamming binaire de longueur \(n = 2^r-1\) et de dimension \(k = n-r\).
- Paramètres
 r – un entier naturel
Exemple :
simula : H = matControleHamming(3)
H = [[0 0 0 1 1 1 1]
    [0 1 1 0 0 1 1]
    [1 0 1 0 1 0 1]]
- 
decodageHamming(m, C)¶ le décodage d’un code de Hamming binaire de longueur \(n = 2^r-1\) et de dimension \(k = n-r\).
- Paramètres
 m=(m1,m2,..,mk) – un vecteur
C – un code de hamming binaire
Exemple :
simula : C = codeHammingBinnaire(3)
C = Code de Hamming binnaire de paramètres (n,k) = (7,4)
simula : matriceGeneratrice(C)
[[1 0 0 0 0 1 1]
 [0 1 0 0 1 0 1]
 [0 0 1 0 1 1 0]
 [0 0 0 1 1 1 1]]
simula : decodageHamming((1,1,0,0,0,1,1) , C)
(1, 0, 0, 0, 0, 1, 1)
- 
encodage(m, C)¶ l’encodage du message \(m=(m_1,m_2,...,m_k)\) pour le code \(C\) i.e \(mG\) où \(G\) est la matrice génératrice du code \(C\).
- Paramètres
 m=(m1,m2,..,mk) – un vecteur
C – un code linéaire
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : C = codeLineaireGen(2, G)
C = Codes lineaire défini sur F_2 de matrice génératrice
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : encodage((1,0,1,1) , C)
[0 0 1 0 1 1 ]
- 
syndrome(c, C)¶ le syndrome du mot \(c=(c_1,c_2,...,c_n)\) pour le code \(C\).
- Paramètres
 c=(c1,c2,..,ck) – un vecteur
C – un code linéaire
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : C = codeLineaireGen(2, G)
C = Codes lineaire défini sur F_2 de matrice génératrice
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : syndrome((1,1,1,0,1,1) , C)
[0 ]
[0 ]
simula : syndrome((1,1,1,1,1,1) , C)
[0 ]
[1 ]
- 
estMotdecode(c, C)¶ renvoie “Oui” si \(c=(c_1,c_2,...,c_n)\) si c est un mot de code du code \(C\) et “Non” dans le cas contraire.
- Paramètres
 c=(c1,c2,..,ck) – un vecteur
C – un code linéaire
Exemple :
simula : G = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : C = codeLineaireGen(2, G)
C = Codes lineaire défini sur F_2 de matrice génératrice
G =
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : estMotdecode((1,1,1,0,1,1) , C)
Oui
simula : estMotdecode((1,1,1,1,1,1) , C)
Non
- 
echelonnerMatriceFp(p, A)¶ la forme échelonnée réduite de la matrice \(A\) dans le corps fini \(\mathbb{F}_p\).
- Paramètres
 p – un nombre premier
A – Une matrice
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : echelonnerMatriceFp(2, A)
[[1 0 0 0 1 1]
 [0 1 0 0 1 1]
 [0 0 1 0 1 1]
 [0 0 0 1 0 1]]
- 
systematise(p, A)¶ la matrice systématisée de \(A\) dans le corps fini \(\mathbb{F}_p\).
- Paramètres
 p – un nombre premier
A – Une matrice
Exemple :
simula : A = matrice([ [1,1,1,0,1,1], [0,1,0,0,1,1], [1,0,1,1,0,1], [0,1,1,1,0,1] ])
[1 1 1 0 1 1 ]
[0 1 0 0 1 1 ]
[1 0 1 1 0 1 ]
[0 1 1 1 0 1 ]
simula : systematise(2, A)
 [[1 0 0 0 1 1]
  [0 1 0 0 1 1]
  [0 0 1 0 1 1]
  [0 0 0 1 0 1]]
Note
Les fonctions systematise() et echelonnerMatriceFp() sont équivalentes.
- 
normaliseInverse(p, H)¶ la systématisation de la matrice \(H\) dans le sens inverse dans le corps fini \(\mathbb{F}_p\).
- Paramètres
 p – un nombre premier
A – Une matrice
Exemple :
simula : H = matrice([ [1,1,1,0,1,1,0], [0,1,0,0,1,1,1], [1,0,1,1,0,1,0] ])
[1 1 1 0 1 1 0 ]
[0 1 0 0 1 1 1 ]
[1 0 1 1 0 1 0 ]
simula : normaliseInverse(2, H)
[[0 1 0 1 1 0 0]
 [1 0 1 1 0 1 0]
 [1 0 1 0 0 0 1]]