Module EN218 → Cours 4 Systèmes numériques pour les communications numériques Année 2013-2014 / Camille LEROUX 1 Plan du cours 4 Systèmes de communications numériques Fonction types d’un système de comm. num. Codes convolutifs Algorithme de Viterbi Architecture du décodeur de Viterbi 2 Système de communications numériques (simplifié) Transmitter Transmission Channel m Source Source Encoder u Channel Encoder c Modulator s(t) Noisy Transmitted Information Transmitted m’ : 0 0011010 011 10 Received y : Received s(t) : d Decoded z(t) : u : m :0 01 0 1 01 c : Codeword Signal message signal vector 00 01 00 11 message vector 101 1 11 b(t) Noise, Interference, … 010 1 0 00 11 z(t)=s(t)+b(t) Receiver Sink m’ Source Decoder d Channel Decoder y Demodulator 3 Système de communications numériques (réel : émetteur norme DVB-T) Codage source Scrambler (LFSR) Codeur RS Entrelaceur symboles Codeur convolutif Entrelaceur bits Code BCH pour protéger les pilotes 4 Structure des paquets et octets de synchro Paquet MPEG-2 = 188 octets = 1 octet SYNC + 188 octets DATA • • • SYNC = 47HEX ou la version complémenté not(SYNC)=B8HEX (tous les 8 paquets) L’envoi de SYNC et not(SYNC) se fait « MSB first » Les données sont « randomisées » Pr(0)=Pr(1) On ajoute de la redondance pour protéger les données : RS(204,188,8) ??? Rajout de la redondance + entrelacement des octets 5 Quelle taille pour le flux de données ? Codage source Scrambler (LFSR) Codeur RS Entrelaceur symboles Codeur convolutif Entrelaceur bits Code BCH pour protéger les pilotes Traitement bits Traitement octets/symboles 6 Caractéritiques des systèmes pour les télécommunications • Application type « Machine à coudre » • Données traitées uniformes (bits, échantillons, symboles, trame) • Fréquence d’arrivée des données constante • Algorithme à appliquer à chaque donnée uniforme • Algorithme de traitement connu à l’avance (norme) • Cibles technologiques • ASIC (circuit sur mesure) • Très bonnes performances (vitesse, conso., surface) car optimisé pour une seule application • Coût élevé (seulement pour les produits de grande consommation) • FPGA (circuit prédiffusé) • Performance moindre bien que croissantes • Coût unitaire réduit • Cibles architecturales • Archi dédiées (on concoit l’architecture pour une seule appli ou norme) • Archi type processeur (on utilise un jeu d’instruction qui s’execute sur un processeur) Plan du cours 4 Systèmes de communications numériques Fonction types d’un système de comm. num. Codes convolutifs Algorithme de Viterbi Architecture du décodeur de Viterbi 8 Linear Feedback Shift Registers (LFSR) • Génération efficace de vecteurs de test • Flip-Flops + quelques XORs • Plus efficace qu’un compteur (moins de portes, fréquence plus élevée) • CRC • Encodeur Reed-Solomon / BCH • Génération de séquences pseudo-aléatoire • Deux types de LFSR • Boucle de retour externe (external feedback) • Boucle de retour interne (internal feedback) : fréquence plus élevée LFSR (2) • Un LFSR est caractérisé par un polynôme • Le polynôme définit la position des XOR • P(x) = x4+x3+x+1 • n = nombre de Flip-flops = degré du polynôme • Un LFSR génère une séquence périodique • Il DOIT partir d’un état non-nul sinon … que des zéros • La longueur maximale de la séquence est 2n-1 • La séquence tout à zéro n’est pas générée (état bloquant) • Le polynôme caractéristique d’un LFSR générant une séquence de longueur maximale est un polynôme primitif • Une séquence de longueur maximale est pseudo-aléatoire: • Nombre de ‘1’ = nombre de ‘0’ + 1 LFSR (3) • Exemple: P(x) = x3 + x + 1 • Etat de départ : tout à ‘1’ • Le cycle complet dure 7 cycles d’horloges • Longueur maximale = 2n-1 • P(x) est un polynôme primitif Polynômes primitifs avec un minimum de XORs Scrambler (DVB-T) Polynôme P(x) = ? • Le premier bit généré par le LFSR doit être appliqué au premier bit du premier octet suivant le premier octet de synchro • La séquence d’initialisation doit être chargée dans le LFSR/PRBS tous les 8 paquets • Durant l’envoi des 7 autres octets de synchro le LFSR doit continuer d’évoluer mais la sortie doit être désactivée (enable=0) 13 Encodeur RS • • • • C’est un LFSR dans un Corps de Galois Multiplieurs de Galois Additionneurs de Galois Bascules D 14 Entrelacement ThisIsAnExampleOfInterleaving... ThisIsAnExampleOfInterleaving... ThisIs______pleOfInterleaving... TIEpfeaghsxlIrv.iAaenli.snmoten. TIEpfe_____Irv.iAaenli.snmoten. T_isI_AnE_amp_eOfInterle_vin_... Entrelacement: - Utilisé en complément des codes correcteurs d’erreurs - Permet de dispercer les erreurs - Permet de compenser en partie les effacements et évanouissement - Augmente la latence du système 15 Entrelaceur (symboles DVB-T) 16 Codeur convolutif (DVB-T) 17 Conversion série/parallèle 18 Plan du cours 4 Systèmes de communications numériques Fonction types d’un système de comm. num. Codes convolutifs Algorithme de Viterbi Architecture du décodeur de Viterbi 19 Intérêt du codage convolutif Code convolutif + VITERBI: - permet de tirer parti de l’information sur la fiabilité des décisions prises - Ramène le TEB à 10-3 - Laisse des bursts d’erreurs en sortie 20 Intérêt du codage Reed-Solomon Code Reed-Solomon: - Est efficace surtout quand TEB d’entrée < 10-2 - Corrige les erreurs par bursts - Complémentaire avec les codes convolutifs 21 Code convolutif Bit à transmettre 0 Longueur de contrainte K=3 (1 bit à transmettre + 2 bits d’état) 1 Etat du codeur à l’instant t L’évolution de l’état du codeur est représenté par un treillis: Etat (t) Etat (t+1) Etat (t+2) Etat (t+3) 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 Bit à transmettre à 0 Bit à transmettre à 1 22 Code convolutif Bit à transmettre 0 Longueur de contrainte K=3 (1 bit à transmettre + 2 bits d’état) 1 Etat du codeur à l’instant t L’évolution de l’état du codeur est représenté par un treillis: Etat (t) Etat (t+1) Etat (t+2) Etat (t+3) 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 Bit à transmettre à 0 Bit à transmettre à 1 Chemin du bit transmis 23 Code convolutif X1 Bit à transmettre 0 Les sorties X1 et X2 représentent la signature des transitions du bit à transmettre (redondance => rendement 1/2) 1 X2 0 0 00 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 X1 X2: 00 10 11 BIT 1 0 0 1 1 10 1 0 24 Plan du cours 4 Systèmes de communications numériques Fonction types d’un système de comm. num. Codes convolutifs Algorithme de Viterbi Architecture du décodeur de Viterbi 25 Algorithmes de décodage des codes convolutifs • Viterbi (décision souple en entrée, dure en sortie) • Chemin survivant optimal • SOVA (décision souple en entrée, souple en sortie) • Fiabilité approximative, complexité réduite • Permet de décoder les « turbo-codes » • Forward-Backward (décision souple en entrée, souple en sortie) • Fiabilité exacte des bits décodés • +0.5dB de mieux que le SOVA 26 Décodage de Viterbi • Le décodage consiste à retrouver le chemin parcouru par le bit dans le treillis en utilisant une de recherche de maximum de vraisemblance 2 2 3 3 1 2 4 3 1 1 4 4 27 Décodage de Viterbi • A chaque nœud, la distance parcourue la plus courte est calculée et le chemin pris est mémorisé. Il faut arriver à destination pour en déduire le chemin le plus court = chemin survivant 2 2 3 2 3 1 3 4 4 3 2 4 3 5 4 1 6 7 1 Chemin survivant 28 Entrée pondérée (souple, soft) 29 Métriques de branche Instant t 00 Instant t+1 00 00 01 01 10 10 11 10 Distance Euclidienne Distance de Manhattan 11 30 Décodage de Viterbi • La recherche de la séquence émise nécessite le calcul des métriques de branches et métriques de noeuds Métrique de branche = Distance(Y1Y2 reçue; Y1Y2 attendu) MNA 00 11 0 MNC 2 MNB Y1Y2 reçu = 00 Métrique de nœud = Min(MNA+0,MNB+2° • A chaque nœud est associé la décision correspondant à la branche la plus vraisemblable : décision = [(MNA+0<MNB+2)? 0, 1] • La valeur du bit de décidé est donnée par la position de nœuds. Au Nord, le bit est à 0, au Sud le bit est à 1. 31 Décodage de Viterbi t=0 0 0 0 0 1 t=2 t=3 11 11 00 1 1 1 0 2 t=1 0 2 10 Exercice : Calculer les métriques de branches et métriques de nœuds note: les nœuds sont équiprobables à t=0 32 Décodage de Viterbi Solution: t=0 0 0 0 0 1 1 1 1 0 2 t=1 1 0 1 0 2 10 0 2 0 0 2 1 1 t=2 0 1 1 1 11 1 1 2 0 0 2 1 1 t=3 1 2 0 1 11 1 2 0 2 2 0 1 1 1 1 2 1 1 1 00 33 Décodage de Viterbi Exercice : Recherche la séquence émise Il suffit de remonter le chemin à partir de la destination, en considérant les décisions aux niveau des noeuds T T+1 T+2 T+3 T+4 T+5 T+6 T+7 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 Propriété: Les chemins convergent en remontant sur une profondeur L suffisamment grande, L=longueur de convergence : L=6K K=longueur de contrainte (Nbre d’états = 2K-1) 34 Décodage de Viterbi Solution : T T+1 T+2 T+3 T+4 T+5 T+6 T+7 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 ? 35 Plan du cours 4 Systèmes de communications numériques Fonction types d’un système de comm. num. Codes convolutifs Algorithme de Viterbi Architecture du décodeur de Viterbi 36 Architecture du décodeur Symboles d’entrée Bits décodés Métriques de branches Métriques de noeuds Gestion du chemin survivant Points critiques: Puissance de calcul pour les métriques de nœuds Accroissement infini des métriques de nœuds Gestion de la mémoire survivante 37 Calcul des métriques de branches (distance Euclidienne) 𝑀𝐵00 = 𝑑 𝑌1𝑌2,00 = 𝑌12 + 𝑌22 𝑀𝐵01 = 𝑑 𝑌1𝑌2,01 = 𝑌12 + (𝑌𝑀𝐴𝑋 − 𝑌2)2 𝑀𝐵10 = 𝑑 𝑌1𝑌2,10 = (𝑌𝑀𝐴𝑋 − 𝑌1)2 + 𝑌22 𝑀𝐵11 = 𝑑 𝑌1𝑌2,11 = (𝑌𝑀𝐴𝑋 − 𝑌1)2 + (𝑌𝑀𝐴𝑋 − 𝑌2)2 Multiplieurs (mise au carrée) Additionneurs/Soustracteurs Opérateur SQRT 38 Calcul des métriques de branches (distance de Manhattan) 𝑀𝐵00 = 𝑑 𝑌1𝑌2,00 = 𝑌1 + 𝑌2 𝑀𝐵01 = 𝑑 𝑌1𝑌2,01 = 𝑌1 + (𝑌𝑀𝐴𝑋 − 𝑌2) 𝑀𝐵10 = 𝑑 𝑌1𝑌2,10 = (𝑌𝑀𝐴𝑋 − 𝑌1) + 𝑌2 𝑀𝐵11 = 𝑑 𝑌1𝑌2,11 = (𝑌𝑀𝐴𝑋 − 𝑌1) + (𝑌𝑀𝐴𝑋 − 𝑌2) Additionneurs uniquement ! Performances de décodage équivalentes 39 Calcul des métriques de noeuds Métrique de nœud = Min(MNA+MBA,MNB+MBB) Instant t MN0 Instant t+1 MB00 MN0 MN1 MN1 MN2 MN2 MN3 MB33 Si K=7 (64 états) Débit 30Mb/s MN3 2 Additionneurs 1 Comparateurs 1 Sélecteur (MUX) Opérateur ACS MN3=Min(MN2+MB23; MN3+MB33) 6 G additions/s !! 40 Opérateurs ACS MNA Additionneurs Comparateur + MBAC MNB + MBBC MNC Sélectionneur 41 Interconnection des ACS MN0 Reg ACS1 Reg ACS2 Reg ACS3 Reg MN0 MN1 MN1 MN2 MN2 MN3 ACS0 MN3 42 Dynamique des métriques de noeuds X ≤ MN ≤ X + 3M X ≤ MN ≤ X+2M X ≤ MN ≤ X+M X ≤ MN ≤ X + 3M X ≤ MN ≤ X + 3M X ≤ MN ≤ X+2M X ≤ MN ≤ X + 3M X ≤ MN ≤ X + 3M X ≤ MN ≤ X+2M X X ≤ MN ≤ X + 3M X ≤ MN ≤ X + 3M X ≤ MN ≤ X+M X ≤ MN ≤ X+2M X ≤ MN ≤ X + 3M A tout instant t, Max-Min ≤ (K-1)M 43 Rééchelonnage Exemple: M=15 => Max-Min=45 La métrique de nœud est codée sur 7 bits. Quand les MSBs sont à 1 ils sont tous remis à 0 (rééchelonnage) 128 45 max 64 0 La fréquence de rééchelonnage donne une information sur le niveau de bruit du canal. 44 Gestion du chemin survivant Après une remontée sur une longueur L (typiquement 6xK), le chemin parcouru devient indépendant du nœud initial: c’est le chemin survivant t=L Bit 0 Bit 1 t=L+1 Bit 2 t=L+2 45 Echange de registres • L’idée est de mémoriser les chemins survivants dans des bancs de registres. • Chaque registre a une profondeur de L. • On dispose d’un registre par état. • Le registre Ri contient le chemin survivant partant du nœud i 46 Echange de registres • L’idée est de mémoriser les chemins survivants dans des bancs de registres. • Chaque registre a une profondeur de L. • On dispose d’un registre par état. • Le registre Ri contient le chemin survivant partant du nœud i t-4 t-3 t-2 t-1 t H H H H B H H H B H H H H B H H H H B H Chemin survivant partant du nœud 0 47 Echange de registres • L’idée est de mémoriser les chemins survivants dans des bancs de registres. • Chaque registre a une profondeur de L. • On dispose d’un registre par état. • Le registre Ri contient le chemin survivant partant du nœud i t-5 t-4 t-3 t-2 t-1 t B : R0 <= R1 H : R1 <= R2 H : R2 <= R0 B : R3 <= R3 H H H H B H H H B H H H H B H H H H B H 48 Echange de registres - Architecture If d0=0 R0<=R0 Else R0 <= R1 If d1=0 R1<=R2 Else R1 <= R3 If d2=0 R2<=R0 Else R2 <= R1 If d3=0 R3<=R2 Else R3 <= R3 Résultats identiques 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 Inconvénients: nombre de registres, interconnexions, consommations Si L=100, K=7, il faut 6400 registres ! L’échange de registre est utilisé avec peu d’états (<32) 49
© Copyright 2024 ExpyDoc