projet transnum rapport

21
Transmission numérique Compte-rendu Rampal Vincent Ferrand Benoit Groupe 1 1 er mai 2002

Upload: lebete

Post on 12-Dec-2014

120 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projet Transnum Rapport

Transmission numérique

Compte-rendu

ESSI 2002

Rampal VincentFerrand Benoit

Groupe 1

1er mai 2002

Page 2: Projet Transnum Rapport

Sommaire

I RAPPELS SUR LE TRAITEMENT DU SIGNAL ET LA TRANSMISSION

NUMÉRIQUE...........................................................................................................................3

1°) OUTILS DE TRAITEMENT DU SIGNAL.................................................................................3

2°) BREF RAPPEL DES CONTRAINTES (BANDE FRÉQUENTIELLE, DÉFORMATION)...................5

3°) COMMENT MODÉLISER DES ERREURS (ÉCHO, …)..............................................................5

II SIMULATION D’UN CANAL DE TRANSMISSION.....................................................6

1°) LA MODULATION ET LA DÉMODULATION..........................................................................6

2°) DIAGRAMME DE L’ŒIL : UTILITÉ, MISE EN ŒUVRE, EXPLOITATION ;..............................10

3°) CONSTELLATION : OBJECTIF, EXPLOITATION ;.................................................................11

III CODAGE CONVOLUTIONNEL ET ALGORITHMES DE CORRECTIONS

D’ERREURS...........................................................................................................................12

1°) DÉTECTION ET CORRECTION DES ERREURS DE TRANSMISSION......................................12

2°) ALGORITHME DE VITERBI..............................................................................................13

Principes...........................................................................................................................13

Résultats............................................................................................................................13

3°) CODE DE HAMMING........................................................................................................15

Principes...........................................................................................................................15

Détection et correction de l’erreur...................................................................................15

Résultats............................................................................................................................16

page 2

Page 3: Projet Transnum Rapport

Introduction…Introduction…

La communication numérique est de nos jours au centre des nouvelles technologies. La téléphonie mobile en est probablement le représentant le plus évoquant. Cependant, transmettre des messages numériques via un medium analogique pose des problèmes qu’il convient de soulever et de résoudre.

Par le biais de ce rapport et des résultats obtenus lors des scéances de travaux pratiques, nous allons donc revenir sur quelques outils majeurs du traitement du signal, voir les diverses étapes d’un canal de transmission et les problèmes engendrés, puis nous verrons plusieurs solutions permettant de corriger les éventuelles erreurs liées à la transmission.

I Rappels sur le traitement du signal et la transmission numérique.I Rappels sur le traitement du signal et la transmission numérique.

1°) Outils de traitement du signal1°) Outils de traitement du signal

Tout signal continu est formé d’une ‘onde’ pouvant varier dans le temps. Cette onde peut être caractérisée sous plusieurs traits. Dans la suite, nous ne nous attacherons qu’à l’étude de la (ou les) fréquence(s) de ce signal. En prenant l’exemple des notes de musique, chaque note a une fréquence qui lui est propre et qui nous permet de la distinguer des autres notes. Ainsi, un ‘la’ pur équivaut à 440Hz...

Afin d’étudier ces fréquences, nous utiliserons la transformée de Fourier, qui est un outil puissant permettant de décomposer un signal en somme de sinusoïdes avec des fréquences différentes. C'est un véritable lien entre un signal temporel et ce même signal fréquentiel.

D’un point de vue algorithmique, nous emploierons la FFT (Fast Fourier Transfom) qui permet d’obtenir rapidement la tranformée de Fourier de tout signal (avec toutefois quelques conditions d’application). Appliquée à un son, nous pouvons alors percevoir facilement (sous forme de "pics") les fréquences des ondes majoritairement présentes dans ce son.

page 3

Page 4: Projet Transnum Rapport

