Vous êtes sur la page 1sur 17

Rampal Vincent 1er mai 2002

Ferrand Benoit

Groupe 1

Transmission numérique

Compte-rendu

 ESSI 2002
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, …).........................................................................6
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
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.

1°) 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
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.

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 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 contraintes (bande fréquentielle,


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
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) = ∑
h( τ).x(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 pour
valeur 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.

1°) La modulation et la démodulation

page 6
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.

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).

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 :

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

page 7
Traduisons cette équation dans le domaine temporel. Rappelons pour cela
l’équation de transformée de Fourier inverse :
1 +∞
2π ∫− ∞
x(t) = . X (w ) exp[ jwt ].dw

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 :
j.x
+ e−j.x
cos(x)= e
2

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

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
2°) Diagramme de l’œil : 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 :
Amplitude du
signal.

-2
Nombre
0 T 2.T d’échantillons.

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…

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 10
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°) Constellation : objectif, exploitation ;

Les « constellations » permettent de visualiser graphiquement la qualité de


la transmission. Alors que le diagramme de l’œil nous a permis 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.

page 11
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.

III codage convolutionnel et algorithmes de corrections d’erreurs.

1°) 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.

page 12
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 transmission


p : probabilité d’erreur de transmission
C = 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 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.

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 13
Efficacité

120,0%

100,0%

80,0%

60,0%

40,0%
Efficacité
20,0%

0,0%
0%

%
%
%
0%
0%

0%

%
%

%
-20,0%

,0
,0
,0
,0
,0
,0
,0
,0
,0
,0
,0
,0

,0
,0
,0
0,
3,
6,
9,
12
15
18
21
24
27
30
33
36
39
42
45
48
51
54
-40,0%

-60,0%

60,0%

50,0%

40,0%

Transmission simple
30,0%
Algo. Viterbi

20,0%

10,0%

0,0%
3,0%
6,0%
9,0%
0,0%

15,0%
18,0%

24,0%
27,0%
30,0%

39,0%

51,0%
54,0%
12,0%

21,0%

33,0%
36,0%

42,0%
45,0%
48,0%

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

page 14
grands n’améliorent pas la correction mais augmente le retard alors que des blocs
plus petits font perdre de l’efficacité.
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 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

page 15
valeur transmise pour le même bit de parité. Puis en ‘‘concaténant’’ les bits
calculés on obtient la position du bit erroné.
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 erreur


Q = 1 – (1-p)N – (N.p).(1-p)N-1

1,20

1,00

0,80

Normal
0,60
Hamming

0,40

0,20

0,00
00
06
12

18
24
30
36
42
48
54
60
66
72
78
84

90
96
0,
0,
0,
0,
0,
0,

0,
0,
0,
0,
0,
0,
0,
0,
0,
0,

0,

Conclusion

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,

page 16
que certaines 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 17

Vous aimerez peut-être aussi