Théorie dinformation ELG3575 Introduction aux systèmes de télécommunication
Théorie dinformation Information est une quantité quon peut mésurer. On peut déterminer les limites dinformation quon peut transmettre sur un lien. Théorie dinformation est con çu par Claude Shannon en Encodage Huffmann pour lencodage efficace de la sortie dune source. Codes correcteur derreurs pour la correction des erreurs qui arrivent en communication.
Montant dinformation dun message Il y a une source qui, à chaque instant de signalisation, émet un message qui vient dun ensemble de messages {m 1, m 2, …, m N }. Supposons que la source na pas de memoire, cest-à- dire que lémission de messages futurs ne depend pas des messages qui ont été émis dans le passé. Chaque message a une probabilité de transmission {p(m 1 ), p(m 2 ), … p(m N )}. Le montant dinformation de chaque message dépend de sa probabilité de transmission. –Exemple: m 1 = il fait beau, m 2 = il y a une tornade. –SI LA PROBABILITÉ DÉMISSION EST FAIBLE, LE MESSAGE CONTIENT BEAUCOUP DINFORMATION!!!
Montant dinformation Ici p(m 1 )>p(m 2 ) mais I(m 1 )<I(m 2 ). Supposons que m 3 = m 1 m 2. Si on suppose que la source na pas de memoire, p(m 3 ) = p(m 1 )p(m 2 ), mais cest claire que I(m 3 ) = I(m 1 )+I(m 2 ). Alors I(m i ) = log b (1/p(m i )) = -log b (p(m i )). b = 2, I(m i ) (bits) b = 3, I(m i ) ( symbôles ternaires) b = e, I(m i ) (nats) b =10, I(m i ) (Hartleys)
Exemple M = {m 1, m 2, m 3, m 4 } avec P = {0.35, 0.11, 0.45, 0.09} I(m 1 ) = 1.51 bits I(m 2 ) = 3.18 bits I(m 3 ) = 1.15 bits I(m 4 ) = 3.47 bits La probabilité que la source émet le message m 1 suivit par m 2 est 0.35×0.11 = Linformation dans cette séquence de messages est –log 2 (0.0385) = 4.69 bits =
Entropie de la source Lentropie de la source, H(M), est la valeur moyenne dinformation par transmission.
Exemple M = {m 1, m 2, m 3, m 4 } et P = {0.35, 0.11, 0.45, 0.09} I(m 1 ) = 1.51 bits I(m 2 ) = 3.18 bits I(m 3 ) = 1.15 bits I(m 4 ) = 3.47 bits H(M) = 0.35(1.51)+0.11(3.18)+0.45(1.15)+0.09(3.47) = 1.71 bits/message.
Encodage de source Prenons lexemple precedant. H(M) = 1.71 bits/message. Encodons les messages: m 1 = 00, m 2 = 01, m 3 = 10 et m 4 = 11, la longueur de chaque message 2 bits. L = longueur moyenne. On peut démontrer que H(M) L. Maintenant utilisons ce code: m 1 = 01, m 2 = 000, m 3 = 1 and m 4 = 001. L = 0.45(1)+0.35(2)+0.11(3)+0.09(3) = 1.75 bits/message. Exemple: = m 1, m 1, m 1, m 2, m 1, m 4, m 4, m 4, m 4, m 3 : uniquement décodable
Encodage de source Prenons ce code: m 1 = 10, m 2 = 100, m 3 = 1 and m 4 = 010. L = 0.45(1)+0.35(2)+0.11(3)+0.09(3) = 1.75 bits/message. Exemple: 1010 = m 1, m 1, ou m 3, m 4. ce nest pas uniquement décodable. Un code à longueur variable est uniquement décodable sil est un code à préfixe conditionné. Efficacité de lencodeur est H(M)/L. (dans notre exemple eff = 1.71/1.75 =
Codes Huffmann Lalgorithme Huffmann permet de concevoir des codes à préfixe conditionné.
m3m1m2m4m3m1m2m
m3m1m2m4m3m1m2m m 3 = 1, m 1 = 01, m 2 = 001 m 4 = 000.
Codes correcteur derreurs Code bloc –Linéaire Hamming, LDPC –Non-Linéaire –Cyclic BCH, RS Codes Convolutionnelles Codes Turbo
Bits de parité Supposons quon veut transmettre le message m=[ ]. Supposons que le deuxième bit est décodé en erreur, r = [ ]. Le récepteur ne peut pas déterminer que r est en erreur. Supposons, quavant la transmission, on ajoute un bit de parité paire au message m c = [ ]. Maintenant, supposons que le deuxième bit est reçu en erreur, r = [ ]. Il y a maintenant 5 1s, ce qui nest pas permis. Alors un erreur est détecté et le récepteur peut demander une nouvelle transmission. La détection de cet erreur est possible en ajoutant le bit de parité.
Codes Blocs Les données sont regroupés en groupes de k bits. Chaque « bloc » de k bits est encodé. Lencodage produit un nouveau bloc de n bits où n>k. Encodage produit de la redondance dans le message à transmettre. Le taux du code est is r = k/n. encodeur mc
Addition et multiplication binaire 0+0 = 0, 0+1 = 1, 1+0 = 1 et 1+1=0 (il ny a pas de retenu). 0x = 0 où x = 0 ou 1. 1x = x où x = 0 ou 1. Exemples = (10010) = (00000).
Codes Blocs Linéaires Soit C est un code qui consiste de lensemble des vecteurs {c 0, c 1, … c M } où M = 2 k -1. C est un code linéaire si pour c i et c j en C, c i +c j est aussi en C. Exemple C = {c 0 = 0000, c 1 = 0110, c 2 = 1001, c 3 = 1111}. c 0 +c x = c x for x = 0, 1, 2 ou 3. c x +c x = c 0. c 1 +c 2 = c 3, c 2 +c 3 = c 1, c 1 +c 3 = c 2. C est linéaire. C 2 = {c 0 = 0001, c 1 = 0111, c 2 = 1000, c 3 = 1110}. c x +c x = 0000 qui nest pas en C 2. C 2 nest pas linéaire.
Poids Hamming Pour un mot de code c x du code C, son poids Hamming égal le nombre delements en c x qui ne sont pas 0. C = { } H.W{0000} = 0 H.W{0110} = 2 H.W{1001} = 2 H.W{1111} = 4
Distance Hamming La distance Hamming entre deux mots de codes c i et c j du code C égal le nombre de position où les deux mots se diffèrent c i +c j = 0 dans les positions où ils sont pareils et c i +c j = 1 dans les positions où ils se diffèrent. Donc HD{c i, c j } = HW{c i +c j }.
Distance minimum dun code bloc linéaire Dans lexemple précédant, d min = 2. Nous avons vu que HD{c i,c j } = HW{c i +c j } = HW{c x } où, dans le cas des codes blocs linéaires, c x est un autre mot de code en C excluant le mot de code entièrement zéro. –Donc, d min = poids Hamming minimum du code C en excluant le mot de code entièrement zéro. Dans notre exemple, en excluant 0000, les autres mots de code sont 0110, 1001 et Le poids Hamming minimum de ces trois mots de code est 2. Donc d min = 2.
Base dun code bloc C est un code bloc linéaire Choissisons k mots de codes indépendants, c 1, c 2, …, c k. Aucun de ces mots de code peut être exprimé comme une combinaison linéaire des autres. Tous les 2 k mots de codes en C peuvent être exprimés comme une combinaison linéaire de ces k mots de codes. –On dit que ces k mots de code forment la base du code C. c x = a 1 c 1 +a 2 c 2 +a 3 c 3 +…+a k c k où a i = 0 ou 1 Pour notre code on peut choisir comme base 0110 et 1111, ou 0110 et 1001 ou 1001 et exemple, prenons c 1 = 0110 et c 2 = 1111 comme la base du code. –0000 = 0c 1 +0c 2, 0110 = 1c 1 +0c 2, 1001 = 1c 1 +1c 2 et 1111 = 0c 1 +1c 2.
Matrice génératrice Exemple Les dimensions de la matrice G sont k×n.
Codes équivalents Les codes générés par G 1 et G 2 sont équivalents si les matrices génèrent les mêmes mots de codes (cependant les messages correspondants sont différents). Exemple m
Codes systématiques Un code est systématique si les bits du message se retrouvent au début des mots de codes. c = [m|p]. G syst = [I k |P]. Exemple m
Code systématique équivalent Pour nimporte quel code, on peut trouver la matrice génératrice de son code systématique équivalent par transformation linéaire. –Exemple au tableau. Lecture 6
Matrice de vérification de parité La matrice de vérification de parité H pour un code a la propriété cH T = 0, où c est nimporte quel mot de code du code C. On peut écrire cH T = 0 comme mGH T = 0 Donc GH T = 0. On peut trouver H à partir da la matrice G syst. H= [P T |I n-k ]. Les dimensions de H sont (n-k)×n.
Exemple: Code Hamming (7,4) Trouvez tous ses mots de codes ainsi que d min, et trouvez H. Solution au tableau.
Decodage Le mot reçu, r = c+e, où e = vecteur derreur. Par exemple, si c = ( ) et r = ( ), donc e = ( ). En supposant que les erreurs de détection arrivent avec p < 0.5 –Dans le cas où le mot reçu contient des erreurs, le vecteur derreur le plus probable est celui avec le poids le plus faible.
Exemple C = {(00000) (01011) (10110) (11101)} r = (11111) –Si c = (00000), alors e = (11111) qui arrive avec probabilité p 5. –Si c = (01011), alors e = (10100) qui arrive avec probabilité p 2 (1-p) 3. –Si c = (10110), alors e = (01001) qui arrive avec probabilité p 2 (1-p) 3. –Si c = (11101), alors e = (00010) qui arrive avec probabilité p(1-p) 4 > p 2 (1-p) 3 > p 5. Donc le décodeur choisit c = (11101) comme le mot de code le plus probable et sa sortie est le message qui corréspond à ce mot de code.
Decodage par tableau standard Tableau qui donne la mise en corréspondance entre les mots reçus et le de code les plus probable
Comment construire le tableau standard Faites une liste de tous les mots possibles. Enlever de la liste les mots de codes et les placer dans la première rangée avec le mot entièrement zéro à la gauche. Prendre le mot avec le poids le plus faible et mettre dans la colonne sous le mot entièrement zéro. Additionner ce vecteur aux autres mots de code et placer le resultat sous ce mot de code. –Enlever tous ces résultats de la liste. Répeter jusquà la fin de la liste de mots.
Decodage par syndrome S = rH T. r=c+e, therefore S = (c+e)H T = cH T + eH T = eH T. Tous les vecteurs dans la même rangée du tableau standard produit le même syndrome. Syndrome indique le vecteur derreur le plus probable et on produit c par c = r+e.
Exemple Pour ce code:
Exemple Supposons r = (01001), alors Ceci indique que le 4 e bit est en erreur: e = (00010) donc c = (01011).
Capacité de correction ou détection derreur t = tous les vecteur derreur de poids t ou moins peuvent être corrigés. J = tous les vecteur derreur de poids J ou mons peuvent être détectés. t = (d min -1)/2 (d min est impaire) or (d min -2)/2 (d min est paire). J = d min -1 Parfois on crée des codes qui tente de corriger les erreurs de poids t ou moins mais est capable de détecter des erreurs de poids supérieur à t: t+J = d min -1 où J > t. –Exemple un code qui corrige 2 erreurs mais détecte 4 erreurs doit avoir d min = 7 (ou plus).
Performance: Decoder Failure Probability of decoder failure = probability that decoder selects the incorrect codeword = probability that error pattern is not one of the error patterns that it can correct –In our example, the decoder can correct all 5 error patterns of weight 1 and 2 error patterns of weight two. The probability that the error pattern IS one of these is (1-p) 5 +5p(1-p) 4 + 2p 2 (1-p) 3. Therefore P(E) = 1- (1-p) 5 -5p(1-p) 4 - 2p 2 (1-p) 3 –In many cases, the code has too many codewords to construct a standard array. –But we usually know d min, therefore we know t.
Performance: Decoder Failure
Performance: Bit Error Rate (1/k)P(E) < P b < P(E)
Performance: Probability Undetected Error P(U) = probability that an error is undetected = probability that syndrome = 0 even if error pattern is not 0 = probability that error pattern is same as a codeword. In our example P(U) = 2p 3 (1-p) 2 + p 4 (1-p). If we dont know the codewords because code is too large, then P(U) < probability error pattern has weight greater than j = 1 – probability that error pattern has weight j or less