Sur le graphe ci-dessus, on distingue plusieurs pics espacés à égale distance, qui représentent le fondamental (premier pic à gauche) ainsi que plusieurs de ses harmoniques. Notons que nous avons échantillonné le signal temporel à 1000 Hz, et qu’il est donc normal d’avoir, sur le graphe correspondant à la transformée de Fourier, une symétrie à 500 Hz… Dans la suite, nous ne considérerons, dans un soucis de compréhension, que les fréquences situées de 0 à la demi-fréquence d’échantillonnage (sans oublier toutefois que l’implémentation prend en compte ces « pics »).

Abordons à présent le filtrage d'un signal sonore, qui consiste à ne conserver que des sinusoïdes dont les fréquences sont comprises dans la bande de fréquence que nous désirons conserver.

page 4

Ce signal temporel est constitué de 4 ondes : un fondamental à la fréquence 85 Hz et trois harmoniques consécutives (170, 255, 340 Hz).

A l’aide de la transformée de Fourier appliquée au signal

ci-dessus, nous retrouvons les fréquences des 4 ondes.

Page 5: Projet Transnum Rapport

Ce filtrage peut se faire dans le domaine temporel (convolution avec un sinus cardinal) ou bien dans le domaine fréquentiel (multiplication par une fonction porte).

Nous avons effectué ci-dessus un filtrage passe-bas, éliminant par là-même les hautes fréquences du signal (seuls les pics basse-fréquence ont été conservé).

2°) Bref rappel des contraintes2°) Bref rappel des contraintes    (bande fréquentielle, (bande fréquentielle, déformation)déformation)

La raison même de l’étude des transmissions numériques est la résolution (et la correction) d’erreurs de transmission. Ces erreurs sont essentiellement dûes à des contraintes physiques (milieux traversés par les ondes, écho…). Ces problèmes correspondent, lors de la réception du signal, à des erreurs de « reconnaissance » des données (au niveau des bits).

Notons de plus que d’autres contraintes apparaissent également : elles correspondent à des problèmes de « gestion » purement pratiques. L’exemple le plus important est sans aucun doute la radio : chaque station a sa propre fréquence qui lui a été attribué. Il nous faut donc également tenir compte de cette bande de fréquence, et émettre dans cette bande. La réception devra ainsi s’adapter à cette contrainte supplémentaire.

page 5

Page 6: Projet Transnum Rapport

3°) Comment modéliser des erreurs (écho, …)3°) Comment modéliser des erreurs (écho, …)

Certaines erreurs sont aisées à mettre en œuvre. Par exemple, la modélisation d’une erreur de bits avec une probabilité p sur un signal se fait simplement grâce à l’application de lois normales…

Une autre perturbation intéressante corerspond à celle provoquée par un écho (simple ou multiple). Une façon facile d’implémenter ceci est de garder en mémoire le signal émis, et de le répéter à des instants décalés (lourd en mémoire et difficilement maniable). Une autre méthode consiste à utiliser une convolution avec une fonction nulle sauf en plusieurs points précis, ces points correspondants aux différents échos.

Soient x la fonction en entrée et h la fonction permettant de modéliser l’écho. La sortie est donc égale à :

y(t) =

Pour se convaincre du bon fonctionnement de cette méthode d’implémentation, prenons h la fonction nulle partout sauf en 0 et en 3, avec pourvaleur respective en ces points 1 et 0,5. Pour des raisons de lisibilité et de compréhension, nous prendrons une période d’échantillonnage égale à 1…

Pour tout t 2 (pour respecter la causalité), on obtient alors :

y(t) = 1.x(t) + 0,5.x(t-2)

Nous avons donc obtenu un signal original additionné avec un signal retardé (d’amplitude ici 0,5 vis à vis du signal émis). Nous venons donc de modéliser un écho simple.

Si l’on désire réaliser un écho multiple, il suffit ainsi de rajouter des points non nuls à la fonction h.

