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]]