Département de génie électrique et de génie informatique Faculté des sciences et de génie MAT-19961 CALCUL MATRICIEL EN GÉNIE Devoir #9 - Exercice sur Matlab Simulation d’un système de communication Dans cet exercice, vous allez programmer un simulateur de communication numérique binaire. Vous allez aussi comparer le résultat de votre simulation avec la théorie. Un système de communication numérique binaire peut être représenté par l’équation suivante: r = s+b où r est le signal reçu, s est le signal transmis (s = 0 ou 1) et b est un bruit additif, généralement représenté par une variable aléatoire gaussienne de moyenne nulle et de variance σ2 (écart-type = σ). Le récepteur binaire décide qu’un “1” a été transmis si r > 0.5 et qu’un “0” a été transmis si r ≤ 0.5 . Des erreurs peuvent évidemment survenir. Par exemple, si s = 0 et b = 0.7, alors r = 0 + 0.7 = 0.7. Comme r > 0.5, le récepteur va décider que c’est un “1” qui a été transmis, et non pas un “0”. Ce type de communication par “0” et “1” est utilisé dans les systèmes à fibre optique. Les modems téléphoniques utilisent des signaux plus complexes. Comme le bruit est modélisé par une variable aléatoire gaussienne, il est possible de calculer théoriquement les performances de ce système de communication. La façon la plus courante d’évaluer les performances d’un système de communication numérique est de calculer la probabilité de faire une erreur, ou le taux d’erreur, que l’on dénote Pe, en fonction du rapport signal à bruit. Ce rapport signal à bruit est proportionnel à 1/σ2. Pour la cas habituel où il y a autant de “0” que de “1” transmis, la probabilité d’erreur théorique est donnée par: 1 1 P e = --- erfc -------------- 2 2σ 2 où ∞ 2 –u 2 -----erfc ( x ) = ∫ e du π x MAT-19961 Calcul matriciel en génie 1 Automne 1997 Pour réaliser le simulateur, vous devez: - Générer un vecteur, b, de 1000 variables aléatoires gaussiennes de variance σ. Pour cela, vous pouvez utiliser la fonction randn et multiplier le vecteur par une constante représentant σ. - Générer un vecteur, s, de 1000 points représentant le signal, i.e. un vecteur contenant des “0” et des “1” distribués de façon aléatoire. - Ajouter le bruit au signal transmis, i.e r = s + b. - Estimer le signal reçu: si r(i) > 0.5, alors rr (i) = 1, sinon, rr(i) = 0. - Calculer le taux d’erreur en comparant la séquence transmise, s, avec la séquence estimée à partir de la séquence reçue, rr. Pe = (nombre d’éléments différents)/1000. (Indice: utiliser sum et xor.) - Vérifier votre résultat en utilisant la fonction Matlab erfc. Prenez σ = 0.5. Il est normal que le résultat de la simulation diffère légèrement du calcul théorique. - Faire une série de simulations pour une dizaine valeurs de σ comprises entre 0.2 et 2.0. - Tracer le résultat de ces simulations sous la forme d’un graphique de Pe en fonction de 1/σ ainsi que les calculs théoriques correspondants. Utiliser la fonction loglog plutôt que plot. MAT-19961 Calcul matriciel en génie 2 Automne 1997