ZANKADOR. pdf free - PDF eBooks Free

Download Report

Transcript ZANKADOR. pdf free - PDF eBooks Free

RESEAUX & TELECOMMUNICATIONS
RT1A
TP1 Matlab
2014-15
Cycle S2 / Module M2108
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
1 → +V
0 → 0V
1.2 Codage RZ
Description
Le bit 1 est codé à
+V avec un retour à
0.
Chronogramme
Spectre
Spectre
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
On introduit des fronts
au milieu de chaque
bit :
Chronogramme
Spectre
montant pour 1
descendant pour 0
La largeur spectrale est doublée par rapport au codage NRZ.
IUT de Grenoble - RT
TpMatlab14.doc - 1
30/07/14
1.4 Codage 2B1Q
Description
Codage à 4 niveaux.
Valence = 4
Chronogramme
Spectre
La largeur spectrale est la moitié de celle du codage NRZ.
2
Préparation
2.1 Modulation d'amplitude
Dessiner le spectre d'une modulation d'amplitude équilibrée dont la porteuse a pour valeur 1000 Hz et
dont le signal modulant est une sinusoïdale de fréquence 100 Hz .
On démodule ce signal modulé par détection synchrone.
Cette détection utilise une filtre, Quel est son type ?
Comparer sa fréquence de coupure à la fréquence du signal modulant 100Hz et celle de la porteuse
1000Hz.
2.2 Echantillonnage
Soit un signal sinusoïdal à 100 Hz. Dessiner son spectre monolatérale de puissance.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre monolatérale de puissance du signal
échantillonné entre 0 et 1000Hz.
Soit un signal sinusoïdal à 800 Hz. Dessiner son spectre monolatérale de puissance.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre monolatérale de puissance du signal
échantillonné entre 0 et 1000Hz.
2.3 Numérisation
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
TpMatlab14.doc - 2
30/07/14
3
Simulink – Paramétrage
3.1 Lancement de Matlab-Simulink
3.1.1 Lancement de Matlab
Lancer Matlab.
Aller dans votre répertoire d'accueil (cd H:\Travail), créer un répertoire, par exemple MatAna (mkdir).
Le nom de votre répertoire doit contenir moins de 8 caractères et pas d’espace), déplacer vous dedans,
vérifier avec pwd.
3.1.2 Lancement de Simulink
Appeler l’outil d'édition graphique en cliquant sur l’icône présent dans la barre d’outils de
Matlab (ou en tapant simulink dans la fenêtre de commande de Matlab):
Créer ou ouvrir une feuille de travail :
Les fichiers ont l’extension .mdl
Nommer-le init.mdl
3.1.3 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 Blokset :
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,…
IUT de Grenoble - RT
TpMatlab14.doc - 3
30/07/14
3.2 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
- les signaux porteurs de fréquence de l'ordre de 1000 Hz (6283 rd/s).
Deux paramètres sont à configurer
- La période d'échantillonnage dans certains blocs (par exemple dans Properties/General du Scope).
- Le "stop time" qui définit la durée de calcul par Matlab dans Simulations/Parameters :
3.2.1 Période d'échantillonnage (pour le bloc SCOPE)
Il faut que la fréquence d'échantillonnage soit bien supérieure à celle imposée par Shannon :
Théoriquement deux fois la fréquence de la porteuse à 1000 Hz soit 2000 Hz.
Pratiquement on choisit donc une fréquence d'échantillonnage de calcul cent fois plus grande, soit
FE = 100 * 1000 = 100 kHz Te = 1/Fe =10 µs.
La valeur à rentrer est donc : période d'échantillonnage = 10µs
3.2.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 10 période de l'information, soit 10/Fmod, soit 10 /100 = 0.1s
En conséquence la durée de calcul doit-être égale à 100 ms.
Les valeurs à rentrer sont donc : Start time = 0 et Stop time = 0.1s
3.2.3 Particularité du bloc de visualisation "Scope"
Le bloc "Scope" contient un paramètre "limit rows to last", qui contient le nombre d'échantillons à
garder. Ne pas imposer cette limite en décochant la case.
3.2.4 Autre particularité du bloc de visualisation "Averaging 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
IUT de Grenoble - RT
TpMatlab14.doc - 4
30/07/14
4
Etudes de signaux analogiques
4.1 Chronogramme des signaux avec le bloc "Scope"
Entrer le schéma ci-contre afin de générer et visualiser un
signal sinusoïdal de fréquence 1000 Hz et d'amplitude 1.
Les blocs qui génèrent les signaux sont dans
Simulink/Source, les blocs pour observer sont dans
Simulink/Sinks.
Régler Start time = 0, Stop Time = 0,1s dans
Simulation/Parameters
Lancer la simulation dans Simulation/Start ou CTRL T
La sinusoïde n'est pas assez échantillonnée (pas assez de
points)
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
soit 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
• Récupérer la copie d’écran de l’oscilloscope et intégrer-la dans votre compte rendu.
4.2 Analyse fréquentielle des signaux avec le bloc "Averaging Power Spectral Density"
Compléter le fichier en entrant le schéma ci-contre.
Le bloc d'analyse spectrale est dans : Extra-Simulink/Additionnal Sinks.
Lancer la simulation. La page d'observation du spectre est vide car la période
d'échantillonnage est mal choisie.
Le spectre du signal est une raie à 1000 Hz.
Choisissons une fenêtre de visualisation de 2000 Hz, soit TE = 1/(2 * 2000)
Il est souhaitable que le nombre de points soit 1024 à la place de 512 pour
améliorer la précision
Lancer la simulation, observer la raie (attention les fréquences affichées sont en rd/s !!!)
• Relever le spectre (Le module seulement) dans votre compte-rendu.
5
Modulation d'amplitude
5.1 Modulation d'amplitude équilibrée
Sauver le fichier précédant (init.mdl) et enregistrer-le de
nouveau sous le nom ma.mdl.
Dans ce fichier ma.mdl : entrer le schéma d'un modulateur
d'amplitude équilibrée
La porteuse à 1kHz sera générée par un bloc "signal generator"
(Amplitude = 1).
La tension de modulation à 100 Hz sera générée par un bloc "signal generator" (Amplitude = 1).
La modulation se fera par un bloc "Product".
Placer un bloc "Scope" et un bloc "Mux" pour observer le signal modulant et le signal modulé.
Placer un bloc "Power Spectral Density" pour observer le spectre du signal modulé, avec une largeur de
fenêtre d'observation de 2000 Hz.
• Relever le schéma.
• Relever le résultat fournit par "Scope" (à l'aide du zoom, visualiser qu'une période du signal
modulant)
• Relever le spectre en amplitude fournit par "Power Spectral Density".
IUT de Grenoble - RT
TpMatlab14.doc - 5
30/07/14
5.2 Modulation d'amplitude classique
Modifier le fichier précédant afin d'entrer le schéma d'un
modulateur d'amplitude classique.
L'ajout d'une tension continue se fait avec les blocs "constant"
et "sum"
Régler le taux de modulation à 80%.
• Relever le schéma.
• Relever le résultat fournit par "Scope"
Il est intéressant d'observer le "signal modulant + le terme constant", pour faire apparaître la
correspondance entre enveloppe du signal modulé et signal modulant.
• Relever le spectre en amplitude fournit par "Power Spectral Density".
5.3 Démodulation par détection synchrone
Réaliser la démodulation
par détection synchrone à
l'aide d'un deuxième
multiplieur suivi d'un filtre
passe-bas.
Le filtre sera un filtre du
3ème ordre de type
Butherworth
1
jω
T=
avec S =
2
3
ωO
1 + 2S + 2S + S
Choisir ωO =2ωBF (FBF = 100 Hz)
Utiliser le bloc "Transfer Fcn" où s représente jω.
L'expression du filtre en fonction de s est donc : T(s)=
1
[(s / ω O )3 + 2(s / ω O )2 +2(s / ω O )+1]
•
Remplir le tableau suivant avec les coefficients de s
Paramètres
Valeur
Commentaires
Numerator
1
Denominator
? ? ??
Les 4 coefficients de s (descendant à partir de s3)
•
Relever les signaux modulants et démodulés sur le même écran.
IUT de Grenoble - RT
TpMatlab14.doc - 6
30/07/14
6 Echantillonnage
6.1 Montage de base
Créer le fichier echant1.mdl pour :
Générer un signal original devant être une sinusoïde d'amplitude 1, de fréquence f =100 Hz (bloc
"Signal Generator")
Nous allons étudier simultanément l’échantillonneur et l’échantillonneur bloqueur :
Echantillonner (discrétiser) en multipliant (bloc "product") le signal original par un peigne de
Dirac qui sera généré par un bloc "pulse generator" de rapport cyclique 5% et de fréquence Fech =
1000Hz Tech = 1/1000 = 0.001 s
Echantillonner et bloquer (Bloc "Zero-Order Hold") le signal sinusoïdal original avec une
fréquence d'échantillonnage : f ech = 1000 Hz
Sample time = 0.001.
֠ 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 !
Vous pouvez ajouter une constante aux signaux avant de les afficher au « scope » pour séparer les traces.
•
Comparer le signal original avec le signal échantillonné et le signal échantillonné-bloqué en
observant simultanément les trois courbes multiplexées par un oscilloscope.
Relever ces trois courbes.
Positionner un bloc "Averaging Power Spectral Density " pour analyser le signal échantillonné à la sortie
du bloc « product » (ne pas analyser le signal échantillonné-bloqué).
Garder encore une fenêtre d’observation à 2000 Hz.
•
Relever le spectre du signal échantillonné.
Pointer les raies caractéristiques.
IUT de Grenoble - RT
TpMatlab14.doc - 7
30/07/14
6.2 Filtre de reconstruction (ou restitution)
Pour restituer le signal original à partir du signal échantillonné, il faut placer 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 Fc = 500 Hz.
Le filtre sera un filtre du 4ème ordre de type Butherworth
1
jω
T=
avec S =
.
2
3
4
ωO
1 + 2.61313S + 3.41421S + 2.61313S + S
Le filtre est disponible dans Biblio/DocTP/Matlab/BiblioFiltreMatlab.mdl
Vérifier le bon fonctionnement du filtre.
Changer le 1 du numérateur en 5 voire 10 si le signal vous paraît trop faible.
•
Relever simultanément le signal original, le signal échantillonné et le signal reconstruit multiplexées
par un oscilloscope.
Le filtre de restitution permet de restituer le signal original à partir du signal échantillonné. Pour cela il
élimine toutes les raies créées par l’échantillonnage. Pour le vérifier nous allons comparer le spectre du
signal échantillonné et le spectre du signal restitué.
•
Relever le spectre du signal restitué.
Comparer-le au spectre du signal échantillonné, en déduire le rôle du filtre de restitution.
La restitution est beaucoup plus aisée avec un signal échantillonné-bloqué. Vérifier-le.
•
Expliquer pourquoi en comparant le spectre d’un signal échantillonné avec le spectre d’un signal
échantillonnné-bloqué.
6.3 Repliement de spectre
Observer maintenant le spectre du signal échantillonné entre 0 et 500 Hz (fenêtre de travail si on
échantillonne à 1000 Hz) en changeant la valeur de son paramètre Te qui doit être égal à 1/(2*500).
• Relever le spectre de l’échantillonnage à 1000 Hz d’un signal original à 100 Hz
Quelle raie voit-on ?
• Relever le spectre de l’échantillonnage à 1000 Hz d’un signal original à 450 Hz (proche de 500 Hz)
Quelle raie voit-on ?
• Relever le spectre de l’échantillonnage à 1000 Hz d’un signal original à 800Hz.
Quelle raie voit-on ? Expliquer.
Dans ce cas d’un signal original à 800 Hz, échantillonné à 1000 Hz, observer le signal restitué (en sortie
du filtre du 4ème ordre avec Fc = 500Hz.
• Relever le signal original et le signal restitué
• Quelle est la fréquence du signal restitué
• Quel est l'effet du repliement de spectre ? Pourquoi est-ce une erreur ?
IUT de Grenoble - RT
TpMatlab14.doc - 8
30/07/14
7
Codage NRZ
7.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)?
7.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
2
2
ωn
1 + 2 zτ n p + τ n p
Paramètres
Valeur
Commentaires
Numerator
1
Denominator
Les 3 coefficients de p (descendant à partir de p2)
τ2n 2zτn 1
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.
7.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
TpMatlab14.doc - 9
30/07/14
7.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.
8
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.
9 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
TpMatlab14.doc - 10
30/07/14