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