Enfin abordons la notion de bruit… Il existe plusieurs types de bruit : les bruits additifs (bruit blanc), multiplicatif (bruit gaussien)…

Le bruit blanc suit une loi de probabilité uniforme. On peut le paramétrer par sa variance. Quant au bruit gaussien, il suit une loi gaussienne, et est donc paramétrable grâce à une variance. Notons que nous prendrons toujours une gaussienne centrée.

II Simulation d’un canal de transmission.II Simulation d’un canal de transmission.

1°) La modulation et la démodulation1°) La modulation et la démodulation

page 6

Page 7: Projet Transnum Rapport

Comme nous l’avons vu précédemment, une des contraintes de la transmission numérique est d’émettre un signal dans une bande de fréquence bornée et qui est dans la plupart des cas différente des fréquences du signal original.

Il nous faut donc clairement faire une translation fréquentielle du signal à émettre dans la bande de fréquence désirée :

Y(w) = X(w-w0)(translation de pulsation w0)

Or, le domaine fréquentiel est complexe, et la translation se traduit donc par une multiplication avec une fréquentielle :

page 7

Ci-contre la transformée de Fourier du signal original (non modulé).On remarque des perturbations (en dehors des deux pics principaux) dûes à des signaux en créneaux.

Ci-contre la transformée de Fourier du signal modulé.Les pics sont translatés d’une valeur égale à la modulation (ici, 200 Hz).

Page 8: Projet Transnum Rapport

Y(w) = X(w).exp[-jw0]

Traduisons cette équation dans le domaine temporel. Rappelons pour cela l’équation de transformée de Fourier inverse :

x(t) =

Après développement de cette équation, on obtient donc :

y(t) = x(t).exp[jwot]

Or, notre signal à émettre se situe dans le domaine réel et non complexe. On prend donc la partie réelle de l’équation précédente :

y(t) = x(t).cos(wot)

Finalement, nous avons réalisé une translation fréquentielle du signal original, qui est alors prêt à être transmis.

Du point de vue de la réception, le signal transmis n’est pas directement exploitable. En effet, la parole étant codée à une fréquence « non naturelle », il nous faut en effet effectuer une démodulation pour retrouver le signal original. Nous devons donc appliquer une démodulation, qui correspond là encore à une translation en fréquence.Cependant, un problème se pose : retrouver, à la réception, de combien le signal original a été fréquentiellement translaté. Pour cela, nous utilisons une boucle à vérouillage de phase (qui permet une synchronisation).

La démodulation effective du signal s’exécute de la même manière que précédemment. Autrement dit, en supposant que nous devions translater le signal d’une fréquence égale à w1, avec y1 le signal reçu et y2 le signal traité, on obtient :

y2(t) = y1(t).cos(w1t)

Remarquons que si la fréquence de modulation est égale à w0, il apparaît donc logique que w1 soit égale à –w0… Or, le fait de manipuler des signaux réels, et donc de réaliser une multiplication par un cosinus et non une exponentielle, engendre des effets autres qu’une simple translation en fréquence. En effet, si l’on étudie la transformée de Fourier du signal démodulé, on remarque non plus un seul pic, mais deux pics. Ceci provient que le cosinus peut s’exprimer en fonction de deux exponentielle :

cos(x)=

Il nous faut par conséquent réaliser un filtrage passe-bas pour conserver uniquement le signal de la parole, en écartant des erreurs dûes à la reconstruction.

page 8

Page 9: Projet Transnum Rapport

Enfin, remarquons que l’amplitude du signal paraît plus faible que le signal original (avant modulation). C’est effectivement le cas, et le rapport des amplitudes est égal à ½, terme introduit par l’expression du cosinus par les exponentielles et de la division par deux.

