Expérience 3 Formats de signalisation binaire
Transcription
Expérience 3 Formats de signalisation binaire
Expérience 3: Formats de signalisation binaire Expérience 3 Formats de signalisation binaire Introduction Effectuez les commandes suivantes: >> >> >> >> >> xhost nat rlogin nat setenv DISPLAY machine:0 setenv MATLABPATH /gel/usr/telecom/comm_tbx matlab Procédures Procédez a l’initialisation de l’expérience 3: >> start A. Formats de signalisation binaire: Codage de ligne Les 1 et les 0 tels que connus dans les systèmes de modulation d’impulsions codées (PCM) peuvent être représentés dans des formats de signalisation de bits en série appelés codes de lignes (line codes). Dans cette section nous étudierons les formats de signalisation et leurs propriétés. A.1 Vous utiliserez la fonction MATLAB wave_gen pour générer des ondes représentant une séquence binaire: >> wave_gen(séquence_binaire, ’nom_du_code’, Rb) où Rb est le taux binaire spécifié en bits par seconde (bps). Si vous utilisez la fonction wave_gen avec les 2 premiers arguments seulement, le taux binaire par défaut sera celui déterminé par la variable binary_data_rate, laquelle est 1000 bps. Créez la séquence binaire suivante: >> b = [ 1 0 1 0 1 1 ]; Générez ensuite le signal représentant b, en utilisant le code NRZ unipolaire avec avec Rb = 1000 bps et affichez le signal x obtenu: >> x = wave_gen(b, ’unipolar_nrz’, 1000); >> waveplot(x) A.2 Répétez l’étape A.1 pour les codes suivants: • • • • NRZ polaire (‘polar_nrz’); RZ unipolaire (‘unipolar_rz’); RZ bipolaire (‘bipolar_rz’); Manchester (‘manchester’). Vous pouvez simplifier votre ligne de commande de la sorte: >> waveplot(wave_gen (b, ’nom_du_code’)) Comme vous comparez des signaux possédant le même taux binaire (Rb = 1000 bps), vous pou- GEL-10280 Théorie des communications 1 Expérience 3: Formats de signalisation binaire vez utiliser la fonction wave_gen avec seulement deux arguments. Q3.1 Pour les codes exposés ci-haut, déterminez lesquels vont générer une onde sans composante DC, peu importe la séquence binaire. Pourquoi l’absence de composante DC est importante pour la transmission d’un signal? A.3 Densité spectrale de puissance (DSP) des codes de ligne Générez une séquence binaire de 1000 échantillons: >> b = binary(1000); Affichez la DSP de chaque code vu précédemment: >> psd(wave_gen(b, ’nom_du_code’)); Supposons les fréquences suivantes: • • • • fp1: fp2: fn1: fn2: première fréquence d’amplitude maximale du spectre (spectral peak); seconde fréquence d’amplitude maximale du spectre; première fréquence d’amplitude minimale du spectre (spectral null); seconde fréquence d’amplitude minimale du spectre; telles que toutes ces fréquences soient positives. Indiquez vos observations dans le tableau ci-dessous. Rb = fp1 fp2 fn1 fn2 BT NRZ unipolaire NRZ polaire RZ unipolaire RZ polaire Manchester La position de la première fréquence d’amplitude nulle du spectre indique la largeur de bande BT de la transmission. A.4 Pour illustrer la dépendance de la DSP reliée au taux binaire de transmission des données, utilisez le code Manchester et variez Rb: >> psd(wave_gen(b, ’manchester’, Rb)) où Rb ∈ {5, 10, 20} kbps. Vous pouvez remplacer le code Manchester par n’importe quel autre étudié dans ce laboratoire jusqu’à maintenant. Observez les fréquences d’amplitude maximale et minimale et leur relation avec Rb. Q3.2 Pour les canaux de communications de données en bande de base avec une largeur de bande de 10 kHz, quel est le taux binaire maximal pour chaque code examiné dans ce laboratoire? GEL-10280 Théorie des communications 2 Expérience 3: Formats de signalisation binaire B. Caractéristiques du canal Dans cette partie du laboratoire, vous simulerez les caractéristiques d’un canal de communications. BRUIT CANAL ENTRÉE SORTIE Figure 1. Modèle du canal La fonction MATLAB qui représente la réponse d’un canal est channel, laquelle est appelée avec les arguments suivants: >> channel(entrée, gain, puissance_bruit, largeur_de_bande) B.1 Créez une séquence binaire de 10 échantillons et générez un signal représentant b avec un code NRZ polaire. Utilisez Rb = 1 kbps. >> b = binary(10); >> x = wave_gen(b, ’polar_nrz’, 1000); À partir de vos observations de la partie A, déterminer la largeur de bande de transmission BT: BT = Hz. B.2 Considérez un canal de transmission avec une largeur de bande de 4.9 kHz, de gain unitaire et avec un bruit blanc additif gaussien d’une puissance de 10-2 W. Transmettez le signal x par ce canal. Affichez l’entrée et la sortie du canal. >> y = channel ( x, 1, 0.01, 4900 ); >> subplot(211), waveplot(x) >> subplot(212), waveplot(y) Estimez la séquence transmise selon la forme de l’onde de sortie. b= Comparez à la séquence binaire originale. B.3 Les effets d’un canal de transmission sur le signal transmis Augmentez graduellement la puissance du bruit en gardant la largeur de bande du canal à 4.9 kHz et observez les changements sur la sortie du canal. >> subplot(212), waveplot ( channel ( x, 1, sigma, 4900 ) ) où sigma ∈ { 0.1, 0.5, 1, 2, 5 }. À quel niveau de bruit le signal commence-t-il à être non-distingable du bruit? B.4 Vous pouvez aussi étudier les effets de l’accroissement de la puissance du bruit en regardant la GEL-10280 Théorie des communications 3 Expérience 3: Formats de signalisation binaire DSP de la sortie du canal. >> >> >> >> >> >> Q3.3 b = binary (1000); x = wave_gen ( b, ’polar_nrz’, 1000 ); clf, subplot(121), psd(x), a = axis; axis(a), hold on psd(channel(x, 1, 1, 4900)) psd(channel(x, 1, 5, 4900)) Si le bruit du canal est additif et sans corrélation avec l’entrée du canal, alors déterminez une expression qui décrira la DSP de sortie du canal en terme de la DSP de l’entrée et de celle du bruit. B.5 Les effets de la largeur de bande sur le signal transmis La distorsion observée dans le temps à la sortie du canal est due à la largeur de bande finie du canal et au bruit. Pour étudier la distorsion causée par la largeur de bande seulement, fixez la puissance du bruit à zéro et regénérez le signal à la sortie du canal: >> >> >> >> >> clf b = binary(10); x = wave_gen ( b, ’polar_nrz’, 1000 ); subplot(211), waveplot(x) subplot(212), waveplot(channel(x, 1, 0, 4900)); B.6 Recherchez les effets de la largeur de bande sur la sortie du canal. >> subplot(212), waveplot(channel(x, 1, 0, bw)) où bw ∈ {3000, 2000, 1000, 500}. Observez le délai dans le signal de sortie, causé par les caractéristiques de filtre du canal. Tracez les signaux d’entrée et de sortie. C. Diagramme de l’oeil Les effets de filtrage du canal et du bruit peuvent être mieux visualisés en observant les signaux de sorties sous la forme d’un diagramme de l’oeil. Ce diagramme est construit à l’aide de multiples périodes du signal, chacune d’elle étant synchronisée par un signal d’horloge et ayant une largeur légèrement supérieure à la période des données binaires, soit Tb = 1/Rb. Dans cette simulation, la période du diagramme de l’oeil est fixée a 2Tb. C.1 Construction d’un diagramme de l’oeil >> >> >> >> >> b = [ 1 0 0 1 0 1 1 0 ]; x = wave_gen(b, ’polar_nrz’, 1000); clf subplot(221), waveplot(x) subplot(223), eye_diag(x) Le diagramme de l’oeil pour le signal x représente ce que vous vous attendez à voir pour un signal transmis parfaitement (sans distorsion). Pour observer comment un diagramme de l’oeil est construit et pour observer les effets de la distorsion du signal par le canal qui possède une largeur de bande finie, mais sans addition de bruit, faites: >> y = channel(x, 1, 0, 4000); >> subplot(222), waveplot(y) >> subplot(224), eye_diag(y,-1) Si le second argument de la fonction eye_diag est négatif, vous avez à frapper un retour de chariot GEL-10280 Théorie des communications 4 Expérience 3: Formats de signalisation binaire pour que la prochaine période soit affichée. Cela vous aidera à comprendre comment le diagramme de l’oeil est généré. C.2 Les paramètres clés à être mesurés avec un diagramme de l’oeil sont montrés ci-dessous. Figure 2. Interprétation d’un diagramme de l’oeil et de ses caractéristiques • • • • • • A B C D E t* intervalle de temps pendant lequel le signal peut être échantillonné; marge au-dessus du bruit; distorsion du passage par zéro; pente (sensibilité aux erreurs de synchronisation); distorsion maximale; temps d’échantillonnage optimale mesuré selon l’origine temporelle. Si la période binaire des données est Tb, alors le signal sera échantillonné à t*, t*+Tb, t*+2Tb, ... pour la détection du signal. Générez un diagramme de l’oeil à partir d’un signal NRZ polaire à la sortie du canal pour les valeurs de variance de bruit s2 et la largeur de canal bw montré dans le tableau ci-dessous. Prenez note de t*, A et B pour chaque paire (s2, bw). >> >> >> >> clf b = binary(100); x = wave_gen(b, ’polar_nrz’, 1000); eye_diag(channel(x, 1, s2, bw)) Code NRZ polaire s2 bw t* A B 3000 0.01 2000 1000 GEL-10280 Théorie des communications 5 Expérience 3: Formats de signalisation binaire Code NRZ polaire s2 bw t* A B 0.02 0.08 4000 0.10 C.3 Répétez la dernière étape pour le code Manchester et prenez vos résultats en note dans le tableau ci-dessous. Code Manchester s2 bw t* A B 3000 0.01 2000 1000 0.02 0.08 4000 0.10 Q3.4 Lorsque vous comparez le diagramme de l’oeil de l’étape C.2 et celui de C.3 pour s2 = 0.01 et bw = 1000, pour quel code observez-vous un diagramme de l’oeil acceptable? Expliquer les différences en fonction des propriétés de chacun des codes. C.4 Générez des diagrammes de l’oeil comme dans l’étape C.2 pour les codes RZ bipolaire et unipolaire, et NRZ unipolaire et observez comment le code dicte la forme et la symétrie du diagramme de l’oeil. GEL-10280 Théorie des communications 6