Vous êtes sur la page 1sur 7

Transmission dinformations sur le r eseau electrique

Introduction
Remarques
Toutes les questions en italique devront etre pr epar ees par ecrit avant la s eance du TP. Les pr eparations seront ramass ees en d ebut de s eance.

Pr eambule
Nous nous proposons, dans ce TP, de simuler la transmission de mots binaires ` a laide du r eseau EDF habituel dune maison. Une telle transmission peut permettre, par exemple, de commander un appareil connect e sur une prise secteur, ` a laide dun emetteur situ e dans une autre pi` ece de lhabitation. Ce type de transmission dite par courant porteur en ligne (CPL) est egalement beaucoup utilis e aujourdhui pour relier un ordinateur ` a une box ADSL sans l suppl ementaire. Pour illustrer cette transmission, nous chercherons ` a transmettre une chaine de caract` eres quil faudra auparavant coder de mani` ere binaire. Cette premi` ere etape sera eectu ee ` a laide de lalgorithme de Human. Ensuite, le message binaire devra etre superpos e (de mani` ere ad equate) au secteur EDF de la maison, eventuellement pollu e par di erentes sources de bruit (ayant pour origine par exemple lactionnement successif dinterrupteurs ou dautres sources de bruit electromagn etique). La pr esence de bruit impose lutilisation pr ealable de techniques de codage de canal permettant dassurer au moins une d etection, voir une correction des erreurs de transmission. Le r ecepteur devra ensuite isoler du secteur EDF linformation binaire, puis la d ecoder de fa con ` a restituer la chaine de caract` ere emise. Le syst` eme de transmission propos e peut donc etre repr esent e sch ematiquement selon la gure 1. Le d etail des di erentes op erations binaires n ecessaires est repr esent e Figure 3.

!ZZIGZZAG!
Chane de caractres

Codage de Source

0111001...
Flux binaire

Codage de Canal 10010...


Flux binaire

!ZZIGZZAG!
Flux binaire

0111001...

Mise en forme
10 V 0V

Signal Analogique

Dcodage de source
Flux binaire

Couplage avec EDF


10 V

10010... Mise en forme


0V

Cble lectrique

Dcodage 10110... de canal Flux


Correction des erreurs binaire

Signal Analogique

Extraction du signal

Figure 1 Synopsis de la transmission, du texte ` a envoyer au texte re cu.

Codage de source

