Vous êtes sur la page 1sur 8

RESEAUX & TELECOMMUNICATIONS RT1A

TP2b TP Matlab Numérique 2010-11


Module T2

1 Rappels sur le codage


Le codage permet de traduire en signal électrique (tension) les bits d'une suite numérique.
Pour choisir un codage on peut vérifier les critères suivants :
 il doit maintenir un signal alternatif même lorsque l’information est constituée de bits identiques, ce qui
permet au récepteur de pouvoir restituer l’horloge
 il doit avoir un encombrement spectral le plus faible possible

1.1 Codage de base : le codage NRZ


Description Chronogramme Spectre
1 → +V
0 → 0V

1.2 Codage RZ
Description Chronogramme Spectre
Le bit 1 est codé à
+V avec un retour à
0.

1 → +V puis 0V
0 → 0V

Le spectre contient une raie à la fréquence rythme, ce qui facilite la récupération de l'horloge, mais la
largeur spectrale est doublée par rapport au codage NRZ.

1.3 Codage Manchester


Description Chronogramme Spectre
On introduit des fronts
au milieu de chaque
bit :

 montant pour 1
 descendant pour 0

La largeur spectrale est doublée par rapport au codage NRZ.


IUT de Grenoble - RT tpMatlabNum10.doc - 1 22/02/11
1.4 Codage 2B1Q
Description Chronogramme Spectre
Codage à 4 niveaux.
Valence = 4

La largeur spectrale est la moitié de celle du codage NRZ.

2 Préparation
2.1 Paramétrage de Simulink
Soit un signal sinusoïdal de 1000 Hz.
• Comment choisir la période d'échantillonnage TE du bloc SCOPE afin de bien représenter ce signal ?
• Comment choisir la période d'échantillonnage TE du bloc POWER SPECTRAL DENSITY afin de
bien représenter le spectre de ce signal ?

2.2 Spectre d'un signal échantillonné


Soit un signal sinusoïdal à 100 Hz. Dessiner son spectre.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre du signal échantillonné entre 0 et 1000Hz.
Soit un signal sinusoïdal à 800 Hz. Dessiner son spectre.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre du signal échantillonné entre 0 et 1000Hz.

2.3 Pas de quantification


Pour une plage de tension de 2V. La quantification est supposé codée sur 8 bits soit 28 valeurs possibles.
Quel est le pas de quantification ?

IUT de Grenoble - RT tpMatlabNum10.doc - 2 22/02/11


3 Matlab et simulink
Lancer Matlab.

Aller dans votre répertoire d'accueil (cd), créer un répertoire Matlab (mkdir), déplacer vous dedans,
vérifier avec pwd.
Créer un sous-répertoire MA&MF (par exemple) dans votre répertoire d’accueil H :\Travail
3.1 Lancement de Simulink
Appeler l'outil d'édition graphique en cliquant sur
l'icône :
Créer ou ouvrir une feuille de travail :
Les fichiers ont l'extension .mdl
3.2 Librairies
Les divers éléments de la librairie sont alors disponibles :
Librairie simulink :
Continuous : Blocs linéaires définis par leurs fonctions de transfert
Discrete: idem mais en échantillonné
Functions & Tables : Blocs de fonctions mathématiques
Math: Blocs d'opérateurs mathématiques et logiques
Nonlinear : commutateurs et autres non linéarités
Signals & Systems : Divers signaux et blocs
Sinks: Outils d'analyse des signaux
Sources : Générateurs de signaux

Librairie Communications Blockset :


Channel Coding : Blocs de séquence de codage et decodage
Channels: Divers canaux de transmission bruités,…
Comm Sinks : Outils d'analyse des signaux pour les communications
Comm Sources : Générateurs de signaux pour les communications
Modulation : Modulations et démodulations numriques et
analogiques
Source Coding : Numérisation, compression,…
Synchronisation: Divers PLL
Utility Functions : Autres fonctions pour les communications

Librairie Simulink Extras :


Additional Discrete: Blocs définis par leur fct de transfert en
échantillonné
Additional Linear : Blocs linéaires définis par leurs fonctions de
transfert
Additional Sinks: Autres outils d'analyse des signaux
Flip Flops : Blocs de bascules logiques
Linearization :
Transformations : Transformations cartesiens-polaires, degré-radians,…
3.3 Configurations
Les signaux que l'on vous demande d'analyser sont de 2 types :
- l'information à transmettre de fréquence Fmod de l'ordre de 100 Hz (Tmod = 10 ms)
- le signal d’échantillonnage de l'ordre de 1000 Hz (6283 rd/s).
Quatre paramètres sont à configurer

