Expérience 7 Communications numériques Introduction Procédures Effectuez les commandes suivantes: >> xhost nat >> rlogin nat >> setenv DISPLAY machine:0 >> setenv MATLABPATH /gel/usr/telecom/comm_tbx >> matlab Procédez a l initialisation de l expérience 7: >> start A. Introduction A.1 Du signal analogique à la transformation en signal codé dans le canal GEL-10280 Théorie des communications 1
Le diagramme en bloc de la figure précédente montre comment un signal analogique est transformé, premièrement, en un signal numérique, puis dans une forme compatible avec le canal de transmission. Les fonctions principales sont le convertisseur analogique/numérique (A/D) et le transmetteur, représenté par les fonctions MATLAB a2d et tx. A.2 De la sortie du canal de transmission à la transformation en signal analogique Le schéma ci-haut indique comment la sortie du canal est traitée par le récepteur pour retrouver la séquence binaire transmise. La séquence binaire estimée est convertie par la suite en un signal analogique. Les deux blocs principaux sont le récepteur et le convertisseur numérique/analogique (D/A) représenté par les fonctions MATLAB rx et d2a. Remarques Les fonctions MATLAB a2d, d2a, tx et rx ont été conçues pour simplifier et pour automatiser la tâche de chaque bloc. Utilisez les facilités de l aide (help) pour obtenir de plus amples informations. La sortie du transmetteur est envoyée dans le canal de transmission représenté par channel et servira d entrée au récepteur rx. Selon les caractéristiques du canal, vous aurez à modifier l instant d échantillonnage à la sortie du filtre récepteur. Cette information peut être obtenue à partir du diagramme de l oeil à la sortie du filtre. Une des options du récepteur rx est d afficher le diagramme de l oeil et de demander à l utilisateur le temps d échantillonnage optimal. Tapez la commande suivante pour apprendre GEL-10280 Théorie des communications 2
comment utiliser cette fonction: >> help rx B. Conversion analogique/numérique et numérique/analogique Considérez le problème de transmettre un message par un canal de données numériques. Si le signal du message est analogique, vous devez premièrement convertir vos données en une représentation numérique équivalente. Dans l environnement de simulation présent, le signal analogique prend la forme d une séquence de données échantillonnées. Cependant, les fonctions de filtrage et d échantillonnage montrées dans la figure de la partie A.1 ne sont pas implémantées. Vous devez vous rappeler des expériences précédentes que le processus de conversion d un signal analogique en données binaires est effectué en appliquant quelques (ou toutes) les fonctions MATLAB suivantes: compression µ-law - mu_law (optionnel); quantification uniforme - quantize; codage binaire naturel de source - bin_enc; codage de gray de source - bin2gray (optionnel); conversion parallèle-série - par2ser. La fonction MATLAB a2d contient toutes les fonctions précédentes et traite le signal d entrée analogique pour le rendre conforme aux différents paramètres spécifiés par l usager. Réciproquement, les données binaires à la sortie du récepteur doivent être convertie sous forme analogique. La fonction MATLAB d2a représente le processus de conversion numérique/analogique (D/A), obtenu en appliquant les fonctions suivantes sur les données binaires: conversion série-parallèle - ser2par; décodage de gray de source - gray2bin (optionnel); décodage binaire naturel de source - bin_dec; décompression µ-law - mu_inv (optionnel). Pour tester que les fonctions a2d et d2a sont des fonctions complémentaires l une de l autre, générez 100 échantillons d un signal typique de parole: >> s = speech(100); >> s_binary = a2d(s, 6); >> s_analog = d2a(s_binary, 6); Vérifiez que s_binary est en fait la séquence binaire en affichant les quelques premiers éléments: >> s_binary(1:10) Maintenant, comparez le signal du message représenté par la matrice de données s et la sortie de la conversion analogique-numérique-analogique (A/D-D/A), s_analog: >> subplot(211), waveplot(s) >> subplot(212), waveplot(s_analog) Q7.1 Est-ce que le processus de conversion d un signal analogique en numérique puis remis sous sa forme analogique introduit des distorsions? Si votre réponse est positive, énumérez clairement les différents types de distorsion impliquée dans un système avec conversion analogique-numérique-analogique et expliquez quels paramètres ont un effet direct sur la minimisation de la distorsion. GEL-10280 Théorie des communications 3
C. Encodage différentiel C.1 Générez 100 échantillons d une sinusoïde, convertissez-les dans le domaine numérique et préparez les données binaires résultantes pour une transmission par un canal de communication en bande de base en utilisant un code de manchester: >> x = sin (2*pi*400*[1:100]/SAMPLING_FREQ); >> x_pcm = a2d(x, 6); >> xw = tx(x_pcm, manchester, no_diff, 1000); La fonction MATLAB tx représente le bloc de transmission comme décrit dans la partie A.1. Les deux derniers paramètres de la fonction de transmission indique qu une transmission non-différentielle à un taux binaire de 1 kbps sera effectuée. Transmettez xw par un canal de transmission inversé (inverting) de bande passante de 19000 Hz avec une puissance de bruit de 0.01 W: >> y = -channel(xw, 1, 0.01, 19000); Décodez la sortie du canal avec un filtre adapté suivi d une détection et d une conversion numérique/analogique. Comparez les signaux x et x_analog: >> x_digital = rx(y, manchester ); >> x_analog = d2a(x_digital, 6); >> subplot(211), waveplot(x) >> subplot(212), waveplot(x_analog) C.2 Faites la séquence d instructions suivantes qui l utilisent un encodage différentiel. Modifiez les paramètres d entrée pour tx et rx comme montrés: >> u = tx(x_pcm, manchester, diff, 1000); >> z = -channel(u, 1, 0.01, 19000); >> u_digital = rx(z, manchester, diff ); >> u_analog = d2a(u_digital, 6); >> subplot(211), waveplot(x) >> subplot(212), waveplot(u_analog) Comparez les signaux x, x_analog et u_analog. Q7.2 Discutez pour quel type de signal (analogique ou numérique) il est plus important d être protégé contre les déphasage de 180 degrés. D. Communication en bande de base D.1 Générez 1000 échantillons binaires pour évaluez le taux d erreur binaire (BER, Binary Error Rate) pour des signaux codés en NRZ unipolaire (unipolar_nrz) et Manchester (manchester) avec un taux binaire R b =1 kbps pour un canal de communication en bande de base. >> b = binary(1000); >> Rb = 1000; >> u = tx(b, unipolar_nrz, Rb); >> m = tx(b, manchester, Rb); Considérez un canal de communication à bande étroite avec: gain du canal = 0 db; puissance du bruit du canal 1, σ 2 n =1; largeur de bande du canal = 19 khz; 1. N o et σ n 2 sont reliés comme suit: No = σ n 2 /20000 (voir Expérience 4). GEL-10280 Théorie des communications 4
Générez la sortie de ce canal et la séquence binaire estimée résultante en utilisant la fonction MATLAB rx: >> ch_output = channel(a*ch_input, 1, 1, 19000); >> rx(ch_output, linecode, b); où ch_input est soit le signal u en NRZ polaire ou le signal m en Manchester. La valeur de A dans la ligne de commande ci-dessus change l amplitude du signal et du même coup, la valeur de la puissance transmise en terme de E b. Calculez le BER pour les différentes valeurs de A du tableau suivant: A (volts) NRZ unipolaire Manchester E b /N o P e E b /N o P e 0.2 0.3 0.4 0.5 0.6 0.7 Comparez les valeurs Pe empiriques ci-dessus avec celles théoriques déterminées avec les données suivantes et affichez-les dans un même graphique. Q7.3 Considérez les formats de signalisation binaire NRZ unipolaire et Manchester. Considérons que la DSP est S n (f) = N o /2. a. Déterminez l énergie par intervalle de bit E b pour les deux formats de signalisation comme une fonction de l amplitude du signal A et de la période binaire T b. b. Déterminez le taux d erreur binaire P e avec un filtre adapté pour faire la détection pour les deux formats de signalisation comme une fonction de E b et N o. Déterminez ensuite le taux d erreur binaire P e pour une détection cohérente d une modulation numérique ASK et PSK comme une fonction de E b et N o. D.2 Considérez le canal de communications en bande de base suivant: >> ch_output = channel(ch_input, 1, 2, 19000); Déterminez N o correspondant à σ n 2 =2 et Rb = 1 kbps. Si l entrée du canal est u, déterminez, avec la question ci-dessus, la puissance de transmission nécessaire en terme de E b pour obtenir P e <10-2. Pour cette valeur calculée de puissance de transmission, déterminez empiriquement le BER avec le signal u. Répétez pour le signal m encodé avec Manchester. GEL-10280 Théorie des communications 5
E. Communication en bande passante E.1 Générez 100 échantillons d un signal vocal: >> s = speech(100); Votre tâche consiste à préparer la représentation binaire de s pour la transmission par un canal de transmission dans une bande de fréquence. Les paramètres du transmetteur et du canal de propagation sont: Conversion analogique-numérique - a2d: 8 bits, quantification de loi µ. Transmission - tx: modulation numérique de type PSK, taux binaire R b = 100 kbps. Canal - channel: gain du canal 0 db, puissance du bruit 1W, bande utilisable: 600 khz à 1400 khz. Taux d erreur binaire: P e = 10-2. La relation entrée-sortie du canal est donnée par: >> out = channel(a*in, 1, 1, [60000, 1400000]); où N o = σ n 2 /(20Rb ) avec σ n 2 = 1, et A est l amplitude du signal. Calculez le rapport signal à bruit (SNR), E b /N o, pour satisfaire le critère du BER. Déterminez la puissance du transmetteur, le bruit du canal et la fréquence de la porteuse. Déterminez empiriquement le taux d erreur binaire et comparez avec la valeur théorique. Convertissez la sortie du récepteur (fonction MATLAB rx) dans sa forme analogique en utilisant la fonction d2a et en comparant le signal vocal original s avec celui reconstruit. E b N o f c P e Q7.4 Est-ce que le BER obtenu exprimentalement diffère de celui calculé théoriquement? Si une grande différence existe entre les deux, expliquez cet écart. GEL-10280 Théorie des communications 6