Nous souhaitons transmettre dans un premier temps le texte suivant : texte = !ZZIGZZAG! Pr ep. 1 Quelles sont les fr equences dapparition des caract` eres dans le message (tous les caract` eres seront pris en compte) ? En d eduire lentropie de la source. 1. Sous MATLAB, d enir le chemin dacc` es en s electionnant le dossier contenant les scripts ` a compl eter (File Set Path Add with Subfolders). 2. Commenter et compl eter la fonction entropie fournie, qui doit vous renvoyer la valeur de lentropie de la source ` a coder (ici la variable texte). V erier que la valeur dentropie calcul ee par la fonction correspond bien a ` celle attendue. On souhaite envoyer le texte pr ec edent ` a laide de symboles binaires. Il nous faut donc coder chacun des caract` eres du texte en cherchant ` a minimiser le nombre de symboles 0 ou 1 ` a transmettre. On propose pour cela dutiliser le code de Human. Pr ep. 2 Calculer les mots de code associ es aux lettres de la source en utilisant lalgorithme de Human (au plus haut). Pr ep. 3 En d eduire le code binaire data_comp correspondant au message. 3. La fonction [texte_compr,arbre]=huffman_compr(texte) r ealise pour vous le codage de la cha ne de caract` ere texte ` a transmettre. Cette fonction retourne le message compress e texte_compr et larbre de Human dans la variable arbre. Le code retourn e est compos e de trois champs : les mots de code (arbre.valeur), leur fr equence dapparition (arbre.frequence) et les symboles dinformation (arbre.info). Commenter le code de la fonction huffman_compr. Retrouver alors le code binaire correspondant au texte ` a transmettre en utilisant cette fonction. Pr ep. 4 Calculer la longueur moyenne L des mots de code. Le th eor` eme fondamental du codage de source est-il v eri e? 4. Coder le calcul de la longueur moyenne L des mots du code. Pr ep. 5 Sans compression, combien de digits sont n ecessaires pour coder une lettre de la source ? Calculer alors le taux de compression obtenu ` a laide du code de Human. 5. Coder le calcul du taux de compression. 6. Tester lint egralit e des etapes pr ec edentes pour di erents textes de votre choix, comme : texte = CECI EST UNE DEMO. CETTE PHRASE VA ETRE COMPRESSEE PAR LE CODE DE HUFFMANN., ou encore texte = ABCDEFGHIJKLMOPQRSTUVWXYZ Comparer les taux de compression des trois messages ainsi que leur entropie. Conclure sur les performances du code de Human.

II

Codage de canal

Le texte est maintenant cod e sous une forme binaire. An de pouvoir corriger d eventuelles erreurs lors de la transmission, on introduit ici une etape de codage de canal exploitant les codes correcteurs derreurs, qui produiront en leur sortie un nouveau ux binaire. Celui-ci int egre linformation ` a transmettre (le texte) ainsi que les digits de contr ole n ecessaires ` a la bonne transmission de celui-ci. Dans toute la suite, les digits de contr ole sont ajout es ` a linformation ` a laide dun code de Hamming CH dont la matrice g en eratrice G est : 2

1 1 G= 0 1

1 0 1 1

1 0 0 0

0 1 1 1

0 1 0 0

0 0 1 0

0 0 . 0 1

Pr ep. 6 Quelles sont la dimension k et la longueur n du code ? Indiquer lemplacement des digits dinformation et des digits de contr ole au sein des mots de code construits. A lissue de l etape de codage source, nous disposons du vecteur texte_compr comprenant le texte cod e de mani` ere binaire ` a laide de lalgorithme de Human. Il est n ecessaire pour la suite de faire correspondre ` a chacun des mots de k symboles binaires constituant data_compr un mot de code de longueur n incluant le contr ole n ecessaire ` a la bonne transmission de linformation. Pr ep. 7 Coder avec la matrice g en eratrice G ci-dessus le code binaire data_comp obtenu ` a la question Pr ep. 3. En d eduire les di erentes etape n ecessaires au codage dun ux binaire dinformation. Comment proc eder si la longueur du ux binaire ` a coder nest pas un multiple de k ? Coder cette etape de g en eration des mots de code. Pour cela : Parcourir texte_compr par paquets de k digits ; A laide de la matrice G ci-dessus, calculer les mots de code de longueur n correspondant ; Concat ener les mots de codes obtenus an dobtenir le nouveau ux binaire dans une variable nomm ee code.

III

Transmission

Nous disposons maintenant dun ux binaire incluant ` a la fois linformation ` a transmettre et les digits de contr ole n ecessaire ` a sa bonne transmission en pr esence derreurs. N eanmoins, il nest pas possible de connecter directement la sortie du codeur de canal pr ec edent au r eseau electrique : il faut auparavant transformer le ux binaire en un signal (tension) qui est superpos e au secteur. Cest lensemble de ces etapes qui est etudi e dans cette section. An de simuler la propagation du signal dinformation sur le r eseau EDF, vous disposez dune librairie Simulink nomm ee librairie.mdl repr esent ee Figure 2. 1. Lancer Simulink depuis linvite de commande Matlab en tapant simplement la commande simulink. Une fois lanc e, faire File Open, puis s electionner le chier librairie.mdl. 2. Ouvrir maintenant une nouvelle simulation en faisant File Open, puis s electionner le chier simulation.mdl. Une page blanche apparait alors ` a l ecran. Il sagit maintenant de la compl eter en glissant les blocs de la librairie et en les connectant les un aux autres de mani` ere ad equate.

III.1

Codage en bande de base

