Digital Communication Laboratories P. Bakowski bako@ieee.org P. Bakowski 1
DigiCom Labs Il y a 5 laboratoires liés à la communication numérique 1. Etude des paramètres de câbles métalliques, y compris: de l'impédance caractéristique, l'atténuation et de débit de base de données 2. Étude d'un système de transmission numérique avec détection d'erreur et de correction 3. Étude des codes en ligne avec la bande de base (partie 1) et modulation analogique (partie 2) 4. Etude d'un système de modulation QPSK et de communication basée sur le modèle SIMULINK 5. Étude du code CRC et du système de communication basé sur le modèle SIMULINK P. Bakowski 2
L5: étude du code CRC Le code CRC (Cyclic( Redundancy Check) est utilisé pour la détection des erreurs dans des longues séquences binaires. Un CRC est une courte séquence binaire de taille fixe, connue comme valeur de test. Elle est ajoutée à la fin d'une séquence de données. L'ensemble donne un codeword. A la réception d'un codeword, on effectue le calcul de CRC sur le codeword et on compare le resulat avec une constante. Si on trouve une correspondance la transmission est sans erreur (?). P. Bakowski 3
L5: étude du code CRC Typiquement, un code CRC sur n bits appliqué sur un bloc de données de taille quelconque va détecter toutes les suites d'erreurs plus courtes que n. Il va détecter la fraction 1 2 n des suites d'erreurs plus longues. erreurs n bits P. Bakowski 4
L5: étude du code CRC La création du code CRC implique l'utilisation d'un code: generateur polynomial. Ce polynomial est un diviseur et les données (message) sont le dividende, le reste de la division et le résulat. La longueur du reste est inférieure à la longueur du générateur; elle détermine la longueur du résultat. Le plus simple CRC sur un bit est généré par x+1. P. Bakowski 5
L5: calcul du code CRC Le message à encoder: 11010011101100 Ce message doit être completé par n zéros où n est le longueur code CRC (ici 3 bits). Ci dessous le premier pas de calcul avec le polynomial: x 3 +x +1 : 11010011101100 000 <- décalage de 3 bits 1011 <- diviseur (4 bits) ------------------ 01100011101100 000 <- résultat P. Bakowski 6
L5: calcul du code CRC 11010011101100 000 <--- décalage de 3 bits à gauche 1011 <--- diviseur 01100011101100 000 <--- résultat 1011 <--- diviseur... 00111011101100 000 1011 00010111101100 000 1011 00000001101100 000 1011 00000000110100 000 1011 message 00000000011000 000 1011 00000000001110 000 1011 00000000000101 000 101 1 ----------------- 00000000000000 100 <--- reste (3 bits) code CRC à ajouter au P. Bakowski 7
L5: calcul du code CRC La validité du message en réception peut être facilement vérifiée par le même calcul avec les derniers bits complétés par le code CRC. Pour une transmission sans erreur le reste de la division doit être égale à zéro. P. Bakowski 8
L5: Exemple de calcul du code CRC Nous allons calculer un CRC à 8 bits pour un message de 8 bits fait à partir d'un caractère ASCII - "W", en décimal 87 ou héxadecimal 0x57. Pour illustration, nous prénons le code polynomial CRC- 8-ATM (HEC): x 8 + x 2 + x + 1. Ce code correspond à la suite de 9 bits: "100000111". P. Bakowski 9
L5: Exemple de calcul du code CRC Le generateur est un registre à décalage avec portes xor placées selon les puissances dans le générateur polynomial. Le message peut être de taille quelconque. Après le décalage du message complet avec 8 zéros ajoutés, le résultat dans le registre est le CRC. P. Bakowski 10
L5: Exemple de calcul du code CRC Le message reçu est décalé par le même registre avec le code CRC attaché au message (à la place de zéros). Les données correctement réçues fournissent le résulat de zéro (00000000). La présence d'une erreur de transmission donne un résultat différent de zéro. P. Bakowski 11
L5: modèle SIMULINK x 3 + x +1 message+crc message 0s ajoutés P. Bakowski 12
L5: modèle SIMULINK P. Bakowski 13
L5: modèle SIMULINK result must be zero (remainder) P. Bakowski 14
L5: modèle SIMULINKl l - simulation Tb=1, n=7, k=3 er=0.001 motinfo (4 bits): 0110 motinfo+crc : 0110001 001 erreurs sur ligne Message réçu+crc erreurs détectées P. Bakowski 15
L5: modèle SIMULINK - simulation Tb=1, n=7, k=3 er=0.1 motinfo (4 bits): 0110 motinfo+crc : 0110001 001 erreurs sur ligne message réçu+crc erreurs détectées P. Bakowski 16
L5: nouvel générateur CRC temps de simulation: 14*Tb Tb=1, n=7, k=3 P. Bakowski 17
L5: générateur pséudo-aléatoire Utilisez le circuit suivant pour la génération du signal d'entrée: Attention: Q1, Q2 doivent être initalisés à 1 P. Bakowski 18