COM105 Communications Numériques et Théorie de l’Information Jean-Claude Belfiore, Philippe Ciblat, Michèle Wigger 15 mai 2014 Table des matières Introduction générale 1 1 Codage correcteur d’erreur 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Modèle de canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Le canal binaire symétrique . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Le canal binaire à effacement . . . . . . . . . . . . . . . . . . . . . . 1.2.3 Le canal gaussien à entrées binaires . . . . . . . . . . . . . . . . . . 1.3 Généralités sur les codes en bloc . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Généralités sur les décodeurs . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Le maximum de vraisemblance . . . . . . . . . . . . . . . . . . . . . 1.4.2 Correction d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3 Détection d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Codes linéaires en bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Rappel sur les corps finis . . . . . . . . . . . . . . . . . . . . . . . . 1.5.2 Structure algébrique des codes linéaires . . . . . . . . . . . . . . . . 1.5.3 Paramètres des codes linéaires . . . . . . . . . . . . . . . . . . . . . 1.5.4 Description du codeur : notion de matrices génératrices . . . . . . . 1.6 Décodeur des codes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Notion d’orthogonalité et de code dual . . . . . . . . . . . . . . . . . 1.6.2 Matrice de contrôle de parité . . . . . . . . . . . . . . . . . . . . . . 1.6.3 Notion de syndrome . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.4 Borne de Singleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.5 Décodage par syndrome : exemple avec le code de Hamming (7, 4, 3) 1.7 Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Théorie de l’information 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Entropie et Information mutuelle . . . . . . . . . . . . . . 2.2.1 Entropie . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Entropie conjointe . . . . . . . . . . . . . . . . . . 2.2.3 Entropie conditionnelle . . . . . . . . . . . . . . . 2.2.4 Information mutuelle . . . . . . . . . . . . . . . . . 2.3 Modèle des canaux discrets sans mémoire (DMC) . . . . . 2.4 Définition et théorème de la capacité pour le DMC . . . . 2.5 Expressions analytiques de la capacité de quelques canaux 2.5.1 Cas du canal binaire symétrique . . . . . . . . . . 2.5.2 Cas du canal binaire à effacement . . . . . . . . . 2.5.3 Cas du canal gaussien . . . . . . . . . . . . . . . . 2.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 5 5 5 6 6 7 8 8 9 9 10 11 13 14 14 15 15 16 17 18 . . . . . . . . . . . . . 19 19 20 20 22 24 25 26 27 29 29 30 31 33 3 Modulations numériques 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Canal de propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Description de l’émetteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Un exemple-jouet (mais réel !) . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Des bits aux symboles d’information . . . . . . . . . . . . . . . . . . 3.3.3 Du signal à temps discret au signal à temps continu . . . . . . . . . 3.4 Description de récepteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Du signal à temps continu au signal à temps discret : le filtre adapté 3.4.2 De l’interférence entre symboles : le filtre de Nyquist . . . . . . . . . 3.4.3 Détecteur optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Probabilité d’erreur bit pour la M -PAM . . . . . . . . . . . . . . . . 3.5.2 Lien avec le codage correcteur d’erreur du chapitre 1 . . . . . . . . . 3.5.3 Lien avec la théorie de l’information du chapitre 2 . . . . . . . . . . 3.5.4 Lien entre les paramètres de dimensionnement d’un système . . . . . 3.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Quelques preuves relatives au chapitre A.1 Preuve du résultat 3.2 . . . . . . . . . A.2 Preuve du résultat 3.3 . . . . . . . . . A.3 Preuve du résultat 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 36 39 39 40 42 45 45 48 51 55 55 58 60 62 64 3 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Notations Outils mathématiques : √ – Nombre imaginaire pur : i = −1 R∞ – Transformée de Fourier : X(f ) = FT(x(t)) = t=−∞ x(t)e−2πif t d t R∞ – Transformée de Fourier Inverse : x(t) = IFT(X(f )) = f =−∞ X(f )e2πif t d f – Alphabet d’une variable aléatoire X : X – Loi de probabilité d’une variable aléatoire discrète X (prob. mass func. -pmf-) : x 7→ PX (x) – Loi de probabilité conjointe d’une paire de variables aléatoires discrètes (X, Y ) : (x, y) 7→ PXY (x, y) – Loi de probabilité conditionnelle d’une variable aléatoire discrète X par rapport Ãă une deuxième variable Y = y : x 7→ PX|Y (x|y) – Densité de probabilité d’une variable aléatoire continue X (prob. density func. -pdf-) : x 7→ pX (x) – Densité de probabilité conditionelle d’une variable aléatoire continue X par rapport Ãă une deuxième variable Y : x 7→ pX|Y (x|y) – Probabilité de l’événement ω : Pr(ω) Signaux et suites : – Autocorrélation d’un signal aléatoire x(t) : rxx (t, τ ) = E[x(t + τ )x(t)] – Densité spectrale de puissance d’un signal aléatoire x(t) : f 7→ Sxx (f ) – Variance d’une suite aléatoire {sk }k : σs2 = E[(sk − ms )2 ] avec ms = E sk – Puissance moyenne du signal x(t) : Px Codage et modulation : – Bits de la source ou Données : {dm }m (typiquement i.i.d. Bernouilli de probabilité 1/2) – Bits codés : {cm }m – Longueur d’un mot de code : n (attention, n sera parfois une variable muette de sommation mais cela ne devrait créer aucune ambiguïté) – Nombre de bits d’information dans un mot de code : k (idem, k sera parfois une variable muette de sommation mais cela ne devrait créer aucune ambiguïté) – Rendement d’un code correcteur d’erreur : R = k/n – Symboles émis : {sk }P k – Signal émis : x(t) = k sk g(t − kTs ) – Filtre de mise en forme : g(t) – Durée d’un symbole : Ts – Temps-bit : Tb – Débit (bit utile) : Db = R/Tb – Signal reçu : y(t) = x(t) + b(t) – Bruit blanc gaussien de moyenne nulle et de niveau spectral N0 /2 : b(t) – Filtre de réception : gr (t) – Signal après filtrage de réception : z(t) = (y ? gr )(t) – Signal après échantillonnage : zk = (y?gr )(kTs ) (quand g?gr satisfait le critère de Nyquist, zk = sk +wk avec wk une gaussienne i.i.d. de moyenne nulle et de variance N0 /2) Théorie de l’information – Entropie d’une variable aléatoire X : H(X) – Entropie conditionelle d’une variable aléatoire X sachant Y : H(X|Y ) – Entropie jointe d’une paire de variable aléatoires (X, Y ) : H(X, Y ) – Fonction d’entropie binaire : Hb (·) – Information mutuelle de X et Y : I(X; Y ) – Capacité de canal : C Paramètres du système : – Largeur de bande : B – Facteur d’excès de bande : ρ – Energie par symbole : Es – Energie par bit utile : Eb – Probabilité d’erreur symbole : Pe – Probabilité d’erreur bit : Pb – Rapport Signal-à-Bruit (RSB) : RSB = 2Es /N0 Abréviations – – – – – – – – – – – – – – – BEC : Binary Erasure Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canal Binaire à Effacement BER : Bit Error Rate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Taux d’Erreur Bit BSC : Binary Symmetric Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canal Binaire Symétrique DMC : Discrete Memoryless Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canal Discret sans Mémoire FEC : Forward Error Correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code Correcteur d’Erreur FT : Fourier Transform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transformée de Fourier IFT : Inverse Fourier Transform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transformée de Fourier Inverse i.i.d. : Independent and identically distributed. . . . . . . . . . . . . . . . indépendant et identiquement distribué ISI : Intersymbol Interference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interférence Entre Symboles MIMO : Multi-Input Multi-Output Antenna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multi entrées- Multi sorties OOK : On-Off Keying. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Marche-Arrêt PAM : Pulse Amplitude Modulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modulation d’Amplitude QoS : Quality of Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qualité de Service SIMO : Single-Input Multi-Output Antenna. . . . . . . . . . . . . . . . . . . . . . . . . . . . Une entrée - Plusieurs sorties SNR : Signal-to-Noise Ratio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rapport Signal-à-Bruit Introduction générale Sur la figure 1, nous avons représenté sur un même schéma un ensemble de réseaux de communication ayant des supports très différents (DVD, câble de cuivre, fibre optique, sans fil) et offrant des fonctionnalités très différentes : téléphone, transfert de données, flux vidéo (video streaming, en anglais), télévision, stockage dans des centres de données (data centers, en anglais). D’autres supports de communication, non dessinés sur la figure 1, existent tels que la clef USB, les molécules (via les communications moléculaires), le système cérébral (que certains chercheurs tentent d’expliquer via les principes et outils de communications numériques), etc. . Satellite Wifi Téléphone 2G/3G/4G Fibre optique DVD . Paire de cuivre/Câble Figure 1 – Un ensemble de réseaux de communication Néanmoins tous ces éléments ont un point commun : les données sont numérisées et doivent être transmises à travers un canal de propagation. Le domaine des communications numériques regroupe de ce fait les problématiques suivantes • comprimer • transmettre • sauvegarder l’information de manière fiable avec un coût faible (par coût, on peut entendre, consommation énergétique, occupation spectrale, complexité raisonnable, etc). Dans ce polycopié, afin de simplifier, nous allons nous intéresser uniquement à des communications dites point-à-point, c’est-à-dire, entre un seul émetteur et un seul récepteur. Nous passerons donc sous silence la dimension multipoints-à-multipoints de tout réseau de communication, c’est-à-dire, quand plusieurs utilisateurs sont présents dans le système ou bien que le réseau a plusieurs flux de données à gérer de manière simultanée. Cette dimension « réseau » des communications numériques est évidemment abordée dans les cours du cycle Master (COM223, COM224, COMMDI225, COM344 et COM345) et la recherche académique ainsi qu’industrielle est actuellement très active sur cette dimension. En effet, les outils et techniques développés en communications numériques point-à-point offrent des perspectives très prometteuses pour optimiser les réseaux dans leur entier. Historiquement, la stratification OSI a découplée les deux domaines : la science des communications numériques développe les technologies pour bien transmettre UN paquet ; la science des 2 Introduction générale réseaux apprend à manipuler efficacement LES paquets. Ce découplage est en fait clairement sous-optimal et tend à s’estomper dans les systèmes en voie de standardisation. La conséquence en est l’insertion de plus en plus forte des techniques de communications numériques dans le cœur des réseaux. Comme déjà dit, ce polycopié offre seulement quelques prolégomènes à l’étude des communications numériques. Classiquement, les communications sont subdivisées en trois sous-domaines que nous retrouvons dans notre découpage en trois chapitres : • Dans le chapitre 1, vous apprendrez comment protéger les données contre des erreurs éventuelles via l’outil du codage correcteur d’erreur. • Dans le chapitre 2, vous apprendrez que les communications numériques ont des performanceslimites (par exemple, en terme de débit) via l’outil de la théorie de l’information. Vous définirez en autre la notion (de quantité) d’information. • Dans le chapitre 3, vous apprendrez à envoyer et recevoir les données protégées sur les supports de communication (qui peuvent être de tout type : fibre, câble, atmosphère, etc) via l’outil des modulations numériques. Tout chapitre se termine par une section, dite « Bilan », dans laquelle nous synthétisons dans deux boîtes les concepts de base à retenir et les savoir-faire à acquérir (qui sont en lien avec les TDs). De plus quelques perspectives seront données afin de vous donner quelques idées sur les cours associés du cycle Master et les thématiques de recherche actives sur le sujet. Chapitre 1 Codage correcteur d’erreur 1.1 Introduction Qu’est-ce-que le codage dit correcteur d’erreur ? A quoi cela sert-il ? Avant de commencer à détailler les principes du codage correcteur d’erreur, il faut fixer la terminologie. Pour cela, examinons d’un peu plus près le contexte d’utilisation du codage correcteur d’erreur. En fait, ce qualificatif « correcteur d’erreur » renvoie uniquement au cas où on l’associe à une application générant des erreurs qu’il faut réduire ou même éliminer. Mais corriger des erreurs représente un scénario qui est devenu, avec le temps, bien minoritaire par rapport à tout ce qu’un code correcteur d’erreur peut faire. Car il peut aussi remplir des effacements (décider si un bit effacé est égal à 0 ou à 1). Il peut aussi éventuellement réduire les effets du bruit et tant d’autres choses. C’est pour cela qu’il vaut mieux l’appeler « codage de canal » en lieu et place de « codage correcteur d’erreur » car il est fondamentalement utile et même nécessaire pour limiter les effets néfastes du canal de transmission. Il est temps maintenant de donner une terminologie détaillée liée au codage. Pour cela, on se sert de la figure 1.1 qui donne une idée simple de l’architecture d’un système de communication lorsqu’on s’intéresse de plus près au codage. Source Codeur Canal Décodeur Destinataire Figure 1.1 – Schéma général d’un système de communication codé 1. Un code est l’ensemble des mots qui sont susceptibles d’être émis et donc de passer à travers le canal. 2. Un codeur est une bijection entre un ensemble de bits qui représente les données que l’on veut transmettre et les mots de code effectivement transmis. 3. Un décodeur retrouve, à partir de la sortie du canal, les données transmises avec une grande probabilité. Exemple 1.1 Considérons un code à répétition C = {(000), (111)}. Il contient deux mots de code. La table 1.1 donne la correspondance entre les données que l’on veut transmettre et les mots de code qui seront effectivement transmis à travers le canal. Le code ne comportant que deux mots, il suffit de log2 (2) = 1 bit d’information pour les étiqueter. Données 0 1 Mot de code 000 111 Table 1.1 – Codeur du code à répétition de longueur 3 Ce chapitre sera organisé de la manière suivante : • en section 1.2, nous introduisons quelques modélisations de canaux, c’est-à-dire, des distorsions qui peuvent intervenir sur les données transmises. Ces modèles ont une justification pratique qui sera donnée dans le chapitre 3. 4 Codage correcteur d’erreur • en section 1.3, nous introduisons la notion de code correcteur d’erreur avec notamment la notion essentielle de distance minimale (de Hamming). • en section 1.4, nous présentons de manière très générale quelques résultats fort utiles de la théorie de la détection et les appliquons à la problématique de décodage de codes correcteur d’erreur. • en section 1.5, nous nous intéressons aux codes en bloc linéaires qui sont une classe très répandue de codes car offrant des facilités de manipulations tant pratique que théorique. • en section 1.6, nous présentons une technique de décodage de codes en bloc linéaires qui s’appelle l’algorithme du syndrome. • en section 1.7, nous analysons théoriquement les performances des codes. Les résultats obtenus dans cette sectino prendront tout leur sens avec leurs applications à des systèmes pratiques données à la sous-section 3.5.2 du chapitre 3. En section 1.8, nous faisons un bilan de ce chapitre en rappellant les éléments essentiels à retenir et les outils à maîtriser. 1.2 Modèle de canaux Il existe plusieurs modèles de canaux. Chaque modèle correspond à une vision simplifiée de systèmes de communication pratiques. Nous présentons ici trois de ces modèles de canaux parmi les plus emblématiques. Chacun de ces modèles représente une version simplifiée de ce qui est rencontré en pratique. La variable aléatoire (notée X) que l’on trouve à l’entrée du canal représente seulement un bit transmis. 1.2.1 Le canal binaire symétrique Ce canal introduit des erreurs sur les bits transmis. La probabilité qu’il y ait une erreur est une constante notée p et ne dépend ni du bit émis ni du passé. Sur la figure 1.2 on peut voir un schéma d’un tel canal que 1−p 0 0 p p 1 1−p 1 Figure 1.2 – Canal binaire symétrique l’on note aussi BSC (acronyme venant de l’anglais “Binary Symmetric Channel ”). La variable d’entrée X est une variable aléatoire binaire, de même que la variable aléatoire de sortie. Les paramètres qui étiquettent les transitions du canal sont appelés « probabilités de transition ». Elles correspondent respectivement aux définitions suivantes : Pr {Y = 0|X = 0} Pr {Y = 0|X = 1} = = Pr {Y = 1|X = 1} = 1 − p Pr {Y = 1|X = 0} = p où on remarque que les probabilités d’erreur ne dépendent pas des symboles transmis. Notez qu’on peut toujours supposer que p ≤ 1/2. Si ce n’est pas le cas, il suffit de changer, à la sortie du canal, tous les 0 en 1 et les 1 en 0. 5 Généralités sur les codes en bloc 1.2.2 Le canal binaire à effacement Ce canal n’introduit aucune erreur. Par contre, il efface certains bits avec une certaine probabilité. La figure 1.3 donne un schéma de ce canal. . 0 1−ǫ 0 ǫ ∆ ǫ 1 1 1−ǫ . Figure 1.3 – Canal binaire à effacement On remarquera que la variable aléatoire de sortie du canal Y prend ses valeurs dans un alphabet ternaire {0, 1, ∆} où ∆ représente l’effacement. Ce canal est souvent utilisé comme modèle pour pour les réseaux. L’effacement modélise alors les pertes de paquets. 1.2.3 Le canal gaussien à entrées binaires Ce canal enfin modélise la couche physique lorsqu’une modulation binaire est utilisée. De plus amples justifications ne pourront en fait être données qu’au chapitre 3. La variable d’entrée X est supposée binaire à valeurs dans {0, 1}. Quant à la variable de sortie Y , elle est à valeurs continues dans R. Elle est reliée à X par l’équation suivante : X Y = (−1) A + W où A est l’amplitude utilisée pour transmettre le bit et W est une variable aléatoire gaussienne centrée. Ce canal modélise la couche physique d’un système de communication utilisant la modulation 2-PAM (Pulse Amplitude Modulation) décrite dans le chapitre 3. 1.3 Généralités sur les codes en bloc Dans ce polycopié, nous allons nous intéresser uniquement aux codes en bloc. Ces codes sont utilisés (parfois couplés avec d’autres types de codes) dans tous les systèmes actuels (2G, 3G, 4G, ADSL, TNT, etc). Pour définir un tel code, il faut d’abord se donner un alphabet. Dans les cas pratiques, cet alphabet sera principalement (mais pas toujours) l’alphabet binaire X = {0, 1}. En effet, ayant adopté depuis longtemps la logique binaire, il nous faut transmettre en binaire. Définition 1.1 (Rendement) Le rendement (binaire) d’un code en bloc de longueur n, aussi appelé taux de codage, est log2 (|C|) R= (1.1) n où |C| désigne le nombre de mots du code C. Nous remarquons que log2 (|C|) est le nombre de bits à utiliser pour étiqueter tous les mots de C. La distance minimale d’un code en bloc est un paramètre très important qui mesure, entre autres, si un code est « bon » ou pas. Avant de donner la définition de la distance minimale, nous introduisons la distance de Hamming. Elle mesure le nombre de symboles par lesquels deux mots diffèrent. On définit tout d’abord la distance de Hamming entre deux symboles comme étant égale à 0 si les deux symboles sont identiques et égale à 1 sinon. Soient alors les mots x = (x1 , x2 , . . . , xn ) et y = (y1 , y2 , . . . , yn ). La distance de Hamming entre ces deux mots est dH (x, y) = n X i=1 dH (xi , yi ) 6 Codage correcteur d’erreur avec dH (xi , yi ) la distance de Hamming entre les symboles xi et yi . La distance minimale d’un code en bloc C est la plus petite distance de Hamming entre deux mots distincts de C. Définition 1.2 (Distance minimale) La distance minimale dmin du code en bloc C est dmin (C) = 1.4 min x,y∈C,x6=y dH (x, y) . (1.2) Généralités sur les décodeurs Le rôle de n’importe quel décodeur est de retrouver, à partir de la sortie du canal, les bits qui ont été transmis. Le décodage se fait en deux étapes : 1. A partir du mot reçu (qui correspond à celui à la sortie du canal), trouver un mot de code qui paraît être le plus probable (nous verrons que cela a un sens très précis). 2. A partir du mot de code trouvé à l’étape 1, en déduire les bits d’information qui ont été transmis. Commençons par un exemple, celui du code à répétition de longueur 3 sur le canal binaire symétrique. Nous supposons que le codeur utilisé est celui du tableau 1.1. Le canal introduit des erreurs aléatoires indépendantes avec une probabilité p ≤ 1/2. Donc la probabilité qu’il y ait deux erreurs est p2 , etc. Supposons que le décodeur décide en faveur du mot de code le plus proche (au sens de la distance de Hamming) du mot reçu. Ce critère est en fait celui qui minimise la probabilité d’erreur par mot après décodage comme nous le verrons en sous-section 1.4.1 car il favorise le scénario correspondant au moins d’erreurs possible. Si le mot de code émis est (0 0 0) et que le canal introduit une erreur en position 2, alors le décodeur recevra le mot (0 1 0). Les deux seuls mots de code étant (0 0 0) et (1 1 1), le mot de code choisi par le décodeur sera (0 0 0) car la distance entre ce mot et le mot reçu est égale à 1 alors qu’elle est égale à 2 pour le second mot de code. Donc, l’erreur est décodée. Par contre, on peut vérifier que si le nombre d’erreurs était égal à 2, alors le décodeur choisirait l’autre mot de code et ne parviendrait pas à corriger ces deux erreurs. 1.4.1 Le maximum de vraisemblance Le critère de décodage le plus utilisé est le critère du maximum de vraisemblance, qui peut être évalué sur tous les modèles de canaux donnés ci-dessus. C’est un critère très important qui peut être utilisé dans d’autres applications que le codage, en fait, dans tout problème de détection (détection d’un visage dans une image, détection de symboles au chapitre 3, reconnaissance du locuteur, détection d’anomalie, détection de présence, etc). On suppose, dans la suite, que le mot de longueur n émis est le mot x. Le mot reçu, après passage dans le canal, est le mot y. Xn Canal Yn Décodeur X̂ n Figure 1.4 – Décodage La variable aléatoire qui désigne l’entrée du canal est la variable X. Le vecteur aléatoire composé de n copies de la variable X sera noté X n . De même, la variable aléatoire qui désigne l’entrée du canal est la variable Y et le vecteur aléatoire composé de n copies de la variable Y sera noté Y n . La figure 1.4 représente de façon schématique le décodeur avec toutes les variables aléatoires. On suppose que la règle de décodage vérifie les propriétés suivantes : • L’ensemble de tous les vecteurs y pour lesquels le décodeur choisit le mot de code x sera noté Ωx . • La règle de décodage est une règle déterministe. • La règle de décodage est celle qui minimise la probabilité d’erreur par mot après décodage (ce qui semble raisonnable) . 7 Généralités sur les décodeurs La probabilité d’erreur s’écrit Pe = 1 − Pc où Pc désigne la probabilité de décision correcte par mot après décodage. Soit x̂ le mot choisi par le décodeur. Il y a décision correcte lorsque x̂ = c où c est le mot de code transmis. Nous pouvons à présent calculer Pc , Pc Pr {x̂ = c} X = Pr {x̂ = x|c = x} Pr {c = x} = x∈C Or, le décodeur choisit c si et seulement si y ∈ Ωc . Nous en déduisons X Pc = Pr {y ∈ Ωc |c = x} Pr {c = x} x∈C = XZ x∈C Ωc pY n |X n (y, x) Pr {c = x} dy (1.3) On voit donc, d’après l’équation (1.3), que pour maximiser la probabilité de décision correcte Pc , il faut maximiser (1.4) PY n |X n (y, x) Pr {c = x} ce qui est, en général, une opération complexe lorsque le nombre de mots de code est élevé. La complexité de cette opération est principalement due à la probabilité a priori Pr {c = x}. Pour contourner ce problème, on suppose que les mots de code sont tous émis avec la même probabilité. Donc, la maximisation de l’expression (1.4) revient à la maximisation de PY n |X n (y, x) que l’on nomme vraisemblance. Pour résumer, si les mots de code sont tous émis avec la même probabilité, minimiser la probabilité d’erreur par mot après décodage, revient à maximiser la vraisemblance. Donc, le décodeur va choisir le mot de code x̂ = arg max PY n |X n (y, x) (1.5) x∈C où arg signifie que le mot décodé est égal au mot de code qui maximise la vraisemblance. Cette règle est nommée “règle du maximum de vraisemblance”. Nous développons cette règle ci-dessous dans le cas du canal binaire symétrique illustré dans la figure 1.2. Dans ce cas, puisque le canal est sans mémoire, la vraisemblance s’écrit n Y PY n |X n (y, x) = PY |X (yi , xi ) . i=1 Or, PY |X (yi , xi ) = p si yi 6= xi et PY |X (yi , xi ) = 1 − p dans le cas contraire. Donc on peut écrire, PY n |X n (y, x) = n Y PY |X i=1 dH (y,x) (yi , xi ) (1 − p)n−dH (y,x) dH (y,x) p (1 − p)n · . 1−p = p = Si p < 1/2, alors on a p/(1 − p) < 1 ce qui nous permet de déduire le résultat suivant. Résultat 1.1 Si p < 1/2, le décodeur minimisant la probabilité d’erreur par mot pour un canal binaire symétrique revient, en maximisant la vraisemblance, à trouver le mot de code x qui minimise dH (y, x), la distance de Hamming entre le mot reçu et x. 1.4.2 Correction d’erreur Nous nous intéressons ici au nombre d’erreur qu’un code peut corriger. Tout d’abord, nous donnons une définition de la capacité de correction d’erreur d’un code. 8 Codage correcteur d’erreur Définition 1.3 On dit qu’un code en bloc C corrige t erreurs s’il peut corriger toutes les configurations d’erreurs dont le nombre est inférieur ou égal à t. Supposons maintenant que le canal introduit t erreurs. Ceci signifie que, si x est le mot émis et y le mot reçu, alors dH (y, x) = t. Que signifie « le décodeur corrige » ? Cela veut dire que le mot décodé sera le mot émis x. Donc, pour pouvoir décoder x, il faut qu’il n’y ait aucun mot x0 dans le code tel que dH (y, x0 ) ≤ t. Supposons qu’un tel mot x0 existe. La distance de Hamming entre x et x0 peut être bornée en utilisant l’inégalité triangulaire, dH (x, x0 ) ≤ ≤ dH (y, x) + dH (y, x0 ) 2t. (1.6) Supposons maintenant que dmin (C) ≥ 2t + 1. Alors, la condition (1.6) ne peut plus être vérifiée, donc un tel x0 n’existe pas, ce qui fait que les t erreurs seront toujours corrigées. Nous en arrivons au résultat suivant, Résultat 1.2 (Capacité de correction d’un code) Un code de distance minimale dmin peut corriger t erreurs (au sens de la définition 1.3) si t vérifie t= dmin − 1 2 où buc est la partie entière de u. Ainsi, pour corriger une erreur simple, il faut une distance minimale au moins égale à 3. Pour 2 erreurs, il faut une distance au moins égale à 5, etc. 1.4.3 Détection d’erreur Les codes correcteurs d’erreur sont aussi souvent utilisés pour détecter des erreurs (on les retrouve alors dans plusieurs couches OSI, de la couche MAC à la couche TCP). Lorsqu’ils sont utilisés en détection d’erreur, le décodage se limite alors à répondre à une seule question : le mot reçu est-il un mot de code ? Définition 1.4 On dit qu’un code en bloc détecte t0 erreurs si et seulement si il peut détecter toutes les configurations d’erreurs dont le nombre est inférieur ou égal à t0 . On en arrive rapidement au résultat suivant, Résultat 1.3 (Capacité de détection d’un code) Un code en bloc de distance minimale dmin est capable de détecter t0 erreurs si t0 vérifie t0 = dmin − 1. En effet, le décodeur détecte qu’il y a une ou plusieurs erreurs si le mot reçu n’appartient pas au code. Or, le codeur transmet un mot de code. Il y a non détection des erreurs lorsque le mot reçu est un autre mot de code. Un autre mot de code étant à une distance de Hamming au moins égale à dmin du mot émis, pour pouvoir toujours détecter les erreurs, il suffit que leur nombre reste strictement inférieur à dmin . 1.5 Codes linéaires en bloc Les codes linéaires en bloc sont des codes en bloc particuliers. Pour les construire, nous avons besoin de plusieurs ingrédients : • L’alphabet des symboles doit être un corps fini que nous noterons Fq . La lettre F vient de l’anglais field qui désigne la structure algébrique de « corps ». q est la taille de l’alphabet. • Un code linéaire en bloc est un espace vectoriel sur Fq . 9 Codes linéaires en bloc 1.5.1 Rappel sur les corps finis Un corps fini est un alphabet fini X muni d’une addition et d’une multiplication. L’élément neutre de l’addition sera noté 0 et l’élément neutre de la multiplication sera noté 1. (X , +) est un groupe fini commutatif et (X \ {0} , ×) est un groupe fini qui est d’emblée commutatif car tout corps fini est commutatif. De plus, la multiplication est distributive pour l’addition. Le cardinal d’un corps fini q est toujours une puissance d’un nombre premier, q = pr . Si r = 1, alors l’addition et la multiplication du corps Fp sont définies de la même façon que sur Z/pZ, c’est-à-dire, l’addition et la multiplication modulo p. Les cas où r 6= 1 ne seront pas traités ici 1 . Dans toute la suite, nous ne considérerons que le cas binaire F2 , c’est-à-dire, le cas où l’addition et la multiplication sont celles des entiers modulo 2. Ceci donne lieu aux tables de vérité 1.2. + 0 1 0 0 1 1 1 0 × 0 1 0 0 0 1 0 1 Table 1.2 – Addition et multiplication sur F2 1.5.2 Structure algébrique des codes linéaires Dans un code, certes il y a des symboles, mais les véritables éléments d’un code en bloc de longueur n sont ses mots. Un mot est un vecteur à n composantes sur son alphabet des symboles. Dans le cas binaire, et en utilisant F2 comme l’alphabet des symboles, l’ensemble des mots binaires de longueur n, noté Fn2 est un espace vectoriel de dimension n tout comme Rn est un espace vectoriel de dimension n sur le corps des nombres réels R. L’addition de deux vecteurs s’effectue bien sûr composante par composante. Exemple 1.2 Supposons n = 2. Tout couple binaire peut s’écrire comme combinaison linéaire d’une base à 2 vecteurs de F22 telle que B = {(1 1), (1 0)} par exemple. Ainsi, on obtient (0 0) = 0 · (1 1) + 0 · (1 0) (1 0) = 0 · (1 1) + 1 · (1 0) (0 1) = 1 · (1 1) + 1 · (1 0) (1 1) = 1 · (1 1) + 0 · (1 0) Maintenant qu’est-ce-qu’un code linéaire en bloc ? Nous savons qu’un code en bloc sur un alphabet X est un sous-ensemble de X n , l’ensemble des n-uplets dont les symboles sont dans X . Un code en bloc linéaire sur F2 est un code en bloc avec davantage de structure. Définition 1.5 Un code en bloc linéaire binaire de longueur n est un sous-espace vectoriel de Fn2 . Comment peut-on vérifier qu’un code en bloc est linéaire ? • Tout d’abord, le mot (0 0 · · · 0) doit être un mot de code. • Puis il suffit de vérifier que la somme binaire de deux mots de code est bien un mot de code. Examinons de plus près deux exemples. Exemple 1.3 Soit C = {(0 0 0), (1 1 1)}. On reconnaît évidemment le code à répétition de longueur 3. Il est facile de vérifier que ce code est linéaire et qu’une base de ce code est B = {(1 1 1)}. Un autre exemple de code de longueur 3, Exemple 1.4 Soit C = {(0 0 0), (1 1 0), (1 0 1), (0 1 1)}. Il s’agit d’un code de longueur 3 qui est aussi linéaire. On reconnaît un code de parité. Une base de ce code est B = {(1 1 0), (0 1 1)} puisque le seul mot de code non nul qui n’est pas dans la base B s’écrit (1 0 1) = 1 · (1 1 0) + 1 · (0 1 1). 1. Les codes de Reed-Solomon sont des codes très utilisés dans de nombreux systèmes. Ils sont construits, dans la plupart des cas, sur le corps F256 10 1.5.3 Codage correcteur d’erreur Paramètres des codes linéaires Dans le cadre des codes en bloc linéaires, nous allons préciser les paramètres déjà définis précédemment sur les exemples et définir également un nouveau paramètre qu’est la dimension du code. Définition 1.6 (Dimension d’un code) La dimension d’un code en bloc linéaire k est sa dimension en tant que sous-espace vectoriel de Fn2 . Nous pouvons maintenant exprimer le rendement d’un code en bloc linéaire en fonction de k et n à partir de la définition 1.1. En tant que sous-espace vectoriel de Fn2 , tout mot de code est combinaison linéaire des vecteurs d’une base de ce code. C étant de dimension k, une base contient k vecteurs e1 , . . . , ek . Tout mot de code c s’écrit k X c= di ei i=1 avec di ∈ F2 . Il y a donc 2k mots de code dans un code linéaire en bloc de dimension k. En revenant à la définition du rendement donnée dans l’équation (1.1), nous obtenons finalement que R= k log2 (|C|) = n n (1.7) La linéarité du code C nous permet d’exprimer la distance minimale du code de façon plus simple. Nous revenons tout d’abord à sa définition que nous pouvons trouver dans l’équation (1.2). Définissons maintenant le poids de Hamming, Définition 1.7 (Poids de Hamming) Le poids de Hamming d’un mot x est wH (x) = dH (x, 0) (1.8) où le mot 0 est le vecteur dont toutes les composantes sont nulles. Si nous combinons la définition de la distance minimale avec la définition du poids de Hamming, nous obtenons dmin (C) = = min dH (x, y) min wH (x + y) . x,y∈C,x6=y x,y∈C,x6=y Or, le code étant linéaire, x + y est aussi un mot de code. Nous obtenons finalement, dmin (C) = min x∈C,x6=0 wH (x) Ainsi, la recherche de la distance minimale d’un code quelconque, en utilisant la méthode exhaustive, demanderait le calcul de |C| · (|C| − 1) distances de Hamming alors qu’elle ne demande plus que le calcul de (|C| − 1) distances de Hamming dans le cas d’un code linéaire. Nous verrons par la suite qu’il existe une méthode de calcul de la distance minimale d’un code linéaire encore moins complexe. Analysons les exemples de la sous-section précédente à l’aune de ces nouvelles définitions et propriétés. Dans l’exemple 1.3, il est facile de voir que dmin = 3 puisqu’il y a un seul mot de code non nul et il est de poids de Hamming égal à 3. Dans l’exemple 1.4 on peut voir que dmin = 2 puisque tous les mots de code non nuls sont de poids de Hamming égal à 2. Dans la suite, un code linéaire C de longueur n, de dimension k et de distance minimale dmin sera noté (n, k, dmin ). 11 Codes linéaires en bloc Bits d’information Codeur Mots du code C Figure 1.5 – Schéma d’un codeur 1.5.4 Description du codeur : notion de matrices génératrices Jusqu’à présent, nous avons essentiellement discuté des codes. Un code en bloc binaire de longueur n est un sous-ensemble de Fn2 et si ce code est linéaire, il est aussi un sous-espace vectoriel de Fn2 . Il nous reste maintenant à savoir comment associer à une séquence de bits d’information (à transmettre) un mot du code C = (n, k, dmin ). Ceci est le rôle dévolu au codeur tel décrit dans la figure 1.5. Le codeur que l’on se propose d’étudier ici est un codeur linéaire, c’est-à-dire, que la somme binaire de deux séquences d’information va correspondre à la somme binaire de deux mots de code. Pour ce faire, nous choisissons une base du code B = (e1 , e2 , . . . , ek ) . Evidemment, il y a plusieurs choix possibles de base pour un code linéaire et tout élément ei de B est aussi un mot de code. Nous savons que tout mot c de C peut s’écrire c= k X i=1 di ei , di ∈ F2 . L’écriture de tout mot de code comme combinaison linéaire des vecteurs de B représente en elle-même un codeur linéaire. Ainsi, à chaque base B de C correspond un codeur linéaire. La figure 1.6 représente un schéma d’un tel codeur. . d1 , d2 , · · · , dk B Pk i=1 di ei . Figure 1.6 – Codeur linéaire Afin de faciliter l’écriture d’un codeur et, éventuellement, de choisir un codeur particulier bien adapté à l’application visée, il est intéressant d’écrire le codeur sous forme matricielle. Pour ce faire, nous changeons de notation. La nouvelle notation, introduite ci-dessous, restera valable jusqu’à la fin de ce chapitre. Tous les vecteurs vont être représentés par des matrices ligne (il s’agit de la convention habituellement utilisée en codage). Nous introduisons ici quelques notations utiles par la suite : 1. Un mot d’information D est une matrice ligne à k colonnes D = (d1 · · · dk ). 2. Un mot de code C est une matrice ligne à n colonnes C = (c1 · · · cn ). 3. Une matrice génératrice G est une matrice à k lignes et n colonnes. Définition 1.8 (Matrice génératrice) Soit B = (e1 , e2 , . . . , ek ) une base du code C. On appelle matrice génératrice du code C toute matrice G à k lignes et n colonnes qui s’écrit sous la forme, e1 e2 G = . . .. ek Tout mot de code C peut s’écrire alors (nous rappelons, en indice, les dimensions de chaque matrice pour montrer leur cohérence.) C1×n = D1×k · Gk×n où D est le mot d’information qui, après passage dans le codeur, donnera le mot de code C. Evidemment, G est une matrice de rang k puisque la base B engendre le code C, sous-espace vectoriel de dimension k. 12 Codage correcteur d’erreur Exemple 1.5 Reprenons l’exemple 1.4 du code de parité de longueur 3. Une base B de ce code peut être B = {(1 1 0), (0 1 1)}. Donc la matrice génératrice correspondante est 1 1 0 G= . 0 1 1 Pour un code linéaire donné, C, et parmi toutes les matrices génératrices possibles, il en est une qui est très fréquemment (presque toujours) utilisée. Il s’agit de la matrice génératrice systématique. Pour bien comprendre ce qu’elle est, il nous faut, tout d’abord, introduire la notion de codes équivalents. Soient C1 et C2 deux codes de même longueur n. On dit que C1 est équivalent à C2 si et seulement si il existe une permutation des composantes σ telle que, à tout mot x du code C1 correspond un mot y du code C2 vérifiant, (y1 , y2 , . . . , yn ) = xσ(1) , xσ(2) , . . . , xσ(n) . Evidemment, C1 et C2 ont la même dimension, la même distance minimale, ..., et seront en fait considérés comme deux codes identiques. Soit maintenant G une matrice génératrice du code C. Donc G correspond à une certaine base B. Une autre matrice génératrice G0 , du même code, correspond à une autre base B 0 du même sous-espace vectoriel. Les lignes de la matrice génératrice sont les vecteurs de la base choisie. Puisque tout changement de base se fait en remplaçant les vecteurs de la base par des combinaisons linéaires de ces mêmes vecteurs, le changement de matrice génératrice se fait en remplaçant les lignes par des combinaisons linéaires de ces mêmes lignes. De plus, on s’autorise à changer de code si le nouveau code est équivalent au premier. Or, passer d’un code à un code équivalent à celui-ci revient à trouver une permutation des composantes des mots de code. En terme de matrice génératrice, ceci est équivalent à permuter les colonnes de G. Pour résumer, deux opérations sont permises sur la matrice génératrice G pour trouver une autre matrice génératrice : • Combinaisons linéaires de lignes. • Permutations de colonnes. Or, il existe un algorithme (le pivot de Gauss) qui s’autorise ces manipulations sur une matrice quelconque et dont la sortie est la forme réduite de la matrice sous forme échelonnée. Si le rang de la matrice initiale est k (ce qui est notre cas, puisque G engendre un sous-espace de dimension k), alors la matrice échelonnée obtenue en sortie de l’algorithme sera la suivante Ik k Pk×(n−k) où Ik est la matrice identité de rang k et P est une matrice dépendant du code considéré. Cette forme échelon est la matrice génératrice systématique du code C (en fait il s’agit bien souvent d’un code équivalent à C). Définition 1.9 (Matrice génératrice systématique) Soit C un code linéaire de longueur n et de dimension k. On appelle matrice génératrice systématique du code C toute matrice obtenue à la sortie du pivot de Gauss appliqué à une matrice génératrice G quelconque du code C. La matrice génératrice systématique est sous la forme Gs = Ik k Pk×(n−k) où P dépend du code C. Une matrice génératrice systématique permet en fait de simplifier le codeur et le décodeur de C. Examinons ici le codeur (sous forme systématique). Si D est le mot d’information en entrée du codeur systématique, alors le mot de code en sortie sera C = D · Gs = D · Ik = D |{z} k information Pk×(n−k) D · Pk×(n−k) . {z } | parité Ainsi si on utilise un codeur systématique, le mot de code correspondant à D comporte deux parties. Les k premiers bits sont les bits d’information (égaux aux bits du mot d’information D) alors que les (n − k) bits 13 Décodeur des codes linéaires restants dépendent de D et du code et sont appelés bits de parité. En pratique, (n − k) est petit devant n. Le codeur ne doit plus calculer que (n − k) bits au lieu de n pour un codeur quelconque. Exemple 1.6 (Code de parité) On appelle code de parité binaire de longueur n un code binaire de longueur n dont les mots sont tous les n-uplets binaires de poids de Hamming pair. Ce code C est linéaire car 1. Le mot 0 est un mot de poids pair donc 0 ∈ C. 2. La somme de deux mots de poids pair est un mot de poids pair. La dimension de ce code est assez simple à calculer. En effet, il y a en tout 2n n−uplets binaires. La moitié de ces mots est de poids pair. Il y a donc 2n /2 = 2n−1 mots de poids pair. Donc |C| = 2n−1 , ce qui donne une dimension k = n − 1. La distance minimale de ce code, qui est le plus petit poids non nul possible est dmin = 2. Le code de parité binaire de longueur n a donc pour paramètres (n, n − 1, 2). Calculons maintenant sa matrice génératrice systématique. On sait qu’elle est de la forme x x . I Gs = n−1 x x Or chaque ligne de Gs est un mot de code. Le nombre de 1 1. On obtient donc, 1 0 ··· 0 1 Gs = . .. .. . 0 0 ··· 1.6 est pair. Les x à remplir sont donc tous égaux à 0 1 0 1 .. .. . . 1 1 Décodeur des codes linéaires Nous rappelons tout d’abord le rôle d’un décodeur. Le décodeur reçoit des mots du code passés à travers un canal de transmission. Ainsi, si le canal est un canal binaire symétrique, le décodeur recevra des mots de code entachés d’erreurs aléatoires. Si le canal est un canal binaire à effacement, le décodeur recevra des mots de code dont certains bits sont effacés, etc. Le décodeur est une boîte noire dont l’entrée est le mot de code « bruité » sortant du canal et la sortie est un mot d’information qui peut être le mot d’information transmis ou pas. La figure 1.7 donne un schéma fonctionnel du décodeur. Mots de code ”bruités” Décodeur Bits d’information Figure 1.7 – Schéma de base du décodeur De façon plus détaillée, le décodage s’effectue en deux étapes. Tout d’abord le décodeur trouve, parmi tous les mots de code, le mot qui maximise la vraisemblance car nous ne considérons ici que le décodeur optimal minimisant la probabilité d’erreur. Ensuite, à partir de ce mot de code, le décodeur en tire les bits d’information. Si le codeur est systématique, alors les bits d’information sont tout simplement les k premiers bits du mot de code trouvé. Ici aussi, on voit que la forme systématique permet de simplifier le passage du mot de code au mot d’information. Il n’y a pas de matrice à inverser. La figure 1.8 donne un schéma d’un tel processus. Mot de code ”bruité” Maximum de vraisemblance Mot de code Vers l’information Mot d’information Figure 1.8 – Schéma détaillé du décodeur L’algorithme 1, plus détaillé, est donné en pseudo-code. Cependant, la recherche de mots le plus proche 14 Codage correcteur d’erreur Algorithm 1 Décodage sur canal binaire symétrique 1: procedure Décodage(y) 2: if y ∈ C then 3: ĉ ← y 4: Goto 9 5: else 6: Goto 8 7: end if 8: ĉ ← arg minc∈C dH (c, y) 9: return D = ĉ[1 : k] 10: end procedure . Décodage de y sur BSC . Maximum de vraisemblance . Les k premiers bits sont les bits d’info. ne peut pas se faire, en pratique, de façon exhaustive. Par exemple, dans les standards de TV numérique non HD, les codes utilisés sont des codes de Reed-Solomon dont le nombre de mots est 256144 ' 10115 . A titre de comparaison, la partie visible de notre univers contiendrait environ 1080 atomes ! ! Il nous faut donc trouver des algorithmes qui effectuent cette recherche de mot de code le plus proche de y de façon la plus efficace possible. Une discussion analogue sur la complexité de l’approche exhaustive est menée dans d’autres cas de figure dans la sous-section 3.4.3. 1.6.1 Notion d’orthogonalité et de code dual Nous reprenons la notation « matrice ligne » des vecteurs. Deux mots X et Y de longueur n sont dits orthogonaux si et seulement si n X xi yi = 0. X ·Y> = i=1 Attention, les symboles sont dans F2 et l’orthogonalité ici est bien différente du cas de l’espace euclidien. Tout mot de poids de Hamming pair est orthogonal à lui-même ! Soit C un code linéaire de longueur n et de dimension k. Le code dual de C, que l’on note C ⊥ , est l’ensemble des mots de longueur n orthogonaux à tous les mots de C. Il s’agit d’un code linéaire de longueur n aussi et de dimension n − k. Mais contrairement au cas de l’espace euclidien, le code dual peut avoir une intersection non nulle avec le code primal. Ainsi, il existe aussi des codes auto-duaux, c’est-à-dire, des codes qui vérifient C = C ⊥ . A titre d’exercice, vous pouvez vérifier que le code dual d’un code de parité de longueur n est tout simplement le code à répétition de longueur n. 1.6.2 Matrice de contrôle de parité Définition 1.10 (Matrice de contrôle de parité) Soit C un code de longueur n et de dimension k. Une matrice de contrôle de parité de C est toute matrice H qui est matrice génératrice de C ⊥ . Ainsi H est une matrice à n − k lignes et n colonnes. Soit G une matrice génératrice de C. Toute matrice H de rang n − k, à n − k lignes et n colonnes, qui vérifie 2 > Gk×n · Hn×(n−k) = 0k×(n−k) (1.9) est une matrice de contrôle de parité de C. L’idée de la preuve de ce résultat est la suivante : – Tout mot de C s’écrit D · G où D est un mot d’information, c’est-à-dire une matrice ligne à k colonnes. – Tout mot de C ⊥ s’écrit D0 · H où D0 est un mot d’information, c’est-à-dire une matrice ligne à n − k colonnes. – Tout mot de C est orthogonal à tout mot de C ⊥ , D · G · H > · D0> = 0, ∀D, D0 . – On en déduit donc G · H > = 0. 2. Les indices représentent, comme d’habitude, les dimensions des matrices. 15 Décodeur des codes linéaires Il est une matrice de contrôle de parité qui se déduit facilement de la matrice génératrice systématique du code C. Il s’agit de la matrice de contrôle de parité systématique. La matrice génératrice systématique s’écrit Gs = Ik k Pk×(n−k) . (1.10) Définissons la matrice de contrôle de parité systématique, h > k Hs = −P(n−k)×k In−k i . (1.11) On constate que Hs a (n − k) lignes, n colonnes et qu’elle est de rang n − k. De plus, nous avons Gs · Hs> = −P + P = 0. Donc Hs vérifie l’équation (1.9). Hs est bien une matrice de contrôle de parité du code C. Notez bien que la matrice de contrôle de parité systématique a l’identité à droite et non à gauche comme la matrice génératrice systématique. 1.6.3 Notion de syndrome Nous allons maintenant donner une méthode simple qui permet d’implémenter de façon efficace la condition (ligne 2) de l’algorithme 1. Nous cherchons à savoir si le mot reçu est un mot de code ou pas. Pour ceci, nous pouvons nous aider de la figure 1.9. C⊥ S R C Figure 1.9 – Justification du syndrome : schéma de principe On voit que si le mot reçu est un mot de code, alors la projection orthogonale sur le code dual est égale à 0. Si le mot reçu n’est pas dans le code, elle n’est pas égale à 0. Cette projection orthogonale du mot reçu est appelée « syndrome ». Pour la calculer, il suffit d’évaluer les produits scalaires entre le mot reçu et les vecteurs d’une base du code dual qui sont les lignes de H. Le vecteur évalué sera donné comme combinaison linéaire des vecteurs de la base de C ⊥ . D’où la définition suivante, Définition 1.11 (Syndrome) Soit Y un mot de longueur n quelconque. On appelle syndrome la quantité suivante S = Y · H> où H est une matrice de contrôle de parité de C. A partir de l’évaluation du syndrome nous pouvons en déduire l’appartenance ou non de Y au code C. Résultat 1.4 Y ∈ C si et seulement si S , Y · H > = 0. Nous notons que S est un vecteur-ligne à (n − k) colonnes. 1.6.4 Borne de Singleton Dans cette sous-section, nous donnons deux résultats : le premier permet de caractériser dmin d’un code à travers sa matrice de contrôle de parité. Et le second est encore obtenu grâce à l’aide de la matrice de contrôle de parité et exhibe une borne entre les trois paramètres définissant un code ce qui prouve que certains paramétrages ne permettent pas de construire des codes. 16 Codage correcteur d’erreur Résultat 1.5 Pour tout code linéaire en bloc, dmin est égale au plus petit nombre de colonnes dépendantes de H. En effet, si les colonnes sont dépendantes, cela veut dire qu’il existe un vecteur-ligne non-nul de longueur n, noté X, tel que X · H > = 0. Or d’après le résultat 1.4, X appartient au code et donc X admet au minimum dmin composantes non nulles ce qui finit de prouver le résultat 1.5. Résultat 1.6 (Borne de Singleton) Pour tout code linéaire en bloc (n, k, dmin ), on a dmin ≤ n − k + 1. Nous allons raisonner par l’absurde. D’après la sous-section 1.6.2 , on sait que le rang de la matrice H, noté rg, vaut (n − k). Supposons que rg < dmin − 1. Alors on peut contruire un vecteur-ligne de longueur n ayant (rg + 1) composantes non nulles, noté X, tel que X · H > = 0 et donc tel que X soit un mot de code ce qui est impossible si rg + 1 < dmin . Donc nécessairement, on a rg + 1 ≥ dmin ce qui finit de démontrer le résultat 1.6. 1.6.5 Décodage par syndrome : exemple avec le code de Hamming (7, 4, 3) A partir de ce code particulier, nous allons montrer comment développer un algorithme de décodage et notamment de correction d’erreur grâce à la notion de syndrome. Nous définissons tout d’abord le type de codes sur lequel nous allons travailler qu’est un code de Hamming binaire. Définition 1.12 (Code de Hamming binaire) Soit m ≥ 3 un entier. Un code de Hamming binaire est un code de longueur 2m − 1 et de dimension 2m − m − 1. Sa matrice de contrôle de parité contient, en tant que colonnes, tous les m−uplets binaires non nuls (il y en a bien 2m − 1). Nous nous intéressons ici plus particulièrement de parité systématique, par exemple, 1 1 Hs = 0 1 1 1 Notons que, en utilisant les équations (1.11) et 1 0 Gs = 0 0 au cas m = 3. Nous choisissons une matrice de contrôle 1 1 0 0 1 1 1 0 0 0 1 0 0 0 . 1 (1.10), Hs correspond à la matrice génératrice systématique 0 0 0 1 0 1 1 0 0 1 1 1 . 0 1 0 1 1 0 0 0 1 0 1 1 Intéressons-nous maintenant au décodage de ce code. Pour cela, considérons que nous avons reçu un mot Y qui est une matrice ligne 1 × 7. Suivons la procédure de décodage donnée dans l’algorithme 1. Nous voulons d’abord savoir si le mot reçu Y est dans le code ou pas. Calculons donc le syndrome S = Y · H >. Puisque ce code est utilisé sur un canal binaire symétrique, alors la sortie du canal est égale au mot de code transmis, éventuellement entaché d’erreurs. Ceci peut s’écrire de la façon suivante, Y =C +E où C est le mot de code transmis et E est le « mot d’erreur ». Si E s’écrit E = (e1 e2 · · · e7 ) alors ei = 0 signifie qu’il n’y a pas d’erreur en position i et ei = 1 signifie qu’il y a une erreur en position i. En effet, l’addition d’un 1 change un 0 en 1 et un 1 en 0. Donc l’addition d’un 1 en position i correspond exactement à une erreur en position i. Recalculons donc le syndrome S = = Y · H> > > C | ·{zH } +E · H =0 17 Performances avec C ·H > = 0 car C est un mot de code (voir résultat 1.4). Donc, finalement, nous en arrivons à un résultat très important, le syndrome est un vecteur qui dépend linéairement du mot d’erreur E, et plus du tout du mot de code transmis C. S = E · H >. (1.12) Poursuivons la procédure de décodage en nous inspirant de l’algorithme 1. Evidemment, s’il n’y a pas d’erreur, alors E = 0 ce qui donne un syndrome nul (S = 0). Cependant, si le mot reçu n’est pas un mot de code, alors S 6= 0. L’algorithme 1 nous demande de chercher le mot de code C le plus proche du mot reçu Y au sens de la distance de Hamming. Ceci revient à dire qu’il s’agit du mot de code C tel que dH (C, Y ) est minimisé. Or dH (C, Y ) = wH (E) où wH (E) désigne le poids de Hamming de E c’est-à-dire le nombre de 1 du mot E. Le décodeur doit donc chercher le mot de code correspondant au plus petit nombre d’erreurs. Commençons donc par regarder ce que donne une erreur simple. S’il y a une seule erreur en position i, alors ei = 1 et ej = 0 pour j 6= i. On note hi la i−ème colonne de H. S’il y a une erreur unique en position i, le syndrome s’écrit S = E · H > = h> i . Or toutes les colonnes de H sont distinctes et aucune n’est égale à 0. Donc on peut distinguer, sans ambiguïté, en ne connaissant que la valeur du syndrome, les 7 localisations possibles d’une erreur simple. Pour résumer, le syndrome, dans cet exemple, est un vecteur à 3 composantes binaires. Il peut donc prendre 8 valeurs possibles. Ces 8 valeurs possibles correspondent à 0 erreur (S = 0) ou une erreur en position i, i = 1, 2, . . . , 7 (S = h> i ). On voit que s’il y a plus d’une erreur, alors le syndrome va reprendre l’une des 8 valeurs possibles déjà prises dans le cas où il y a 0 ou une erreur. Le code de Hamming de longueur 7 ne corrige donc qu’une erreur (en fait c’est le cas de tous les codes de Hamming). Si on liste les 16 mots de code, on peut observer que le poids minimal d’un mot de code est égal à 3 et donc dmin = 3. Ce code ne pouvait de toute façon pas corriger plus d’une erreur (voir résultat 1.2). Exemple 1.7 Supposons que Y = (0 1 1 0 1 1 1). Alors, S = Y · Hs> = (1 1 0) = h> 3 ce qui correspond à une erreur en position 3. Donc, on en déduit E = (0 0 1 0 0 0 0) et donc le mot de code décodé sera C = Y + E = (0 1 0 0 1 1 1). Le codeur étant sous forme systématique, ceci correspond à la séquence d’information D = (0 1 0 0). 1.7 Performances Nous donnons à présent une borne supérieure de la probabilité d’erreur d’un code en bloc linéaire sur un canal binaire symétrique. Nous commençons par calculer la probabilité d’erreur par mot de code. Probabilité d’erreur par mot. Supposons un code linéaire C de paramètres (n, k, dmin ). Il y a une erreur « mot » lorsque le mot décodé n’est pas égal au mot émis. Or, on sait qu’un code en bloc de distance minimale dmin corrige toutes les configurations d’erreurs dont le nombre est inférieur ou égal à t (voir résultat 1.2), mais évidemment, il peut en corriger d’autres. Puisque le code est linéaire, on peut supposer que le mot 0 est émis. Dans ce cas, le mot reçu correspond aussi au mot d’erreur. On peut donc borner la probabilité d’erreur par mot de la façon suivante, Pe,mot ≤ n X i=t+1 Cni pi (1 − p)n−i (1.13) où t = b(dmin − 1)/2c est la capacité de correction du code. Dans l’équation (1.13), le terme Cni pi (1 − p)n−i représente la probabilité que le mot reçu soit de poids i (i bits égaux à 1, n − i bits égaux à 0 et, bien sûr, Cni le nombre de ces mots). Le membre de droite de cette équation n’est donc que la probabilité que le mot reçu soit de poids de Hamming strictement supérieur à t. 18 Codage correcteur d’erreur Approximation de la probabilité d’erreur par bit d’information. A partir de l’équation (1.13), on peut en déduire une approximation de la probabilité d’erreur par bit d’information après décodage. Dans l’équation (1.13), chaque terme de la somme correspond à un poids i de l’erreur. Le premier terme, Cnt+1 pt+1 (1 − p)n−(t+1) est évidemment dominant. Si un événement de ce type survient, cela veut dire que le mot reçu a un poids de (t + 1) et alors le mot décodé (qui n’est pas 0 car il y a erreur sur le mot décodé) est le mot de code le plus proche de 0 qui est, par définition, de poids dmin . Donc, le mot décodé admet dmin bits en erreur sur les n bits qui le composent. Ainsi, on peut approcher la probabilité d’erreur par bit d’information (en supposant que les bits d’information et de parité seront en erreur, après décodage, avec la même probabilité) par Pb ' dmin t+1 t+1 C p (1 − p)n−(t+1) . n n De plus, si p 1, on peut encore simplifier l’expression précédente (en disant que (1 − p) ≈ 1) et obtenir que dmin t+1 t+1 C p . (1.14) Pb ' n n 1.8 Bilan Dans ce chapitre, nous vous avons donné un aperçu du codage de canal. Vous avez vu quels pouvaient être les critères pour construire un bon code ainsi que la technique optimale de décodage et une de ses implémentations via le décodage par syndrome. Néanmoins, le domaine du codage est, bien évidemment, beaucoup plus vaste que ce que l’on a découvert dans ce chapitre. En effet, de nombreuses familles de codes linéaires avec leurs avantages et inconvénients respectifs ont été créées au cours des cinquante dernières années : codes cycliques, codes de géométrie algébrique, codes convolutifs, turbo-codes, codes LDPC, codes sur réseaux de points, etc. De plus, leur décodage dépendant des canaux de communication, il y a de nombreux algorithmes de décodage possibles avec de nouveau leurs performances et complexité respectives. Ceci sera étudié en profondeur en COM224. Les deux chapitres suivants vont nous permettre de relier le codage à la problématique des communications. Le chapitre 2 se focalisera sur la théorie de l’information qui donnera les limites fondamentales que l’on ne peut pas dépasser en utilisant le codage alors que le chapitre 3 va relier le codage à la modulation. Nous rappelons ci-dessous les concepts de base et savoir-faire concernant ce chapitre à acquérir durant cette unité d’enseignement. Les concepts de base : • Paramètres de dimensionnement d’un code : n, k, distance minimale de Hamming, • Matrice génératrice, matrice de contrôle de parité, • Décodage maximum de vraisemblance : application par le décodage par syndrome, • Notion de capacité de correction et de capacité de détection. Les savoir-faire : • Déterminer les paramètres d’un code (cf. TD1, TD2), • Implémenter le décodage par syndrome (cf. TD2). Chapitre 2 Théorie de l’information 2.1 Introduction Dans le chapitre 1, vous avez découvert les codes correcteurs d’erreur avec notamment le principe de construction de ces codes ainsi que la règle de décodage optimale, dite règle du maximum de vraisemblance (ML). Vous avez vu que ces codes décodés optimalement permettaient de corriger ou de détecter un certain nombre d’erreurs introduites lors d’une communication sur un canal (typiquement le canal binaire symétrique). Dans ce chapitre, nous allons changer de point de vue puisque nous allons nous intéresser aux performances ultimes (c’est-à-dire, qu’un code ne pourra dépasser) d’un système de communication. Dans le chapitre précédent, vous avez vu qu’un code correcteur de rendement R = k/n où k est le nombre de bits d’information envoyés pendant n utilisations de canal pouvait améliorer la probabilité d’erreur du système si sa distance minimale de Hamming était augmentée par rapport au cas non codé (cf. section 1.7). Par performances ultimes, nous entendons : quels peuvent être les gains espérés en probabilité d’erreur par l’utilisation de codes de rendement R strictement positif. Vous verrez que la réponse à cette question se formule en fait de manière radicalement différente puisque nous allons montrer que la probabilité d’erreur peut être rendue arbitrairement faible pour peu que R ne dépasse pas un certain seuil que nous appellerons capacité du canal et ceci sous l’hypothèse que k et n tendent vers l’infini. Pour arriver à ce résultat fondamental, ce chapitre sera organisé de la manière suivante : • en section 2.2, nous introduisons les notions d’entropie et d’information mutuelle parce qu’elles vont jouer un rôle essentiel dans la définition de la capacité. • Evidemment la capacité va dépendre de chaque type de canal rencontré par les bits d’information. C’est pourquoi, en section 2.3, nous définissons les modèles de canaux sur lesquels nous allons travailler. En l’occurrence, nous nous intéressons à tous les canaux discrets sans mémoire dont les deux exemples les plus fameux sont le canal binaire symétrique (cf. sections 1.2.1 et 3.5.2) et le canal à effacement (cf. section 1.2.2). • en section 2.4, nous rentrons dans le vif du sujet en donnant la définition de la capacité d’un canal discret sans mémoire. Nous y énonçons le théorème principal de ce chapitre démontré par C.E Shannon en 1948 et qui dit en substance que pour tout rendement R > 0 inférieur à la capacité C, il est possible de communiquer avec une probabilité d’erreur aussi faible que l’on souhaite pour peu que l’on choisisse une taille de mot de code n suffisamment grande. En revanche, pour tout rendement R supérieur à la capacité C, cela n’est pas possible. • en section 2.5, nous montrons quelques expressions de la capacité pour les canaux discrets sans mémoire les plus communs comme le canal binaire symétrique, le canal à effacement et même le canal gaussien. En section 2.6, nous faisons un bilan de ce chapitre en rappelant les éléments essentiels à retenir et les outils à maîtriser. Dans ce polycopié, par souci de simplicité et faute de temps, la plupart des preuves associées à ce chapitre sont omises Un cours complet sur la théorie de l’information est donné évidement dans le cycle Master sous le sigle COMMDI225. Tant dans ce chapitre que en COMMDI225, le système se ramène à une communication dite point-à-point (typiquement entre un mobile et une station de base, ou entre un modem ADSL et le DSLAM du central téléphonique). Afin d’améliorer les réseaux (cf. notam- 20 Théorie de l’information ment la deuxième conférence d’ouverture), un système ne doit plus se concevoir comme une juxtaposition de communications point-à-point mais d’emblée comme une communication multipoint-à-multipoint ce qui implique de développer la théorie de l’information pour des flux (et non un flux) d’information. Ceci s’appelle la théorie de l’information pour les réseaux (Network Information Theory) et fait l’objet de recherche intense actuellement et elle est partiellement enseignée dans COM345. Dans la suite du chapitre, sauf indication contraire, tous les variables aléatoires sont discrètes sur un alphabet fini. 2.2 2.2.1 Entropie et Information mutuelle Entropie L’entropie va mettre de capter le degré d’incertitude contenue dans une variables aléatoire. Avant de donner une définition mathématique précise de l’entropie, nous allons discuter de quelques propriétés que l’entropie doit intuitivement satisfaire. Par exemple, une variable aléatoire X prenant toujours la même valeur, disons 42, n’a pas d’incertitude puisqu’elle est égale à coup sûr à son unique valeur, ici 42. Une telle variable aléatoire sera dite déterministe. Dans ce cas, l’entropie de X doit être égale à 0. A contrario, toute variable aléatoire qui n’est pas déterministe et donc de réalisation incertaine, doit présenter une entropie strictement plus grande que 0. D’autres propriétés souhaitables ressortent si on compare l’entropie de différentes variables aléatoires. Par exemple, si on considère deux variables aléatoires binaires X et Y prenant leurs valeurs dans {0, 1} pour lesquelles X admet une loi de probabilité quelconque alors que Y admet une loi uniforme (c’est-à-dire que Y est égale à 0 avec une probabilité 1/2 et égale à 1 avec une probabilité 1/2). Intuitivement Y est plus incertaine que X dans le sens où il est plus difficile de deviner la valeur de la réalisation de Y , et donc l’entropie de Y doit être plus grande que l’entropie de X. Plus généralement, on s’attend à ce qu’une variable uniforme ait une plus grande entropie parmi toutes les variables aléatoires ayant le même alphabet. Nous verrons que la définition 2.1 de l’entropie a les propriétés décrites ci-dessus, ainsi que d’autres propriétés très intuitives que l’on peut exiger d’une mesure d’incertitude. Définition 2.1 (Entropie) Soit X une variable aléatoire sur un alphabet fini X avec loi de probabilité PX (·). L’entropie de cette variable aléatoire est X H(X) := − PX (x) log2 (PX (x)) [bits], (2.1) x∈X avec, par convention, 0 · log2 (0) = 0. Notez que l’entropie d’une variable aléatoire X ne dépend pas des valeurs que cette variable aléatoire prend, c’est-à-dire des éléments de l’alphabet X , mais uniquement des probabilités PX (·) que ces valeurs prennent. En particulier, une variable qui prend les valeurs 0 et 1 avec probabilité 1/2 chacune a la même entropie qu’une variable aléatoire qui prend les valeurs −100 et 345 avec probabilité 1/2 chacune. Exemple 2.1 (Entropie d’une variable uniforme) Soit X une variable aléatoire de loi uniforme sur tout l’alphabet X , c’est-à-dire, 1 , ∀x ∈ X , (2.2) PX (x) = |X | où |X | désigne le cardinal (le nombre d’éléments) de l’alphabet X . L’entropie de X vaut H(X) = − = X x∈X PX (x) log2 (PX (x)) = − log2 (|X |). X 1 1 1 log2 = |X | · log2 (|X |) |X | |X | |X | x∈X (2.3) Exemple 2.2 (Entropie d’une variable déterministe) Soit X une variable déterministe qui prend toujours la valeur x0 ∈ X , c’est-à-dire, ( 1, si x = x0 PX (x) = . (2.4) 0, ailleurs 21 Entropie et Information mutuelle L’entropie de X vaut H(X) = X PX (x) log2 (PX (x)) = 1 log2 (1) + x∈X X x∈X \x0 0 · log2 (0) = 0, (2.5) où la dernière somme est égale à 0 parce que ; par convention, nous avons 0 · log2 (0) = 0. Les deux exemples 2.1 et 2.2 traitent en fait des deux cas extrêmes de l’entropie. En effet, nous avons le résultat suivant. Résultat 2.1 (Valeurs extrêmes de l’entropie) Pour toute variable aléatoire X sur un alphabet fini X , l’entropie de X satisfait 0 ≤ H(X) ≤ log2 (|X |). (2.6) En outre, – H(X) = 0 si et seulement si X est déterministe – H(X) = log2 (|X |) si et seulement si X est uniforme sur tout X . La définition 2.1 de l’entropie a donc bien les propriétés intuitives souhaitées décrites dans les deux premiers paragraphes de cette sous-section. Continuons avec un troisième exemple, moins extrême, pour nous convaincre une dernier fois du lien entre entropie et degré d’incertitude. Exemple 2.3 Soient X et Y deux variables aléatoires binaires qui indiquent s’il y a du soleil en Martinique (X) et à Paris (Y ). Ainsi X et Y ont le même alphabet, X = Y = {0, 1} où 0 représente de la pluie et 1 du soleil. De plus – X = 0 (pluie en Martinique) admet une probabilité de 1/4 et X = 1 (soleil en Martinique) une probabilité de 3/4. – Y = 0 (pluie à Paris) admet une probabilité de 5/8 et Y = 1 (soleil à Paris) avec probabilité de 3/8. L’entropie de X (temps à Martinique) se calcule de la manière suivante X H(X) = − PX (x) log2 (PX (x)) x∈X = −PX (0) log2 (PX (0)) − PX (1) log2 (PX (1)) = −(1/4) log2 (1/4) − (3/4) log2 (3/4) ≈ 0.8113, ce qui est bien entre 0 et log2 (2) = 1 comme indiqué par le résultat 2.1. L’entropie de Y (temps à Paris) se calcule de la manière suivante X H(Y ) = − PY (y) log2 (PY (y)) y∈Y = −PY (0) log2 (PY (0)) − PY (1) log2 (PY (1)) = −(5/8) log2 (5/8) − (3/8) log2 (3/8) ≈ 0.9544. On voit donc que le temps à Paris a une entropie plus grande que le temps en Martinique, ce qui correspond bien à notre intuition que le temps à Paris est plus incertain de celui en Martinique. Dans ce chapitre, la plupart du temps, on parlera d’entropie pour des variables aléatoires binaires. C’est pourquoi La définition suivante nous sera fort utile car nous permettra de rendre nos futures expressions analytiques plus compactes. Définition 2.2 (Fonction d’entropie binaire) La fonction d’entropie binaire est définie comme suit Hb (p) := −p log2 (p) − (1 − p) log2 (1 − p), (2.7) où le seul argument p doit être un nombre réel dans l’intervalle [0, 1]. Notez que Hb (p) est égale à l’entropie d’une variable aléatoire binaire X, Hb (p) = H(X), (2.8) si X est p-Bernoulli, c’est-à-dire, si X prend la valeur 1 avec une probabilité p et la valeur 0 avec une probabilité (1 − p). 22 Théorie de l’information Nous avons tracé la Hb (p) sur la figure 2.1. Notez que cette fonction Hb (p) est strictement concave 1 et symétrique par rapport à la valeur 1/2. Sa valeur minimale est atteinte en p = 0 et p = 1 où elle est égale à 0. Sa valeur maximale est atteinte en p = 1/2 où elle est égale à 1. 1 0.9 0.8 0.7 Hb(p) 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1 p Figure 2.1 – Fonction d’entropie binaire Hb (p) La définition 2.1 de l’entropie s’applique en fait à pleins d’autres domaines que les systèmes de communications numériques. Ainsi, elle représente la limite fondamentale de la compression des données, dans le sens où toute suite de variables aléatoires X1 , . . . , Xm indépendantes et identiquement distribuées selon la loi PX peut être codée avec mH(X) bits si m est suffisamment grand. Ce résultat est central dans la problématique de compression de sources. Dans le cycle Master, cette problématique est traitée en détail pour son aspect théorique en COMMDI225 et pour son aspect pratique dans les parcours « Systèmes et applications multimédia, vidéo et audio » et « Image » (SI222, SI240, SI340, SI350, etc). 2.2.2 Entropie conjointe L’entropie conjointe représente une généralisation de l’entropie à une paire de variables aléatoires. Notons d’abord que toute paire (X, Y ) de deux variables aléatoires sur des alphabets finis X et Y peut être vue comme une variable aléatoire avec un alphabet fini plus grand égal au produit cartesien X × Y. Donc, la définition 2.1 s’applique aussi à ce cas et on obtient la définition suivante pour l’entropie d’une paire de variables aléatoires, dite aussi entropie conjointe. Définition 2.3 (Entropie conjointe) Soient X et Y deux variables aléatoires sur des alphabets discrets X et Y avec comme loi de probabilité conjointe PXY (x, y). L’entropie conjointe de cette paire de variables aléatoires est définie comme X H(X, Y ) := − PXY (x, y) log2 (PXY (x, y)). (2.9) x∈X ,y∈Y Notez que l’entropie conjointe est symétrique par rapport à ces deux arguments, c’est-à-dire, qu’on a toujours H(X, Y ) = H(Y, X). De plus, l’entropie jointe ne mesure pas les incertitudes des deux variables aléatoires individuellement, mais l’incertitude qu’il existe sur l’ensemble des deux. En particulier, elle prend en compte les liens qui existent entre X et Y , comme on peut voir par les deux exemples 2.4 et 2.5 suivants. 1. strictement concave signifie que pour tout λ, p, q ∈ [0, 1], Hb (λp + (1 − λ)q) ≥ λHb (p) + (1 − λ)Hb (q), avec égalité si et seulement si λ = 0, λ = 1, ou p = q. 23 Entropie et Information mutuelle Exemple 2.4 (Variables indépendantes) Soient X et Y deux variables aléatoires indépendantes sur des alphabets finis X et Y. Ceci implique que PXY (x, y) = PX (x)PY (y) pour tous x ∈ X et y ∈ Y. Donc : XX H(X, Y ) = − PXY (x, y) log2 (PXY (x, y)) x∈X y∈Y = = = = − − − − XX x∈X y∈Y XX x∈X y∈Y PX (x)PY (y) log2 (PX (x) · PY (y)) PX (x)PY (y) log2 (PX (x)) − XX x∈X X x∈X y∈Y XX PX (x)PY (y) log2 (PY (y)) x∈X y∈Y XX PY (y) PX (x) log2 (PX (x)) − PX (x) PY (y) log2 (PY (y)) PX (x) log2 (PX (x)) − = H(X) + H(Y ), X y∈Y x∈X PY (y) log2 (PY (y)) y∈Y (2.10) où dans la troisième égalité nous avons utilisé que pour a, b > 0, log2 (ab) = log2 (a) + log2 (b) P tout nombre réel P et dans la cinquième égalité nous avons utilisé que y∈Y PY (y) = 1 et x∈X PX (x) = 1. Exemple 2.5 (Variables identiques) Soit X = Y , c’est-à-dire, X = Y et pour tout x ∈ X , PXY (x, y) = PX (x) si x = y et PXY (x, y) = 0 si y 6= x. Donc, nous avons XX X H(X, Y ) = − PXY (x, y) log2 (PXY (x, y)) = − PX (x) log2 PX (x) = H(X). (2.11) x∈X y∈Y x∈X En fait, les deux exemples 2.4 et 2.5 traitent des deux cas extrêmes de l’entropie conjointe. C’est pourquoi, nous pouvons énoncer le résultat suivant. Résultat 2.2 (Valeurs extrêmes de l’entropie conjointe) Pour toute paire de variables aléatoires X et Y sur des alphabets finis X et Y, l’entropie conjointe H(X, Y ) satisfait max{H(X), H(Y )} ≤ H(X, Y ) ≤ H(X) + H(Y ). (2.12) En outre, – H(X, Y ) = H(X) si et seulement si Y = g(X) pour une fonction g quelconque. – H(X, Y ) = H(X) + H(Y ) si et seulement si X et Y sont indépendants. Exemple 2.6 Soit X une variable aléatoire déterminant le lieu où se trouve Scarlett Johansson en ce moment : X = 1 veut dire qu’elle est à Paris et X = 0 qu’elle est à Hollywood. Soit Y une variable aléatoire déterminant la météo du lieu dans lequel se trouve Scarlett Johansson en ce moment : Y = 1 veut dire qu’elle a du soleil et Y = 0 veut dire qu’il pleut. Les deux variables aléatoires X et Y ont la loi de probabilité conjointe suivante PXY (0, 0) = 0, PXY (1, 0) = 1/3, PXY = (1, 1) = 1/3, PXY (0, 1) = 1/3. L’entropie conjointe de X et Y est donc X H(X, Y ) = − PXY (x, y) log2 (PXY (x, y)) x∈X ,y∈Y = −0 log2 (0) − (1/3) log2 (1/3) − (1/3) log2 (1/3) − (1/3) log2 (1/3) = log2 (3) ≈ 1.585. Notons aussi que, grâce à la formule de loi marginale, on obtient P PX (0) = y∈Y PXY (x, y) = PXY (0, 0) + PXY (0, 1) = 0 + 1/3 = 1/3 PX (1) = 1 − PX (0) = 2/3 Donc, l’entropie de X vaut H(X) = − X PX (x) log2 (PX (x)) x∈X = −(1/3) log2 (1/3) − (2/3) log2 (2/3) ≈ 0.925. 24 Théorie de l’information De la même façon, on obtient que H(Y ) ≈ 0.925. Ainsi, sur cet exemple, nous retrouvons bien le résultat 2.2 puisque H(X) = H(Y ) = 0.925 < H(X, Y ) = 1.585 < H(X) + H(Y ) = 1.85, 2.2.3 Entropie conditionnelle Grâce à l’entropie conditionnelle d’une variable aléatoire X par rapport à une autre variable aléatoire Y , on va capturer l’incertitude qu’on a sur X, une fois qu’on a observé Y . Notez que cette entropie conditionnelle représente une moyenne, parce que l’incertitude qu’on a sur X peut varier selon les différentes réalisations de Y . Nous définissons donc d’abord l’entropie conditionnelle de X sachant que Y est égale à une réalisation y ∈ Y. Soit PX|Y (x|y) la loi de probabilité conditionnelle de X si Y = y. X H(X|Y = y) := − PX|Y (x|y) log2 (PX|Y (x|y)). (2.13) x∈X L’entropie conditionnelle de X sachant Y est la moyenne de toutes les entropies conditionnelles H(X|Y = y) moyennées avec la loi de probabilité PY (·). Définition 2.4 (Entropie conditionnelle) Soient X et Y deux variables aléatoires sur des alphabets finis X et Y avec une loi de probabilité conjointe PXY (x, y). L’entropie conditionnelle de X sachant Y est X H(X|Y ) := PY (y)H(X|Y = y) (2.14) y∈Y − = − = X PY (y) y∈Y XX X PX|Y (x|y) log2 (PX|Y (x|y)) (2.15) x∈X PXY (x, y) log2 (PX|Y (x|y)). (2.16) x∈X y∈Y Les deux dernières égalités ont été obtenues grâce à la note de bas de page 2 . Exemple 2.7 (Variables indépendantes) Soient X et Y deux variables aléatoires indépendantes sur des alphabets X et Y. Ceci implique que PXY (x, y) = PX (x)PY (y) et PX|Y (x|y) = PX (x) pour tous x ∈ X et y ∈ Y. Donc XX H(X|Y ) = − PXY (x, y) log2 (PX|Y (x|y)) x∈X y∈Y = = = = − − − XX PXY (x, y) log2 (PX (x)) x∈X y∈Y XX x∈X X PY (y) PX (x) log2 (PX (x)) y∈Y PX (x) log2 (PX (x)) x∈X H(X). (2.18) Résultat 2.3 (Valeurs extrêmes de l’entropie conditionnelle) Pour toute paire de variables aléatoires X et Y sur des alphabets X et Y, l’entropie conditionnelle H(X|Y ) satisfait 0 ≤ H(X|Y ) ≤ H(X). (2.19) En outre, 2. Selon la règle de Bayes, PX|Y (x|y) = PXY (x, y) . PY (y) Grâce à la formule de la loi marginale, on a également PX|Y (x|y) = P PXY (x, y) . x∈X PXY (x, y) (2.17) 25 Entropie et Information mutuelle – H(X|Y ) = 0 si et seulement si X = f (Y ) pour une fonction f quelconque. (En effet, une fois qu’on a observé Y , on connaît parfaitement X et donc on n’a plus d’incertitude.) – H(X|Y ) = H(X) si et seulement si X et Y sont indépendants. (En effet, Y ne révèle rien sur les valeurs de X et donc l’entropie de X reste inchangé en observant Y .) Regardons maintenant l’exemple 2.6 sous l’œil de l’entropie conditionnelle et non de l’entropie conjointe. Exemple 2.8 Soient X et Y définies comme dans l’exemple 2.6. Nous calculons l’entropie de X sachant Y , c’est-à-dire l’incertitude qui existe sur le lieu où se trouve Scarlett Johansson une fois qu’on sait si elle a du soleil ou de la pluie. Nous calculons d’abord l’entropie sur le lieu X en sachant qu’elle a du soleil (Y = 0). Nous utilisons d’abord l’équation (2.17) pour obtenir les probabilités conditionnelles : ( PXY (0,0) 0 = 1/3 =0 PX|Y (0|0) = PXY (0,0)+P XY (1,0) (2.20) PX|Y (1|0) = 1 − PX|Y (0|0) = 1 Par l’équation (2.13), nous obtenons donc X H(X|Y = 0) = − PX|Y (x|0) log2 (PX|Y (x|0)) = −0 · log2 (0) − 1 · log2 (1) = 0. (2.21) x∈X De manière analogue, on obtient que ( PXY (0,1) PX|Y (0|1) = PXY (0,1)+P = 1/3 2/3 = 1/2 XY (1,1) PX|Y (1|1) = 1 − PX|Y (0|1) = 1/2. (2.22) et donc H(X|Y = 1) = − X x∈X PX|Y (x|1) log2 (PX|Y (x|1)) = −(1/2) log2 (1/2) − (1/2) log2 (1/2) = 1. (2.23) Donc, l’entropie conditionnelle est égale à H(X|Y ) = PY (0)H(X|Y = 0) + PY (1)H(X|Y = 1) = 1/3 · 0 + 2/3 · 1 = 2/3. (2.24) Si nous combinons les résultats de l’exemple 2.8 avec ceux de l’exemple 2.6, nous remarquons que H(X, Y ) = H(Y ) + H(X|Y ) = H(X) + H(Y |X). (2.25) Cette équation est toujours valable pour n’importe quel X et Y . L’équation est connue sous le nom de règle de chaînage (chain rule) et est une des équations les plus utilisées en théorie de l’information. Elle signifie que l’incertitude sur une paire de variables aléatoires (X, Y ) est égale à l’incertitude qu’on a sur X plus l’incertitude qu’on a sur Y une fois qu’on connaît X ou vice-versa. Autrement dit, le nombre de bits qu’il faut pour décrire la paire X, Y est égal au nombre de bits qui sont nécessaires pour décrire X plus le nombre de bits nécessaires pour décrire Y une fois que X est connue. Notez également que comme H(X) peut être différent de H(Y ), cela implique que généralement H(X|Y ) est différent de H(Y |X) ! 2.2.4 Information mutuelle Grâce à l’information mutuelle, on veut quantifier l’information commune entre X et Y , autrement dit l’information obtenue sur une variable aléatoire X en révélant une deuxième variable Y . Intuitivement on s’attend à ce que cette information soit nulle si X et Y sont indépendants et qu’elle soit maximale si X = Y dans le cas où Y révèle tout sur X. Comme le mot l’indique, l’information est mutuelle ce qui veut dire que l’information que X révèle sur Y est la même que Y révèle sur X. Techniquement parlant, l’information mutuelle est définie comme la réduction en incertitude (entropie) sur X qu’on obtient en révélant Y . Définition 2.5 (Information mutuelle) Soient X et Y deux variables aléatoires sur des alphabets finis X et Y avec une loi de probabilité conjointe PXY (x, y). L’information mutuelle de X et Y est I(X; Y ) := H(X) + H(Y ) − H(X, Y ) = H(X) − H(X|Y ) = H(Y ) − H(Y |X). (2.26) (2.27) 26 Théorie de l’information Nous voyons donc que l’information mutuelle est bien symétrique, I(X; Y ) = I(Y ; X). (2.28) Exemple 2.9 (Variables identiques) Soit X une variable aléatoire sur un alphabet fini X . L’information mutuelle entre X et elle-même est égale à I(X; X) = H(X) − H(X|X) = H(X), | {z } (2.29) =0 où nous avons utilisé le fait que X est une fonction de X, et donc par le résultat (2.3) que H(X|X) = 0. Exemple 2.10 (Variables indépendantes) Soient X et Y deux variables indépendantes sur des alphabet finis X et Y. Leur information mutuelle est I(X; Y ) = H(X) − H(X|Y ) = H(X) − H(X) = 0, | {z } (2.30) =H(X) où nous avons utilisé que X et Y sont indépendants, et donc par le résultat (2.3) que H(X|Y ) = H(X). Résultat 2.4 (Valeurs extrêmes de l’information mutuelle) Soient X et Y deux variables aléatoires sur des alphabets finis X et Y. L’information mutuelle entre les deux satisfait 0 ≤ I(X; Y ) ≤ min{H(X), H(Y )}. En outre, – I(X; Y ) = 0 si et seulement si X et Y sont indépendants. – I(X; Y ) = H(X) si et seulement si X = f (Y ) pour une fonction f quelconque. Idem, I(X; Y ) = H(Y ) si et seulement si Y = g(X) pour une fonction g quelconque. 2.3 Modèle des canaux discrets sans mémoire (DMC) Dans le chapitre 1, vous avez vu le BEC et le BSC. Ces deux canaux appartiennent en fait à une classe de canaux plus généraux que sont les Canaux Discrets sans Mémoire (Discrete Memoryless Channel -DMC-, en anglais). Un DMC est une boîte (un appareil comme sur la figure 2.2) qui pour chaque séquence de n symboles d’entrée x1 , . . . , xn produit une séquence de n symboles Y1 , . . . , Yn à la sortie. . x1 , · · · , xn Canal Y1 , · · · , Yn . Figure 2.2 – Canal discret sans mémoire (DMC) Les symboles d’entrée x1 , . . . , xn doivent appartenir à l’alphabet d’entrée X du DMC. Les symboles de sortie Y1 , . . . , Yn appartiennent à l’alphabet de sortie Y du DMC et souvent sont aléatoires d’où le fait qu’on les représente en Majuscules et non en minuscules. Plus précisément, pour chaque t ∈ {1, . . . , n}, le symbole de sortie Yt est obtenu à partir du symbole d’entrée xt selon la loi (de probabilité) de transition du DMC PY |X (·|xt ) : Yt ∼ PY |X (·|xt ). (2.31) Donc, Yt dépend seulement de l’entrée xt et pas des entrées précédentes x1 , . . . , xt−1 et pas des sorties précédentes Y1 , . . . , Yt−1 , d’où le terme sans mémoire. Notez aussi que la loi de transition PY |X (·|·) est la même pour tous les t ∈ {1, . . . , n} et le canal est donc stationnaire. Un DMC est complètement caractérisé par le triplet (X , Y, PY |X (·|·)), où – X est un alphabet fini contenant toutes les valeurs possibles à l’entrée du DMC ; – Y est un alphabet fini contenant toutes les valeurs possibles à la sortie du DMC ; – PY |X (·|·) est une loi de probabilité conditionnelle, dite loi de transition, décrivant comment une sortie Yt est obtenue à partir d’une entrée xt . 27 Définition et théorème de la capacité pour le DMC Exemple 2.11 (BEC) Le BEC de paramètre ∈ [0, 1] est un DMC caractérisé par 1 − , x = y X = {0, 1}, Y = {0, 1, ∆}, PY |X (y|x) = y=∆ 0 ailleurs. (2.32) Donc, le BEC reproduit l’entrée à la sortie avec une probabilité 1 − et produit un symbole d’effacement ∆ avec une probabilité . Exemple 2.12 (BSC) Le BSC de paramètre p ∈ [0, 1] est un DMC caractérisé par ( 1 − p, x = y X = {0, 1}, Y = {0, 1}, PY |X (y|x) = p y = x. (2.33) Donc, le canal reproduit le bit d’entrée à la sortie avec une probabilité (1 − p) et inverse le bit d’entrée avec une probabilité p. Souvent, la façon la plus facile de décrire un DMC est le diagramme de canal. Formellement, un diagramme de canal est un graphe bipartite, oú à gauche on met toutes les valeurs possibles d’entrée (les éléments de X ) et à droite toutes les valeurs possibles de sortie (les éléments de Y). On connecte ensuite chaque symbole d’entrée x ∈ X avec tous les symboles de sorties y ∈ Y selon la probabilité de transition PY |X (y|x) > 0. Cette probabilité est indiquée sur l’arête qui connecte x et y. Par exemple, les diagrammes du BEC et du BSC sont montrés dans les figures 1.3 et 1.2 du chapitre précédent. 2.4 Définition et théorème de la capacité pour le DMC Dans la section précédente, nous avons défini un canal DMC. Dans cette section, nous allons exhiber la limite fondamentale concernant le nombre d’information qu’on peut transmettre sur un tel canal DMC de façon fiable, c’est-à-dire, avec une probabilité d’erreur arbitrairement petite. Pour cela, décrivons d’abord le problème de communication (c’est-à-dire de transmission d’information) comme décrit sur la figure 2.3. . d1 , · · · , dk Emetteur f (n) X1 , · · · , Xn Canal Y1 , · · · , Yn Récepteur g (n) dˆ1, · · · , dˆk . Figure 2.3 – Modèle de communication : canal discret sans mémoire Le but de la communication est qu’un émetteur transmette à un récepteur k bits d’information d1 , . . . , dk , où ces k bits sont indépendants et chaque bit est 1/2-Bernoulli. Pour y parvenir, on autorise l’émetteur à utiliser le DMC n fois, et donc il peut envoyer n symboles d’entrée X1 , . . . , Xn sur le canal. Ces n symboles sont obtenus à partir des bits d’information d1 , . . . , dk en utilisant une fonction de codage (correcteur d’erreur) f (n) : {0, 1}k → Xn (d1 , . . . , dk ) 7→ (X1 , . . . , Xn ). (2.34) Cetter fonction de codage peut évidemment être une de celles étudiées au chapitre 1. Dans ce cas, ce serait une fonction linéaire parfaitement caractérisée par sa matrice génératrice. Le récepteur observe les n sorties du DMC Y1 , . . . , Yn et fait une détection dˆ1 , . . . , dˆk des bits d’information d1 , . . . , dk . Ces k bits détectés dˆ1 , . . . , dˆk sont obtenus à partir des n symboles de sorties Y1 , . . . , Yn en utilisant une fonction de décodage g (n) : Yn → (Y1 , . . . , Yn ) 7→ {0, 1}k (dˆ1 , . . . , dˆk ). (2.35) De nouveau si on se rappelle le chapitre 1, cette fonction de décodage peut par exemple être l’algorithme du syndrome. En théorie de l’information, un code est spécifié par le quadruplet (n, k, f (n) , g (n) ). Remarquez 28 Théorie de l’information que, contrairement au chapitre 1, nous incluons les fonctions de codage f (n) et de décodage g (n) dans la définition du code. Le rendement (en théorie de l’information, on parle plutôt de « taux » -Rate en anglais-) R d’un code est égal à bits d’information k . (2.36) R= n utilisation de canal On dit qu’il y a une erreur sur la communication si le récepteur se trompe sur au moins un bit d’information : (d1 , . . . , dk ) 6= (dˆ1 , . . . , dˆk ). (2.37) En théorie de l’information, on considère donc typiquement une probabilité d’erreur en bloc et non pas une probabilité d’erreur par bit (ou un taux d’erreur binaire -Bit Error Rate (BER)-, en anglais). Par conséquent dans ce chapitre, la probabilité d’erreur est définie comme Pe(n) := Pr (d1 , . . . , dk ) 6= (dˆ1 , . . . , dˆk ) . (n) Il n’est pas difficile de montrer que la probabilité d’erreur en bloc Pe ne peut pas être inférieure à la (n) probabilité d’erreur par bit. Ce qui implique si on trouve une borne supérieure à Pe , elle pourra s’appliquer au BER. Idéalement, nous aimerions trouver des codes qui atteignent une probabilité d’erreur égale à 0. Malheureusement, ceci est impossible pour presque tous les DMC si en même temps on veut garder un taux R > 0. A la place, on souhaite seulement trouver un ensemble de codes tel que la probabilité d’erreur peut être rendu aussi faible que l’on souhaite si on choisit le bon code de cet ensemble 3 . Un exemple très simple qui atteint ce but sur le BSC est l’ensemble des codes à répétition (que vous avez vu dans le chapitre 1) avec k fixé et n (multiple de k) qui tend vers l’infini. Malheureusement, le problème avec cet ensemble de codes est que pour chaque n le taux est égal à k/n et donc si n tend vers l’infini, le taux tend vers 0. Pour la très grande majorité des DMC, il peut être démontré que pour atteindre une probabilité d’erreur qui tend vers 0, il faut que la taille de bloc n des codes croie sans borne. La grande découverte de C. E. Shannon dans son papier fondamental de 1948, créant par là-même le domaine de la théorie de l’information, a été de prouver l’existence de codes avec des probabilités d’erreur qui tendent vers 0 quand la taille de bloc n augmente mais tout en codant un nombre de bits d’informations k croissant linéairement avec n. Plus précisément, on fixe un taux R > 0 et on propose un ensemble de codes où k croit avec n comme k = bRnc. Le taux du code k/n est alors un peu inférieur à R mais quand n augmente, le taux k/n s’approche asymptotiquement de R et donc l’erreur induite est complètement négligeable. Les principales définitions et théorème de la théorie de l’information sont énoncés ci-dessous. Les preuves sont données en COMMDI225. Définition 2.6 Un taux R > 0 est dit atteignable sur un DMC (X , Y, PY |X ) s’il existe une suite de codes { n, k = bnRc, f (n) , g (n) }∞ n=1 telle que Pe(n) → 0 lorsque n → ∞. (2.38) Définition 2.7 La capacité C d’un DMC caractérisé par le triple (X , Y, PY |X ) est C = max I(X; Y ), PX (2.39) où la maximisation se fait sur toutes les lois de probabilité de X et où Y ∼ PY |X (·|X). Donc, dans cette expression, la paire (X, Y ) suit la loi de probabilité PXY (x, y) = PX (x)PY |X (y|x). Résultat 2.5 (Théorème de Shannon de la capacité) Pour un DMC caractérisé par (X , Y, PY |X ) : 1. Tous les débits 0 < R < C sont atteignables. 2. Aucun débit R > C n’est atteignable. Notez que le théorème ne dit rien de ce qui se passe pour les taux R = C. Le comportement pour R = C dépend du canal et reste inconnu pour la majorité des canaux à ce jour ! Ce résultat est d’une puissance incroyable et finalement assez contre-intuitif. En effet, on peut rendre fiable n’importe quel lien de transmission à condition d’en payer le prix en débit. 3. D’un point de vue pratique, rendre aussi faible que possible la probabilité d’erreur n’est pas restrictif car on ne sait pas distinguer en pratique un dispositif offrant une probabilité d’erreur nulle à celui offrant une probabilité d’erreur de 10−42 . Expressions analytiques de la capacité de quelques canaux 2.5 29 Expressions analytiques de la capacité de quelques canaux Dans cette section, nous allons exprimer analytiquement quelques capacités pour quelques canaux. Sachez que on ne connaît pas encore de formules analytiques de la capacité pour de très nombreux canaux. A titre d’exemple, la capacité d’un canal composé d’une fibre optique est encore inconnue à ce jour (notamment en raison des effets non-linéaires qui s’y produisent). Pour calculer la capacité d’un DMC, on part généralement de l’équation (2.39). On calcule ainsi d’abord l’information mutuelle I(X; Y ) pour une loi d’entrée PX (·) quelconque, et ensuite on maximise cette information mutuelle obtenue sur PX (·). Pour calculer l’information mutuelle I(X; Y ), on a deux possibilités • soit on la calcule via I(X; Y ) = H(X) − H(X|Y ), (2.40) • soit on la calcule via I(X; Y ) = H(Y ) − H(Y |X). (2.41) Souvent la deuxième méthode est la plus facile, mais ce n’est pas toujours le cas. Nous allons voir que pour le BEC c’est plus facile de calculer l’information mutuelle I(X; Y ) en utilisant la première expression. 2.5.1 Cas du canal binaire symétrique Nous calculons l’information mutuelle I(X; Y ) pour une loi PX (·) quelconque en utilisant l’équation (2.41). Il faut donc calculer H(Y ) et H(Y |X). Nous commençons par H(Y |X). Nous calculons d’abord H(Y |X = 0) et H(Y |X = 1) : H(Y |X = 0) = −PY |X (0|0) log2 (PY |X (0|0)) − PY |X (1|0) log2 (PY |X (1|0)) = −(1 − p) log2 (1 − p) − p log2 p = Hb (p) (2.42) et H(Y |X = 1) = −PY |X (0|0) log2 (PY |X (0|1)) − PY |X (1|1) log2 (PY |X (1|1)) = −p log2 p − (1 − p) log2 (1 − p) = Hb (p). (2.43) Donc, indépendamment du choix de la loi d’entrée PX (·), H(Y |X) parce que P x∈{0,1} = X PX (x)Hb (p) = Hb (p), (2.44) x∈{0,1} PX (x) = 1. Pour simplifier la suite des calculs, nous définissons q , PX (1) et donc PX (0) = 1 − q, où q ∈ [0, 1]. Par la formule de la loi marginale et par la règle de Bayes : PY (1) = PXY (0, 1) + PXY (1, 1) (2.45) = PX (0)PY |X (1|0) + PX (1)PY |X (1|1) (2.46) = et (1 − q)p + q(1 − p), PY (0) = 1 − PY (1) = 1 − (1 − q)p + q(1 − p) = qp + (1 − p)(1 − q). (2.47) (2.48) Cela fait que l’entropie de Y est égale à H(Y ) = Hb (1 − q)p + q(1 − p) . (2.49) Donc, pour PX (1) = q ∈ [0, 1] quelconque, l’information mutuelle est I(X; Y ) = H(Y ) − H(Y |X) = Hb q(1 − p) + (1 − p)q − Hb (p). (2.50) 30 Théorie de l’information La capacité du canal BSC vaut donc CBSC(p) max Hb q(1 − p) + (1 − p)q − Hb (p) q∈[0,1] = max Hb q(1 − p) + (1 − p)q − Hb (p) = q∈[0,1] = 1 − Hb (p), (2.51) (2.52) (2.53) où la deuxième égalité tient parce que Hb (p) ne dépend pas de q, et la troisième égalité tient parce que Hb (t) ≤ 1 avec égalité si t = 1/2 et parce que pour q = 1/2, q(1 − p) + (1 − q)p = (1/2)(1 − p) + (1/2)p = 1/2. (2.54) Résultat 2.6 La capacité d’un BSC(p) est égale à CBSC(p) = 1 − Hb (p). (2.55) Nous analysons ci-après quelques cas spéciaux de ce canal. Notons que si p = 0 alors la capacité est égale à 1 bit, CBSC(0) = 1. Ceci est conforme avec notre intuition : si p = 0 alors la sortie du canal est toujours égale à son entrée Y = X et on se retrouve avec un canal sans bruit par lequel on peut communiquer un bit d’information par utilisation de canal sans jamais faire des erreurs. Idem, si p = 1, alors la capacité est égale à 1 bit, CBSC(1) = 1. Dans ce cas, on a à nouveau un canal sans bruit, mais le canal inverse tous les bits d’entrée. En inversant simplement tous les bits à la sortie, le récepteur peut récupérer tous les bits d’entrée sans jamais faire des erreurs, comme pour le cas p = 0. Par contre, si p = 1/2, chaque sortie de canal est 0 ou 1 avec probabilité 1/2 indépendamment de la valeur à l’entrée du canal. Comme le récepteur peut toujours construire une suite de 1/2-Bernoulli bits indépendants de l’entrée du canal sans regarder les sorties du canal, ce canal est complètement opaque. Sa capacité est donc nécessairement nulle, CBSC(1/2) = 0. 2.5.2 Cas du canal binaire à effacement Nous calculons l’information mutuelle I(X; Y ) pour une loi d’entrée PX (·) quelconque en utilisant l’équation (2.40). Nous calculons donc les entropies H(X) et H(X|Y ), et nous commençons par le premier terme. Pour simplifier la notation dans la suite, nous définissons q , PX (1) = 1 − PX (0). Alors, comme X est une variable q-Bernoulli, H(X) = Hb (q). (2.56) Nous regardons maintenant le deuxième terme, H(X|Y ), en calculant séparément H(X|Y = 0), H(X|Y = 1), et H(X|Y = ∆). Notez que si Y = 0 alors X = 0 avec une probabilité 1 (indépendamment de PX (x)), car le canal n’inverse jamais un bit d’entrée mais peut seulement l’effacer. Donc, PX|Y (0|0) = 1 et PX|Y (1|0) = 0 et H(X|Y = 0) = −0 log2 (0) − 1 log2 (1) = 0. (2.57) Idem, si Y = 1, alors X = 1 avec une probabilité 1, et donc PX|Y (1|1) = 1 = 1 − PX|Y (0|1) et H(X|Y = 0) = 0. (2.58) Donc, l’expression de H(X|Y ) se simplifie comme suit H(X|Y ) = X y∈{0,1,∆} PY (y)H(X|Y = y) = PY (∆)H(X|Y = ∆). (2.59) 31 Expressions analytiques de la capacité de quelques canaux Par la formule de la loi marginale et la règle de Bayes, on a PY (∆) = X PXY (x, ∆) = x∈{0,1} X PX (x)PY |X (∆|x) = x∈{0,1} X | x∈{0,1} PX (x) = . {z =1 (2.60) } Nous calculons maintenant PX|Y (1|∆) en fonction du paramètre q = PX (x). En appliquant deux fois la règle de Bayes et en utilisant le résultat en (2.60), PX|Y (1|∆) = PX (1)PY |X (∆|1) q PX,Y (1, ∆) = = = q. PY (∆) PY (∆) (2.61) Donc, si la sortie Y est égale à ∆, alors l’entrée X est q-Bernoulli et H(X|Y = ∆) = Hb (q). (2.62) Les deux équations (2.59) et (2.62) conduisent à H(X|Y ) = Hb (q). (2.63) Avec l’équation (2.56) nous obtenons donc pour la capacité du canal BEC CBEC() = max Hb (q) − Hb (q) = (1 − ) · max Hb (q) = 1 − , q∈[0,1] q∈[0,1] (2.64) où la dernière égalité tient parce que Hb (p) ≤ 1 avec égalité si q = 1/2. Résultat 2.7 La capacité d’un BEC() est égale à CBEC() = 1 − . (2.65) Durant le déroulement dess calculs nous avons vu que – Si on observe un 0 ou un 1 à la sortie, alors il n’y a pas de doute sur la valeur d’entrée du canal et donc H(X|Y = 0) = H(X|Y = 1) = 0. – Si on observe un effacement ∆ à la sortie, alors on n’a rien appris sur l’entrée et donc H(X|Y = ∆) = H(X). De plus par la stricte concavité de la fonction Hb (·) et parce que Hb (1/2) = 1 > 1/2, il n’est pas difficile de montrer que < Hb () pour tout ∈ (0, 1/2]. (2.66) ce qui implique, pour ∈ (0, 1/2], que 1 − > 1 − Hb (), | {z } | {z } CBEC() (2.67) CBSC() ce qui veut dire que les inversions de bits sont plus durs à gérer que les effacements. 2.5.3 Cas du canal gaussien Tous les résultats antérieurs à cette sous-section ont été obtenus pour des DMCs uniquement. Le résultat 2.5, c’est-à-dire, le Théorème de Shannon, s’applique aussi aux canaux sans mémoire avec alphabets infinis pour peu qu’on modifie la définition de l’information mutuelle I(X; Y ) en conséquence. Nous n’entrerons pas dans plus de détails (cf. COMMDI225), mais présenterons néanmoins des expressions analytiques de la capacité pour deux canaux gaussien sans mémoire avec contrainte à l’entrée. Le canal gaussien est caractérisé par la relation suivante entre l’entrée X et la sortie Y Y = X + W, où W est une variable gaussienne réelle de moyenne nulle et variance N0 /2. La loi de transition du canal est donc spécifiée par la densité conditionnelle (qui remplace la loi de probabilité PY |X (·|·) du cas de l’alphabet fini) (y−x)2 1 pY |X (y|x) = √ e− N0 . πN0 32 Théorie de l’information Donc, l’alphabet de sortie est nécessairement l’ensemble des nombres réels : Y = R. L’alphabet d’entrée dépend des contraintes imposées. Dans un premier cas, nous supposons que seulement deux valeurs sont permises à l’entrée : X = {−A, A}. (2.68) Vous verrez dans le chapitre 3 que ce cas a beaucoup d’intérêt pratique. Nous l’appelons le cas « 2-PAM » pour des raisons qui deviendront évidentes dans le chapitre 3. La capacité du canal gaussien avec des entrées binaires vérifiant l’expression (2.68) vaut Z ∞ 4A(A+u) u2 1 e− N0 log2 1 + e N0 d u. (2.69) C2-PAM = 1 − √ πN0 −∞ Si on ajoute plus de symboles à l’alphabet d’entrée, la capacité évidemment augmente. En effet l’émetteur peut toujours choisir de ne pas utiliser certains symboles d’entrée que l’on vient d’ajouter et alors on revient au cas précédent. Dans le cas limite où l’alphabet d’entrée contient tous les nombres réels, X =R (2.70) la capacité du canal gaussien devient infinie. Mais ce cas n’a pas d’intérêt pratique puisque pour atteindre cette capacité, la puissance/énergie des symboles d’entrées (on peut parler ici indifféremment de puissance ou d’énergie car on envoie le symbole, à ce stade du polycopié, avec une périodicité fixe ; cette périodicité n’a pas encore été décrite et fera l’objet d’une longue discussion dans la section 3.3 du chapitre suivant), E[X 2 ], doit nécessairement tendre vers infini et qu’un système réel à puissance/énergie illimité n’est pas faisable techniquement. De plus, on veut aussi limiter la puissance/énergie du signal émis pour des raisons de sûreté et pour augmenter la durée de vie de la batterie à l’émetteur. Ainsi, le canal gaussien avec alphabet d’entrée donné par l’équation (2.70) est plus intéressant avec une contrainte de puissance/énergie moyenne à l’entrée E[X 2 ] ≤ Es (2.71) pour une énergie Es > 0 par Symbole émis. La capacité de ce canal est 2Es 1 . (2.72) CGaussien = log2 1 + 2 N0 √ √ Notons que si on se limite aux symboles d’entrée − Es et Es , alors l’entrée du canal satisfait toujours la √ contrainte de puissance/énergie donnée par l’équation (2.71). Donc si A = Es , la capacité du canal gaussien à contrainte de puissance/énergie moyenne, CGaussien , n’est jamais inférieure à celle du canal gaussien à entrée √ 2−PAM, C2-PAM . Numériquement on peut vérifier que pour A = Es C2-PAM < CGaussien mais que C2-PAM est une bonne approximation de CGaussien quand Es /N0 est très petit. On définit le rapport signal-sur-bruit (Signal-to-Noise Ratio - SNR -) par SNR := 2Es , N0 (2.73) qui est bien le ratio entre la variance du signal utile X et la variance du bruit N0 /2. Alors, on obtient la formule célèbre de Shannon pour le canal gaussien 4 CGaussien = 1 log2 (1 + SNR) . 2 (2.74) La capacité donnée par l’équation (2.74) du canal gaussien avec contrainte de puissance moyenne nécessite d’utiliser un nombre illimité de symboles d’entrée. Techniquement cela n’est pas réalisable, néanmoins nous verrons en section 3.5.3 comment s’en rapprocher. La formule de la capacité en (2.74) sert donc d’abord comme référence pour tout code et toute modulation (terme défini au chapitre 3) utilisés sur un canal gaussien à contrainte de puissance moyenne. Nous verrons également au chapitre 3 que cette formule légèrement modifiée permet en fait de dimensionner des systèmes réels. 4. Peut-être avez-vous rencontré cette formule sans le facteur 1/2 devant le terme logarithmique. Dans ce cas, vous avez probablement étudié le canal gaussien à valeurs complexes avec un bruit circulaire. Ce canal peut être vu comme deux canaux gaussiens indépendants à valeurs réelles, et sa capacité est donc le double de la capacité du canal gaussien à valeurs réelles. 33 Bilan 2.6 Bilan Le théorème de Shannon montre qu’il existe des codes qui atteignent la capacité. Néanmoins, la preuve du théoème n’est pas constructive et donc ne permet pas d’en déduire des codes implémentables. C’est seulement dans les années 1990 avec la découverte des Turbo-codes par C. Berrou et A. Glavieux à Télécom Bretagne et des codes LDPC par R. Gallager au MIT que des codes implémentables tant au niveau du codeur que du décodeur ont permis de s’approcher très fortement de la capacité du canal gaussien, soit 40 ans après la découverte du théorème de Shannon ! En 2009, les codes polaires ont été découverts par E. Arikan de l’université de Bilkent (Turquie) permettant d’atteindre la capacité d’une grande classe de DMC. Toutes ces constructions de codes et de décodeurs associés sont enseignés à l’école dans le cadre du cycle Master avec les unités d’enseignement COM224 et COM344. Concernant la théorie de l’information, deux cours vous sont proposés : COMMDI225 et COM345. En COMMDI225, on approfondit les bases de théorie de l’information pour les communications point-à-point, c’est-à-dire, d’un seul émetteur vers un seul récepteur et pour la compression des données. En COM345, on traite le problème des communications et de la compression de données dans un réseau, domaine qui actuellement est très actif en recherche ainsi que dans l’utilisation directe des résultats de théorie de l’information pour les réseaux dans les systèmes pratiques (tels que la 5G pour la collaboration entre stations de base au niveau des communications et le stockage distribué (cloud/distributed storage, en anglais) au niveau de la compression des données. Nous rappelons ci-dessous les concepts de base et savoir-faire concernant ce chapitre à acquérir durant cette unité d’enseignement. Les concepts de base : • L’entropie H(X), • L’entropie conditionnelle H(X|Y ), • L’information mutuelle I(X; Y ), • Canaux discrets sans mémoire (DMC), • La capacité d’un DMC dont celles des canaux BSC et BEC. Les savoir-faire : • Connaître les propriétés de H(X), H(X|Y ), H(X, Y ), et I(X; Y ) et savoir calculer ces quantités (cf. TD3), • Connaître la définition de la capacité de canal et savoir calculer la capacité de canaux simples (cf. TD4). 34 Théorie de l’information Chapitre 3 Modulations numériques 3.1 Introduction Dans le chapitre 1, vous avez appris à coder des éléments binaires dans le but de les protéger contre les erreurs induites par une transmission sur un canal. Dans ce chapitre, les objectifs principaux vont être de construire un dispositif permettant de transformer les bits codés, notés cn (cf. chapitre 1), provenant donc du codeur correcteur d’erreur en un signal attaquant le canal de propagation et vice-versa, et ensuite d’analyser les performances de ces dispositifs. A titre d’exemple, dans le cadre de communications radio-mobiles (2G, 3G, 4G, TNT, Wifi), le signal à construire correspond à celui de l’onde électro-magnétique en sortie de l’antenne d’émission. Dans le cadre de communications filaires, on peut penser à l’onde électro-magnétique sortant du modem ADSL ou bien au signal lumineux rentrant dans la fibre optique. De manière moins naturelle, on peut songer à la problématique de la lecture des CD/DVD. Dans ce cas, le sillage sur le disque correspond au signal à construire. Cette liste d’exemples n’est évidemment pas exhaustive. Ce que nous remarquons, grâce à ces exemples, est le point commun suivant : le signal à transmettre est par essence de nature analogique ou de manière synonyme à temps continu (pour les CD/DVD, cela serait plutôt une notion d’espace continu, mais le disque tournant, on peut se ramener sans difficulté à une notion temporelle), quand bien même nous faisons des transmissions numériques. Ainsi les signaux émis et reçu sont de nature analogique, mais l’information contenue dans ces signaux est de nature numérique ou de manière synonyme à temps discret et à nombre fini de valeurs. Par conséquent, une grande partie du chapitre sera consacrée au passage de signaux à temps discret à des signaux à temps continu (au niveau de l’émetteur) et vice-versa (au niveau du récepteur). De plus, pour agir convenablement, le récepteur a besoin de savoir comment le signal émis a été perturbé par le canal de propagation. C’est pourquoi le plan de ce chapitre est comme suit : • en section 3.2, nous introduisons un modèle de canal de propagation, dit canal à multitrajets, bien adapté aux communications sans fil, ainsi qu’à certains canaux filaires (les paires torsadées du téléphone et donc des modems ADSL, les câbles co-axiaux, les fils électriques des courants-porteurs, etc). Ce modèle de canal conduit à deux types de canaux formels : le canal gaussien et le canal sélectif en fréquence. En raison du temps imparti à COM105, nous nous focaliserons dans la suite du polycopié que sur le modèle formel le plus simple qu’est le canal gaussien. Le canal sélectif en fréquence, bien plus délicat à traiter mathématiquement, est étudié en COM223. • en section 3.3, nous nous plaçons du coté de l’émetteur. Après la mise en avant d’un exemple-jouet en sous-section 3.3.1, nous aborderons les deux points importants qui sont la transformation des bits en symboles en sous-section 3.3.2 et le passage du temps discret au temps continu avec la notion de filtre d’émission développé en sous-section 3.3.3. Nous montrerons notamment l’impact de ce filtre sur le spectre du signal émis et donc sur la bande utilisée pour la communication. • en section 3.4, nous nous plaçons cette fois-ci du coté du récepteur. La première opération à réaliser lors de la réception du signal analogique est un passage au temps discret. Nous verrons, à la sous-section 3.4.1, que cette opération conduit à la notion très importante du filtre adapté. Une fois le signal discrétisé, nous montrerons, en sous-section 3.4.2, que de l’interférence entre symboles peut exister et 36 Modulations numériques qu’il convient, dans la mesure du possible, de l’éliminer par un choix judicieux du filtre d’émission. Ceci fera intervenir la notion de filtre de Nyquist et de filtre en racine de Nyquist. Enfin, en sous-section 3.4.3, nous développerons le détecteur optimal dans le cas du canal gaussien et montrerons, par le biais de la théorie de la détection optimale présentée au chapitre 1, que le détecteur optimal est très intuitif, simple et donc parfaitement implémentable. Nous verrons aussi, à titre d’exemple, des cas de figure moins intuitifs et moins simples pour lesquels le recours à la théorie de la détection optimale s’avérera salvateur. • en section 3.5, nous évaluerons théoriquement les performances du système non-codé passant par les boîtiers introduits tout au long de ce chapitre. Par performances, nous entendons probabilité d’erreur. Ceci nous permettra de comprendre et mesurer l’influence de différents paramètres introduits tout au long de ce polycopié comme la bande, le nombre de symboles, etc. Nous ferons également un lien avec les résultats obtenus aux chapitres 1 et 2. Enfin, en section 3.6, nous récapitulons les différentes notions présentées au cours de ce chapitre et les mettons en relation les unes avec les autres. Ce polycopié ne présente vraiment que des rudiments de communications numériques. De nombreux problèmes non traités dans ce polycopié faute de temps mais fondamentaux pour construire des systèmes modernes existent et sont évidemment enseignés dans le parcours « Communications Numériques » de l’école (COM223, COM344, COM345) ou dans le parcours « Réseaux » (RES222, RES341, RES345). 3.2 Canal de propagation Par commencer, nous supposons une communication sur un canal radio-mobile, c’est-à-dire, sans fil. Nous noterons – x(t) le signal analogique émis (portant les bits codés {cn }n et donc les données {dn }n ). Ce signal part donc de l’antenne d’émission. – et y(t) le signal analogique reçu par l’antenne de réception. Ce signal correspond au signal x(t) malheureusement nécessairement modifié par le canal de propagation. Donc y(t) 6= x(t). Un canal radio-mobile est modélisable par ce qu’on appelle un canal multitrajets. En effet, le signal émis x(t) arrive au niveau du récepteur à travers différents échos (ou de manière synonyme trajets) qui sont chacun caractérisé par une atténuation λ et un retard τ . Ces échos proviennent typiquement des phénomènes de diffraction, réflexion et diffusion des ondes électro-magnétiques sur des obstacles. Ces obstacles sont principalement les bâtiments et le sol. Sur la figure 3.1, nous avons représenté un exemple de canal multitrajets. . (λ1, τ1) y(t) (λ0, τ0) x(t) (λ2, τ2) . Figure 3.1 – Schéma d’un canal multitrajets D’un point de vue mathématique, le signal reçu y(t) s’écrit donc y(t) = K X k=1 λk x(t − τk ) (3.1) 37 Canal de propagation avec λk et τk l’atténuation et le retard du k ème trajet. L’équation (3.1) peut aussi s’écrire de la manière suivante y(t) = cp (t) ? x(t) PK avec le produit de convolution ? et la réponse impulsionnelle du filtre cp (t) = k=1 λk δ(t − τk ) où δ(•) est la distribution/impulsion de Dirac. Par conséquent, la présence d’échos se traduit par une opération de filtrage linéaire sur le signal émis. Pour simplifier, nous supposerons également que le canal est invariant dans le temps, c’est-à-dire, que les trajets restent les mêmes tout au long de la transmission considérée. Outre ces échos, le signal reçu est perturbé additivement par des phénomènes aléatoires qui seront vus comme du bruit, noté b(t). Ce bruit provient au minimum du bruit thermique des composants électroniques du récepteur mais peut également intégrer le bruit de fond présent dans la bande du signal considéré. Ce bruit de fond peut provenir, à titre d’exemple, des autres utilisateurs de cette bande ou bien de résidus de signaux des bandes adjacentes. Comme ce bruit est l’addition du bruit thermique (qui est gaussien) et de somme de phénomènes aléatoires indépendants entre eux (qui est donc gaussien par le théorème central-limite), nous considérons que le bruit b(t) est gaussien. De plus, le bruit b(t) sera considéré indépendant et identiquement distribué (i.i.d.) dans le temps, ce qui veut dire, que les échantillons b(t) et b(t0 ) sont indépendants et ont même distribution de probabilité, et donc même moyenne et même variance pour tout t, t0 . C’est pourquoi, nous pouvons formuler l’hypothèse suivante. Hypothèse 3.1 Le bruit b(t) est i.i.d. gaussien de moyenne nulle et de fonction d’autocorrélation, notée et ∆ définie par rbb (τ ) = E[b(t + τ )b(t)], satisfaisant l’expression suivante : rbb (τ ) = N0 δ(τ ). 2 Pour récapituler, nous avons le résultat suivant. Résultat 3.1 Soient x(t) et y(t) respectivement le signal émis et le signal reçu. Le canal multitrajets conduit à la relation suivante : y(t) = cp (t) ? x(t) + b(t) (3.2) avec b(t) vérifiant l’hypothèse 3.1. Lorsque cp (t) = δ(t), alors le canal est appelé canal gaussien, car seul le bruit gaussien vient perturber la transmission. Dans ce cas, la relation entre x(t) et y(t) se simplifie comme suit y(t) = x(t) + b(t) (canal gaussien). (3.3) Pour que ce canal soit réaliste, il faut que les échos soient négligeables ce qui veut dire que les échos n’existent quasiment pas. Ceci arrive notamment dans les exemples suivants : • Canal gaussien 1 : les faisceaux hertziens. Ce sont des systèmes de communications entre antennes fixes ayant une visibilité directe entre elles, typiquement, des communications entre deux stations de base ou entre deux relais de la télévision. Dans ce cas, l’antenne de l’émetteur est directive et focalise sa puissance sur l’antenne de réception. Par conséquent, l’onde émise ne se disperse pas et ne produit pas d’écho puisque elle ne rebondit sur aucun obstacle. La transmission est donc assurée par le chemin direct qui existe nécessairement puisque la visibilité directe est une condition sine qua non de ce type de système. Ce canal ne présentant pas d’écho, il vérifie l’équation (3.3) et est donc gaussien. • Canal gaussien 2 : les liaisons satellitaires. Considérons une liaison entre un satellite-émetteur et une antenne parabolique. L’onde émise par le satellite part certes dans différents directions afin de couvrir une certaine zone sur la Terre. Néanmoins, en première approximation (en négligeant les changements d’indice et le phénomène de diffusion induit lors du passage dans les différentes couches de l’atmosphère), cette onde ne subit pas d’obstacle entre le satellite et la parabole. C’est pourquoi, ce type de liaisons peut être modélisé par un canal gaussien. • Canal gaussien 3 : les réseaux câblés co-axiaux. Les câbles co-axiaux produisent très peu de multitrajets et donc on les modélise par un canal gaussien. Ainsi, le standard TNT pour le câble (DVC-C, en anglais) est construit selon cette hypothèse. 38 Modulations numériques Cette liste n’est pas exhaustive puisqu’on aurait pu parler de communications optiques dans l’espace libre, de communications proches à très hautes fréquences, etc. Lorsque cp (t) 6= δ(t), alors le canal est appelé canal sélectif en fréquence. En effet, dans le domaine fréquentiel, l’équation (3.2) s’écrit comme suit Y (f ) = Cp (f )X(f ) + B(f ) avec Y (f ), Cp (f ), X(f ) et B(f ) les transformées de Fourier respectives de y(t), cp (t), x(t) et de la réalisation du bruit b(t). Puisque la réponse impulsionnelle du canal est différente d’un Dirac, la fonction de transfert du filtre f 7→ Cp (f ) n’est pas constante et donc agit différemment selon les fréquences, ce qui veut dire, qu’elle « sélectionne » les fréquences. Ce modèle de canal est extrêmement répandu pour les systèmes actuels et futurs comme vous pouvez le constater avec la liste ci-dessous. • Canal sélectif en fréquence 1 : la téléphonie sans fil. Quelque soit la génération de mobiles (2G, 3G, 4G), le canal est sélectif en fréquence. A titre d’exemple, prenons la 2G, c’est-à-dire, la technologie GSM. Les échos sont nombreux et peuvent souvent atteindre une durée de l’ordre 10µs pour des périmètres de cellules classiques. Hors une donnée est émise toutes les 3.7 µs (donc un débit de 270 kbits/s qui ne correspond absolument pas au débit que vous constatez sur votre téléphone 2G. C’est normal puisque au débit brut, il faut retrancher le rendement du code correcteur d’erreur, le fait que ce débit est partagé avec les autres utilisateurs de la cellule et le fait qu’une part de ce débit est consacrée à l’échange d’information des couches protocolaires du réseau). On voit que le canal mélange à peu près 3 (≈ 10/3.7) données entre elles et donc qu’un produit de convolution est bien présent dans le domaine temporel. • Canal sélectif en fréquence 2 : le Wifi. Les gammes de fréquences utilisées par le Wifi étant peu différentes de celles de la téléphonie mobile, le canal agit de la même manière et donc admet de nombreux échos. En revanche, la taille des cellules étant bien plus petites, les échos sont au maximum de 800 ns. Mais comme une donnée est émise toutes les 50 ns, on a de nouveau un mélange de 16 données maximum au niveau du récepteur induisant un produit de convolution. • Canal sélectif en fréquence 3 : la TNT. On est toujours dans les mêmes gammes de fréquences ce qui induit des échos nombreux. Mais les tailles des cellules étant de l’ordre de plusieurs dizaines de km, les échos peuvent s’étaler jusqu’à 200 µs. Les données étant transmises toutes les 0.11 µs (ce qui induit bien un débit de l’ordre d’une dizaine de Mbits/s requis pour faire de la transmission vidéo de qualité), nous avons un mélange de l’ordre de 2000 données entre elles conduisant donc de nouveau à un produit de convolution. • Canal sélectif en fréquence 4 : certains systèmes filaires. Le modèle de canal sélectif en fréquence introduit par le biais du canal multitrajets sans fil reste valable pour des systèmes filaires comme l’ADSL (avec des échos jusqu’à 100 µs) ou les courants porteurs en ligne, ainsi que la transmission sur fibre optique (pour peu que la puissance émise ne soit pas trop élevée afin de ne pas provoquer d’effet non-linéaire de type Kerr. Pour plus de détails, veuillez consulter les cours de SI223 et COM340). Dans la suite du cours, faute de temps, nous ne traiterons que le cas du canal gaussien. Bien que moins courant en pratique que le canal sélectif en fréquence comme en atteste les exemples ci-dessus, ce canal a une immense vertu pédagogique puisqu’il va nous permettre de comprendre l’influence du bruit sur la qualité de la transmission indépendamment d’autre phénomène perturbateur. C’est pourquoi ce type de canal est essentiel et se révèle le passage obligatoire pour s’initier aux communications numériques. En marge du cours, disons quelques mots néanmoins sur le canal sélectif en fréquence : ce canal est clairement le plus répandu en pratique. Le principal problème supplémentaire induit par ce canal est l’interférence entre symboles, qui sera définie proprement en sous-section 3.4.2. La gestion de cette interférence n’est plus un problème aigu en communications numériques depuis la fin des années 1980 grâce à l’invention de l’OFDM dans les locaux du défunt CCETT de Rennes (centre de recherche conjoint entre les PTT de l’époque et TDF). Cette solution, présente dans l’ADSL, le Wifi, la TNT, la 4G et la 5G, ainsi que certaines autres solutions sont des piliers du cours de COM223. 39 Description de l’émetteur 3.3 3.3.1 Description de l’émetteur Un exemple-jouet (mais réel !) Pour introduire en douceur les éléments et notions constituant un émetteur standard, nous considérons dans cette sous-section, une communication sur fibre optique telle qu’elle a encore lieu sur la plupart des fibres actuelles des réseaux les plus modernes. La construction de l’émetteur est ici fortement contraint par les capacités opto-électroniques du récepteur. Etant donné les débits, de l’ordre de plusieurs Gbits/s, les composants opto-électroniques opérant à cette vitesse de variation se doivent d’être simples. Par conséquent, le moyen le moins cher et le plus fiable pour passer de l’optique à l’électronique, au niveau du récepteur, est de considérer une photo-diode. Comme son nom l’indique, ce dispositif émet un signal électrique proportionnel à l’intensité lumineuse du signal optique mis en entrée. Donc du signal optique reçu y(t), on ne sera capable de distinguer que des intensités et non des phases, ce qui veut dire que y(t) et −y(t) conduiront au même signal électrique sur lequel sera fait la détection. Ceci implique que l’information des données ne sera présente que dans l’intensité du signal y(t). Pour ne pas perdre d’information, il doit en être de même au niveau de l’émetteur. C’est pourquoi, les données moduleront uniquement l’intensité du signal x(t). Considérons une suite de données provenant de la sortie du code correcteur d’erreur {cn }n=0,··· ,N −1 ∈ {0, 1}N . Nous souhaitons transmettre au débit binaire Db bits/s. Ainsi, une donnée cn sera envoyée sur le canal toutes les Tb = 1/Db secondes. On dira que Tb est le temps-bit. Comment envoyer cette donnée sur le canal ? étant donné les contraintes sur x(t) mentionnées ci-dessus, il apparaît extrêmement naturel que le signal x(t) soit i) égal à 0 sur une durée Tb (entre l’instant nTb et (n + 1)Tb ) quand cn = 0 ou ii) égal à une amplitude A > 0 de nouveau sur une durée Tb (entre l’instant nTb et (n + 1)Tb ) quand cn = 1. La valeur de A sera choisie en fonction d’impératif de consommation énergétique, de qualité de la transmission souhaitée, de comptabilité électro-magnétique dans le cadre d’ondes radio (afin de ne pas brûler le cerveau de l’utilisateur !), etc. Sur la figure 3.2, nous avons tracé le signal x(t) construit selon le principe évoqué ci-dessus pour la suite de données suivantes : 1, 0, 0, 1, 1, 0, 1, 0. . Tb A 0 11111111111111111111111111111111111111 00000000000000000000000000000000000000 1 0 0 1 1 0 1 0 t . Figure 3.2 – x(t) pour l’envoi de N = 8 données égales à 1, 0, 0, 1, 1, 0, 1, 0 Nous observons sur la figure 3.2 que le signal x(t) est finalement fonction de trois éléments : • chaque donnée épouse une certaine forme. Ici, un créneau. • chaque forme est modifiée selon une certaine amplitude. Ici, l’amplitude 0 quand cn = 0, et l’amplitude A quand cn = 1. • ce schéma est reproduit pour chaque donnée ; Ici, il est donc décalé à chaque donnée de Tb secondes. Par conséquent, nous avons mathématiquement x(t) = N −1 X n=0 sn g(t − nTs ) (3.4) avec • g(t) le filtre d’émission. Ici, g(t) = ΠTs (t) avec ΠTs (t) une fonction qui vaut 1 entre 0 et Ts et 0 ailleurs. Cette fonction est dite fonction porte ou fonction rectangulaire. • {sn }n la suite de symboles qui s’expriment en fonction des données. Ici, on a sn = Acn . • Ts le temps-symbole. Ici Ts = Tb . Nous verrons, dans la sous-section 3.3.2, qu’il peut être pertinent de considérer Tb < Ts . 40 Modulations numériques Justement, dans la sous-section 3.3.2, nous allons formaliser et conceptualiser l’équation (3.4) afin d’en dégager et d’exploiter les degrés de liberté que nous avons pour construire de nouveaux signaux x(t) obéissant certes à la structure de l’équation (3.4) mais utilisant d’autres filtres d’émission, d’autres symboles et d’autres temps-symboles. Avant d’aller plus loin, évoquons le récepteur pour un tel schéma d’émission. On se doute qu’un récepteur simple, pour obtenir l’information sur la donnée cn est de sélectionner la tranche du signal entre nTs et (n + 1)Ts , d’intégrer cette tranche en normalisant par le temps Ts et de comparer la valeur résultante à un seuil. Sans bruit, la valeur est de 0 si cn = 0 et de A si cn = 1. Ainsi, un choix naturel pour le seuil est A/2. Nous verrons aux sous-sections 3.4.1 et 3.4.3 que cette démarche est effectivement optimale. 3.3.2 Des bits aux symboles d’information Si on se donne comme objectif d’augmenter le débit Db , on s’aperçoit en examinant l’équation (3.4) qu’on ne peut agir que sur deux manettes : i) diminuer le temps-symbole (nous verrons les conséquences de ce choix en sous-section 3.3.3), ii) augmenter le nombre de symboles possibles afin d’augmenter le nombre de bits émis par symbole. Dans cette sous-section, nous allons nous intéresser à cette deuxième manette. Soient • M l’ensemble des valeurs possibles pour chaque symbole sn . • M = card(M) le nombre de valeurs possibles pour chaque symbole. Nous avons alors le nombre de bits/données représenté dans chaque symbole égal à log2 (M ) et un tempsbit Tb équivalent à Ts / log2 (M ). Par conséquent, sans modifier la valeur de Ts , plus M est grand et plus les débits sont élevés. Nous verrons à la section 3.5 que nous ne pouvons pas jouer totalement à notre guise sur ce paramètre M sans compromettre gravement la qualité de la transmission. Une fois la valeur de M fixée (comme déjà dit, nous verrons à la section 3.5 comment choisir cette valeur de manière judicieuse), il convient de choisir les M valeurs possibles des symboles, autrement dit, de disposer les M symboles sur l’axe des réels. L’ensemble de ces M emplacements définira une constellation. Les deux constellations (à valeurs réelles) les plus classiques sont les suivantes : • M -OOK(pour On-Off Keying). Il apparaît raisonnable de disposer les symboles de manière régulière afin de n’en privilégier aucun et surtout de n’en désavantager aucun. De plus, ici, seul le niveau de l’amplitude du symbole permettra de les distinguer entre eux. Ainsi, nous obtenons la constellation affichée sur la figure 3.3. . A 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 (M − 1)A 1 0 0 1 A . Figure 3.3 – Constellation M -OOK • M -PAM (pour Pulse Amplitude Modulation). En français, on parle de « Modulation D’Amplitude » (MDA-M ). De nouveau, on espace les symboles admissibles régulièrement mais on s’autorise en plus l’utilisation de la phase ce qui veut dire dans le cas réel un déphasage de π et donc l’utilisation d’amplitude négative. Ainsi, nous obtenons la constellation affichée sur la figure 3.4. . −(M − 1)A 1 0 0 1 1 0 0 1 1 0 0 1 −A A 1 0 0 1 1 0 0 1 0 1 0 0 1 2A 1 0 0 1 (M − 1)A 1 0 0 1 . Figure 3.4 – Constellation M -PAM Dans la suite, on note par M = {s(m) }m=0,··· ,M −1 les éléments de la constellation. Donc, à l’instant n, le symbole émis sn prend une des valeurs s(m) parmi les M possibles. Tout au long du cours, nous allons considérer comme valide l’hypothèse suivante sur les symboles. 41 Description de l’émetteur Hypothèse 3.2 Soit {sn }n=0,··· ,N −1 la suite des symboles à émettre dont les valeurs sont prises dans M = {s(m) }m=0,··· ,M −1 . Les éléments de l’ensemble M sont de plus rangés dans l’ordre croissant. • la suite aléatoire {sn }n=0,··· ,N −1 est i.i.d. • chaque symbole sn prend une valeur parmi celles de l’ensemble M. • les valeurs de M sont équiprobables. Donc nous avons que Pr(sn = s(m) ) = 1/M , ∀m, n. • comme les symboles sont i.i.d., la moyenne ms = E[sn ], la variance σs2 = E[(sn − ms )2 ] et l’énergie Es = E[s2n ] ne dépendent pas de n. De plus, en raison de l’hypothèse d’équiprobabilité, ces termes s’expriment comme suit ms = σs2 = Es = M −1 1 X (m) s M m=0 (3.5) M −1 1 X (m) (s − ms )2 M m=0 M −1 1 X (m)2 s = m2s + σs2 M m=0 (3.6) (3.7) Par des calculs triviaux utilisant les sommes d’entiers et les sommes d’entiers au carré, nous établissons les résultats du tableau 3.1 qui fournit la moyenne, la variance et l’énergie pour les constellations M -OOK et M -PAM. ms σs2 Es OOK A(M −1) 2 PAM 0 A2 (M 2 −1) 12 A2 (M 2 −1) 3 A2 (2M 2 −3M +1) 6 A2 (M 2 −1) 3 Table 3.1 – Expressions de la moyenne, la variance et l’énergie pour les M -OOK et M -PAM Revenons sur le débit utile Db . Comme affirmé au début de cette sous-section, offrir la possibilité de faire correspondre plusieurs bits à un symbole permet d’augmenter Db . Examinons cela d’abord sur l’exemple de la 4-OOK. Nous avons maintenant 4 valeurs de disponibles : 0, A, 2A et 3A. Chacune de ses valeurs peut être associée à un couple de bits à émettre. Cette opération de correspondance entre le couple de bits et les symboles s’appelle l’étiquetage (labelling ou mapping, en anglais). Ici, nous prendrons la correspondre donnée sur le tableau 3.2. Trouver l’étiquetage optimal au sens d’une certaine métrique (typiquement la couple de bits (00) (01) (11) (10) ↔ ↔ ↔ ↔ symbole associé 0 A 2A 3A Table 3.2 – Etiquetage de la 4-OOK probabilité d’erreur bit) est un problème intéressant et résolu dans de nombreux cas mais ne relève pas du cours de COM105, faute de temps. Si Ts prend la même valeur que dans la figure 3.2 de l’exemple-jouet, alors celle-ci se modifie comme sur la figure 3.5. Nous remarquons bien que le même nombre de bits est émis en deux moins de temps, autrement dit, qu’on émet deux fois plus de bits dans le même laps de temps. Nous avons doublé le débit en associant deux bits par symbole, toute chose égale par ailleurs. Si les bits ne sont pas codés (c’est-à-dire, si cn = dn ), on obtient trivialement la généralisation suivante Db = log2 (M ) . Ts (3.8) Si les bits cn sont codés, alors il faut multiplier le terme de droite de l’équation (3.8) par le rendement du code R pour obtenir le débit binaire utile. 42 Modulations numériques . Ts 3A 2A A 0 11111111111111111111111111111111111111 00000000000000000000000000000000000000 1 0 0 1 1 0 1 t 0 . Figure 3.5 – x(t) pour l’envoi de N = 8 données égales à 1, 0, 0, 1, 1, 0, 1, 0 en 4-OOK En conclusion de cette sous-section, nous avons introduit la notion de symboles qui se révèle un moyen d’augmenter le débit. Nous verrons en section 3.5 le prix à payer pour cette augmentation par ce biais-là. Comme dit en introduction de cette sous-section, un autre moyen d’augmenter le débit est de diminuer Ts (comme en atteste d’ailleurs l’équation (3.8)). C’est pourquoi dans la sous-section suivante, nous allons analyser l’impact d’une modification de Ts mais surtout l’impact d’une modification de g(t). Nous verrons en effet que les choix de Ts et de g(t) sont liés en sous-section 3.4.2. Pour s’en convaincre, il suffit de reprendre l’exemple-jouet pour remarquer que g(t) = ΠTs (t), et donc que modifier Ts revient à modifier g(t) et vice-versa. 3.3.3 Du signal à temps discret au signal à temps continu Nous rappelons que le signal x(t) s’écrit de la manière suivante, selon l’équation (3.4), x(t) = N −1 X n=0 sn g(t − nTs ) + b(t). (3.9) Dans la sous-section précédente, nous avons examiné succinctement les possibilités pour {sn }. Nous allons maintenant nous focaliser sur celles de g(t). Nous allons notamment analyser l’influence de g(t) sur le spectre du signal émis dont la largeur de bande et sur la consommation énergétique. Avant de continuer, faisons une remarque sur l’utilisation de l’équation (3.9) dans les applications modernes de communications. A vrai-dire, tous les systèmes modernes (3G, 4G, 5G, Wifi, TNT, ADSL) sont basés sur l’équation (3.9). Cette équation représente le formalisme des modulations linéaires car le signal x(t) s’écrit linéairement en fonction des symboles d’information {sn }n . D’autres liens entre x(t) et {sn }n de type non-linéaire auraient pu être considérés mais cela dépasse largement le cadre du cours de COM105 et revêt une utilité faible maintenant car ces modulations non-linéaires tombent en désuétude. En fait l’équation (3.9) est rarement utilisée sans modification car, en pratique, les symboles {sn }n de type OOK ou PAM ne modulent pas directement le filtre g(t) mais passent à travers un opérateur linéaire dont la sortie notée {s̃n }n module alors le filtre g(t). Cet opérateur linéaire a pour objectif de faciliter la réception. Dans le cadre des 4G, 5G, Wifi, TNT et ADSL, cet opérateur s’appelle l’OFDM et gère la présence de l’interférence entre symboles (définie à la sous-section 3.4.2). Dans le cadre de la 3G, cet opérateur s’appelle le CDMA et gère l’interférence entre les utilisateurs d’une même cellule. Ces opérateurs sont décrits et justifiés dans le cours de COM223. Spectre du signal émis. Pour voir l’impact de g(t) sur le spectre de x(t) et donc sur la largeur de bande, il convient d’abord de définir le spectre et la largeur de bande du signal x(t). Comme le signal x(t) est aléatoire en raison de la nature aléatoire de l’information (cf. le chapitre 2), le spectre est défini comme étant la densité spectrale de puissance (d.s.p.) du signal. En SI101, vous avez montré que la densité spectrale de puissance d’un signal stationnaire (au sens large) correspondait à la transformée de Fourier de la fonction d’autocorrélation. Vérifions que le signal x(t) est stationnaire ou pas au sens large ? Dans la suite de cette sous-section, afin de faciliter les calculs, nous supposerons que N = +∞. En conséquence, en accord avec l’hypothèse 3.2, un calcul élémentaire conduit à E[x(t)] E[x(t + τ )x(t)] = ms = m2s ∞ X g(t − nTs ) n=0 ∞ X n,m=0 g(t + τ − nTs )g(t − mTs ) + σs2 (3.10) ∞ X n=0 g(t + τ − nTs )g(t − nTs ) (3.11) 43 Description de l’émetteur Alors que le terme de droite de l’équation (3.10) peut parfois être indépendant de t, notamment si ms = 0 ou si g(t) = ΠTs (t), il est clair que le terme de droite de l’équation (3.11) dépend toujours de t. Par conséquent, le signal x(t) n’est pas stationnaire. En fait, il est cyclostationnaire car ces moments sont invariants par un décalage temporel de Ts comme on peut le vérifier facilement sur les équations (3.10) et (3.11). Cette propriété de cyclostationnarité nous empêche de calculer la d.s.p. comme la transformée de Fourier de la fonction d’autocorrélation. D’ailleurs cela s’avère impossible puisque cette fonction d’autocorrélation, définie ∆ par (t, τ ) 7→ rxx (t, τ ) = E[x(t + τ )x(t)] dépend maintenant des deux variables t et τ . Le lien entre la d.s.p. et rxx (t, τ ) est à établir et ceci est fait dans le résultat 3.2. Ce résultat est démontré en annexe A.1. Résultat 3.2 Soit f 7→ Sxx (f ) la densité spectrale du signal x(t). Nous avons Z (0) (0) Sxx (f ) = rxx (τ )e−2iπf τ dτ = FT(τ 7→ rxx (τ )) avec 1 T →∞ T (0) rxx (τ ) = lim Z T /2 rxx (t, τ )dt. −T /2 En clair, la d.s.p. est la transformée de Fourier de la composante continue de la fonction d’autocorrélation. Ceci est donc une extension de la formule vue en SI101. Etant donné le résultat 3.2, nous sommes maintenant en mesure de déterminer le lien entre la d.s.p. de x(t) et de ces paramètres-constituants qui est reporté dans le résultat 3.3. De nouveau, la preuve, simple mais fastidieuse, est donnée en annexe A.2. Résultat 3.3 (Formule de Bennett) Soit x(t) le signal défini par l’équation (3.9) avec N = +∞. On a alors 2 +∞ m2s X n n σs2 Sxx (f ) = 2 G δ f − + |G(f )|2 Ts n=−∞ Ts Ts Ts avec f 7→ G(f ) la transformée de Fourier de t 7→ g(t). Grâce au résultat 3.3, on remarque que la forme du spectre du signal émis dépend totalement de celle du filtre d’émission g(t). De plus quand le signal n’est pas à moyenne nulle, des raies apparaissent dans le spectre. Plus que la forme du spectre, ce qui compte c’est la largeur de bande qu’il occupe. Nous donnons, à la définition 3.1, notre définition de la bande pour les types de signaux que nous rencontrons couramment. Définition 3.1 Soit t 7→ x(t) une fonction temporelle dont la transformée de Fourier est notée f 7→ X(f ). Nous supposerons que le support du spectre (donc de f 7→ X(f )) est symétrique autour de 0 et vaut [−fmax , fmax ]. De plus nous supposerons qu’il existe une boule ouverte autour de f = 0 pour laquelle X(f ) n’est pas identiquement nul. Alors, nous définirons la bande, notée B, comme étant la longueur du support de X. Par conséquent B = 2fmax . (3.12) En cours de SI101, la bande a été définie différemment (en fait, sans le facteur 2 dans l’équation (3.12)) car ils ont utilisé le fait que le signal x(t) était à valeurs réelles et donc que la partie négative du spectre était redondante par rapport à sa partie positive grâce à la symétrie hermitienne de X(f ). Ici, afin d’être compatible avec de futurs signaux à valeurs complexes (comme c’est le cas maintenant dans la plupart des systèmes) qui évidemment n’ont pas de spectre à symétrie hermitienne, nous n’avons pas pris en compte la nature réelle du signal traité. Nous serons donc cohérents avec les cours futurs de communications numériques du cycle Master. Etant donné la définition 3.1, nous avons la largeur de bande de x(t) identique à celle de g(t). Dans la suite, nous listons quelques choix naturels de filtre g(t) et nous en évaluons qualitativement les avantages et inconvénients respectifs. • Exemple 1 : Fonction porte. √ 1 1/ Ts pour t ∈ [0, Ts [ (3.13) g(t) = √ ΠTs (t) = 0 ailleurs Ts et donc |G(f )| = p Ts |sinc (πf Ts ) | 44 Modulations numériques √ avec sinc(•) = sin(•)/• le sinus cardinal. Le facteur 1/ Ts a été rajouté dans l’équation (3.13) afin d’assurer une énergie-unité pour ce filtre. Comme vu dans l’exemple-jouet de la sous-section 3.3.1, ce filtre est couramment employé pour des transmissions sur fibre optique et s’appelle alors le filtre de « Non-Retour-à-Zéro » (NRZ). Il est connu que la transformée de Fourier d’un tel filtre est un sinus cardinal. Par conséquent, la bande théorique occupée est infinie. En pratique, si on néglige les lobes secondaires autres que le premier d’entre eux, la bande est de l’ordre de 4/Ts . Ce filtre est coûteux en terme de bande et de plus déborde beaucoup sur les canaux adjacents. En optique, cela n’est encore trop gênant car la bande disponible sur les fibres optiques (en raison des très hautes fréquences considérées puisque ce sont des fréquences du même ordre de grandeur que la lumière visible) est importante et donc on peut se permettre d’en gâcher un peu par facilité. En revanche, en communications sans fil, la bande est très précieuse, surtout autour du giga-Hertz où la plupart des applications « s’entasse », donc il est totalement exclu d’utiliser ce type de filtre. • Exemple 2 : Fonction sinc. t 1 g(t) = √ sinc π Ts Ts et donc |G(f )| = p Ts Π1/Ts (f − 1/2Ts ). Ce filtre a pour transformée de Fourier un spectre idéalement plat entre les fréquences −1/2Ts et 1/2Ts et nul ailleurs. Mais il est également bien connu que ce filtre n’est pas implémentable en pratique, même avec des troncatures bien choisies, en raison du phénomène de Gibbs (cf. le cours de SI101). C’est d’ailleurs la raison pour laquelle construire des filtres analogiques avec des gabarits abrupts s’avèrent délicats et a conduit à de nombreuses solutions sous-optimales dont on peut citer l’exemple des filtres de Butterworth donnés en cours de ELEC101. • Exemple 3 : Fonction en racine de cosinus surélevé. g(t) = 4ρ cos((1 + ρ)πt/Ts ) + (Ts /(4ρt)) sin((1 − ρ)πt/Ts ) √ 2 π Ts 1 − (4ρt/Ts ) et donc |G(f )| = r √ Ts 2 1 + cos Ts πTs ρ (|f | 0 − (1 − ρ)/(2Ts )) pour |f | ∈ [0, (1 − ρ)/(2Ts )] pour |f | ∈](1 − ρ)/(2Ts ), (1 + ρ)/(2Ts )] ailleurs avec ρ le facteur d’excès de bande compris entre 0 et 1. Bien que ce filtre ne paraisse pas naturel, il est fort couramment utilisé, notamment en 3G avec ρ = 0, 22 ou en DVB-C avec ρ = 0.15, car il offre un excellent compromis entre son occupation spectrale (qui est de (1 + ρ)/Ts et qui sera calculée à la sous-section 3.4.2) et son occupation temporelle. En temps, il a une décroissance bien plus rapide que le sinus cardinal et des lobes secondaires bien plus faibles. Ce compromis temps-fréquence est donc bien meilleur que ceux offerts par les filtres présentés aux exemples précédents. De plus ce filtre possède une propriété fondamentale que doit vérifier le filtre d’émission pour faciliter la réception et qui sera montrée à la sous-section 3.4.2. Pour ces deux raisons (compromis temps-fréquence et propriété fondamentale à satisfaire), ce filtre en racine de cosinus surélevé (square-root raised cosine -srrc-, en anglais) est très largement répandu dans les systèmes actuels. Sur les trois exemples, nous remarquons que la bande de g(t), et donc aussi celle de x(t), est supérieure ou égale à 1/Ts . Nous verrons que cette inégalité n’est pas due au hasard en sous-section 3.4.2. Consommation énergétique. Avant de décrire le récepteur, puisque nous avons fini de décrire l’émetteur (symboles et filtre d’émission), examinons l’énergie consommée pour en envoyer un bit par le biais du signal x(t). On note Eb l’énergie consommée pour émettre un bit d’information. Les expressions suivantes supposeront que les données cn ne sont pas codées et donc qu’un bit émis cn correspond à un bit d’information dn . Dans le cas contraire, l’équation finale (3.15) est à multiplier par l’inverse du rendement du code R. Soit Px la puissance duRsignal x(t). Comme un bit dure en moyenne Tb secondes. Nous avons Eb = Px Tb = Px Ts / log2 (M ). Or Px = Sxx (f )df , donc en utilisant l’expression donnée au résultat 3.3, nous obtenons trivialement le résultat suivant. 45 Description de récepteur Résultat 3.4 L’énergie consommée pour émettre un bit d’information (dans le cas non codé) s’écrit de la manière suivante X 1 Es Eg + m2s hn (3.14) Eb = log2 (M ) n6=0 R où Eg = g(t)2 dt correspond à l’énergie du filtre d’émission et où hn = h(nTs ) avec h(t) = g(−t) ? g(t). Si le signal est à moyenne nulle (ms = 0 comme dans le cas de la PAM) ou si hn = 0 pour tout n 6= 0 (comme c’est le cas des trois filtres g(t) présentés à la page précédente -cf. la sous-section 3.4.2 pour plus d’explications sur cette contrainte-), alors on obtient la formule simplifiée suivante Eb = Es Eg . log2 (M ) (3.15) Dans le reste du cours, pour simplifier, nous supposerons que Eg = 1 et donc que nous travaillons avec des filtres d’émission normalisés comme fait dans les trois exemples donnés plus haut. En revanche, dans l’exemple-jouet, nous avions Eg = Ts , ce qui conduira à faire une normalisation à la réception comme nous le verrons en sous-section 3.4.1. L’équation (3.15) nous donne l’impression qu’en augmentant M , on diminue l’énergie consommée par bit. Ceci est faux si on souhaite offrir les mêmes performances. En effet, on verra, en sous-section 3.5, qu’il faut alors aussi augmenter Es augmente dans une proportion même plus grande que M . 3.4 Description de récepteur Bien évidemment, les opérations à effectuer au récepteur pour retrouver les symboles d’information, vont dépendre de la distorsion apportée par le canal de propagation. Comme déjà mentionné, nous allons nous focaliser uniquement sur le canal gaussien. Nous verrons, à titre d’exemple, que les résultats obtenus au cours de cette section peuvent s’étendre à certains autres types de canaux (notamment, lorsque plusieurs antennes sont disponibles au récepteur) sans difficulté. En revanche, les résultats obtenus ne peuvent s’étendre trivialement au canal sélectif en fréquence (en fait, certains résultats restent valides et d’autres exigent des modifications majeures) qui doit donc faire l’objet d’une étude spécifique conduite dans le cours de COM223. Un récepteur est décomposé en deux boîtiers ayant des buts différents : • Comme nous souhaitons prendre des décisions sur la suite discrète de symboles, il apparaît naturel de vouloir effectuer des opérations non pas sur le signal analogique y(t) mais sur une « version échantillonnée ». Donc le premier boîtier a pour objectif de fournir un signal à temps discret à partir du signal analogique y(t). Nous verrons que cela ne se résume pas à un simple échantillonnage à la cadence donnée par le théorème d’échantillonnage de Shannon-Nyquist. Ce boîtier est décrit et partiellement justifié en sous-section 3.4.1. • A partir du signal à temps discret délivré par le premier boîtier, noté {zn }n , le deuxième boîtier prendra une décision sur les symboles d’information émis {sn }n . Grâce aux outils de la théorie de la détection développés au chapitre 1, nous serons en mesure de donner et de justifier les opérations que le détecteur optimal (c’est-à-dire, celui qui minimise la probabilité d’erreur) doit effectuer. Ce boîtier est décrit en sous-section 3.4.3. Enfin, la sous-section 3.4.2 est dédiée à la description d’une contrainte sur le filtre d’émission (dans le cas du canal gaussien) qu’il doit satisfaire afin que le détecteur optimal soit ultra-simple à implémenter. En effet, cette contrainte permettra d’éliminer ce que nous appellerons l’Interférence entre Symboles (ISI en anglais) et donc de travailler symbole par symbole. 3.4.1 Du signal à temps continu au signal à temps discret : le filtre adapté Le résultat le plus important de cette sous-section est le résultat 3.5 suivant. Nous allons ensuite i) le prouver partiellement car des outils non développés en COM105, faute de temps, nous manquent pour faire une preuve rigoureuse et complète et ii) le commenter longuement. Résultat 3.5 (Filtre adapté) La suite à temps discret zn , optimale au sens de la probabilité d’erreur, sur laquelle apposer ensuite un détecteur est la suivante : zn = z(nTs ) 46 Modulations numériques avec z(t) = g(−t) ? y(t) où • ? est le produit de convolution, et • g(−t) est dit le filtre adapté (matched filter, en anglais) à g(t). Esquisse de preuve : Nous supposerons au préalable que la structure optimale du premier boîtier est la suivante. zn = z(nTs ) avec z(t) = gr (t) ? y(t). (3.16) où gr (t) est dit un filtre de réception. Ainsi nous forçons le récepteur à effectuer une opération linéaire suivi d’un échantillonnage à la cadence des symboles. Nous allons, ici, juste prouver que gr (t) = g(−t). Pour cela, nous allons de plus supposer qu’un unique symbole a été émis, donc que y(t) = sn g(t − nTs ) + b(t). Pour optimiser le récepteur, nous allons exhiber le filtre gr (t) qui maximise, au niveau du signal zn , le Rapport Signal-à-Bruit ou Signal-to-Noise Ratio (SNR) en anglais. Nous avons Z Z zn = sn gr (τ )g(−τ )dτ + gr (τ )b(nTs − τ )dτ . | {z } | {z } signal bruit Pour écrire le SNR, qui est égal à E[(signal)2 ]/E[(bruit)2 ], nous développons les termes au carré, permutons les espérances mathématiques et les intégrales temporelles, et utilisons l’hypothèse 3.1 sur le bruit. Ainsi, nous obtenons 2 R gr (τ )g(−τ )dτ 2Es R SNR = . N0 gr (τ )2 dτ Par l’inégalité de Cauchy-Schwartz (appliquée, ici, sur des signaux à valeurs réelles ce qui explique l’absence de complexe conjugué), nous avons une borne sur le SNR indépendante de gr (t) qui vaut Z 2Es SNR ≤ g(τ )2 dτ N0 et cette borne est atteinte et donc le SNR est maximisé par rapport à gr (t) si et seulement si gr (t) = g(−t) ce qui conclut la preuve. Pour s’affranchir de nos deux hypothèses et donc étendre la preuve pour un nombre quelconque de symboles émis et pour un récepteur dont nous ne fixons aucune structure préalable (contrairement donc à l’équation (3.16), nous devons faire appel à des techniques plus sophistiquées reposant sur la notion d’espace des signaux dont le caractère hilbertien sera précieux et utilisant la caractère gaussien du bruit (ce dont nous n’avons pas eu besoin ici puisque travaillant avec le SNR et donc avec des moments du second ordre). La preuve complète est donnée en COM223. Donc le récepteur optimal est composé d’abord du filtre adapté au filtre d’émission et ensuite d’un échantillonneur à la cadence des symboles. Ainsi, nous avons transformé le signal analogique reçu en une suite discrète qui fonctionne à la même vitesse que les symboles émis. Le filtre adapté ayant maximisé le SNR, il a eu pour effet de diminuer le bruit perturbant l’information portée par les symboles. Alors que nous avons procédé à une opération d’échantillonnage, on peut s’étonner de ne pas avoir utilisé le fameux théorème d’échantillonnage de Shannon-Nyquist pour résoudre le problème posé. Ceci aurait pu être fait mais aurait conduit à deux défauts. Rappelez-vous les trois exemples de filtre d’émission donnés à la sous-section précédente. Tous avaient une largeur de bande supérieure ou égale à 1/Ts . Retenons l’exemple 3 du filtre en racine de cosinus surélevé qui est souvent utilisé en pratique. Sa largeur de bande vaut (1 + ρ)/Ts avec en pratique ρ < 1. En échantillonnant à la cadence 2/Ts , on s’assure la validité du théorème de ShannonNyquist pour toute valeur pratique de ρ. Ainsi, nous nous retrouvons en présence de deux échantillons par symbole d’information ce qui est le premier défaut. En effet, en pratique il faudra bien combiner ces deux échantillons associés au symbole sn pour détecter optimalement sn . On pourrait montrer qu’effectuer cette combinaison revient à appliquer en fait un filtre adapté mais numérique cette fois-ci. 47 Description de récepteur De plus appliquer le théorème d’échantillonnage revient à ne pas perdre d’information sur le signal analogique y(t) et donc à conserver tout le bruit b(t) présent dans y(t) ce qui est le deuxième défaut. En effet, ceci ne nous intéresse pas de conserver tout le bruit puisque ce qui nous intéresse n’est pas y(t) dans sa globalité mais seulement les symboles sn contenus dans y(t). Donc nous ne sommes intéressés que par une sous-partie de y(t). C’est pourquoi on peut se permettre de ne pas échantillonner à la fréquence de Shannon-Nyquist, moyennant l’application du filtre adapté. Pour la petite histoire, le filtre adapté n’a pas été créé pour les communications numériques mais pour le traitement du signal en radar. Il permet en effet de faire ressortir l’écho émis par le radar (noté g(t)) caché dans le bruit ambiant. Ces travaux publiés par les Alliés durant le deuxième conflit mondial leur ont donné un avantage certain dans les luttes aérienne et maritime. Avant d’aller plus loin, écrivons la suite {zn }n en fonction des symboles {sn }n . Le lien est donné par le résultat 3.6 suivant. Résultat 3.6 (Interférence entre symboles) Dans le contexte d’un canal gaussien et dans le cas de l’application du filtre adapté au récepteur, nous avons zn = hn ? sn + wn = h0 sn + X k6=0 | hk sn−k {z +wn (3.17) } Interférence entre symboles avec • hn = h(nTs ) où h(t) = g(−t) ? g(t) est le filtre global réunissant le filtre d’émission et le filtre de réception, et • wn = w(nTs ) où w(t) = g(−t) ? b(t) est le bruit passé à travers le filtre adapté. De plus, nous avons que le spectre de wn , noté f 7→ Sww (e2iπf ), vaut Sww (e2iπf ) = où h(e2iπf ) = P n N0 h(e2iπf ) 2 (3.18) hn e−2iπf n est le spectre de la suite {hn }n . Preuve : En convoluant l’équation (3.9) avec le filtre g(−t), nous obtenons que X z(t) = sk h(t − kTs ) + w(t). k En échantillonnant ensuite à la cadence des symboles, nous avons X zn = sk hn−k + wn . k Comme le produit de convolution est commutatif, nous avons bien l’équation (3.17). Concernant le spectre du bruit wn , calculons d’abord wn . Il est clair que Z wn = g(−τ )b(nTs − τ )dτ. De ce fait la corrélation rww (n) = E[wm+n wm ] s’exprime en permutant l’espérance mathématique et les intégrales temporelles comme ci-dessous ZZ rww (m) = g(−τ )g(−τ 0 )E[b(mTs + nTs − τ )b(mTs − τ 0 )]dτ dτ 0 . Comme le bruit b(t) est blanc (cf. hypothèse 3.1), nous avons ZZ N0 rww (n) = g(−τ )g(nTs − τ 0 )δ(nTs − τ + τ 0 )dτ dτ 0 2 Z N0 = g(−τ )g(nTs − τ )dτ 2 N0 = (g(−t) ? g(t))|t=nTs 2 N0 = hn . 2 48 Modulations numériques Comme le spectre pour les suites aléatoires stationnaires est défini par X Sww (e2iπf ) = rww (n)e−2iπf n , n le résultat est démontré. Nous pouvons faire quelques remarques sur les bruits que nous avons introduit : le bruit analogique w(t) est coloré puisqu’il correspond au passage d’un bruit blanc dans le filtre g(−t). Il sera blanc si et seulement si g(t) = δ(t) ce qui n’est pas envisageable en pratique puisque ce filtre est à bande infiniment constante. Le bruit à temps discret wn est lui aussi a priori coloré puisque son spectre est donné par celui du filtre hn sur lequel nous n’avons encore fait aucune hypothèse particulière. Enfin, par construction, f 7→ Sww (e2iπf ) est une fonction non-négative, ce qui implique que f 7→ h(e2iπf ) l’est aussi. Pourquoi est-ce vrai ? Par la formule sommatoire de Poisson (introduite en cours de SI101 et qui, en autre, permet de démontrer le théorème d’échantillonnage de Shannon-Nyquist), nous savons que, pour tout Ts , X f −n 1 X 2iπf −2iπ(f /Ts )nTs H = h(e )= h(nTs )e Ts n Ts n avec f 7→ H(f ) la transformée de Fourier de t 7→ h(t). Or, comme h(t) = g(−t) ? g(t), nous avons H(f ) = |G(f )|2 qui est donc non-négatif ce qui prouve bien que f 7→ h(e2iπf ) l’est aussi. Cependant le cœur du résultat 3.6 n’est pas la couleur du bruit, mais la présence d’Interférence Entre Symboles (ISI) dans l’équation (3.17). Comme un même symbole sn est présent sur plusieurs échantillons zn , le détecteur ayant pour objectif de recouvrir optimalement sn ne peut se contenter de travailler échantillon par échantillon mais doit travailler conjointement sur un ensemble d’échantillons dont la taille va certainement dépendre de la longueur du filtre {hn }n . Cet algorithme existe et s’appelle l’algorithme de Viterbi (il est notamment utilisé dans les téléphones 2G pour gérer l’ISI). Cet algorithme fait appel aux techniques de programmation dynamique reliée aux Chaînes de Markov. Ce cadre très général fait qu’on rencontre cet algorithme aussi dans le décodage de certains codes correcteurs d’erreur avec mémoire (qui sont utilisés dans tous les systèmes actuels de type 2G, 3G, 4G, TNT, Wifi, ADSL, etc) mais aussi dans d’autres applications fort différentes à première vue des communications numériques comme la classification, la reconnaissance de la parole, etc. Dès que le filtre {hn }n est trop long ou que la taille de la constellation M est trop grande, cet algorithme devient inopérant en raison de sa complexité algorithmique. D’autres solutions sous-optimales mais moins complexes existent dans la littérature pour gérer la présence d’ISI : on peut citer l’égalisation linéaire dont l’objectif est de diminuer suffisamment la puissance de l’ISI par des traitements linéaires afin de mettre ensuite en place le détecteur prévu en l’absence d’ISI que nous exposerons à la sous-section 3.4.3. Noter que l’approche par égalisation est beaucoup utilisée dans la 3G pour gérer non pas l’ISI mais l’interférence entre utilisateurs au niveau de la station de base. Mais actuellement la technique qui fait fureur pour gérer l’ISI (4G, Wifi, TNT, ADSL, fibres optiques, etc) est l’OFDM qui est basée sur le principe de diagonalisation d’opérateur linéaire. Ces algorithmes font l’objet d’une étude approfondie en COM223. Ils sont donc en dehors du périmètre de COM105. En effet, en présence d’un canal gaussien, nous allons voir en sous-section 3.4.2 qu’en choisissant judicieusement le filtre d’émission, on peut éliminer l’ISI et donc développer en sous-section 3.4.3 un détecteur bien plus simple qui ne fera pas appel aux techniques mentionnées au paragraphe précédent. 3.4.2 De l’interférence entre symboles : le filtre de Nyquist Dans l’équation (3.17), l’ISI provient de la présence du filtre d’émission et de son filtre adapté. Quand le canal de propagation est en outre sélectif en fréquence, l’ISI est également engendrée par les échos du canal qui retardent le signal émis et provoquent le mélange des symboles comme déjà évoqué en section 3.2. Puisque nous ne choisissons pas nous-mêmes les échos du canal de propagation, cette ISI est subie et impondérable ce qui fait que le récepteur doit s’y confronter sans échappatoire avec les techniques évoquées à la fin de la sous-section précédente. En revanche, lorsque le canal est gaussien comme c’est le cas dans ce cours de COM105, l’origine de l’ISI est unique et provient seulement de la présence du filtre d’émission et de son filtre adapté. L’ISI étant vue comme un facteur nuisible (cela complique les récepteurs et en fait augmente la probabilité d’erreur), Description de récepteur 49 il nous paraît opportun de sélectionner un filtre d’émission ne créant pas d’ISI au niveau du signal zn . C’est pourquoi l’objectif de cette sous-section est d’exhiber les conditions sur g(t) et de manière équivalente sur h(t) (qui, nous le rappelons, vaut g(−t) ? g(t)) pour empêcher la présence d’ISI au niveau de zn . En examinant l’équation (3.17), il est évident qu’il n’y aura pas de mélange des symboles au niveau de zn si et seulement si les cœfficients du mélange sont nuls sauf un. Autrement dit, il n’y a pas d’ISI si et seulement si il existe n0 pour lequel hn0 6= 0 et hn = 0, ∀n 6= n0 . Ceci est bien une condition nécessaire et suffisante. En effet, le sens « suffisant » est trivial et le sens « nécessaire » provient du fait que nous voulons l’absence d’ISI quelle que soit la valeur des symboles émis et non pour une combinaison particulière de symboles. Dans la suite du cours, sans perte de généralité, nous prendrons toujours n0 = 0 pour simplifier. Cette condition sur le filtre h(t) se traduit par l’introduction du filtre de Nyquist donné en définition 3.2. Définition 3.2 (Filtre de Nyquist) Un filtre de réponse impulsionnelle `(t) est dit de Nyquist (pour la cadence 1/Ts ) si et seulement si 6= 0 pour n = 0 `n = `(nTs ) = . (3.19) 0 pour n 6= 0 P P Par simple application de la formule sommatoire de Poisson ( n L(f − n/Ts ) = Ts n `n e−2iπf nTs ), nous obtenons une équation dans le domaine fréquentiel associée à l’équation (3.19). Ainsi, de manière équivalente, un filtre de fonction de transfert L(f ), qui est la transformée de Fourier de `(t), est dit de Nyquist si et seulement si X n = Ts `0 = constante, ∀ f. (3.20) L f− Ts n Ainsi le premier résultat de cette sous-section est le suivant. Résultat 3.7 Soit h(t) le filtre englobant le filtre d’émission et le filtre de réception et intervenant dans l’équation (3.17). Pour ne pas créer d’ISI, ce filtre doit être de Nyquist (pour la cadence 1/Ts ). Evidemment, en pratique, nous ne construisons pas h(t) puisqu’il résulte de la concaténation du filtre d’émission g(t) et du filtre adapté à g(t). Ainsi h(t) dépend entièrement du choix de g(t). Donc ce qui nous intéresse plutôt c’est la caractérisation de g(t) et donc la traduction sur g(t) du fait que h(t) soit de Nyquist. Pour cela, nous devons introduire, en définition 3.3, la notion de filtre en racine de Nyquist. Définition 3.3 (Filtre en racine de Nyquist) Un filtre `(t) (à valeurs réelles) est dit en racine de Nyquist si et seulement si le filtre `(−t) ? `(t) est un filtre de Nyquist. Autrement dit, le filtre convolué à son filtre adapté est de Nyquist. L’expression « racine de Nyquist » provient du fait que le spectre de `(−t) ? `(t) est égal à |L(f )|2 . Donc si `(t) est racine de Nyquist, `(−t) ? `(t) est Nyquist et |L(f )|2 vérifie la condition de Nyquist fréquentielle. Autrement dit, de tout filtre de Nyquist, on peut créer un filtre en racine de Nyquist dont le spectre sera la racine du module du spectre du filtre de Nyquist initial. Pour ne pas avoir d’ISI dans l’équation (3.17), h(t) est de Nyquist. De plus, si h(t) = g(−t) ? g(t) comme conseillé en sous-section 3.4.1, alors le filtre d’émission g(t) doit être en racine de Nyquist d’où le résultat suivant. Résultat 3.8 Si h(t) est un filtre de Nyquist en accord avec le résultat 3.7 et si h(t) = g(−t) ? g(t) en accord avec le résultat 3.6, alors g(t) est un filtre en racine de Nyquist. Noter que ce résultat 3.8 ne tient plus si on décide de mettre un filtre de réception différent du filtre adapté. Cela peut arriver en pratique de ne mettre qu’un filtre sélectionnant la bande utile du signal. Noter également que le filtre adapté évidemment ne sélectionne que la bande utile du signal (puisqu’il a la même bande) mais en plus épouse en quelque sorte la forme du signal émis et de manière optimale puisqu’il maximise le SNR. Le résultat 3.9 fournit une condition nécessaire (mais pas suffisante) que la bande des filtres de Nyquist ou en racine de Nyquist doit satisfaire. Cette condition n’est pas sans rappeler un commentaire effectué dans la dernière phrase du paragraphe consacré au spectre du signal émis dans la sous-section 3.3.3. 50 Modulations numériques Résultat 3.9 La largeur de bande, notée B, de tout filtre de Nyquist ou en racine de Nyquist (pour la cadence 1/Ts ) vérifie 1 B≥ . Ts Preuve : Examinons d’abord le cas du filtre de Nyquist. Raisonnons par l’absurde : supposons que B < 1/Ts , alors la condition fréquentielle donnée par l’équation (3.20) ne peut pas être satisfait puisque le terme sera parfois nul et parfois non nul. En effet, il sera nul quand les fonctions décalées ne se superposent pas ce qui sera le cas puisque B < 1/Ts et comme montré sur la figure 3.6. Donc il faut nécessairement que B ≥ 1/Ts . . Fonction "verte/tiret" non constante L(f ) L(f − 1/Ts) f 0 B 1 Ts . Figure 3.6 – Allure du terme de gauche de l’équation (3.20) quand B < 1/Ts Comme le spectre du filtre en racine de Nyquist est la racine du spectre du filtre de Nyquist associé, ils ont même largeur de bande et donc la condition est identique. Evidemment, dans le contexte du canal gaussien, cette condition est essentielle car elle nous permet de construire des filtres d’émission ne créant pas d’ISI à la réception. En revanche, dans le contexte du canal sélectif en fréquence, on pourra à première vue se permettre de relâcher cette condition sur la bande, puisque même si le filtre d’émission est en racine de Nyquist, de l’ISI subsistera à la réception en raison de celle apportée par les échos du canal multitrajets. C’est pourquoi, si on s’affranchit de cette condition de bande, il y aura deux origines indépendantes de l’ISI. Et l’ISI résultante sera malheureusement le cumul des ISI provenant du filtre d’émission et des échos (pour s’en convaincre, il suffit de se rappeler que les longueurs des filtres s’additionnent par convolution). Donc l’ISI résultante sera généralement plus élevée si le filtre d’émission n’est pas en racine de Nyquist. Néanmoins si les deux ISI sont assez courtes et donc assez faibles, on peut se permettre de garder les deux et de les traiter au niveau du récepteur avec des algorithmes puissants engendrant une perte en performances limitée. Ainsi, en 2G, B = 0.75/Ts < 1/Ts . Ce choix a été fait car l’occupation spectrale du système était cruciale. Néanmoins, on ne peut pas baisser la bande indéfiniment car alors l’ISI apportée par le filtre d’émission devient énorme et ingérable d’un point de vue algorithmique à la réception. Par conséquent on aura toujours 1 B=O . Ts En conclusion, à l’exception notable de la 2G, même en présence d’un canal sélectif en fréquence, on continue généralement d’imposer au filtre d’émission d’être un filtre en racine de Nyquist (et donc de vérifier la condition de bande). Donnons quelques exemples de filtres en racine de Nyquist et de filtres de Nyquist. Pour cela, revenons sur les filtres d’émission introduits à la sous-section 3.3.3. • Exemple 1 : Fonction porte. En observant l’équation (3.13), on obtient aisément que cette fonction représente un filtre de Nyquist. C’est normal car, par construction, les symboles ne sont pas mélangés : en effet, à chaque instant, et donc a fortiori aux instants nTs , un seul symbole est présent. La convolution de la fonction porte avec son filtre adapté conduit à une fonction en triangle entre −Ts et Ts . Cette fonction triangle est donc aussi un filtre de Nyquist. Et la fonction porte est ainsi aussi un filtre en racine de Nyquist. En fait, tout filtre ayant une réponse impulsionnelle de support [0, Ts ] et nulle en Ts est à la fois Nyquist et racine de Nyquist (car cette réponse impulsionnelle convoluée à son filtre adapté a alors un support de [−Ts , Ts ] et est nulle en −Ts et Ts ). C’est logique car dans ce cas le filtre d’émission ne mélange à aucun instant les symboles et ces symboles sont donc séparables à la réception. 51 Description de récepteur On dit qu’on a un principe d’orthogonalité (ici, toute fonction de support [0, Ts ] est orthogonale par rapport à sa décalée de nTs pour le produit scalaire canonique). Ce principe s’avère en fait central en communications numériques et nous aurons l’occasion de nous y pencher fortement en cours de cycle master. • Exemple 2 : Fonction sinc. Il est facile de montrer, par l’intermédiaire de la version fréquentielle du critère de Nyquist, que cette fonction de nouveau représente un filtre de Nyquist et un filtre en racine de Nyquist. • Exemple 3 : Fonction en racine de cosinus surélevé. Comme mentionné en sous-section 3.3.3, ce filtre est couramment employé dans les systèmes pratiques en raison de son bon compromis tempsfréquence et aussi parce qu’il est en racine de Nyquist. En revanche, cette fonction n’est pas un filtre de Nyquist. En fait le filtre de Nyquist associé, résultant de la convolution de ce filtre en racine de cosinus surélevé avec son filtre adapté, se nomme filtre en cosinus surélevé et admet la réponse impulsionnelle et la fonction de transfert suivantes h(t) = sinc(πt/Ts ) et donc H(f ) = cos(πρt/Ts ) 1 − (2ρt/Ts )2 Ts Ts /2 1 + cos πTρ s (|f | − (1 − ρ)/(2Ts )) 0 pour |f | ∈ [0, (1 − ρ)/(2Ts )] pour |f | ∈](1 − ρ)/(2Ts ), (1 + ρ)/(2Ts )] ailleurs Le terme « cosinus surélevé » provient de l’arc de cosinus translaté verticalement et permettant de rejoindre les deux parties plates du spectre. On voit bien que la condition B ≥ 1/Ts est respectée. Le facteur d’excès de bande ρ (roll-off, en anglais) détermine la bande supplémentaire que l’on s’impose par rapport à la bande minimale requise. Une fois la contrainte de filtre de Nyquist vérifiée par h(t), l’équation (3.17) se simplifie de la manière suivante zn = h0 sn + wn . R 2 avec, pour rappel, h0 = g(t) dt et donc h0 = Eg . De plus le bruit wn devient blanc de variance h0 N0 /2 en accord avec l’équation (3.18). Or, par hypothèse, nous avons fixé Eg = 1 ce qui implique que h0 = 1. Par conséquent, nous obtenons le modèle suivant pour le canal gaussien à temps discret zn = sn + wn (3.21) avec wn un bruit blanc gaussien centré de variance N0 /2. L’équation (3.21) justifie donc le modèle de canal gaussien déjà utilisé dans les chapitres 1 et 2. Dans l’exemple-jouet de la sous-section 3.3.1, nous avions Eg = Ts et non Eg = 1. Pour retrouver le modèle de l’équation (3.21), il suffira de normaliser en divisant le signal échantillonné par Ts . 3.4.3 Détecteur optimal Dans cette sous-section, nous allons décrire le détecteur optimal du canal gaussien à temps discret, c’està-dire, quelles opérations appliquées pour retrouver optimalement les symboles sn à partir de zn . Pour cela, nous allons utiliser les résultats généraux sur la théorie de la détection exposés et démontrés à la sous-section 1.4.1 du chapitre 1. Nous rappelons juste que le détecteur qui minimise la probabilité d’erreur est le fameux ML si les symboles émis sont équiprobables. Selon l’hypothèse 3.2, les symboles sont indépendants entre eux. De plus comme le bruit est blanc et gaussien, les échantillons wn sont indépendants entre eux. Par conséquent l’échantillon zn ne possède que de l’information sur l’instant nTs et donc sur sn . Ainsi nous pouvons travailler, sans perte d’optimalité, symbole par symbole. De plus, toujours selon l’hypothèse 3.2, les symboles sont équiprobables. C’est pourquoi, nous allons appliquer le détecteur ML sur le signal zn pour retrouver sn . Nous obtenons alors le résultat suivant. 52 Modulations numériques Résultat 3.10 Soit {sn }n une suite de symbole vérifiant l’hypothèse 3.2 et soit le canal gaussien à temps discret vérifiant l’équation (3.21). Alors le détecteur optimal obtient le symbole ŝn de la manière suivante si zn ∈ ] − ∞, t(0) ] s(0) (m) ŝn = s si zn ∈ ]t(m−1) , t(m) ] pour m ∈ {1, · · · , M − 2} (M −1) s si zn ∈ ]t(M −2) , +∞[ avec, pour m ∈ {0, · · · , M − 2}, les seuils (threshold, en anglais) suivants t(m) = s(m) + s(m+1) . 2 Preuve : comme le détecteur ML est optimal, ŝn est défini de la manière suivante ŝn = arg max sn ∈{s(0) ,··· ,s(M −1) } p(zn |sn ) (3.22) avec p(zn |sn ) la densité de probabilité de zn en supposant sn fixé. Ecrivons donc p(zn |sn ). Conditionné à sn , l’échantillon zn est gaussien de moyenne sn et de variance N0 /2. Par conséquent, p(zn |sn ) = √ (zn −sn )2 1 e− N 0 . πN0 (3.23) A partir des équations (3.22) et (3.23), nous avons ŝn = arg min (zn − sn )2 . (3.24) sn ∈{s(0) ,··· ,s(M −1) } Par conséquent, zn sera affecté au symbole s(m) le plus proche au sens de la norme quadratique. On peut ainsi définir une région de décision associée au symbole s(m) de la manière suivante R(m) ∆ = {z ∈ R t.q. ŝ = s(m) } = {z ∈ R t.q. s(m) est le plus proche de z au sens de la distance quadratique}. Ainsi, la région de décision R(m) est un intervalle de l’axe des réels dont les bornes sont les points à égale distance entre s(m−1) et s(m) et entre s(m) et s(m+1) . Evidemment un traitement particulier est à appliquer pour les deux symboles des extrémités ce qui conclut la preuve. Pour les deux constellations introduites dans le polycopié, à savoir les PAM et les OOK, il est facile de vérifier que 1 (m) (m) A. tPAM = (2m + 2 − M ) A et tOOK = m + 2 ce qui donne la figure 3.7 suivante pour la 4-PAM et la 4-OOK. Ce type de détecteur par région de décisions dont les bornes sont les médiatrices des points des constellations s’appelle le détecteur à seuil. . . (0) (1) −3A t −A t 1 0 0 1 1 0 0 1 −2A 0 (2) A t 3A 1 0 0 1 0 1 0 0 1 2A t(0) 1 0 0 1 . 0 A/2 (1) (2) A t 2A t 3A 1 0 0 1 1 0 0 1 3A/2 1 0 0 1 5A/2 . Figure 3.7 – Régions de décision pour la 4-PAM (à gauche) et 4-OOK (à droite) Grâce au résultat 3.10, nous sommes en mesure de construire le récepteur optimal associé à l’exemplejouet de la sous-section 3.3.1. Le signal reçu y(t) doit passer à travers le filtre adapté au filtre rectangulaire et R (n+1)T est ensuite échantillonné. Ceci implique que la version normalisée de zn vaut (1/Ts ) nTs s y(t)dt. Comme le filtre rectangulaire est en racine de Nyquist, on a zn = sn + wn . Et le détecteur optimal consiste alors à seuiller zn par rapport à la valeur A/2. Par conséquent, le récepteur intuitivement évoqué en sous-section 3.3.1 s’avère optimal. 53 Description de récepteur Nous voyons que, dans le cas d’un canal gaussien, le détecteur optimal est extrêmement simple et hyperintuitif. Ceci est dû à deux raisons : i) tout d’abord le canal gaussien induit la minimisation d’une distance euclidienne grâce au carré présent dans l’exponentiel et ii) ensuite la recherche du symbole est, ici, monodimensionnelle puisque nous n’avons qu’une voie de transmission à la fois. Nous allons illustrer ces propos à travers trois extensions du résultat 3.10. Ces extensions sont en marge du cours mais vous permettront de comprendre encore mieux le mécanisme de création de la fonction de coût à minimiser par le détecteur, de visualiser le caractère parfois totalement non-intuitif de cette fonction de coût et d’apercevoir les problèmes parfois induits par cette minimisation lors de configurations moins triviales que le canal gaussien. • Extension 1 : canal SIMO avec bruit gaussien. Nous considérons une transmission avec un émetteur standard composé d’une antenne et d’un récepteur composé de deux antennes (d’où le terme SIMO pour Single Input - Multiple Output en anglais). Dans le cas d’un canal gaussien, après passage dans le filtre adapté de chacune des antennes réceptrices, nous avons à notre disposition deux signaux (1) (2) zn et zn qui s’écrivent de la manière suivante ( (1) (1) zn = sn + wn (3.25) (2) (2) zn = sn + wn avec les deux bruits indépendants entre eux. Nous voulons maintenant décrire le détecteur optimal ML pour notamment savoir comment combiner ou ne pas combiner les deux signaux reçus. Le détecteur optimal est défini comme suit ŝn = arg max s∈{s(1) ,··· ,s(M −1) } p(zn(1) , zn(2) |sn ). (1) Par indépendance des bruits entre les antennes, les variables zn et z (2) conditionnées par rapport à sn sont indépendantes et identiquement distribuées puisque gaussiennes de moyenne sn et de variance N0 /2. Ainsi 1 − (zn(1)N−sn )2 − (zn(2)N−sn )2 0 0 e e p(zn(1) , zn(2) |sn ) = p(zn(1) |sn )p(zn(2) |sn ) = πN0 ce qui implique que ŝn = arg min sn ∈{s(1) ,··· ,s(M −1) } (zn(1) − sn )2 + (zn(2) − sn )2 {z } | (1) . (3.26) (2) =kzn −sn k2 avec zn =[zn ,zn ]T et sn =[sn ,sn ]T ⇒Norme L2 De nouveau il existe des régions de décision basées sur la position du vecteur reçu zn et les frontières ne sont plus des simples points mais des lignes qui s’avèrent être des droites puisque ce sont les médiatrices entre les symboles sn possibles. Ces régions de décision sont illustrées sur la figure 3.8 dans le cas de symboles émis appartenant à une 2-PAM. Premièrement, nous remarquons que la distance pertinente entre les vecteurs est ici la distance euclidienne L2 . Il est clair que, sans calcul et sans connaissance de la théorie de la détection, tout le monde aurait quand même songé à mettre en œuvre cette distance. Deuxièmement le détecteur associé à l’équation (3.26) peut se ramener à une détection à seuil mono-dimensionnelle identique à celle décrite dans le résultat 3.10. Pour s’en convaincre, examinons le cas 2-PAM. Comme s2n = A2 et donc indépendant du symbole émis, ce terme n’influence pas l’optimisation ce qui implique que minimiser (1) (2) kzn − sn k2 est équivalent à minimiser (z̃n − sn )2 avec z̃n = (zn + zn )/2. Par conséquent, il suffit d’appliquer le détecteur à seuil sur la moyenne des signaux reçus. L’extension de ce résultat à des constellations quelconques existe mais est omis ici car plus complexe à démontrer. • Extension 2 : canal SIMO avec bruit laplacien. Gardons le même modèle de signaux reçus qu’à l’équation (3.25) mais modifions la densité de probabilité du bruit. Nous supposerons que le bruit sur chaque antenne est laplacien et donc de densité suivante 2|w| 1 −√ p(w) = √ e N0 . N0 Cette situation peut arriver quand le bruit est composé d’interférences provenant d’autres utilisateurs ou quand le bruit est de nature impulsive. En reproduisant la même démarche que pour le canal SIMO 54 Modulations numériques (1) (2) gaussien, nous savons que zn et zn conditionnées par rapport à sn sont des variables laplaciennes de moyenne sn et de variance N0 /2. Par conséquent le détecteur optimal vaut ŝn = arg |zn(1) − sn | + |zn(2) − sn | . {z } min sn ∈{s(1) ,··· ,s(M −1) } | (3.27) =kzn −sn k1 ⇒Norme L1 Cette fois, la distance entre les vecteurs est la distance L1 , dite aussi distance de Manhattan car adaptée à la distance parcourue lorsque l’on doit éviter des blocs de bâtiments ne pouvant être traversés par leur diagonale. On voit donc bien que la nature du bruit influence la distance mise en jeu ! La distance L1 n’est pas intuitive du tout, et seule la théorie de la détection développée au chapitre 1 nous a permis de l’exhiber. Les régions de décision associées à la norme L1 sont dessinées sur la figure 3.8 pour des symboles émis appartenant à une 2-PAM. Nous observons que la ligne de séparation . Antenne 2 11111111 00000000 00000000 11111111 00000000 11111111 Région 00000000 11111111 00000000 11111111 indéterminée 00000000 11111111 00000000 11111111 00000000 11111111 Région de sn = A 1 0 0 1 A −A A 1 0 0 1 −A Région de sn = −A Antenne 1 11111111 00000000 00000000 11111111 00000000 11111111 Région 00000000 11111111 00000000 11111111 indéterminée 00000000 11111111 00000000 11111111 00000000 11111111 Ligne en "magenta/tiret" correspond au canal gaussien . Figure 3.8 – Régions de décision pour le canal SIMO avec bruit gaussien et avec bruit laplacien (autrement dit, la frontière) entre les deux régions de décision est la médiatrice pour le cas gaussien et des lignes brisées pour le cas laplacien ce qui est complètement contre-intuitif. Pour votre culture générale, sachez que cette norme joue un rôle fondamental en traitement d’images, pour lequel elle a été introduite, notamment à travers la problématique de l’acquisition comprimée (Compressive Sensing, en anglais). Cette problématique d’acquisition comprimée s’est au final trouvée être également cruciale dans le domaine de la radio cognitive. • Extension 3 : canal MIMO massif avec bruit gaussien. Considérons maintenant non seulement la présence de Nr antennes à la réception mais aussi de Ne antennes à l’émission. Ce type de communications, dit Multiple Input - Multiple Ouput (MIMO) en anglais, est en vogue depuis dix ans dans le monde académique et commence à être appliqué dans les systèmes comme la 4G ou la dernière génération de Wifi. Sans s’étendre sur le sujet, on peut juste dire que le MIMO permet à la fois d’augmenter les débits de manière considérable et de fiabiliser les liens de communications. En sortie échantillonnée du filtre adapté de l’antenne réceptrice r, nous avons zn(r) = Ne X (r) hr,e s(e) n + wn e=1 où la somme correspond aux différentes contributions des antennes d’émission qui interfèrent entre elles à travers le canal radio-mobile, où hr,e correspond à l’atténuation entre l’antenne d’émission e et (e) l’antenne de réception r, et où sn correspond au symbole émis à l’instant nTs sur l’antenne d’émission e. Ces liens entre antennes induisent le modèle matriciel suivant zn = Hsn + wn (3.28) 55 Performances (1) (N ) (1) (N ) avec zn = [zn , · · · , zn r ]T , H = [hr,e ]1≤r≤Nr ,1≤e≤Ne matrice de taille Nr ×Ne , sn = [sn , · · · , sn e ]T , (1) (N ) et wn = [wn , · · · , wn r ]T . Noter que le modèle entrée/sortie donné par l’équation (3.28) est extrêmement général puisque toute perturbation linéaire peut se mettre sous forme matricielle. Ce modèle permet donc de représenter des communications MIMO mais également des problèmes d’interférences entre symboles (cf. équation (3.17)), des problèmes d’interférences entre utilisateurs où, dans ce cas, l’indice e représente le numéro de l’utilisateur interférant, des problèmes d’interférences entre polarisations ou modes de propagation dans une fibre optique, etc. Pour mettre en place le détecteur optimal, on doit être capable d’écrire analytiquement p(zn |sn ). De nouveau, comme le bruit est indépendant sur chaque antenne, nous avons p(zn |sn ) = p(zn(1) |sn ) · · · p(zn(Nr ) |sn ). PNe (r) (e) De plus chaque zn conditionnée par rapport au vecteur sn est gaussienne de moyenne e=1 hr,e sn et de variance N0 /2. Par conséquent, après quelques manipulations algébriques triviales similaires aux extensions 1 et 2, nous avons ŝn = arg min sn ∈{s(0) ,··· ,s(M −1) }Ne kzn − Hsn k2 . {z } | (3.29) ∆ =f (sn ) La matrice H n’étant pas diagonale, la détection des différents symboles émis doit se faire conjointement. Dans un premier temps, continuons de procéder comme dans les extensions 1 et 2, c’est-à-dire, en testant tous les symboles sn possibles et donc en effectuant une recherche exhaustive des valeurs de la fonction de coût f (•). Un problème de complexité surgit alors car nous avons à effectuer une recherche Ne -dimensionnelle. En fait, le nombre de symboles à tester est égal à M Ne . Supposons que nous utilisons une constellation 128-PAM (comme dans un vieux modem internet de type 56k) et Ne = 5 antennes d’émission, alors le nombre de vecteurs à tester est de l’ordre de trente milliards ! Ce n’est pas envisageable en pratique car de complexité prohibitive. Il faut donc trouver une autre technique de minimisation. En y regardant bien, la fonction f est quadratique et donc convexe par rapport à sn . La minimisation de fonction convexe sous contraintes est bien connue et maîtrisée (cf. le cours de première année placée en début de cycle master MDI210) si les contraintes sont elles-mêmes convexes. Malheureusement la contrainte sur sn est d’appartenir à un sous-ensemble discret et ceci n’est clairement pas un ensemble convexe (puisque tout point du segment reliant deux points de la constellation ne fait évidemment pas nécessairement partie de la constellation). Par conséquent nous ne pouvons utiliser le puissant outil de l’optimisation convexe. En fait, notre problème d’optimisation est un problème de combinatoire qui tombe dans la vaste problématique de la recherche opérationnelle. Cette problématique a de nombreuses applications en robotique, base de données, gestion de ressources, etc. Afin de trouver le vecteur optimal sans les tester tous, différentes approches de recherche opérationnelle existent. On peut notamment citer les deux suivantes : i) approche arborescente dans laquelle le vecteur recherché est interprété comme un arbre dont la racine est la première coordonnée et ainsi de suite. Le problème se réduit à définir une stratégie de lecture de l’arbre (cf. le cours de COM344) et ii) approche par programmation dynamique dans laquelle des structures de récurrence du signal, si elles existent, sont exploitées comme cela peut être fait pour l’interférence entre symboles via l’algorithme de Viterbi qui est le plus fameux algorithme de programmation dynamique (cf. le cours de COM223). 3.5 Performances L’objectif principal de cette section est de déterminer la probabilité d’erreur sur les bits d’information émis. Ceci nous permettra de mesurer l’influence de certaines variables ajustables à notre guise, comme la constellation (cf. la sous-section 3.5.1) et le code correcteur d’erreur (cf. la sous-section 3.5.2), de nous comparer aux performances-limites obtenues par les outils de théorie de l’information (cf. la sous-section 3.5.3), et d’établir des règles de conception de systèmes de communication (cf. la sous-section 3.5.4). 3.5.1 Probabilité d’erreur bit pour la M -PAM Avant toute chose, il nous faut un lien entre la probabilité d’erreur au niveau bit (qui est notre but ultime) et la probabilité d’erreur au niveau symbole (qui est plus facilement calculable analytiquement). 56 Modulations numériques Pour cela, revenons à la notion d’étiquetage (cf. la sous-section 3.3.2). On rappelle qu’à chaque symbole, on peut associer log2 (M ) bits. Donc une erreur sur un symbole peut conduire à une erreur sur quelques bits. La question est donc de savoir combien. En supposant • que les erreurs prédominantes ne sont produites que par des symboles adjacents, et • que l’étiquetage permet d’avoir seulement un bit de différent entre deux symboles adjacents, alors, seulement 1 bit sur log2 (M ) est en erreur quand un symbole est en erreur (car en erreur avec un symbole adjacent) ce qui induit la relation suivante Pb ≈ 1 Pe log2 (M ) (3.30) avec Pb et Pe les probabilités d’erreur bit et symbole respectives. Noter que la condition sur l’étiquetage n’est pas restrictive. En effet, on peut toujours ordonner une série de vecteurs contenant log2 (M ) bits en modifiant seulement un bit à la fois. Un tel étiquetage est dit de Gray. Aux résultats 3.11 et 3.12, nous obtenons les probabilités d’erreur symbole et bit pour la 2-PAM et la M -PAM respectivement. Les calculs pour la M -OOK sont similaires et nous encourageons le lecteur à les faire par lui-même. Résultat 3.11 Si l’hypothèse 3.2 est vérifiée, la constellation 2-PAM admet les performances suivantes ! r Eb 2 (3.31) Pb = Pe = Q N0 avec la fonction 1 x 7→ Q(x) = √ 2π Z +∞ 2 e−u /2 du (3.32) x correspondant à la queue de la loi gaussienne centrée et de variance unité (Gaussian tail function, en anglais). Preuve : Comme M = 2, un bit correspond à un symbole et donc l’approximation de l’équation (3.30) devient une véritable égalité. Il ne nous reste plus qu’à calculer Pe . Par définition, Pe = Pr(ŝn 6= sn ) En introduisant le conditionnement sur chaque valeur possible de sn , on obtient que Pe 1 1 Pr(ŝn = −A|sn = A) + Pr(ŝn = A|sn = −A) 2 2 1 1 Pr(zn < 0|sn = A) + Pr(zn ≥ 0|sn = −A) (car seuil à zéro pour le détecteur optimal) = 2 2 1 1 = Pr(A + wn < 0) + Pr(−A + wn ≥ 0) (car zn = sn + wn ) 2 2 1 1 = Pr(wn < −A) + Pr(wn ≥ A) 2 2 = Pr(wn ≥ A) (par symétrie autour de zéro de la loi gaussienne) = Il reste à calculer la probabilité qu’une variable gaussienne centrée et de variance N0 /2 soit supérieure à un seuil A. Ceci peut se faire par l’intermédiaire de la fonction de répartition (Cumulative Density Function (cdf ), en anglais) et correspond à l’intégration entre A et +∞ de la densité de probabilité (Probability Density Function (pdf ), en anglais). Ainsi Z +∞ 2 1 Pe = √ e−u /N0 du πN0 A √ ! p 2A = Q √ (par changement de variable u0 = u 2/N0 ) N0 Il convient maintenant d’exprimer A en fonction de Eb . Comme Es = A2 , l’équation (3.15) conduit à Eb = A2 ce qui prouve le résultat. 57 Performances Résultat 3.12 Si l’hypothèse 3.2 est vérifiée, la constellation M -PAM admet les performances suivantes s s 6 log (M ) 6 log (M ) 1 E 2 1 E b b 2 2 et Pb ≈ . (3.33) Pe = 2 1 − Q 1− Q M M 2 − 1 N0 log2 (M ) M M 2 − 1 N0 La preuve de ce résultat est reportée en annexe A.3. Les deux résultats précédents sont souvent présentés dans la littérature √ par le biais de la fonction erfc(•). Par simple changement de variable, on sait que Q(x) = (1/2)erfc(x/ 2) permettant ainsi de passer d’un formalisme à l’autre aisément. La fonction Q(•) n’admet pas d’expression analytique autre que celle donnée à l’équation (3.32). En revanche, de nombreuses approximations relativement précises existent. Dans la suite du cours, nous utiliserons le fait que 2 1 Q(x) ≈ e−x /2 . (3.34) 2 Par conséquent, étant donné l’équation (3.33), la probabilité d’erreur admet une décroissance exponentielle en fonction du SNR et donc une décroissance extrêmement rapide. C’est d’ailleurs la raison pour laquelle les figures affichant la probabilité d’erreur, notamment la figure 3.9, utilisent une échelle logarithmique. Une fois l’expression de probabilité d’erreur obtenue, nous souhaitons nous en servir pour comparer les constellations entre elles. Grâce au résultat 3.12, nous remarquons que ! r Eb γC (3.35) Pb = β C Q N0 avec βC et γC deux paramètres dépendant uniquement de la constellation C choisie. Cette forme s’avère en fait valable pour de très nombreuses constellations non traitées en cours. Ainsi les performances de la constellation C sont parfaitement caractérisées par la seule connaissance de βC et γC . Comme βC se trouve à l’extérieur de la fonction Q(•) et varie assez peu d’une constellation à l’autre, son impact sur les performances p est en pratique négligeable. On dira donc que Pb ≈ Q( γC Eb /N0 ) ce qui implique que seul le paramètre γC , appelé gain de modulation, différencie vraiment les performances des constellations entre elles. Pour les M -PAM, il nous suffit donc d’analyser γM −PAM = 6 log2 (M ) . M2 − 1 (3.36) Evidemment, le gain de modulation diminue en fonction de M et comme Q(•) est une fonction décroissante, la probabilité d’erreur augmente quand la taille de la constellation augmente comme on le constate à la figure 3.9. En revanche, augmenter la taille de la constellation permet d’augmenter le débit (puisqu’il est proportionnel à log2 (M ) en raison de l’équation (3.8)). Un compromis est donc nécessaire entre performances et débit. Pour comparer les courbes de la figure 3.9, on peut aussi procéder de la manière suivante : examiner et comparer les Eb /N0 nécessaires pour atteindre une certaine probabilité d’erreur cible, notée Pbtarget , avec différentes constellations. Ainsi, si nous considérons deux constellations C1 et C2 , nous avons s s ! ! Eb Eb Eb Eb target Pb ≈Q γC1 = Q γ ⇒ γ = γ C2 C1 C2 N0 1 N0 2 N0 1 N0 2 avec Eb /N0 |u le Eb /N0 de la constellation Cu . En passant en décibel, nous obtenons Eb γC2 Eb = + 10 log 10 N0 1,dB N0 2,dB γC1 | {z } Θ|dB =gain (>0) ou perte (<0) de C2 par rapport à C1 Le terme Θ|dB représente l’écart en Eb /N0 , exprimé en dB, qu’il existe entre les deux courbes de performances des constellations comparées. Ceci veut aussi dire que les différentes courbes de la figure 3.9 sont identiques à un décalage en Eb /N0 près les unes par rapport aux autres. Ce terme Θ|dB est le moyen le plus 58 Modulations numériques P vs. E /N pour PAM b 0 b 0 10 2−PAM 4−PAM 8−PAM 16−PAM 32−PAM −1 10 Probabilité erreur bit Pb −2 10 −3 10 −4 10 −5 10 −6 10 −7 10 0 5 10 15 20 Eb/N0 25 30 35 40 Figure 3.9 – Pb en fonction de Eb /N0 pour différentes M -PAM commode pour comparer des schémas de modulation (et de codage aussi comme nous le verrons ci-après) entre eux. Noter que nous avons les outils pour obtenir les performances du cas SIMO traité dans l’extension 1 de la sous-section 3.4.3. En effet, le détecteur à seuil est appliqué sur le signal z̃n = sn + w̃n avec w̃n = (2) (1) (wn + wn )/2, donc seul le bruit a été modifié. Un rapide calcul montre que la variance de w̃n est N0 /4 ce qui implique un gain de 3 dB (car d’un facteur 2 en échelle linéaire) sur le gain de modulation justifiant par là-même l’utilisation de technologie multi-antennes. En revanche les extensions 2 et 3 évoquées à la soussection 3.4.3 ne peuvent s’étendre aussi facilement et font l’objet de calculs spécifiques en cours de spécialité du cycle master. 3.5.2 Lien avec le codage correcteur d’erreur du chapitre 1 Nous sommes maintenant en mesure de calculer les performances globales d’un système intégrant un code correcteur d’erreur (cf. la section concernant les performances d’un code au chapitre 1) et une modulation. Le canal gaussien pouvant se modéliser par une probabilité de confondre un bit ’0’ avec un bit ’1’ et viceversa avec une probabilité p donnée par la probabilité d’erreur bit du canal gaussien avec la constellation C utilisée, le lien entre les bits émis et les bits décodés est bien un canal binaire symétrique de probabilité p obéissant à l’équation (3.35). De plus si le SNR est suffisamment grand, la probabilité p donnée par l’équation (3.35) devient petit devant 1. Nous savons qu’un code correcteur binaire linéaire en bloc admet la probabilité d’erreur bit suivante sur un canal binaire symétrique de probabilité d’erreur p, si p 1 (cf. l’équation (1.14)). Pb|avec codage = δt pt+1 (3.37) avec, pour rappel, δt = dmin Cnt+1 /n, t = b(dmin − 1)/2c la capacité de correction et n la longueur du mot de code. Bref nous avons ! r E b Pb|avec codage = δt βCt+1 Qt+1 RγC . N0 Attention, nous avons incorporé une multiplication par le rendement du code correcteur d’erreur R pour prendre en compte le fait que Eb représente l’énergie consommée pour émettre un bit utile. A titre d’exemple, 59 Performances si en 2-PAM, envoyer un symbole et donc un bit coûte 1 J, la présence d’un code à répétition de rendement R = 1/n fait qu’envoyer un bit utile coûte n symboles et donc n J. En utilisant l’approximation de la fonction Q(•) de l’équation (3.34), nous allons obtenir une expression encore plus parlante de Pb|avec codage . En effet, nous pouvons alors écrire que Pb|avec codage = β̃C,F EC e− γF EC γC Eb 2 N0 (3.38) avec γF EC = R(t + 1) (3.39) et β̃C,F EC = δt βCt+1 /2. L’acronyme FEC désigne le code correcteur d’erreur (Forward Error Correcting coding -FEC-, en anglais) et le terme γF EC est appelé gain de codage car il correspond au gain en SNR obtenu grâce au codage correcteur d’erreur. Ce gain de codage s’additionne en dB au gain de modulation. Examinons maintenant quelques gains de codage de codes correcteur d’erreur dont certains ont été vus au chapitre 1. • Exemple 1 : code à répétition. Nous considérons un code à répétition (n, 1). Par conséquent les deux mots de code n’ont aucun bit commun et dmin = n ce qui est le maximum. Le rendement en revanche vaut 1/n ce qui est le minimum. Ainsi le gain de codage est égal à (1/n)(b(n − 1)/2c + 1) qui est bien approché, quand n est suffisamment grand, par γcode à répétition ≈ 1 2 (= −3 dB). Comme ce gain de codage est inférieur à 1 et donc négatif en dB, il correspond à une perte ! Donc si on raisonne à énergie par bit utile constante, le codage à répétition est à éviter absolument car il aggrave les performances et évidemment il diminue le débit utile. Espérons que d’autres codes soient plus performants. • Exemple 2 : code de Hamming (7, 4, 3). La distance minimale vaut 3 et donc la capacité de correction 1. Le rendement vaut 4/7 ce qui implique que γcode de Hamming (7,4,3) ≈ 8 7 (= +0.58 dB). Ouf ! Cela correspond à un gain en performances par rapport au cas non codé. En revanche, le débit est encore diminué d’environ 40%. Il serait en fait intéressant de quantifier l’apport ou non du codage pour des systèmes fonctionnant à même énergie bit utile et à même débit utile. Ceci est fait dans l’exemple 3 suivant. • Exemple 3 : code de Reed-Müller (128, 64, 16). Le rendement vaut 1/2 et la capacité de correction vaut 7. Ainsi le gain de codage vaut γcode de Reed-Müller (128,64,16) ≈ 4 (= +6 dB). Nous voulons savoir si un système codé fonctionnant au même débit utile qu’un système non codé peut être plus performant. Pour cela, considérons une transmission d’un bit utile par utilisation de canal. Pour le système sans codage, une 2-PAM sera donc mise en œuvre. Pour le système avec codage dont le code est celui de Reed-Müller, une 4-PAM sera nécessaire. Il faut donc comparer les gains de chaque système γsans codage = γ2−PAM = 2 . γavec codage = γcode de Reed-Müller × γ4−PAM = 3.2 Par conséquent, le système avec codage permet de gagner 1.2 dB en SNR pour un début utile identique et une consommation énergétique par bit utile identique. Un codage bien choisi permet donc d’améliorer les systèmes de communication toute chose égale par ailleurs. Sur la figure 3.10, nous avons tracé Pb pour différents codes de Hamming en fonction de Eb /N0 quand une constellation 2-PAM est considérée. Pour le code (7, 4, 3), on peut vérifier que le gain de codage annoncé est bien celui constaté. 60 Modulations numériques P vs. E /N pour Hamming b 0 b 0 10 non codé Hamming (7,4) Hamming (15,11) Hamming (31,26) Hamming (63,57) −1 10 Probabilité erreur bit Pb −2 10 −3 10 −4 10 −5 10 −6 10 −7 10 0 2 4 6 Eb/N0 8 10 12 Figure 3.10 – Pb pour différents codes de Hamming en 2-PAM en fonction de Eb /N0 3.5.3 Lien avec la théorie de l’information du chapitre 2 Faisons d’abord un lien avec la capacité du canal gaussien. D’après l’équation (2.72), la capacité par utilisation de canal (autrement dit, le nombre maximal de bits transmis sans erreur par symbole) s’exprime alors 1 2Es C = log2 1 + . 2 N0 Cette équation est obtenue pour un code correcteur d’erreur théorique et nous aimerions la relier à des schémas réels de codage. Comme il n’est pas possible d’obtenir une transmission sans erreur en présence de bruit (cf. équation (3.35)), nous allons considérer seulement une certaine qualité de service (Quality of Service -QoS-, en anglais), déterminée par une probabilité d’erreur bit cible, notée Pbtarget et obtenir alors le débit admissible pour un code correcteur d’erreur fixé. Remarquons que, pour une M -PAM, nous avons Es 1 Pb = FF EC (3.40) M 2 − 1 N0 √ avec Fsans codage (•) = 2Q( 6•) d’après l’équation (3.33) dans laquelle on a négligé la dépendance de M du coefficient devant la fonction Q et la différenciation entre probabilité symbole et probabilité bit, avec Favec codage (•) = δt 2t e−3(t+1)• d’après l’équation (3.38) dans laquelle la dépendance en M du facteur devant l’exponentiel a été négligée. Nous avons également utilisé le fait que Es = R log2 (M )Eb . Grâce aux approximations faites pour obtenir FF EC , il est très important de remarquer que cette fonction est totalement indépendante de la taille de la constellation et en fait ne dépend que de la capacité de correction du code. Par un petit calcul très simple sur l’équation (3.40), nous obtenons que 1 1 2Es m= log2 1 + (3.41) 2 ΓF EC N0 avec (−1) ΓF EC = 2FF EC Pbtarget ∆ et m = log2 (M ) le nombre de bits par symbole M -PAM. (3.42) L’équation (3.41) ressemble étrangement à une capacité de Shannon à laquelle un facteur de pondération du SNR a été rajouté. D’ailleurs le terme ΓF EC s’appelle la marge en SNR (SNR margin, en anglais) car il correspond à la perte en SNR par rapport à la capacité de Shannon. Si on considère la valeur de probabilité d’erreur bit cible de la TNT, on a Pbtarget = 10−11 . Ceci conduit, à titre d’exemple, à Γsans codage ≈ 11.9 dB, 61 Performances Γcode de Hamming (7,4,3) ≈ 9.65 dB et Γcode de Reed-Müller (128,64,16) ≈ 6.76 dB. Ces équations (3.41) et (3.42) peuvent conduire à une triple interprétation. • Interprétation 1 : choix de la taille de la constellation. Grâce à ces équations, on peut déterminer, pour un code correcteur donné, la taille de la constellation que l’on peut choisir pour satisfaire la QoS cible à chaque SNR. C’est notamment ce type d’algorithmes qui est utilisé en ADSL pour fixer la taille des constellations de votre lien modem-central téléphonique. • Interprétation 2 : débit à énergie constante. Pour obtenir le débit utile, il faut multiplier le nombre de bits par symbole avec mR et l’inverse du temps symbole. Or, en pratique, on a la bande B = (1 + ρ)/Ts avec ρ le facteur d’excès de bande si un filtre en racine de cosinus surélevé est employé. Alors on a 1 2Es BR log2 1 + . (3.43) Db = 2(1 + ρ) Γ N0 On peut donc augmenter le débit à volonté en augmentant la bande car il en dépend linéairement. Attention ceci est vrai à énergie symbole constante ce qui veut dire que la puissance augmente alors car on consomme alors la puissance Ps = BEs /(1 + ρ) J par seconde. Sur la figure 3.11, nous avons tracé le débit utile en fonction de Es /N0 pour différents schémas de codage en utilisant un filtre idéal en fréquence (ρ = 0) et une bande B = 1 MHz et nous l’avons comparé à la capacité de Shannon. Les marges de SNR sont celles calculées pour la TNT. Nous remarquons que les codes utilisés sont Débit pour une QoS fixée vs. Es/N0 3.5 Capacité de Shannon Débit en non−codé 3 Débit avec Hamming Débit avec Reed−Muller Débit en Mbits/s 2.5 2 1.5 1 0.5 0 0 5 10 15 Es/N0 Figure 3.11 – Débit réel et capacité de Shannon pour une QoS fixée en fonction de Es /N0 très utiles à bas SNR et perdent leur intérêt à fort SNR. Ceci s’explique par le fait qu’à fort SNR, les codes sont mal adaptés car, certes de gain de codage satisfaisant mais de facteur R trop petit ce qui induit une perte de débit importante. A fort SNR, il faut mieux choisir un code à fort rendement (car nous savons qu’il y aura peu d’erreur de toute façon) quitte à avoir un gain de codage plus faible. Il faut donc être capable de bien sélectionner son schéma de codage et de constellation (Modulation and Coding Scheme -MCS-, en anglais). La problématique de sélection optimale de MCS est vaste et au-delà des objectifs de COM105. • Interprétation 3 : débit à puissance constante. A puissance constante, nous avons 1 + ρ 2Ps BR log2 1 + . Db = 2(1 + ρ) Γ BN0 (3.44) Par conséquent, le débit utile continue à croître en fonction de la bande mais plus linéairement. Il admet même une asymptote comme en atteste la figure 3.12. 62 Modulations numériques Capacité de Shannon vs. B (avec P fixée) s 80 Capacité de Shannon en Mbits/s 70 60 50 40 30 20 10 Capacité de Shannon 0 0 500 1000 B (en MHz) 1500 2000 Figure 3.12 – Capacité de Shannon à puissance constante en fonction de B (avec Ps = 5.10−7 mW et N0 = −140 dBm/Hz) Un autre lien peut être fait avec le chapitre consacré à la théorie de l’information en travaillant sur la capacité du canal binaire symétrique de paramètre p. Dans lepcadre de la transmission d’une 2-PAM, le canal reliant sn à ŝn est binaire symétrique de paramètre p = Q( 2Es /N0 ) où, nous rappelons Es = Eb en l’absence de codage et Es = REb en présence d’un code de rendement R. Par conséquent, grâce au résultat 2.6, la capacité s’exprime p C = 1 − Hb Q( 2Es /N0 ) . (3.45) Sur la figure 3.13, nous avons tracé C en fonction de Es /N0 donnée par l’équation explicite (3.45) et en fonction de Eb /N0 donnée par l’équation implicite (3.46) p C = 1 − Hb Q( 2CEb /N0 ) . (3.46) La capacité n’admet pas de Es /N0 minimum. Dès que du signal est émis à une certaine énergie/puissance par utilisation de canal, de l’information passe sans erreur. En revanche, il existe une borne inférieure pour Eb /N0 . L’énergie/puissance par bit utile nécessite une valeur minimale ! 3.5.4 Lien entre les paramètres de dimensionnement d’un système Durant ce polycopié, nous avons introduit un certain nombre de paramètres dont il est important de comprendre leur nature et leurs relations. Certains paramètres sont exogènes puisque le concepteur du système n’a pas de marge de manœuvre sur eux car ils sont contraints par ailleurs, notamment l’application ou la compatibilité électro-magnétique : • Occupation spectrale via la bande B, • Consommation via l’énergie/puissance par bit Eb ou par symbole Es , • Qualité de transmission via la probabilité d’erreur bit Pb , • Rapidité de transmission via le débit binaire utile Db . D’autres paramètres sont endogènes puisque l’ingénieur concevant le système a un certain degré de liberté sur leur dimensionnement. 63 Performances Capacité de Shannon vs. E /N et E /N pour la 2−PAM s 0 b 0 1 Capacité de Shannon vs. E /N s 0.9 0 Capacité de Shannon vs. E /N b 0 Capacité de Shannon 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −20 −15 −10 −5 0 5 Ex/N0 (x=s ou x=b) (en dB) 10 15 20 Figure 3.13 – Capacité pour la 2-PAM en fonction de Es /N0 et de Eb /N0 • Filtre d’émission g(t), d’où le temps-symbole Ts , • Constellation M, d’où le nombre de symboles M , • Code correcteur d’erreur, d’où la capacité de correction t et et le rendement R. Sur la figure 3.14, nous avons récapitulé le lien entre ces paramètres (trait plein = croissant, trait en tiret = décroissant). . Energie Eb/Es/Ps Bande B Filtre d’émission Constellation Ts M Codage R QoS Pb Débit Db t . Figure 3.14 – Lien entre les paramètres de dimensionnement d’un système Remarquons qu’en changeant la bande du signal, il est facile d’augmenter le débit (cf. équations (3.43) et (3.44). C’est la raison pour laquelle nous introduisons la notion d’efficacité spectrale, notée η, qui correspond au débit binaire divisé par la bande disponible pour le réaliser. η= Db . B 64 Modulations numériques Cette efficacité est un moyen simple d’évaluer et de comparer de manière honnête des systèmes utilisant des techniques différentes et des largeurs de bande différentes. Cette efficacité s’exprime en bits/s/Hz. Pour les systèmes actuels, l’efficacité oscille typiquement entre 1 et 10. 3.6 Bilan Nous récapitulons sur la figure 3.15 les éléments et paramètres intervenant dans un émetteur et récepteur standard si le canal est gaussien. Pour retrouver les liens entre les paramètres, consultez la figure 3.14. . modulations numériques (chapitre 3) Source Codage de Source Codage de Canal dn cn sn Etiquetage énergie Es ou Eb ou Ps Filtre d’émission x(t) bande B Code correcteur t et R Filtre g(t) Constellation M Temps-symbole Ts qualité Pb Canal débit Db y(t) = x(t) + b(t) Echantillonnage Destinataire Décodage de Source dˆn Décodage de Canal ĉn ŝn nT s Seuillage zn z(t) Filtre adapté y(t) modulations numériques (chapitre 3) . Figure 3.15 – Schéma d’un émetteur (TX) et d’un récepteur (RX) Dans ce chapitre, seulement des éléments rudimentaires de modulations numériques vous ont été présentés. En COM223, nous introduisons les outils mathématiques (tel l’espace vectoriel des signaux) permettant de réellement concevoir les systèmes actuels. Pour cela, on prend en compte l’interférence entre symboles avec les récepteurs associés, on modélise les canaux plus finement ce qui permet notamment de travailler sur des canaux variant dans le temps, on dimensionne précisément les systèmes complexes existants (3G, 4G). Enfin le lien avec les couches supérieures du réseau est également accentué. En COM344, la grande nouveauté est de considérer des émetteurs/récepteurs multi-antennes (MIMO) et donc d’introduire la notion de code spatio-temporel qui peut être vu comme un code correcteur d’erreur mais aussi comme un modulateur. On y présente notamment le code spatio-temporel optimal, dit Golden code, développé en 2005 à Télécom ParisTech par J.-C. Belfiore et G. Rekaya. Nous rappelons ci-dessous les concepts de base et savoir-faire concernant ce chapitre à acquérir durant cette unité d’enseignement. Les concepts de base : • Les éléments présents dans un émetteur/récepteur, • Le filtre adapté, • Le filtre de Nyquist, • Les relations entre les paramètres de dimensionnement. Les savoir-faire : • Vérifier les propriétés des filtres (cf. TD5), • Calculer des probabilités d’erreur bit pour de nouvelles modulations (cf. TD6), • Comparer des techniques et systèmes entre eux (cf. TD6), • Concevoir un système via ces paramètres pour un cahier des charges donné (cf. TD7). Annexe A Quelques preuves relatives au chapitre 3 A.1 Preuve du résultat 3.2 Soit x(t) une réalisation du processus aléatoire. Considérons l’intervalle d’observation [−T /2, T /2]. La trasnformée de Fourier de cette réalisation existe, est notée X(f ) et vaut Z T /2 x(t)e−2iπf t dt. (A.1) X(f ) = −T /2 L’énergie présente à la fréquence f vaut évidemment |X(f )|2 . Comme l’intervalle d’observation est de longueur T , la puissance présente à la fréquence f vaut |X(f )|2 /T . La densité spectrale de puissance est donc juste le terme |X(f )|2 /T moyenné sur toutes les réalisations de x(t) et observé sur une fenêtre infiniment longue. D’où 1 Sxx (f ) = lim E |X(f )|2 . (A.2) T →+∞ T En insérant l’équation (A.1) dans l’équation (A.2), on obtient directement le résultat voulu par permutations judicieuses des limites, intégrales et espérances mathématiques. A.2 Preuve du résultat 3.3 Soit x(t) le signal défini par l’équation (3.9) avec N = +∞. On a aisément que X X rxx (t, τ ) = m2s g(t + τ − nTs )g(t − n0 Ts ) + σs2 g(t + τ − nTs )g(t − nTs ) n,n0 n Il est facilement de montrer, par simple changement d’indice dans les sommes, que la fonction t 7→ rxx (t, τ ) est périodique de période Ts . Par conséquent, on a Z Z Ts /2 1 1 T /2 (0) rxx (t, τ )dt = rxx (t, τ )dt. rxx (τ ) = lim T →∞ T −T /2 Ts −Ts /2 Donc (0) rxx (τ ) = Z Z m2s X Ts /2 σ 2 X Ts /2 g(t + τ − nTs )g(t − nTs )dt. g(t + τ − nTs )g(t − n0 Ts )dt + s Ts Ts n −Ts /2 −Ts /2 0 n,n En réalisant le changement de variable dans les intégrales t0 = t−nTs et dans la première somme n00 = n0 −n, nous obtenons Z Z m2s X Ts /2−nTs σs2 X Ts /2−nTs (0) 0 0 00 0 rxx (τ ) = g(t + τ )g(t − n Ts )dt + g(t0 + τ )g(t0 )dt0 Ts Ts n −Ts /2−nTs −Ts /2−nTs 00 n,n d’où (0) rxx (τ ) Z Z m2s X +∞ 0 σs2 +∞ 0 0 00 0 = g(t + τ )g(t − n Ts )dt + g(t + τ )g(t0 )dt0 . Ts 00 −∞ Ts −∞ n 66 Quelques preuves relatives au chapitre 3 Par l’égalité de Parseval, nous avons Z Z 00 σ 2 +∞ m2 X +∞ (0) |G(f )|2 e2iπf τ e2πin f Ts df + s |G(f )|2 e2iπf τ df rxx (τ ) = s Ts 00 −∞ Ts −∞ n P P 00 Or, par la formule sommatoire de Poisson, nous avons que Ts n00 e2πin f Ts = n δ(f − n/Ts ), ce qui implique que ! Z +∞ m2s X σs2 (0) 2 2 rxx (τ ) = |G(f )| δ(f − n/Ts ) + |G(f )| e2iπf τ df. Ts2 n Ts −∞ Par transformée de Fourier inverse et en se rappelant que |G(f )|2 δ(f −n/Ts ) est égal à |G(n/Ts )|2 δ(f −n/Ts ), on obtient le résultat voulu. A.3 Preuve du résultat 3.12 Comme les symboles sont équiprobables, la probabilité d’erreur symbole moyenne Pe est donnée par Pe = M −1 1 X Pr(ŝn 6= s(m) |sn = s(m) ) M m=0 Il est clair que les probabilités d’erreur individuelles Pr(ŝn 6= s(m) |sn = s(m) ) se décomposent en deux catégories : les symboles aux deux bords de la constellation M -PAM (s(0) et s(M −1) ) ont par symétrie la même probabilité d’erreur notée Peexterne qui en revanche est différente des autres symboles de la constellation. Les autres symboles ont eux aussi par symétrie une probabilité d’erreur commune, notée Peinterne . On a simplement que 1 2 externe (M − 2)Peinterne + P . (A.3) Pe = M M e Pour les symboles aux extrémités de la constellation, on a s 2 Z ∞ 2 1 t 2A . √ Peexterne = Pr{wn > A} = exp − (A.4) dt = Q N0 N0 πN0 A Pour les autres symboles de la constellation, il y a erreur si zn passe à gauche ou à droite de la médiatrice séparant le symbole transmis avec ses symboles adjacents. Ceci est possible si le bruit est inférieur à −A ou supérieur à A. Ainsi on a s 2 2A Peinterne = Pr{wn > A ou wn < −A} = 2Pr{wn > A} = 2Q . (A.5) N0 En réunissant les équations (A.3), (A.4) et (A.5), on obtient s 2 1 2A Pe = 2 1 − Q . M N0 Il suffit juste maintenant de relier A et Eb . Pour cela, on calcule d’abord Es . Etant donné l’équation (3.7), on a M A2 X A2 Es = (2m − M − 1)2 = (M 2 − 1) (A.6) M m=1 3 L’énergie par bit reçu vaut naturellement : Eb = Es A2 (M 2 − 1) = log2 (M ) 3 log2 (M ) ce qui permet alors de trouver trivialement le résultat 3.12.