Académique Documents
Professionnel Documents
Culture Documents
E3 – SRT
TP Communications
Numériques
TABLE DES MATIÈRES
INTRODUCTION ........................................................................................................................................................ 3
I/ CHAINES ÉLÉMENTAIRES......................................................................................................................................... 4
1) Principe ................................................................................................................................................................. 7
3) Implémentation ................................................................................................................................................. 10
1) Principe ............................................................................................................................................................... 11
2) Implémentation ................................................................................................................................................. 11
IV/ ENTRELACEUR................................................................................................................................................... 13
1) Principe ............................................................................................................................................................... 13
2) Implémentation ................................................................................................................................................. 13
CONCLUSION ......................................................................................................................................................... 15
La norme DVB-S (Digital Video Broadcasting - Satellite) est un standard définissant la transmission de
signaux MPEG-2 par satellite. Pour faire face au taux d'erreur élevé, dû au faible rapport signal à bruit
inhérent aux communications satellitaires, l'architecture d'une transmission DVB-S est constituée de
plusieurs éléments destinés à corriger les erreurs.
Notre but dans ce TP sera de simuler l'intégrité d'une chaine de transmission (émission et réception) se
basant sur la norme DVB-S. Pour cela, nous partirons d'une chaîne de communication basique modélisée
sous Simulink que nous complèterons au fur et à mesure.
1) Architecture de départ
Commençons avec une chaine simple : un flux de bits est généré de manière équiprobable, celui-ci passe
par une modulation BPSK (Binary Phase-Shift Keying) :
Les symboles traversent ensuite un canal AWGN (Average White Gaussian Noise) modélisant l'effet d'un
bruit blanc gaussien sur le signal. On peut observer l'effet du bruit sur la transmission des symboles dans
la figure ci-dessous, où une transmission a été réalisée avec un SNR (Signal to Noise Ratio) de 10dB :
Le signal reçu est enfin démodulé, puis comparé au signal émis afin de calculer le BER (Binary Error Rate)
de la transmission. Dans ce modèle parfait, les délais sont négligés et les signaux à comparer arrivent
donc simultanément au bloc de comparaison chargé de ce calcul.
La norme DVB-S exige l'utilisation d'une modulation QPSK (Quadrature Phase-Shift Keying), nous
établissons donc un nouveau modèle en modifiant le modulateur et le démodulateur de l'architecture
précédente. La source de Bernoulli, utilisée pour générer des bits, est remplacée par un générateur
aléatoire d'entiers compris entre 0 et 3, correspondant aux quatre symboles de la constellation.
Dans ce nouveau modèle, nous introduisons également un filtre de mise en forme avant le canal, ainsi
que son filtre adapté après le canal. Selon la norme, ces derniers doivent être des filtres en racine de
cosinus surélevé avec un facteur de Roll-Off égal à 0,35.
Cependant, par principe de causalité, les filtres de mise en forme introduisent un retard de groupe dF
qu'il faut prendre en compte lors de la comparaison des signaux d'émission et de réception. Dans le bloc
chargé du calcul du BER, nous fixons donc les variables Receive Delay et Computation Delay à 2*dF pour
remédier à cela.
Les paramètres du canal AWGN (nombre de bits par symbole et période des symboles) doivent
également être modifiés en conséquence du changement de modulation et du suréchantillonage induit
par les filtres.
Pour évaluer les performances de ces chaînes, nous pouvons calculer leur BER, c’est-à-dire leur taux
d'erreur binaire sur une communication. Pour ce faire, nous implémentons une boucle for sur Matlab
qui simule le modèle évalué pour un rapport signal à bruit variant de 0dB à 10dB.
Quand ce SNR augmente, le taux d'erreur se réduit et la simulation nécessite donc un nombre plus élevé
de bits à envoyer pour détecter les erreurs. Nous simulerons l'envoi d'un million de bits, mais afin de
réduire la durée de la simulation nous utilisons la fonction Stop simulation du bloc de calcul du BER, qui
permet d'arrêter la simulation quand un nombre d'erreurs cible est atteint.
Comme on peut le voir, les taux d'erreur des quatre chaînes sont identiques. Cela provient du fait que le
BER théorique est identique pour les modulations BPSK et QPSK (dans le cas d'un canal AWGN). De plus,
l'ajout des filtres de mise en forme n'a pas d'influence sur le taux d'erreur binaire. L'expression théorique
du taux d'erreur binaire dans ces conditions est :
4) Correction d'erreurs
Les communications satellitaires sont de type broadcast, c’est-à-dire que les émetteurs situés au sol ne
peuvent pas demander la rediffusion d'un message en cas d'erreur. La norme DVB-S impose donc d'avoir
un très bon BER (en-dessous de 10-9) pour assurer la communication.
Cependant, il est difficile d'obtenir un SNR élevé étant donné la distance à laquelle se trouvent les
satellites. Le SNR se trouve généralement en-dessous de 10dB et une architecture standard ne permet
pas d'atteindre des BER satisfaisants à ce niveau.
Dans les parties suivantes, nous allons donc présenter les codes de correction d'erreur présents dans
une architecture DVB-S permettant de diminuer le BER.
1) Principe
Contrairement à un codage en bloc, le codage d'une d'information par un codeur convolutif dépend non
seulement de cette information, mais également des entrées précédentes. Nous allons détailler son
fonctionnement dans le cas simple d'un codeur convolutif feedforward (5,7).
Cet encodeur possède deux sorties et une entrée. Cette entrée est reliée à une série de bascules latch,
qui recopient l'état de leur entrée sur leur sortie à chaque coup d'horloge (elles sont donc équivalentes
à un opérateur retard).
Le sorties des différentes bascules sont reliées à des opérateurs XOR (ou exclusif) selon un branchement
défini par le code de l'encodeur, de la manière suivante :
𝐻1 = (5)10 = (1 0 1)2 𝐻1 = 1 ∗ 1 ⊕ 0 ∗ 𝑧 −1 ⊕ 1 ∗ 𝑧 −2 = 1 ⊕ 𝑧 −2
𝐻 = (5,7) ⇒ ⇒
𝐻2 = (7)10 = (1 1 1)2 𝐻2 = 1 ∗ 1 ⊕ 1 ∗ 𝑧 −1 ⊕ 1 ∗ 𝑧 −2 = 1 ⊕ 𝑧 −1 ⊕ 𝑧 −2
On peut vérifier que le codage d'un symbole dépend bien des entrées précédentes. Dans l'exemple ci-
dessous, on envoie le symbole 1 alors que le codeur est dans son état initial :
𝐸 =[0 1 1]
0 1 1
𝑆=[ ]
0 1 0
2) Algorithme de Viterbi
Le codeur convolutif est associé à un décodeur de Viterbi (à décision dure) dont le rôle est de déduire la
trame la plus probable qui a été envoyée.
Le fonctionnement de cet algorithme peut être représenté sous la forme d'une machine d'état, dont les
états sont les sorties des deux bascules latch du codeur précédent. On passe d'un état à l'autre selon le
bit qui est présenté en entrée du codeur (0 ou 1). À chacune de ces transitions est associée la valeur des
deux bits de sortie.
Pour reprendre le signal codé dans la figure 6 : au début, la machine se trouve dans l'état 00 et la sortie
vaut 00. En plaçant 1 en entrée, la sortie prend la valeur 11 et on passera dans l'état 10 au prochain coup
d'horloge.
On peut représenter cette machine d'état sous forme d'un treillis élémentaire, représentant les
transitions possibles entre un temps t et t+1 :
Le système est d'autant plus efficace que la durée du signal envoyé est longue, puisque les métriques
vont s'accumuler au long du message. Cependant, pour ne pas avoir à patienter jusqu'à la fin du signal,
l'algorithme décide de la trame la plus probable au bout d'un certain nombre de symboles.
Dans l'exemple ci-dessous, une erreur est apparue lors de l'envoi du deuxième symbole, on envoie un
message de 4 bits à l'aide d'un codeur convolutif. Cependant, une erreur se glisse lors du message reçu.
L'algorithme de Viterbi calcule le nombre de bits différents du symbole reçu pour chaque transition (en
bleu), et les métriques totales des états (en rouge) :
3) Implémentation
Pour simuler le fonctionnement de ce codage, nous le rajoutons au modèle précédent. Le code du codeur
convolutif utilisé pour les communications DVB-S est (171,133). Il faut également repasser sur un
générateur de Bernoulli car le module d'encodeur convolutif prend des bits en entrée.
Au retard induit par les filtres, nous devons ajouter un retard dû au décodeur de Viterbi puisqu'il attend
d'avoir reçu dV bits avant de décoder le message. Le délai entre l'émission et la réception dans le bloc de
comparaison est donc égal à 2*dF+dV.
Il faut également prendre en compte le rendement du codeur convolutif en multipliant le SNR par 1/2
pour éviter d'avoir un décalage lors du tracé du BER.
1) Principe
Le codeur de Reed-Solomon est un codeur en bloc. Il prend K octets en entrée et en sort un paquet de
N octets, il rajoute donc (N-K) octets de redondance qui permettent de corriger (N-K)/2 octets dans le
paquet reçu. Dans le cas de DVB-S, le code utilisé est (204,188,t=8), les 16 octets de redondance
permettent de corriger 8 octets dans la totalité du paquet. Si cette limite est dépassée, le paquet est
marqué comme défectueux.
Nous ne rentrerons pas dans le détail du fonctionnement de correction des erreurs, qui se base sur un
des polynômes générateurs. On peut cependant avoir une idée du fonctionnement sur un cas très simple
décrit dans la figure ci-dessous :
2) Implémentation
Pour commencer, la source est changée par des trames de 188 octets (8 bits, codant de 0 à 255). Cette
trame passe ensuite par l'encodeur RS, où 16 octets de redondance sont ajoutés. Cependant, le message
est retardé de d=2*dF+dV à cause du décodeur de Viterbi et des filtres. Cette désynchronisation est fatale
puisque le message reçu par le décodeur RS ne correspond plus à rien :
Puisqu'il est impossible d'avancer le message, la seule solution est de le synchroniser avec un retard
complémentaire de 1632-d bits, situé à la sortie du décodeur de Viterbi. Ainsi, quand le codeur RS
encodera une trame, le décodeur RS décodera la trame précédente en parallèle.
Pour pouvoir comparer les trames transmises et reçues, il faut donc régler le retard du bloc BER à
l'équivalent d'une trame (sans les octets de redondance), soit 1504 bits (188 octets).
Enfin, puisque nous transmettons des octets, il nous faut régler le paramètre Input Signal Power du canal
AWGN à 1/8. De plus, nous devons prendre en compte le rendement de 188/204 dans le calcul du SNR
(décalage de 0,3dB).
1) Principe
On peut distinguer deux types d'erreurs dans les transmissions. Tout d'abord, les erreurs aléatoires sont
dues au bruit et sont équiprobablement réparties dans le temps. Au contraire, les burst d'erreurs sont
des séquences engendrant un grand nombre d'erreurs consécutives, qui peuvent par exemple être
engendrées par un obstacle temporaire dans le canal.
Les deux codes correcteur d'erreur précédents sont bien adaptés aux erreurs aléatoires mais ne
permettent pas de corriger les burst. Le but de l'entrelaceur convolutif sera de répartir ces erreurs
consécutives sur une durée plus longue, comme dans l'exemple ci-dessous :
2) Implémentation
L'entrelacement se faisant au niveau des octets, il est nécessaire que le délai de 1632-d bits soit un
multiple de 8. Pour cela, on peut modifier le retard d ou en ajouter un nouveau.
De plus, le délai au niveau du module de calcul de BER doit être modifié. Dans le cas d'un entrelaceur
convolutif (12,17) prescrit par la norme DVB-S, ce délai correspond à 12 trames de 1504 bits.
On trace ci-dessous l'évolution du taux d'erreur binaire de quatre architectures différentes, avec un total
de cinq millions de bits :
La combinaison de ces deux encodages permet un gain magistral du BER : à partir d'un rapport signal à
bruit de 5dB, plus aucune erreur n'a été commise sur l'échantillon testé.
L'effet de l'entrelaceur convolutif n'apparait pas dans cette figure car il est difficile de simuler des burst
d'erreurs sous Simulink, il n'a donc pas d'influence dans le BER simulé mais sa présence dans
l'architecture réelle est capitale.
L'architecture DVB-S comprend trois étages destinés à corriger erreurs. Ces étages sont
complémentaires et leur mise en commun permet d'atteindre des taux d'erreur très faibles pour des
communications bruitées.
Le gain considérable au niveau du BER par rapport à une architecture standard a rendu possible les
communications vidéo par satellite.