codeur dvb-s
TRANSCRIPT
ModulationQPSK
Codeurconvolutif
EntrelaceurCodeurReed Solomon
Filtre de NyquistBrassage
Codeur DVB-S
Présence de perturbations (bruit, interférences, échos) dans le canal de transmission.
Mesures préventives :
• avant modulation pour permettre la détection et la correction dans le récepteur des erreurs apportées par le canal de transmission
• adaptées aux spécificités du canal de transmission
K=188 octets
Dr. Ing. A. Lichioui
Brassage
But
o Le brassage sert à effectuer une dispersion d’énergie dans le canal de transmission, ceci afin d’éviter les raies de niveau élevé provoquant des brouillages avec les canaux adjacents.
o Cela permet également d’augmenter le nombre de transitions du signal et ainsi faciliter la récupération de l’horloge.
o Il faut pour cela éviter les longues suites de « 0 » ou de « 1 ».
fréquence
amplitude
fréquence
amplitude
Sans brassage Avec brassage
fporteuse fporteuse
2
3
Brassage
Mot de code RS (204, 188)
Charge utile de 188 octetsSurdébit de
16 octets
• Le codage RS est un code auto correcteur. Il consiste à associer à chaque bloc de k octets un bloc de n octets (avec n > k). Ici appelé codeur externe car l’entrée (Trame à k octets à son entrée et trame à n octets à sa sortie sont fixes.
• A la différence des codes cycliques (CRC), le codeur RS opère dans un corps de Gallois non pas modulo 2, mais modulo 256.
• Le quantum d'information est donc dans ce cas basé sur l'octet.
But
Corriger au mieux les paquets d’erreurs résiduels en sortie du décodeur interne par ajout de redondance à l’information d’origine.
Rendement du code r = k / n L’info de redondance permet de détecter et corriger les erreurs de transmission au moment du décodage.
4
Codeur externe: RS (Reed Solomon)
Réalisation du code raccourci à partir du code original
Pour réaliser un code raccourci (204,188) à partir d’un codeur original (255,239), onajoute 51 octets, tous à zéro, avant les octets d’information à l’entrée du codeur.
Après codage, les octets nuls occupent toujours la même place relative, (le codeur nemodifie pas le contenu du mot d’info et place le mot de contrôle après le mot d’info), ilest donc facile de les éliminer en sortie du codeur.
Rem : l’opération symétrique est réalisée au décodage.
00....00
51 octets
CONT INFO 00..00
255 octets
000.....000
51 octets
INFO
188 octets
CONT INFO
204 octets
INFO 00..00
239 octets
CODE
RS
(255,239,T=8)
octet 1octet
239
octet 1 octet 1octet
255
octet
204
Codeur externe: RS (Reed Solomon)
6
Codeur externe: RS (Reed Solomon)
7
Codeur externe: RS (Reed Solomon)
• L'entrelacement a pour but d'éviter les salves d'erreurs dont la durée serait supérieure à 500 µs.
• L'entrelacement le plus simple revient à écrire dans une mémoire une matrice à n ligne et colonnes. Quand la matrice est pleine, on vide celle-ci non pas par ligne mais par colonne.
• Initialement, la technique d'entrelacement / désentrelacement a été prévue pour être appliquée à tout type de trafic. Cependant le temps de traitement à ce jour étant de 20 ms, les membres de l'ADSL Forum ont jugé cette durée incompatible avec les exigences temps réel de certaines applications (téléphonie, visiophonie, … )
8
Entrelacement
mots de code RS
CodeurReed Solomon
Codeurconvolutif
n octets
12...
9
Entrelacement
Dr. Ing. A. Lichioui
Entrelacement par blocs
0
1 0 1 1 1 0
0 1 1 0 1 0
1 0 0 0 1 0
0 1 1 1 1 0
1 0 0 1 1 0
1 0 1 1 0 101110----011010----100010----011110----100110----010110
0
1 0 1 1 1 0
0 1 1 0 1 0
1 0 0 0 1 0
0 1 1 1 1 0
1 0 0 1 1 0
1 0 1 1 0
101010---010101---110100---100111--111111---000000
A l’émission
Entrelacement: exemple
Une trame en émission est constituée pardes octets des autres trames sauf pour unseul octet (1er octet (synchronisation dechaque trame )
• Les codeurs convolutifs génèrent un mot de code de longueur n àpartir de plusieurs messages de longueurs k. La valeur du mot de codedépend des mots de code calculés précédemment.
• Il n'y a pas de correspondance bijective entre une suite de k bits àtransmettre et les mots de code associés.
• Un codeur convolutif est réalisé à partir de registres à décalage.
11
Codage convolutif
Entrée B(n) B(n-1) B(n-2)
S 1
S 2
Exemple : pour un bit en entrée, le codeur délivre deux bits en sortie.
B(n) B(n-1) B(n-2) S1 S2
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 1
1 0 0 1 1
1 0 1 0 0
1 1 0 0 1
1 1 1 1 0
12
Codage convolutif
0 0Entrée
S 1
S 2Construction de l'automate en fonction des bits d'entrée
13
Codage convolutif
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T0
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T1
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T3
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T2
14
Codage convolutif
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T3
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T0 S1S2
00
110 0
1 0
0 1
1 1
Bn-1 Bn-2
T2
0 0
1 0
0 1
1 1
Bn-1 Bn-2
T1 S1S2
10
01
S1S2
11
00
01
10
B(n) B(n-1) B(n-2) S1 S2
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 1
1 0 0 1 1
1 0 1 0 0
1 1 0 0 1
1 1 1 1 0
15
Codage convolutif
Rappel
• Le poids de Hamming d'un mot : c'est le nombre de bits égaux à "1"
La distance de Hamming de deux mots : c'est le nombre de bits qui
les sépare.
Exemple : 0 1 1 0 0 1 0 0 PH = 3
Exemple : 0 1 1 0 0 1 0 0
0 0 1 1 1 0 0 0 DH = 4
16
Codage convolutif
Décodage de Viterbi
17
Exemple de décodage d’un message à l’aide de l’algorithme de Viterbi.
Message à l’entrée du codeur : 1100
Message en sortie du codeur : 11 01 01 11
Message reçu par le décodeur : 11 11 01 11
On a une erreur de transmission sur le 3ème 1 bit !
Etat de départ du codeur a(00) à l’instant t=0.
Le décodeur calcule, pour chaque branche, la distance entre le message reçu et la valeur de chaque branche.
Premier groupe de bits reçu : 11
o Distance de Hamming par rapport à la 1ère branche: (11)-(00) = 2
o Distance de Hamming par rapport à la 2ème branche : (11)-(11) = 0
Deuxième groupe de bits reçu : 11
o Distance par rapport à la 1ère branche : (11) - (00) =2
o Distance par rapport à la 2ème branche : (11) - (11) = 0
o Distance par rapport à la 3ème branche : (11) -(10) = 1
o Distance par rapport à la 4ème branche (11) - (01) = 1
Somme des métriques à chaque nœud : 4,1,2,1.
Ensuite le décodeur effectue la même opération avec le groupe de bits suivant : 01.
A chaque nœud, le codeur ne garde alors que la métrique la plus faible.
Lorsque le message est complètement reçu, le décodeur prend sa décision en ne conservant que le chemin survivant, soit 11 01 01 11 correspondant à une métrique de 1.
L’erreur est ainsi corrigée.
Dr. Ing. A. Lichioui
Code interne
Etats du
codeur
(contenu
dans une
mémoire)
Séquence reçue : 11
(2)
(0)
11
(2)
(0)
(1)
(1)
01
(1)
(1)
(1)
(1)
(2)
(0)
(2)
11
(2)
(0)
(0)
(2)
(1)
(1)
(1)
Séquence transmise : 11 01 01 11
2
0
4
1
2
1
2
1
2
2
1
3
2
3
(0) (1)
11
01 01
11
Séquence à l’entrée
du codeur convolutionnel
avant la transmission 1 1 0 0
Message à l’entrée du codeur : 1100Message en sortie du codeur : 11 01 01 11Message reçu par le décodeur : 11 11 01 11
Dr. Ing. A. Lichioui
Poinçonnage
On peut ainsi avoir des rendements améliorés :
o r = F.E.C.=2/3, 3/4, 5/6 et 7/8. (r=FEC : Forward Error Correction )
o r =1/2 tous les bits sont transmis
o r = 2/3 : 3 bits sur 4 sont transmis
o r = 3/4 : 4 bits sur 6 sont transmis
o r = 5/6 : 6 bits sur 10 sont transmis
o r = 7/8 : 8 bits sur 14 sont transmis
r = FEC=2/3
r = FEC=3/4
Codeur convolutif
r=1/2Matrice de poinconnage
2 bits 4 bits 3 bits-1 bit
3 bits 6 bits 4 bits-2 bits
5 bits 10
bits-4 bits 6 bits r = FEC=5/6
7 bits 14
bits
-6 bits 8 bits r =FEC= 7/8
Poinçonnage
r = 7/87
bitscodeur
1/2
X1X2X3X4X5X6X7
Y1Y2Y3Y4Y5Y6Y7
r = 1/21 bit codeur
1/2 Y1
X1
r = 2/32
bitscodeur
1/2 Y1Y2
X1X2
r = 3/43
bitscodeur
1/2 Y1Y2Y3
X1X2X3
r = 5/65
bitscodeur
1/2 Y1Y2Y3Y4Y5
X1X2X3X4X5
Bits retenus1 : bit transmis
0 : bit non transmis
Répartition sur les axes I et Q
X=1 I=X1
Y=1 Q=Y1
X=1,0 I=X1Y2Y3
Y=1,1 Q=Y1X3Y4
X=1,0,1 I=X1Y2
Y=1,1,0 Q=Y1X3
X=1,0,1,0,1 I=X1Y2Y4
Y=1,1,0,1,0 Q=Y1X3X5
X=1,0,0,0,1,0 I=X1Y2Y4Y6
Y=1,1,1,1,0,1 Q=Y1Y3X5X7
Codeur convolutif
Inner coder (codeur interne)= F.E.C.