Finalement, pour retrouver le signal original, il nous faut multiplier le signal reçu par une sinusoïde dont la fréquence (retrouvée par une boucle à verrouillage de phase) est égale à l’opposé de la fréquence de modulation, réaliser un filtrage pour écarter les parties indésirables du signal, puis enfin effectuer une multiplication par deux pour retrouver une amplitude correcte.

page 9

On retrouve, après démodulation et filtrage passe-bas, les pics correspondant à la fréquence du signal original (ici environ 40 Hz).

Page 10: Projet Transnum Rapport

2°) Diagramme de l’œil2°) Diagramme de l’œil    : utilité, mise en œuvre, exploitation: utilité, mise en œuvre, exploitation    ;;

Pour des raisons de décodage des données, nous avons besoin d’avoir quelques renseignements sur la qualité effective du canal de transmission. Dans la suite, nous supposons les étapes de modulation réalisées…

Le diagramme de l’œil correspond brièvement à une superposition de morceaux du signal reçu. Ces « morceaux » correspondent à un nombre d’échantillons égal à la période d’émission. L’intérêt majeur de ce diagramme consiste en la détection de la qualité de transmission, ainsi que la recherche de synchronisation afin de discrétiser aux bons instants, et par là-même avoir laplus grande probabilité de récupération des données.Typiquement, un diagramme de l’œil contient plusieurs caractéristiques de mise en œuvre :

page 10

Nombre d’échantillons.

Amplitude du signal.

0 T 2.T

0

- 2

2

Page 11: Projet Transnum Rapport

En l’absence de perturbation, aux instants 0, T et 2.T, nous retrouvons une superposition de toutes les données (-1 ou 1), et les intervalles de 0 à T et de T à 2.T sont uniquement des transitions dans le domaine continu du signal. Visuellement, on observe une forme d’œil à l’instant T…

Si des perturbations viennent s’ajouter à ce signal (bruit, retard…), le signal ne sera pas aussi « clair », dans le sens où les données seront plus dispersées, décalées voire, dans le pire des cas, complètement irrécupérables.

Pour avoir un moyen optimal de récupérer les données transmises, il nous faut récuperer l’instant (approximativement sur le centre du diagramme si les perturbations ne sont pas trop excessives) où les signaux sont les plus groupés (autour de 1 et -1). Cette détection nous permet alors de synchroniser le signal transmis.

Cette étape effectuée, le diagramme de l’œil offre un deuxième avantage, qui est celui de déterminer, par la dispersion des données aux instants d’échantillonnage obtenus précédemment, une estimation de la qualité d’émission. En effet, le fait que l’œil soit presque fermé (voire fermé) peut être une forme de critère pour savoir si le décodage des données est souhaité ou inutilisable pour la correction d’erreurs (le code de Hamming n’est par exemple valable qu’avec au plus une erreur de transmission)…

3°) Constellation3°) Constellation    : objectif, exploitation: objectif, exploitation    ;;

Les « constellations » permettent de visualiser graphiquement la qualité de la transmission. Alors que le diagramme de l’œil nous a permis

page 11

La période du signal original est de 16 échantillons.Ci-contre, un diagramme de l’œil avec peu de perturbations. La synchronisation est non décalée (environ 16).

Page 12: Projet Transnum Rapport

de synchroniser l’instant d’échantillonnage du signal reçu, la constellation nous permet donc, avec les données captées sur le signal continu, de définir et de mesurer la justesse de celles-ci par leurs dispersions.

Pour utiliser les constellations, on suppose que les données reçues sont de type complexe. D’un point de vue pratique et sans rentrer dans des théories profondes, nous pouvons facilement modéliser la transmission de ces données en opérant une modulation des parties réelles et imaginaires à des fréquences distinctes.

Une fois les données récupérées, il suffit de tracer les points obtenus. Si la transmission est correcte, des nuages de points doivent apparaître, avec des coordonnées identiques à celles émises.

