491 likes | 748 Views
ELG3575 Introduction aux sys tèmes de télécommunication. Théorie d’information. Théorie d’information. Information est une quantité qu’on peut mésurer . On peut déterminer les limites d’information qu’on peut transmettre sur un lien.
E N D
ELG3575 Introduction aux systèmes de télécommunication Théoried’information
Théoried’information • Information estunequantitéqu’onpeutmésurer. • On peutdéterminer les limitesd’informationqu’onpeuttransmettresur un lien. • Théoried’informationestconçu par Claude Shannon en 1949. • EncodageHuffmann pour l’encodageefficace de la sortie d’une source. • Codes correcteurd’erreurs pour la correction des erreurs qui arrivent en communication.
Montant d’information d’un message • Il y a une source qui, à chaque instant de signalisation, émet un message qui vient d’un ensemble de messages {m1, m2, …, mN}. • Supposonsque la source n’a pas de memoire, c’est-à-dire quel’émission de messages futurs ne depend pas des messages qui ontétéémisdans le passé. • Chaque message a une probabilité de transmission {p(m1), p(m2), … p(mN)}. • Le montant d’information de chaque message dépend de sa probabilité de transmission. • Exemple: m1 = il fait beau, m2 = il y a une tornade. • SI LA PROBABILITÉ D’ÉMISSION EST FAIBLE, LE MESSAGE CONTIENT BEAUCOUP D’INFORMATION!!!
Montant d’information • Ici p(m1)>p(m2) mais I(m1)<I(m2). • Supposons que m3= m1m2. Si on suppose que la source n’a pas de memoire, p(m3) = p(m1)p(m2), mais c’est claire que I(m3) = I(m1)+I(m2). • Alors I(mi) = logb(1/p(mi)) = -logb(p(mi)). • b = 2, I(mi) (bits) • b = 3, I(mi) (symbôles ternaires) • b= e, I(mi) (nats) • b =10, I(mi) (Hartleys)
Exemple • M = {m1, m2, m3, m4} avec P = {0.35, 0.11, 0.45, 0.09} • I(m1) = 1.51 bits • I(m2) = 3.18 bits • I(m3) = 1.15 bits • I(m4) = 3.47 bits • La probabilité que la source émet le message m1 suivit par m2 est 0.35×0.11 = 0.0385. L’information dans cette séquence de messages est –log2(0.0385) = 4.69 bits = 1.51+3.18.
Entropie de la source • L’entropie de la source, H(M), est la valeur moyenne d’information par transmission.
Exemple • M = {m1, m2, m3, m4} et P = {0.35, 0.11, 0.45, 0.09} • I(m1) = 1.51 bits • I(m2) = 3.18 bits • I(m3) = 1.15 bits • I(m4) = 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 l’exempleprecedant. • H(M) = 1.71 bits/message. • Encodons les messages: m1= 00, m2 = 01, m3 = 10 et m4 = 11, la longueur de chaque message 2 bits. L= longueur moyenne. • On peut démontrer que H(M) ≤ L. • Maintenant utilisons ce code: • m1 = 01, m2 = 000, m3 = 1 and m4 = 001. L = 0.45(1)+0.35(2)+0.11(3)+0.09(3) = 1.75 bits/message. • Exemple: 010101000010010010010011 = m1, m1, m1, m2, m1, m4, m4, m4, m4, m3 : uniquement décodable
Encodage de source • Prenons ce code: • m1 = 10, m2 = 100, m3 = 1 and m4 = 010. L = 0.45(1)+0.35(2)+0.11(3)+0.09(3) = 1.75 bits/message. • Exemple: 1010 = m1, m1, ou m3, m4. ce n’est pas uniquement décodable. • Un code à longueur variable estuniquementdécodables’ilest un code à préfixeconditionné. • Efficacité de l’encodeurest H(M)/L. (dansnotreexempleeff = 1.71/1.75 = 0.977.
Codes Huffmann • L’algorithme Huffmann permet de concevoir des codes à préfixe conditionné.
m3 m1 m2 m4 0.45 0.35 0.11 0.09 0.45 0.55 + 0.20 +
m3 m1 m2 m4 0.45 0.35 0.11 0.09 0.45 0.55 + 0.20 + 1 01 0 001 m3 = 1, m1 = 01, m2 = 001 m4 = 000. 00 000
Codes correcteur d’erreurs • Code bloc • Linéaire • Hamming, LDPC • Non-Linéaire • Cyclic • BCH, RS • Codes Convolutionnelles • Codes Turbo
Bits de parité • Supposons qu’on veut transmettre le message m=[1001001]. • Supposons que le deuxième bit est décodé en erreur, r = [1101001]. • Le récepteur ne peut pas déterminer que r est en erreur. • Supposons, qu’avant la transmission, on ajoute un bit de parité paire au message mc= [10010011]. • Maintenant, supposons que le deuxième bit est reçu en erreur, r = [11010011]. Il y a maintenant 5 1’s, ce qui n’est 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é. L’encodage produit un nouveau bloc de n bits où n>k. Encodage produit de la redondance dans le message à transmettre. • Le taux du code est isr = k/n. m c encodeur 1011100 1011
Addition et multiplication binaire • 0+0 = 0, 0+1 = 1, 1+0 = 1 et 1+1=0 (iln’y a pas de retenu). • 0x = 0 oùx = 0 ou1. 1x = x oùx = 0 ou1. • Exemples1010 + 1100 = 0110. 0(10010) = (00000).
Codes Blocs Linéaires • Soit C est un code qui consiste de l’ensemble des vecteurs {c0, c1, … cM} où M = 2k-1 . • C est un code linéaire si pour ci et cjen C, ci+cj est aussi en C. • Exemple C = {c0= 0000, c1= 0110, c2= 1001, c3= 1111}. • c0+cx= cxfor x = 0, 1, 2ou 3. • cx+cx = c0. • c1+c2= c3, c2+c3= c1, c1+c3= c2. • C est linéaire. • C2 = {c0= 0001, c1= 0111, c2= 1000, c3= 1110}. • cx+cx = 0000 qui n’est pas en C2. • C2n’est pas linéaire.
Poids Hamming • Pour un mot de code cx du code C, son poids Hamming égal le nombre d’elements en cx qui ne sont pas 0. • C = {0000 0110 1001 1111} • 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 ci et cjdu code C égal le nombre de position où les deux mots se diffèrent. 0000 0110 1001 1111 0000 0 2 2 4 0110 2 0 4 2 1001 2 4 0 2 1111 4 2 2 0 • ci+cj = 0 dans les positions où ils sont pareils et ci+cj = 1 dans les positions où ils se diffèrent. Donc HD{ci, cj} = HW{ci+cj}.
Distance minimum d’un code bloc linéaire • Dans l’exemple précédant, dmin = 2. • Nous avons vu que HD{ci,cj} = HW{ci+cj} = HW{cx} où, dans le cas des codes blocs linéaires, cxest un autre mot de code en C excluant le mot de code entièrementzéro. • Donc, dmin = poids Hamming minimum du code C en excluant le mot de code entièrementzéro. • Dans notre exemple, en excluant 0000, les autres mots de code sont 0110, 1001 et 1111. Le poids Hamming minimum de ces trois mots de code est 2. Donc dmin = 2.
Base d’un code bloc • C est un code bloc linéaire • Choissisons k mots de codes indépendants, c1, c2, …, ck. Aucun de ces mots de code peutêtreexprimécommeunecombinaisonlinéaire des autres. • Tous les 2k mots de codes en C peuventêtreexpriméscommeunecombinaisonlinéaire de ces k mots de codes. • On dit que ces k mots de code forment la base du code C. • cx = a1c1+a2c2+a3c3+…+akckoùai= 0 ou 1 • Pour notre code on peut choisir comme base 0110 et 1111, ou 0110 et 1001 ou 1001 et 1111. • exemple, prenons c1= 0110 et c2 = 1111 comme la base du code. • 0000 = 0c1+0c2, 0110 = 1c1+0c2, 1001 = 1c1+1c2 et 1111 = 0c1+1c2.
Matrice génératrice Exemple Les dimensions de la matriceGsontk×n.
Codes équivalents • Les codes générés par G1 et G2sont équivalents si les matrices génèrent les mêmes mots de codes (cependant les messages correspondants sont différents). • Exemple m 00 0000 0000 01 1111 1111 10 0110 1001 11 1001 0110
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]. • Gsyst= [Ik|P]. • Exemple m 00 0000 01 0110 10 1001 11 1111
Code systématiqueéquivalent • Pour n’importequel code, on peuttrouver la matricegé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écHT = 0, oùcestn’importequel mot de code du code C. • On peutécrirecHT = 0commemGHT = 0 • Donc GHT = 0. • On peuttrouverH à partir da la matriceGsyst. • H= [PT|In-k]. • Les dimensions de Hsont (n-k)×n.
Exemple: Code Hamming (7,4) Trouveztousses mots de codes ainsiquedmin, et trouvezH. Solution au tableau.
Decodage • Le mot reçu, r = c+e, où e = vecteurd’erreur. • Par exemple, sic = (1 1 0 0 1 1 0 1) et r = (1 0 0 0 1 1 0 1), donce = (0 1 0 0 0 0 0 0). • En supposantque les erreurs de détectionarrivent avec p < 0.5 • Dans le casoù le mot reçucontient des erreurs, le vecteurd’erreur le plus probable estcelui avec le poids le plus faible.
Exemple • C = {(00000) (01011) (10110) (11101)} • r = (11111) • Si c = (00000), alorse = (11111) qui arrive avec probabilitép5. • Si c = (01011), alorse = (10100) qui arrive avec probabilitép2(1-p)3. • Si c = (10110), alorse = (01001) qui arrive avec probabilitép2(1-p)3. • Si c = (11101), alorse = (00010) qui arrive avec probabilitép(1-p)4 > p2(1-p)3 > p5. • Donc le décodeurchoisitc = (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 • Faitesuneliste 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èrementzéro à la gauche. • Prendre le mot avec le poids le plus faible et mettredans la colonne sous le mot entièrementzéro. Additionnercevecteur aux autres mots de code et placer le resultat sous ce mot de code. • Enlevertouscesrésultats de la liste. • Répeterjusqu’à la fin de la liste de mots.
Decodage par syndrome • S = rHT. • r=c+e, therefore S = (c+e)HT = cHT + eHT = eHT. • Tous les vecteursdans la mêmerangée du tableau standard produit le même syndrome. • Syndrome indique le vecteurd’erreur le plus probable et on produitc par c = r+e.
Exemple • Pour ce code:
Exemple • Supposonsr = (01001), alors • Ceciindiqueque le 4e bit est en erreur: e = (00010) doncc = (01011).
Capacité de correction oudétectiond’erreur • t = tous les vecteurd’erreur de poids t oumoinspeuventêtrecorrigés. • J = tous les vecteurd’erreur de poids J oumonspeuventêtredétectés. • t = (dmin-1)/2 (dminestimpaire) or (dmin-2)/2 (dminestpaire). • J = dmin -1 • Parfois on crée des codes qui tente de corriger les erreurs de poids t oumoinsmaisest capable de détecter des erreurs de poidssupérieur à t: t+J = dmin -1 oùJ > t. • Exemple un code qui corrige 2 erreursmaisdétecte 4 erreursdoitavoirdmin = 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 + 2p2(1-p)3. Therefore P(E) = 1- (1-p)5-5p(1-p)4 - 2p2(1-p)3 • In many cases, the code has too many codewords to construct a standard array. • But we usually know dmin, therefore we know t.
Performance: Bit Error Rate • (1/k)P(E) < Pb < 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) = 2p3(1-p)2 + p4(1-p). • If we don’t 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