codeur dvb-s

10
Modulation QPSK Codeur convolutif Entrelaceur Codeur Reed Solomon Filtre de Nyquist Brassage 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 f porteuse f porteuse 2

Upload: independent

Post on 02-Feb-2023

1 views

Category:

Documents


0 download

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.