Pour l’exemple ci-dessus, nous avons émis des nombres complexes dont les parties réelles et imaginaires sont égales à 1 ou à –1. Afin d’améliorer la visibilité des résultats, nous avons relié les points initiaux (avant transmission) aux points après transmission (aux mêmes instants d’échantillonnage). On distingue clairement les quatre nuages de points assez compacts, preuve d’une bonne qualité de transmission.Si en revanche ces nuages sont moins nets, la probabilité d’erreurs à la réception sera plus élevée…

Remarquons enfin que si les instants d’échantillonnages n’ont pas été déterminé avec justesse (léger décalage), cela se traduira sur la constellation comme une rotation des points.

page 12

Page 13: Projet Transnum Rapport

III codage convolutionnel et algorithmes de corrections d’erreurs.III codage convolutionnel et algorithmes de corrections d’erreurs.

1°) Détection et correction des erreurs de transmission1°) Détection et correction des erreurs de transmission

Nous avons vu dans la deuxième partie que toute transmission d’information comporte une probabilité d’erreur.

Dans cette partie, on traite l’information non plus comme un signal continu mais comme une suite de bits avant et après transmission. On se limitera à des simulations de transmissions tel qu ‘elles sont décrit précédemment. Afin de simuler les erreurs, nous utiliserons une fonction qui modifie certains bits avec une probabilité donnée.

La principale idée des algorithmes étudiés d’introduire de la redondance au message. Ainsi les erreurs de transmission créeront des incohérences entre les ‘‘copies’’ du message, ce qui facilitera leur détection.

De manière théorique, le deuxième théorème de Shannon donne la limite minimale de redondance à introduire afin de garantir l’intégrité du message.

C : charge utile du canal de transmissionp : probabilité d’erreur de transmissionC = 1 + p.log2(p) + (1-p).log2(1-p)

Ainsi si on suppose que l’on veut transmettre N symboles par seconde à travers un canal qui subit une perturbation p, il faudra au minimum un débit réel de D=1/C symboles par secondes.

2°) Algorithme de Viterbi2°) Algorithme de Viterbi

Principes

L’algorithme de Viterbi est un code convolutionnel, c’est-à-dire que l’on ne transmet pas directement le signal mais de nouvelles données calculées à partir du signal.

Dans notre exemple, un bit du signal original est remplacé par deux bits calculé par les formules :

s1(t) = e(t) XOR e(t-1) XOR e(t-2)s2(t) = e(t) XOR e(t-2)

Les échantillons au temps t=-1 et t=-2 ont pour valeur théorique 0.

page 13

Page 14: Projet Transnum Rapport

Après la transmission du message, le récepteur construit un arbre. Pour chaque bit, on calcule le nombre de différences entre le signal reçu est le signal qui aurait été transmis si e(t) valait 0. Puis on effectue le même calcul en supposant que e(t) vaut 1. Afin de ne pas explorer toutes les branches, on ne conserve que les résultats qui donne le moins d’erreurs de transmission pour chaque couple s1(t)~s2(t).

Pour finir, on prendra pour message reçu le message qui, s’il avait été codé avec les mêmes formules, aurait été le plus proche du message reçu.

Résultats

L’algorithme de Viterbi apporte de très bons résultats en ce qui concerne les transmissions avec une faible probabilité d’erreur. Jusqu'à 3% d’erreur, Viterbi permet de corriger plus de 90% des erreurs de transmissions.

page 14

Page 15: Projet Transnum Rapport

A partir de 8% d’erreurs, l’algorithme ne permet plus de corriger qu’une erreur sur deux et avec plus de 13% d’erreurs, on augmente le nombre d’erreurs de transmissions.

Cela est dû à un mauvais choix du message supposé. Avec un e telle probabilité d’erreur, le message original n’est pas celui qui aurait le moins d’erreurs de transmission.

On constate aussi qu’il est nécessaire d’avoir reçu tout le message pour pouvoir le décoder. Ainsi cet algorithme introduit un très faible retard car pour décoder le premier bit, il est nécessaire de connaître le dernier. Pour les mêmes raisons, il est faut couper les longs messages en plus petits blocs pour diminuer le retard.