Cette etape de codage en bande de base permet dobtenir un signal electrique correspondant au ux binaire ` a transmettre, et compatible avec le canal qui est ici un c able electrique. 3. Dessiner le sch ema permettant dobtenir, ` a partir du code binaire ` a transmettre, la tension secteur coupl ee ` a linformation. 4. La plupart des blocs sont param etrables en double cliquant dessus. Commenter les valeurs par d efaut de ces param` etres et justier leur choix. 5. Utiliser le bloc Vers Matlab pour r ecup erer la tension correspondant au code a ` transmettre. Ce signal est echantillonn e` a la fr equence fe = 50kHz. Lancer la simulation du sch ema depuis la commande Simulation Start. 3

Figure 2 Librairie Simulink librairie.mdl utilis ee pour la simulation de la transmission 6. Visualiser lallure temporelle du signal obtenu. Etudier son contenu fr equentiel ` a laide de la commande fft eectuant une transformation de Fourier des signaux discrets (TFSD). Commenter. 7. Visualiser lallure du contenu fr equentiel obtenu pour les di erents textes ` a transmettre. Conclure quant ` a loccupation spectral du signal.

III.2

Transmission au sein dun canal bruit e

8. Ajouter au sch ema pr ec edent le canal de transmission, ainsi que la source de bruit nomm ee Bruit de fond. Lancer la simulation et visualiser le signal obtenu en sortie du canal. Commenter. 9. Faire varier la puissance du bruit en changeant la valeur du RSB (pour cela, double-cliquer le bloc de la source de bruit). Que constatez-vous visuellement ?

III.3

Extraction de linformation et d etection

8. Ajouter au sch ema pr ec edent les blocs D ecouplage et D etection. Pr eciser le r ole de chacun de ces traitement au sein de la cha ne de transmission. 9. Visualiser la tension de sortie du bloc D ecouplage pour di erentes valeurs de RSB . Commenter son allure. Comment peut-on d ecider si le niveau de tension re cu correspond ` a un 0 ou un 1 emis ?

IV

D ecodage

A lissue de la simulation pr ec edente, nous disposons dun ux binaire contenant ` a la fois linformation (le texte) et les bits de contr ole (la redondance). Selon limportance du bruit, un certain nombre de 0 (resp. 1) se sont transform es en 1 (resp. 0). Lobjectif de cette partie est donc de mettre en oeuvre une technique de d ecodage permettant de d etecter la pr esence de ces erreurs, et eventuellement de les corriger. Une fois la correction eectu ee, il sera a priori possible de remonter au ux binaire codant le texte seulement, ux qui sera enn d ecompress e an dacher en toute lettre le texte correspondant. En cas derreurs lors de la transmission, il est donc fort probable que le texte re cu ne soit pas le m eme que celui emis. La m ethode de d ecodage propos ee repose sur la matrice 0 0 0 1 1 H = 0 1 1 0 0 1 0 1 0 1 de cont ole H suivante : 1 1 1 1 . 0 1

Pr ep. 8 Justier le choix de cette matrice H. En particulier, quelle relation G et H doivent-elles v erier ? Combien derreurs par mot peuvent etre corrig ees par ce code ?

IV.1

RSB inni