IUT de Grenoble - RT tpMatlabNum10.doc - 3 22/02/11


3.3.1 Période d'échantillonnage de calcul interne par Matlab
Matlab échantillonne ces signaux pour pouvoir faire ses calculs. Il faut que la fréquence
d'échantillonnage soit bien supérieure à celle imposée par Shannon, (soit deux fois la fréquence de la
porteuse à 1000 Hz = 2000 Hz).
On choisit donc une fréquence d'échantillonnage de calcul cent fois plus grande, soit 100 kHz (T = 10
µs).
La valeur à rentrer est donc : période d'échantillonnage = 10µs
3.3.2 Temps de calcul interne par Matlab
La durée de calcul ne doit pas être trop élevée pour éviter des attentes trop longues.
Limitons nous à la visualisation de 20 période de l'information (soit 20 x Tmod = 200 ms ).
En conséquence la durée de calcul doit-être égale à 200 ms.
Les valeurs à rentrer sont donc : Start time = 0 et Stop time = 0,2s
3.3.3 Particularité du bloc de visualisation "Scope"
Le bloc "Scope" contient un paramètre "limit rows to last", qui contient le nombre d'échantillons à
durée _ de _ calcul 200x10−3
garder ; il doit contenir, au moins la valeur = =20000
période _ d'echantillonnage 10×10−6

3.3.4 Autre particularité du bloc de visualisation "Power Spectral Density"


Le bloc " Power Spectral Density " contient un paramètre "Sample Time", qui permet de régler la
1 1
fenêtre d'observation en fréquence. La largeur de cette fenêtre est : × .
2 Sample _ time
3.4 Visualisation des signaux
Les blocs qui génèrent les signaux sont dans
Simulink/Source.
Les blocs pour observer sont dans Simulink/Sinks.
Imposer la période d'échantillonnage à 10 µs en activant la
fonction Properties/General dans Scope.
Il faut aussi s'assurer que le nombre de points à enregistrer
est supérieur ou égal à la durée de calcul (10 ms) diviser par la période d'échantillonnage (10µs) soit
10000 dans Properties/Data History / limit rows to last
3.5 Analyse fréquentielle de signaux analogiques
Le bloc d'analyse spectrale est dans
Extra-Simulink/Additionnal Sinks :

Pour une fenêtre de visualisation FOBS, il faut


choisir une période d'échantillonnage TE = 1/(2 *
FOBS)

NB : les fréquences affichées sont en rd/s !!!

IUT de Grenoble - RT tpMatlabNum10.doc - 4 22/02/11


4 Echantillonnage
4.1 Montage de base
Créer le fichier echant1.mdl qui :
- génère une sinusoïde d'amplitude 1, de fréquence F=100 Hz (bloc Signal Generator)
- échantillonne (Bloc Zero-Order Hold Tech) ce signal avec une fréquence d'échantillonnage Fech =
1000 Hz.
֠ Ne pas confondre cette fréquence d'échantillonnage avec la fréquence de calcul qui est la fréquence
d'échantillonnage pour les calculs de Matlab !

• Comparer le signal original et le signal échantillonné en observant simultanément les deux courbes
multiplexés par un oscilloscope. Relever ces deux courbes

Positionner un bloc " Averaging Power Spectral Density " .


Régler la fenêtre d’observation de 0 Hz à +2000Hz . En déduire la valeur de Sample_time.

• Relever le spectre du signal échantillonné.

4.2 Filtre de reconstruction


Pour transformer le signal en escalier en signal continu, on doit placer en sortie un filtre de reconstruction
(ou restitution).
Installer en sortie de l'échantillonneur le bloc "Transfer Fcn" avec une fréquence de coupure égale à la
moitié de la fréquence d'échantillonnage soit 500 Hz.
1 jω
Le filtre sera un filtre du 3ème ordre de type Butherworth T = avec S = .
1 + 2S + 2S + S
2 3
ωO
Les paramètres à entrer sont donc :
[1/(2*pi*500)^3 2/(2*pi*500)^2 2/(2*pi*500) 1]

