TP Matlab Bande Base [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

RESEAUX & TELECOMMUNICATIONS

RT1A

TP2b TP Matlab Numérique

2013-14

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 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

tpMatlabNum13.doc - 1

18/09/13

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 Paramétrage de Simulink Soit un signal sinusoïdal de 1000 Hz. • Comment choisir la période d'échantillonnage TE du bloc SCOPE pour que la fréquence d’échantillonnage soit 100 fois supérieure à la fréquence du signal à étudier ? • Comment choisir la période d'échantillonnage TE du bloc POWER SPECTRAL DENSITY afin que la raie à 1000 Hz de son spectre soit au milieu de la fenêtre fréquentielle? 2.2 Spectre d'un signal échantillonné 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 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

tpMatlabNum13.doc - 2

18/09/13

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 - le signal d’échantillonnage de l'ordre de 1000 Hz (6283 rd/s). Quatre paramètres sont à configurer

IUT de Grenoble - RT

tpMatlabNum13.doc - 3

18/09/13

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 dans le bloc Scope 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 / Fmod = 20/100 = 0.2 s ). En conséquence la durée de calcul doit-être égale à 0.2 s. Les valeurs à rentrer dans le menu Simulation/Paramètres 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 à garder. Ne pas imposer cette limite en décochant la case. 3.3.4 Autre particularité du bloc de visualisation "Averaging Power Spectral Density" Le bloc " Averaging Power Spectral Density " contient un paramètre "Sample Time", qui permet de 1 1 . régler la fenêtre d'observation en fréquence. La largeur de cette fenêtre est : × 2 Sample _ time Changer le nombre de points en 1024 (au lieu de 512) pour améliorer la précision. 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 d’avoir décocher "limit rows to last" dans Properties/Data History 3.5 Analyse fréquentielle de signaux analogiques Le bloc d'analyse spectrale "Averaging Power Spectral Density" 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), soit 1/(2*2000) pour FOBS = 2000Hz Changer le nombre de points en 1024 (au lieu de 512) pour améliorer la précision. NB : les fréquences affichées sont en rd/s !!!

IUT de Grenoble - RT

tpMatlabNum13.doc - 4

18/09/13

4

Echantillonnage 4.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 Tech") le signal sinusoïdale 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.

4.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 IUT de Grenoble - RT

tpMatlabNum13.doc - 5

18/09/13

 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é.

4.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 à 400 Hz Quelle raie voit-on ? • Relever le spectre de l’échantillonnage à 1000 Hz d’un signal original à 500 Hz. Quelle raie voit-on ? Expliquer. • 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 ?

4.4 Influence du bruit de quantification Régler, de nouveau, la fréquence de la sinusoïde originale à 100 Hz Installer le bloc "Quantizer" afin de quantifier le signal. La plage de quantification doit-être de 2V pour permettre d'y inscrire entièrement le signal sinusoïdal de départ et d'amplitude 1V. Si on veut que la quantification soit sur 3 bits (23 valeurs possibles) il faut que pas de quantification (quantum) soit 2/23 (soit 2/2^3) : c'est la valeur du paramètre "Quantization Interval". Visualiser avec un scope le signal obtenu • Relever le signal original, le signal quantifié et le signal bruit de quantification (c'est la différence entre les 2).

IUT de Grenoble - RT

tpMatlabNum13.doc - 6

18/09/13

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 2 2 ωn 1 + 2 zτ n p + τ n p Paramètres Valeur Commentaires Numerator 1 2 Denominator Les 3 coefficients de p (descendant à partir de p2) τn 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.

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

tpMatlabNum13.doc - 7

18/09/13

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

tpMatlabNum13.doc - 8

18/09/13