On supposera dans cette partie que le bruit parasitant la transmission poss` ede une puissance nulle, i.e. le rapport signal sur bruit est inni. Pr ep. 9 Avec de telles conditions de bruit, quel est le taux derreur bit (comparaison bit emis/bit re cu) attendu ? 1. Double cliquer sur le bloc Bruit de fond, et mettre le RSB ` a la valeur Inf. Lancer la simulation et r ecup erer le code binaire re cu. Utiliser pour cela le bloc Code re cu qui g en` ere automatiquement apr` es simulation une variable sortie_simulink dans Matlab. 2. Comparer les codes binaires emis code et re cu sortie_simulink. Que constatez-vous ? Justier. 3. Calculer le taux derreur binaire de la transmission par comparaison entre les 0/1 re cus et les 0/1 envoy es. Celui-ci correspond-il au taux derreur attendu ? 4. Sachant que la transmission la m ethode de d etection sont susceptibles dintroduire un retard lors des traitements, ajuster le code Matlab de fa con ` a obtenir le taux derreur attendu. Le code re cu correspondant sera stock e dans une variable code_recu.

IV.2

RSB = - 5dB

Dans cette partie, le bruit poss` ede maintenant une puissance non n egligeable. Il sera donc vraisemblablement ` a lorigine derreurs lors de la transmission. Pr ep. 10 Soit le mot re cu code_recu de n bits code_recu=1011011. code_recu appartient-il au code ? Si non, donner la position de lerreur. Eectuer alors la correction et donner le mot dinformation info_corrigee de k bits a priori envoy e. 5. Calculer le taux derreur binaire obtenu dans ces conditions de bruit. 6. D eterminer le syndrome de chacun des mots re cus. Pour cela, d ecouper le ux binaire r ecup er e a lissue de la simulation code_recu en blocs de n digits. A chacun de ces blocs correspond ` un syndrome not e syndrome calcul e` a laide de la matrice H pr ec edente.

7. Pour chacune des valeurs de syndrome, eectuer si n ecessaire la correction derreur. A lissue de cette etape, vous disposez donc dun nouveau ux binaire nomm e code_corrige constitu e des mots re cus corrig es. 8. Pour chacun des mots corrig es, extraire linformation transmise info_corrigee. Pour cela, rep erer ` a laide de la matrice G o` u se situent les digits dinformation et de contr ole au sein dun mot de code. 9. Extraire egalement les digits dinformation directement depuis le ux binaire re cu (i.e. sans eectuer de correction derreur) et les stocker dans une variable info_non_corrigee. A laide des deux questions pr ec edentes, vous disposez donc maintenant de 2 ux binaires (info_corrigee et info_non_norrigee) constitu es de linformation (le texte) uniquement, exploitant ou non respectivement les digits de contr ole envoy es pour transmettre linformation. 10. A laide de la fonction texte = huffman_decompr(info,arbre), d ecoder ces 2 ux binaires. Acher le texte obtenu, et le comparer au texte emis. Que constatez-vous ?

IV.3

Inuence du RSB

Dans cette section, nous allons etudier la qualit e de la transmission dinformation en fonction du niveau de bruit parasitant le canal. Pour cela, nous allons faire evoluer le RSB dune valeur de 10 dB ` a environ 10dB. 11. D eterminer le taux derreur binaire pour di erentes valeurs de RSB. Repr esenter ce taux en fonction du RSB sur une courbe. Que constatez vous ? 12. D eterminer le taux derreur caract` ere par comparaison entre les caract` eres re cus et les caract` eres emis pour di erentes valeurs de RSB. Repr esenter ce taux en fonction du RSB sur une courbe. Que constatez vous ? 13. Pour une valeur de RSB faible, visualiser la position des erreurs au sein du ux binaire re cu. Le code correcteur propos e est-il adapt e` a une transmission dans de telles conditions de bruit ? Conclure.

texte

Huffman
texte_compr

V O I L A 1001011101010 ...
1011001 0001111 1001101

G
code

code_recu

1011011 0001111 1101101

} } }
... ...
Sans correction
Transmission

H
syndrome code_corrige

110 000 010 ... 1011001 0001111 1001101 ... 100101110101... V O I L ?

} } }
info_corrigee

Huffman
texte_recu

101101111101... info_non_corrigee Huffman P O RL ? texte_recu

Figure 3 D etails de la transmission. En haut, on retrouve le codage de Human, permettant de coder le texte (texte) de mani` ere binaire (texte_compr). Ensuite sont ajout es ` a linformation des digits de contr ole pour former le code envoy e (code). A la r eception, le ux binaire peut etre l eg` erement di erent de celui emis (code_recu). Si on d ecide dexploiter les digits de contr ole ajout es pr ec edemment (calcul du syndrome), alors on retrouve le texte envoy e. Sinon, des erreurs viennent modier le texte re cu (texte_recu) par rapport au texte envoy e (texte).