• Faire passer à 3 le nombre d'entrées du multiplexeur afin de relever simultanément le signal original,
le signal échantillonné et le signal reconstruit. Vérifier le bon fonctionnement du filtre.

4.3 Repliement de spectre


Changer la fréquence de la sinusoïde en la montant à 800 Hz
• Relever les 3 nouvelles courbes temporelles. Quel est l'effet du repliement de spectre ?

• Relever le spectre du signal échantillonné. Quel est l'effet du repliement de spectre ? Justifier les
fréquences des 2 raies.

4.4 Influence du bruit de quantification


Régler, de nouveau, la fréquence de la sinusoïde à 100 Hz
Installer à la suite de l'échantillonneur un bloc "Quantizer" afin de quantifier le signal.
La plage de quantification est supposée de 2V (elle permet d'y inscrire entièrement le signal sinusoïdal de
départ et d'amplitude 1V.
La quantification est supposé codée sur 8 bits soit 28 valeurs possibles. Le pas de quantification est donc
2/28 (soit 2/2^8) : c'est la valeur du paramètre "Quantization Interval".
Visualiser avec un scope le signal obtenu (sans insérer l'échantillonneur-bloqueur)
Passer à une quantification sur 2 bits.
• Relever le signal original, le signal quantifiée et le signal bruit de quantification (c'est la différence
entre les 2).

IUT de Grenoble - RT tpMatlabNum10.doc - 5 22/02/11


5 Codage NRZ
5.1 Emission
Sauver le fichier precedent et copier le sous le nom nrz.mdl.
Dans ce fichier nrz.mdl , générer un signal aléatoire (bloc Bernoulli random binary generator), avec un
débit de 100 bits/s soit Fe = 100 Hz donc TE = 10ms.
Vous choisirez aussi une équiprobabilité entre la valeur 0 et la valeur 1 : la probabilité d'avoir un "0" est la
même que celle d'avoir un "1".
Paramètres :
Paramètres Valeur Commentaires
Probability of a zero [0.5] probabilité de 0,5 (50%) d’avoir un zéro
seed [1] Pour générer un vecteur de dimension 1
Sample Time ? Pour avoir un débit de 100 bits/s
Le paramètre Sample Time correspond à la durée d'un bit.
• Quel est sa valeur pour que le débit soit de 100 bits/s ?
• Relever le signal NRZ.
• Relever son spectre (Augmenter si nécessaire le temps de calcul).
Faire apparaître la fréquence rythme FR.
Attention le spectre est gradué en rd/s et non en Hz !
• Quelle est son encombrement spectral (largeur du 1er lobe)?

5.2 Simulation du canal de transmission


Simuler les défauts du canal de transmission par un filtre passe-bas (bloc Transfert Fcn) du deuxième
1
ordre de fonction de transfert : F ( p) = avec τn = 1
1 + 2 zτ n p + τ n p
2 2 ωn
Paramètres Valeur Commentaires
Numerator 1
Denominator τn 2zτn 1
2 Les 3 coefficients de p (descendant à partir de p2)
Calculer les coefficients pour que ce filtre ait un coefficient d'amortissement z = 0,5 et une fréquence
1
propre ω n = telle que τn soit 10 fois plus petite que TB, durée d'un bit.
τn
• Relever simultanément le signal NRZ émis et le signal reçu en sortie du canal.

5.3 Ajout de bruit


Ajouter un bruit gaussien (bloc Uniform noise generator) au signal NRZ (en aval du canal).
Paramètres Valeur Commentaires
Noise lower bound -0.3 niveau de bruit inférieur
Noise upper bound 0.3 niveau de bruit supérieur
Seed [1] Pour générer un vecteur de dimension 1
Sample time 10^-5
• Relever simultanément le signal NRZ émis et le signal reçu bruité, en sortie du canal.

IUT de Grenoble - RT tpMatlabNum10.doc - 6 22/02/11


5.4 Outil de réception : le diagramme de l'œil
Importer un diagramme de l'œil (bloc Sample-time eye-diagram scatter).
Paramétrer le pour que la fenêtre d'observation soit 2*TB , avec une mémorisation de 10 traces :
Paramètres Valeur Commentaires
Symbol interval [? 0 ?] 2*TB
plot offset Pas d'offset
decision point offset Pour pointer l'instant de décision optimal
Lower and upper bound [-0.5 1.5] niveau de bruit inférieur et supérieur
Number of saved traces 10 mémorisation de 10 traces
line-type for eye-pattern 'b-/r-' Trace bleue (b) et décision en rouge (r)
line-type for scatter plot 0 Ne pas dessiner la constellation.
Plot update Sample time 10^-4 Période d'échantillonnage suffisante
• Relever le diagramme de l'œil du signal reçu bruité en sortie du canal.
• Augmenter le bruit afin d'être en limite de fermeture de l'oeil. Relever alors ce diagramme.
• Copier ce diagramme et à l'aide de Paint, tracer par dessus, le seuil de décision et les instants de
décision.
6 Codage RZ
Sauver le fichier précédant et copier le sous le nom rz.mdl.
Dans ce fichier rz.mdl :
Pour coder au format RZ un signal de type
NRZ il suffit de faire un ET LOGIQUE
entre le signal NRZ et un signal d’horloge
de période TB (durée d’un bit).

• Relever simultanément le signal NRZ et le signal codé RZ.


• Relever son spectre (Augmenter si nécessaire le temps de calcul). Représenter les fréquences
caractéristiques. Quel avantage possède ce codage par rapport au NRZ ?

Comme pour le codage NRZ, envoyer le signal dans le canal de transmission et ajouter du bruit.
• Relever le diagramme de l'œil du signal reçu bruité en sortie du canal.
• Copier ce diagramme et à l'aide de Paint, tracer par dessus, le seuil de décision et les instants de
décision.

7 Codage Manchester
Sauver le fichier précédant et copier le sous le nom Manchester.mdl
Dans ce fichier Manchester.mdl :
Pour coder « Manchester » le signal NRZ
initial. Il suffit de faire un OU-EXCLUSIF
entre le signal NRZ et l’horloge de période
TB (durée d’un bit).

• Relever simultanément le signal NRZ et le signal codé Manchester.


• Relever son spectre. Faire apparaître la fréquence rythme FR.
• Quelle est son encombrement spectral ?

Comme pour le codage NRZ, envoyer le signal dans le canal de transmission et ajouter du bruit.
• Relever le diagramme de l'œil du signal reçu bruité en sortie du canal.
• Copier ce diagramme et à l'aide de Paint, tracer par dessus, le seuil de décision et les instants de
décision.
IUT de Grenoble - RT tpMatlabNum10.doc - 7 22/02/11
8 Codage 2B1Q
Sauver le fichier précédant et copier le sous le nom 2B1Q.mdl
Dans ce fichier 2B1Q.mdl :
Il faut dans un premier temps grouper les bits par 2 :
Le bit b0 arrive en premier, "mettez-le en attente"durant TB (le temps que le bit suivant b1 arrive.
En suite les 2 bits sont mémorisés par une bascule D, avec une périodicité égale à 2 TB.
Ce signal périodique de période 2TB doit être inversé puis un peu retardé de TB/10 pour que le front
positif (front qui correspond à l'instant de mémorisation) arrive lorsque b0 et b1 sont stables (un peu après
l'arrivée de b1)

Il faut ensuite coder la table de vérité.


Elle est à 2 entrées bO et b1. Un bloc "Mux" permet de les envoyer sur le générateur de table de vérité
"Combinatorial Logic" .
Paramétrer-le en entrant les 4 valeurs correspondants aux 4 états 00, 01, 11 et 10.
Vérifier la programmation en entrant les 4 valeurs par 2 blocs "Constant" et en visualisant le résultat ave
le bloc "display".

Remplacer ensuite les blocs "Constant" par les 2 bits b0 et b1 de l'étape précédente. Cela doit fonctionner.

• Relever simultanément le signal NRZ et le signal codé 2B1Q.


• Relever son spectre. Faire apparaître la fréquence rythme FR.
• Quelle est son encombrement spectral ?

Comme pour le codage NRZ, envoyer le signal dans le canal de transmission et ajouter du bruit.
• Relever le diagramme de l'œil du signal reçu bruité en sortie du canal.
• Copier ce diagramme et à l'aide de Paint, tracer par dessus, les seuils de décision et les instants de
décision.

IUT de Grenoble - RT tpMatlabNum10.doc - 8 22/02/11

Vous aimerez peut-être aussi