Cependant une taille de blocs trop petite nuit à l’efficacité de l’algorithme. Dans la pratique, des blocs de 64 bits constituent une taille optimale, des plus grands n’améliorent pas la correction mais augmente le retard alors que des blocs plus petits font perdre de l’efficacité.

page 15

Page 16: Projet Transnum Rapport

On constate que même dans le meilleur des cas l’algorithme de Viterbi est très en retrait par rapport à la limite énoncé par Shannon. En doublant les données, il est théoriquement possible de corriger jusqu'à 11% d’erreurs.

3°) Code de Hamming3°) Code de Hamming

Principes

Le code de Viterbi se base sur l’introduction de bits de parités dans le train de bits du message. Les fonctions de calculs de ces bits sont choisies pour permettre de corriger une seule erreur par paquet de bits.

Si n est la longueur du paquet, alors il est nécessaire d’ajouter log2(n) bits de parités ainsi qu’un bit non utilisable (, qui n’est pas transmis).

Chaque bit sert à assurer qu’une certaine partie du message est de parité paire. Le premier bit est placé à droite de la 1ere moitié du message et contient la parité de cette partie ; le second bit concerne la parité du premier et troisième quart du message, et ainsi de suite…

Exemples : Pour 2 bits de parités et 1 bit de données :(cas particulier qui correspond à envoyer 3 fois de bits)

b0 1 -

Pour 3 bits de parités et 4 bits de données :² b2 b1 b0 1 1 1 0 - - -1 1 0 0 1 - -1 0 1 0 1 0 -

Pour 4 bits de parité et 11 bits de données :b10 b9 b8 b7 B6 b5 b4 b3 b2 b1 b0

1 1 1 1 1 1 1 0 0 0 - 0 - - -1 1 1 1 0 0 0 0 1 1 1 0 - - -1 1 0 0 1 1 0 0 1 1 0 0 0 - -1 0 1 0 1 0 1 0 1 0 1 0 1 0 -

Détection et correction de l’erreur

Pour corriger le message, on suppose qu’il y a eu une erreur de transmission. On calcule les bits de parité comme précédemment mais cette fois en y ajoutant la valeur transmise pour le même bit de parité. Puis en ‘‘concaténant’’ les bits calculés on obtient la position du bit erroné.

page 16

Page 17: Projet Transnum Rapport

On peut éventuellement corriger une bit parité et si toutes les parités sont justes (pas d’erreur de transmission), la correction revient à changer le bit .

Résultats

Si on se limite aux cas où il n’y a qu’une erreur par paquet, le code de Hamming permet de corriger toutes les erreurs. Cependant la redondance introduite est très supérieure à la limite de Shannon. Dans la pratique, ce cas n’est pas réaliste.Si N est la taille totale du paquet transmis, et p la probabilité d’erreur de transmission d’un bit, alors Q la probabilité d’erreur d’un paquet vaut :

Q = 1 - probabilité d’aucune erreur – probabilité d’exactement une erreurQ = 1 – (1-p)N – (N.p).(1-p)N-1

ConclusionConclusion

Nous avons ainsi simulé une communication numérique en passant par toutes les étapes : mise en forme du signal numérique (codages convolutionnel ou cyclique…), modulation du signal, déformations du canal de transmission (bruit, …) dans le domaine analogique, réception du signal, démodulation, post-traitement (diagramme de l’œil, constellation) et enfin correction des erreurs. Nous avons pu par là-même constater, par les probabilités d’erreur et la correction engendrée, que certaines

page 17

Page 18: Projet Transnum Rapport

méthodes sont plus adaptées à certaines conditions, et dont l’emploi est discutable de par les coûts impliqués (taille de la redondance…), mais ceci est une autre histoire…

page 18