Bit de parité : Bit supplémentaire ajouté à un mot de données pour détecter les erreurs de transmission.
- Compter le nombre de bits à 1 dans le mot
- Si parité paire : ajouter 0 si pair, 1 si impair
- Si parité impaire : ajouter 1 si pair, 0 si impair
- Le mot avec parité doit respecter la règle
Nombre de bits à 1 : 4 (pair)
Parité paire : ajouter 0
Résultat : 10110100
Nombre total de 1 doit être pair
Nombre total de 1 doit être impair
XOR de tous les bits
Détecte 1 erreur, pas plus
1011010 → 1+0+1+1+0+1+0 = 4 bits à 1
Parité paire : 4 est pair → ajouter 0
1011010 + 0 = 10110100
Mot original : 1011010
Bit de parité paire : 0
Mot avec parité : 10110100
• Simple à implémenter : XOR de tous les bits
• Détecte erreurs simples : Mais pas les doubles
• Utilisation : Mémoires RAM, transmissions série
Checksum : Somme des octets d'un message, utilisée pour la détection d'erreurs.
Somme = 45 + 23 + 78 + 12 = 158
Modulo 256 = 158
Checksum = 256 - 158 = 98
Somme des octets modulo 256
Checksum + données ≡ 0 (mod 256)
Moins robuste que CRC
Protocoles IP, UDP, fichiers
45 + 23 + 78 + 12 = 158
Checksum = 256 - (somme % 256) = 256 - 158 = 98
45 + 23 + 78 + 12 + 98 = 256 ≡ 0 (mod 256) ✓
Données : [45, 23, 78, 12]
Checksum : 98
Vérification : 45+23+78+12+98 = 256 ≡ 0 (mod 256)
• Simple mais limité : Moins efficace que CRC
• Détection d'erreurs : Basée sur la somme des données
• Utilisation : Protocoles réseau et fichiers
Code de Hamming (7,4) : Code correcteur qui encode 4 bits de données en 7 bits avec correction d'une erreur.
Positions des bits de données : 3, 5, 6, 7
Positions des bits de parité : 1, 2, 4
Calcul des bits de parité selon la matrice de contrôle
p1, p2, p4 (positions 1, 2, 4)
d3, d5, d6, d7 (positions 3, 5, 6, 7)
p1 = d3 ⊕ d5 ⊕ d7, p2 = d3 ⊕ d6 ⊕ d7, p4 = d5 ⊕ d6 ⊕ d7
Correction 1 erreur, détection 2 erreurs
Position 3: 1, Position 5: 0, Position 6: 1, Position 7: 1
p1 = 1 ⊕ 0 ⊕ 1 = 0
p2 = 1 ⊕ 1 ⊕ 1 = 1
p4 = 0 ⊕ 1 ⊕ 1 = 0
p1 p2 d3 p4 d5 d6 d7 = 0 1 1 0 0 1 1
| Position | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Valeur | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
Bits de parité : positions 1, 2, 4
Bits de données : positions 3, 5, 6, 7
• Positions de parité : Puissances de 2 (1, 2, 4, 8...)
• Calcul de parité : XOR des bits couverts
• Capacité : Correction d'une erreur, détection de deux
CRC : Technique de détection d'erreurs basée sur la division polynomiale.
Polynôme : 10011 (degré 4)
Message : 1101011
Division binaire pour obtenir le reste
Division polynomiale modulo 2
Définit la longueur du CRC
Meilleure que checksum
Trames Ethernet, disques durs, fichiers
1101011 → 11010110000 (ajout de 4 zéros)
11010110000 ÷ 10011 = quotient avec reste
Reste = 1010 (CRC de 4 bits)
Message : 1101011
Polynôme : x⁴ + x + 1 (10011)
CRC : 1010
Message avec CRC : 11010111010
• Division modulo 2 : XOR au lieu de soustraction
• Polynôme standard : Utilisé pour la compatibilité
• Robustesse : Meilleure détection des erreurs
Correction d'erreur Hamming : Processus de détection et correction d'une erreur unique dans un mot de code.
Calcul des syndromes pour les positions de parité
Position de l'erreur = somme des positions avec syndrome ≠ 0
Résultat de la multiplication H·r^T
Valeur binaire du syndrome
Inverser le bit à la position trouvée
Uniquement 1 erreur corrigeable
s1 = r1 ⊕ r3 ⊕ r5 ⊕ r7 = 0 ⊕ 1 ⊕ 0 ⊕ 1 = 0
s2 = r2 ⊕ r3 ⊕ r6 ⊕ r7 = 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0
s4 = r4 ⊕ r5 ⊕ r6 ⊕ r7 = 1 ⊕ 0 ⊕ 1 ⊕ 1 = 1
Syndrome = s4s2s1 = 100₂ = 4₁₀
L'erreur est en position 4
Inverser le bit en position 4 : 0111011 → 0110011
Mot reçu : 0111011
Syndrome : 100₂ (position 4)
Mot corrigé : 0110011
Données originales : 1011
• Syndrome nul : Aucune erreur détectée
• Syndrome non nul : Position de l'erreur
• Capacité limitée : Une seule erreur corrigeable
- Parité simple : 1 bit de redondance, détection d'une erreur
- Checksum : Somme des données, détection multiple
- CRC : Division polynomiale, robuste
- Hamming : Correction d'une erreur, détection de deux
- Reed-Solomon : Correction de plusieurs erreurs
- La détection d'erreurs repose sur l'ajout de redondance aux données
- La correction d'erreurs nécessite suffisamment de bits de redondance
- La distance de Hamming détermine la capacité de détection/correction
- Les codes correcteurs sont essentiels pour les transmissions fiables
- Le compromis existe entre redondance et efficacité
- Parité : Mémoires RAM, transmissions série
- CRC : Trames Ethernet, disques durs, fichiers
- Hamming : Mémoires ECC, transmissions spatiales
- Reed-Solomon : CDs, DVDs, QR codes, transmissions
- LDPC : Communications modernes, WiFi, satellites
- Parité : Simple, 1 bit, détection simple
- Checksum : Modéré, quelques bits, détection multiple
- CRC : Complexe, plusieurs bits, robuste
- Hamming : Équilibré, correction 1 erreur
- Reed-Solomon : Complexité moyenne, correction multiple