Vous êtes sur la page 1sur 18

Institut des techniques dingnieur de lindustrie dAlsace cole nationale suprieure de physique de Strasbourg Formation dingnieur en partenariat 1re

anne

Travaux pratiques de Traitement du signal

Filtre passe-bande
Module : 20 log |f| (dB) 0 20 40 60 80 0 10 Phase : Arg(h) (rad) 5 0 5 10 0 100 200 300 400 f (kHz) 500 600 700 800 100 200 300 400 f (kHz) 500 600 700 800

Vincent Mazet (C219, vincent.mazet@unistra.fr), Franois Rousseau (C211, rousseau@unistra.fr) Anne universitaire 2011/2012 Version du 20 janvier 2012

Sommaire
TP 1. Outils de base du traitement du signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TP 2. Synthse dun ltre analogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TP 3. Modulation et dmodulation damplitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 9

Utilisation de Matlab et Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Droulement des TP Les TP de traitement du signal de premire anne se droulent en binme et sont nots. Les parties thoriques des TP doivent absolument tre prpares avant la sance puisque les parties pratiques ncessitent quatre heures de travail. Nous utiliserons les logiciels Matlab et Simulink ; vous trouverez en annexe une aide sur lutilisation de ces deux logiciels. Si vous tracez des courbes, pensez donner une lgende, un titre et indiquer ce que reprsentent les axes. Reprsentez galement la totalit des courbes (mais rien ne vous empche de faire galement un zoom autour des zones intressantes). Attention la propagation des erreurs numriques lors de longs calculs : le rsultat nal peut tre trs dirent de la vraie solution. Soignez lorthographe et la conjugaison, et banissez tout terme anglais ou issu du vocabulaire de Matlab/Simulink sil existe un quivalent franais (par exemple, ncrivez pas mux mais multiplexeur ). Vous devez rendre le compte rendu la n de chaque sance imprativement (un point de moins par jour de retard), il peut tre manuscrit ou lectronique. Si vous souhaitez imprimer les gures, pensez conomiser le papier ! Ainsi, utilisez un traitement de texte pour copier plusieurs gures sur une mme page, adoptez une taille de police et des marges raisonnables et imprimez recto-verso si possible. Dans le cas dun compte rendu lectronique, seuls les chiers PDF sont accepts ! Le nom du chier doit respecter le format suivant : TPX-nom1-nom2.pdf et tre dpos sur le rseau : \\ensps-c\home\TP\TPsignalFIP1\comptesrendus\ Attention, il nest pas possible de modier ou supprimer un chier une fois dpos. Pour accder au rseau depuis Windows, ouvrez un Explorateur, cliquez sur le menu Outils puis Connecter un lecteur rseau. Ne donnez pas de rsultats (valeur numrique ou graphe) sans les commenter et les analyser. Le soin apport aux comptes rendus sera pris en compte dans la note.

Calendrier TP 1 TP 2 TP 3 mercredi 1er fvrier mercredi 8 fvrier mercredi 7 mars 14h18h 14h18h 14h18h salle A 402 salle A 402 salle A 402

ITII ENSPS FIP 1re anne

2011/2012

TP 1 Outils de base du traitement du signal

Lobjectif de ce TP est dtudier les principaux outils utiliss en traitement du signal tout en proposant une initiation Matlab et Simulink ; il est donc vivement conseill de lire lannexe relative ces deux logiciels avant la sance ! Les questions 1, 2, 3, 4, 6, 8, 11, et 17 sont thoriques et, par consquent, doivent tre prpares avant la sance.

nergie et puissance dun signal


1. Rappelez les formules de lnergie et de la puissance totale dun signal pour un signal apriodique, puis pour un signal priodique. 2. Proposez trois signaux vriant chacun lune des conditions suivantes : un signal puissance nulle ; un signal puissance nie mais non nulle ; un signal puissance innie ; Les nergies de ces trois signaux sont-elles nies ou non ? 3. Un signal puissance non nulle peut-il physiquement exister ?

On considre le signal sinusodal suivant : z1 (t) = A sin(2f t + ). 4. Calculez la puissance de ce signal et dduisez-en son nergie. 5. On souhaite tracer avec Matlab ce signal sur 1 s et avec les paramtres suivants : A = 2, f = 5 Hz et = /3.

En vous aidant de lexemple page 16, dnissez tout dabord un vecteur t correspondant aux abscisses o sera calcul le signal, puis crez ensuite un vecteur z1 correspondant aux valeurs de z1 (t). Quelle valeur du pas de temps proposez-vous ? Donnez votre code dans le compte rendu. On considre maintenant la sinusode amortie nulle pour t < 0 et telle que z2 (t) = eat sin(2f t) pour t 0 ; avec a = 0, 5 et f = 2 Hz. 6. Calculez lnergie de ce signal et dduisez-en sa puissance. 7. Tracez ce signal sur 10 s avec Matlab. Faites attention utiliser une multiplication point--point entre lexponentielle et le sinus. Donnez votre code dans le compte rendu.

2
2.1

Analyse de Fourier
Transforme de Fourier dune porte
8. Calculez la transforme de Fourier du signal porte suivant : x(t) = A 0 si T + t T + , sinon.

x(t) A

T +

T +

Figure 1.1 Fonction porte x(t). La transforme de Fourier pouvant prendre des valeurs complexes, il nest pas possible de la reprsenter sur un seul graphe. Cest pourquoi on trace gnralement le spectre damplitude (reprsentant le module) et le spectre de phase (reprsentant largument). 9. Tracez avec Matlab les spectres damplitude et de phase de x(t) entre 1 et +1 Hz. On prendra comme paramtres : T = 4 s, A = 2 et = 1 s. Expliquez le comportement bizarre de la phase. 10. Comment voluent les spectres lorsque : lamplitude du signal A varie ? le signal se dilate (T augmente) ou se contracte (T diminue) ? le signal subit un dcalage temporel ( varie ; on parle de dphasage) ? Justiez vos rponses partir de lexpression de la transforme de Fourier.

2.2

Srie de Fourier dun crneau

11. Calculez les coecients cn de la srie de Fourier du crneau dni par la gure suivante : y(t)
1

T0 T1 2

T1

T0 2

Figure 1.2 Crneau y(t). 12. Tracez sous Matlab le spectre damplitude et de phase (la succession des coecients) de y pour n allant de 10 10, avec T0 = 1 s et T1 = 0, 25 s. 13. Indiquez sur le spectre la composante continue, la frquence fondamentale et le premier harmonique. Comment peut-on retrouver la composante continue sur le signal temporel ?

On souhaite maintenant reconstruire le signal temporel en ne considrant que les N premires harmoniques. 14. Grce la formule de la srie de Fourier inverse, tracez le signal reconstruit pour une valeur de N xe (cest--dire pour n {N, . . . , N }). Il peut tre utile dans ce cas dutiliser une boucle for (p. 15) sur n. Attention, il faut considrer la partie relle du rsultat car le signal obtenu contient une composante imaginaire. 15. Quel signal obtenez-vous pour N = 0, puis pour N = 1 ? 16. Tracez ensuite le signal reconstruit en prenant des valeurs de N de plus en plus grandes. Que constatez-vous ?

Produit de convolution

Le produit de convolution entre deux signaux x(t) et h(t) est une opration mathmatique dont la solution est un troisime signal y(t). Il permet de calculer le signal y(t) en sortie dun ltre de rponse impulsionnelle h(t) excit par un signal dentre x(t). 17. Rappelez la formule du produit de convolution. 4

Les questions suivantes sont eectuer avec Simulink (p.15). La simulation sera eectue grce lalgorithme de Dormand-Prince avec un pas de simulation maximal (Max step size) de 1 ms. 18. Reprsentez une impulsion de Dirac en connectant un bloc Pulse Generator (de priode longue et de rapport cyclique trs petit) un bloc Scope. Double-cliquez sur Scope pour acher le rsutlat. 19. En introduisant un bloc Transfer Function, achez la rponse impulsionnelle dun systme de fonction de transfert 10 H(s) = 2 . s + 2, 5s + 10 20. Ajoutez la simulation prcdente une impulsion de Dirac dcale (utilisez le bloc Sum pour eectuer la somme). Superposez ensuite sur le graphe lentre et la sortie du systme laide du bloc Mux. 21. Achez la rponse indicielle du systme (rponse un chelon).

Densit spectrale de puissance

On rappelle que la densit spectrale de puissance est dnie comme la transforme de Fourier de lautocorrlation. Elle correspond galement au carr du module de la transforme de Fourier du signal considr : en ce sens, elle reprsente la rpartition spectrale de la puissance du signal. 22. Avec les mmes paramtres de simulation que dans la section prcdente, crez une somme de plusieurs sinusodes damplitudes et de frquences direntes et observez le signal obtenu. 23. Analysez la densit spectrale du signal cr. Les paramtres Length of buer, Number of points for t et Plots after how many points du bloc Power Spectral Density seront xs 4096, et Sample time sera gal au pas de simulation maximal. Commentez le rsultat. NB : pour zoomer sur le graphe de la densit spectrale de puissance, une petite manipulation est ncessaire : cliquez sur le bloc ayant gnr la densit spectrale de puissance considre, puis, dans linvite de commande Matlab, tapez : set(get_param(gcbh,UserData),MenuBar,figure); Une barre de menu avec la commande pour zoomer apparat alors dans le fentre graphique.

ITII ENSPS FIP 1re anne

2011/2012

TP 2 Synthse dun ltre analogique

Mme si de plus en plus souvent les signaux traiter sont numriques, les signaux analogiques sont encore trs utiliss, ne serait-ce que parce quils sont le support des signaux numriques. On peut ainsi tre amen ltrer lintensit dun courant en sortie dun micro, londe sonore mise par un haut-parleur ou la mesure dun capteur. Il faut alors pouvoir dterminer la fonction de transfert qui caractrise ces ltres. Le but de ce TP est de concevoir un ltre passe-bande qui pourra tre ralis physiquement an dtre appliqu un signal analogique (par exemple, pour slectionner la frquence dune station radio parmi toutes les frquences captes par une antenne). Les spcications du ltre concevoir sont reprsentes sur le gabarit suivant : 20 log |H(f )| (dB)
6

10 9

-40
-

fs fp fp+ fs+ o fs = 200 kHz, fp = 220 kHz, fp+ = 235 kHz et fs+ = 255 kHz. La section 1 est prparer chez soi avant la sance de TP.

f (kHz)

tude thorique
1. partir du gabarit dun ltre passe-bande, quelles sont les tapes permettant de dterminer les coecients du ltre ?

Avant toute normalisation dun ltre passe-bande ou coupe-bande, il faut sassurer que celui-ci est centr, cest--dire que la condition fp fp+ = fs fs+ est vrie. Si ce nest pas le cas, le gabarit doit tre centr en modiant une ou plusieurs pulsations ; ces modications vont alors obligatoirement dans le sens dun gabarit plus contraignant. Attention, les calculs suivants doivent tre raliss trs prcisment pour viter de propager les erreurs numriques ! 2. Vriez que le gabarit du ltre passe-bande nest pas centr. Modiez la frquence fs en consquence. 3. Donnez le gabarit dun ltre passe-bande en y faisant apparatre lattnuation et le taux dondulation en bande passante en dcibels (chelle logarithmique). 4. Calculez le taux dondulation en bande passante , lattnuation A, la constante dattnuation , la slectivit k, la pulsation centrale 0 et la largeur de bande relative B0 du gabarit. 5. On souhaite dterminer le prototype passe-bas normalis. Les gabarits du passe-bande et du passe-bas normalis ayant la mme slectivit et la mme constante dattnuation, dterminez la valeur de la frquence u du passe-bas normalis si l = 1 rad.s1 . 7

6. Pour chacun des ltres suivants, rappelez leurs caractristiques et calculez lordre du ltre passebas normalis vriant les spcications : ltre de Butterworth ; ltre de Tchebyschev de type I ; ltre elliptique (avec la fonction ellipke).

Ralisation du ltre passe-bande

Dans cette section, nous proposons de concevoir un ltre elliptique (ou ltre de Cauer) vriant le gabarit car il est dordre minimum. Pour chacune des questions suivantes, donnez la fonction Matlab utilise, sa syntaxe et une dnition de ses paramtres dentre et de sortie. 7. Calculez lordre du ltre passe-bas normalis. 8. Calculez le gain, les ples et les zros du ltre passe-bas normalis. 9. Calculez les coecients de la fonction de transfert du ltre passe-bas normalis (cest--dire les coecients du numrateur et du dnominateur). 10. Calculez la fonction de transfert du ltre passe-bande demand partir du ltre passe-bas normalis (transformation passe-bas passe-bande).

Analyse
11. Tracez le gabarit 1 du ltre passe-bande. Noubliez pas de donner une lgende aux axes. 12. Tracez sur le gabarit la rponse frquentielle du ltre passe-bande. 13. Vriez que le ltre passe-bande obtenu vrie bien les spcications demandes. Calculez ensuite le module de la rponse en frquence en fs , fp , fp+ et fs+ . 14. Tracez et commentez le diagramme de la phase. 15. Achez le graphe des ples et des zros dans le plan complexe, puis commentez-le.

Application
16. Proposez un schma-bloc en Simulink pour vrier que le ltre fonctionne correctement. En nommant respectivement b et a les vecteurs des coecients du numrateur et du dnominateur, vous naurez qu rentrer directement b et a dans les paramtres du bloc reprsentant le ltre passe-bande, sans avoir taper toutes les valeurs du ltre. Par ailleurs, vous devrez choisir avec pertinence un ou plusieurs signaux dentre. La simulation sera eectue grce lalgorithme de Dormand-Prince avec un pas de simulation maximal (Max step size) de 1 ms. 17. Le diagramme de Bode indique que les frquences ne sont pas transmises lidentique : les amplitudes et les phases peuvent varier aprs ltrage. Observez leet du dphasage sur le signal ltr. Le dphasage observ est-il bien en accord avec le diagramme de phase ?

1. Pour tracer une ligne brise reliant des points de coordonnes (xi , yi ), vous pouvez utiliser la syntaxe suivante : plot([x1 x2 x3 x4 ...],[y1 y2 y3 y4 ...]).

ITII ENSPS FIP 1re anne

2011/2012

TP 3 Modulation et dmodulation damplitude

La modulation du signal est une technique utilise en tlcommunications pour adapter un message (parole, musique, image, message informatique, . . .) la transmission. Pour cela, le message est modul avant dtre mis, puis dmodul la rception. Les deux principaux intrts de la modulation sont, dune part, la possibilit de transmettre simultanment plusieurs messages (on parle de multiplexage spatial ou frquentiel ) ; dautre part, la transmission dun message sur une trs longue distance avec une puissance dmission raisonnable et un signal adapt au canal de transmission. Trois grands types de modulation analogiques existent : la modulation damplitude (AM), utilise en radio (grandes, petites et courtes ondes) et en tlvision hertzienne, a lavantage dtre simple mettre en uvre ; la modulation de frquence (FM), utilise en radio FM, tlvision satellite et pour le codage SECAM, ore un rapport signal--bruit et une dynamique suprieurs, mais elle est plus complexe utiliser ; enn, la modulation de phase (PM), dans le cas de France Inter GO et des codages PAL et NTSC, peut tre utilise en parallle une modulation damplitude, elle est cependant galement complexe mettre en uvre. Le but de ce TP est dtudier les principes gnraux de la modulation damplitude, ainsi que les deux techniques de dmodulation les plus courantes. Ce TP sera eectu laide de Simulink ; une aide sur ce logiciel est disponible en annexe.

Synthse du message

Dans tout le TP, nous considrons que le signal m(t) contenant le message est la somme de trois sinus dont les amplitudes Ai et les frquences fi sont donnes ci-dessous : A1 = 1, A2 = 1, 4, A3 = 0, 5, f1 = 400 Hz, f2 = 700 Hz, f3 = 900 Hz.

1. Crez puis reprsentez le message laide de Simulink. Vous eectuerez une simulation sur 0,1 s laide dun solveur pas variable de type Dormand-Prince et un pas de simulation maximal (Max step size) de 105 s. 2. Tracez la densit spectrale de puissance de m(t). Le bloc sera paramtr avec les valeurs suivantes : Length of buer, Number of points for t et Plots after how many points seront xs 2048, Sample time sera gal 105 . Commentez le rsultat. NB : pour zoomer sur le graphe de la densit spectrale de puissance, une petite manipulation est ncessaire : cliquez sur le bloc ayant gnr la densit spectrale de puissance considre, puis, dans linvite de commande Matlab, tapez : set(get_param(gcbh,UserData),MenuBar,figure); Une barre de menu avec la commande pour zoomer apparat alors dans le fentre graphique. 9

Modulation damplitude

La modulation damplitude est eectue en multipliant le message par une porteuse de frquence fp = 10 kHz. Le signal modul en amplitude x est alors gal : x(t) = A 1 + m(t) cos(2fp t). On choisira A = 1 et = 0, 3 (indice de modulation). 3. Tracez le signal modul en amplitude x(t). Vriez visuellement que vous avez bien eectu une modulation damplitude de la porteuse par le message. 4. Tracez la densit spectrale de puissance du signal modul et comparez-la celle du message. 5. Ce type de modulation est appel modulation double bande latrale et avec porteuse ; justiez cette appellation.

Dmodulation damplitude

Le rle du dmodulateur est de restituer le message original partir du signal modul. La dmodulation AM peut se faire de plusieurs manires, nous proposons den tudier les deux principales.

3.1

Dmodulation par dtection denveloppe et ltrage

Cette technique utilise le circuit lectrique suivant pour dtecter lenveloppe du signal.


Vx

Vy
 

Figure 3.1 Circuit redresseur-dtecteur de crte et son quivalent Simulink. Si la tension Vx est suprieure la tension Vy , alors la diode est passante et le condensateur C initialement dcharg se charge. Dans le cas contraire, la diode est bloquante et le condensateur se dcharge dans la rsistance R avec une constante de temps = RC grande par rapport la priode de la porteuse. 6. Appliquez lquivalent Simulink du circuit redresseur-dtecteur de crte. La proprit Sample time du bloc Unit Delay sera xe la mme valeur que le pas de simulation et la constante du gain sera gale 0,97. On applique ensuite sur ce signal un ltre dont la fonction de transfert est : H(s) = avec = RC = 103 s. 7. Justiez lutilisation du ltre H(s), puis appliquez-le au signal. 8. Comparez le message reconstitu avec le message original (on pourra galement comparer les densits spectrales de puissance). Que pouvez-vous dire sur la qualit de reconstruction du message ? 10 s 1 + 2 s + 2 s2



 

3.2

Dmodulation cohrente

La deuxime technique consiste multiplier le signal x(t) par un cosinus de frquence fp puis appliquer un ltrage passe-bande. Cette technique ncessite de connatre parfaitement la frquence de la porteuse, celle-ci peut tre connue a priori ou retrouve laide dune boucle verrouillage de phase. 9. Multipliez le signal x(t) par un cosinus de frquence fp , puis analysez sa densit spectrale de puissance. 10. En dduire la ncessit dappliquer ensuite un ltrage passe-bande. Proposez ensuite un gabarit puis ralisez un ltre elliptique vriant ce gabarit (reprendre votre progamme du TP 2). 11. Appliquez le ltrage au signal multipli par le cosinus de frquence fp . En nommant respectivement b et a les vecteurs des coecients du numrateur et du dnominateur, vous naurez qu rentrer directement b et a dans les paramtres du bloc reprsentant le ltre passe-bande, sans avoir taper toutes les valeurs du ltre. 12. Comparez le message reconstitu avec le message original (on pourra galement comparer les densits spectrales de puissance). Que pouvez-vous dire sur la qualit de reconstruction du message ? 13. Que se passe-t-il lorsque le signal x(t) est multipli par un cosinus de frquence dirente mais proche de fp ?

3.3

Analyse et comparaison des deux types de dmodulation

14. tudiez linuence des paramtres et A. 15. On souhaite tudier la dynamique de dmodulation : que constatez-vous sur le rsultat lorsque le message est une sinusode de frquence f1 pendant une dure d1 puis une sinusode de frquence f2 par la suite (utilisez le bloc Switch dans la librairie Signal Routing) ? 16. tudiez lecacit des deux types de dmodulation lorsque le signal transmis est perturb par des parasites damplitude plus ou moins importante (utilisez le bloc Random Number dans la librairie Sources).

11

ITII ENSPS FIP 1re anne

2011/2012

Utilisation de Matlab et Simulink

Prsentation de Matlab

Matlab (matrix laboratory) est un logiciel de calcul numrique dvelopp par la socit MathWorks depuis 1984 et spcialis dans le calcul matriciel. De nombreuses bibliothques (toolboxes) compltent le noyau de base. Les domaines dapplications sont nombreux : mathmatiques appliques, statistiques, analyse numrique, automatique, traitement du signal et des images, etc. Des produits concurrents et libres existent galement, comme Scilab ou Octave. Matlab est un interprteur, cest--dire quil excute les instructions qui ont t saisies dans la fentre de commande (command window ). On peut galement regrouper ces instructions dans un chier appel script (qui portera lextension .m, par exemple : tp1.m). ce titre, Matlab dispose dun diteur intgr qui permet dcrire ce type de chiers. Ces instructions sont ensuite excutes en tapant simplement tp1 dans la fentre de commande. Linterface de Matlab est compose de plusieurs parties (que lon peut acher ou non laide du menu Desktop) : la fentre de commande (command window ) o lon tape les instructions ; le rpertoire courant (current directory) qui ache le contenu du dossier courant ; lespace de travail (workspace) qui contient la liste des variables existantes ; lditeur (editor ) qui permet de crer des scripts ou des fonctions Matlab. La syntaxe et lutilisation dune commande Matlab est accessible laide des instructions help commande ou doc commande. Pour chercher une instruction particulire sans connatre son nom, utilisez la commande lookfor qui permet de faire une recherche par mot-cls.

Variables et matrices

Avec Matlab, une variable est cre ds quelle est utilise : il nest donc pas ncessaire de la dclarer comme cest le cas dans dautres langages de programmation. Si une variable du mme nom existe dj, son contenu est remplac par la nouvelle valeur, cest pourquoi il convient de ne pas crer une variable qui porte le mme nom quune fonction ! Le nom dune variable est limit 63 caractres, ceux-ci tant des lettres, chires ou tirets bas, mais le premier caractre doit toujours tre une lettre. De plus, Matlab est sensible la casse, cest--dire quil direncie les majuscules et minuscules (ainsi, A et a ne sont pas la mme variable). Les scalaire, vecteurs et matrice suivants a = 2, 23, sont rentrs ainsi : a b c D = = = = 2.23; [1 2 3 4]; [-8 ; -9]; [1 2 3 ; 4 5 6]; 13 b= 1 2 3 4 , c= 8 , 9 D= 1 2 3 4 5 6

Lespace et le point-virgule sont donc des sparateurs qui font respectivement passer la colonne ou la ligne suivante. La syntaxe pour rcuprer ou aecter llment (i, j) dune matrice M est M(i,j). Pour accder une colonne ou une ligne dune matrice, il sut dutiliser loprateur :. Par exemple, M(:,3) permet davoir tous les lements de la troisime colonne de M . Pour crer un vecteur dont les lments constituent une suite arithmtique, on peut utiliser loprateur dnumration : valeur initiale :pas :valeur finale le pas tant positif ou ngatif. Par exemple : le code a = 2:0.5:4 correspond au vecteur a = 2 2, 5 3 3, 5 4 ; le code b = 5:-0.2:4 correspond au vecteur b = 5 4, 8 4, 6 4, 4 4, 2 4 .

Oprations

Les oprations mathmatiques classiques sont applicables sur toutes les variables, quelles soient scalaires, vectorielles ou matricielles. Oprations matricielles + addition - soustraction * multiplication / division ^ puissance Ainsi, en considrant les matrices A= 1 2 3 4 et B= 3 0 1 1 3 0 . 3 4 Oprations lment par lment

.* ./ .^

multiplication lment par lment division lment par lment puissance lment par lment

les multiplications matricielle A*B et lment par lment A.*B auront pour rsultat A*B = 1 2 5 4 et A.*B =

De plus, il est possible de calculer une fonction sur un vecteur : le rsultat sera la valeur de la fonction aux valeurs prises par le vecteur. Par exemple, sin([0 pi/6 pi/2 pi]) aura pour rsultat le vecteur [0 0.5 1 0].

Programmation

Comme dans tout langage de programmation, il est trs important dindenter son code ! Le programme est ainsi plus lisible, mieux construit et plus facile dboguer. Pour les mmes raisons, prenez lhabitude de commenter vos programmes ( laide du caractre %) an dexpliquer les direntes tapes du code. Condition if La condition if teste une expression logique et excute une suite dinstructions si cette expression est vraie. Le mot-cl optionel else permet quant lui dexcuter une autre suite dinstruction si lexpression est fausse. La syntaxe est la suivante : if expression tester ...suite dinstructions excuter si lexpression est vraie... else ...suite dinstructions excuter si lexpression est fausse... end 14

Les oprateurs relationnels et logiques suivants sont utiliss pour crire la condition : == = = = Boucle for La boucle for rpte des instructions un nombre dtermin de fois. La syntaxe est la suivante : for indice = valeur initiale :pas :valeur finale ...suite dinstructions... end Fonction Une fonction Matlab est un script qui peut recevoir des arguments dentre, et peut retourner des arguments de sortie. Pour cela, il sut dcrire linstruction suivante sur la premire ligne du script : function [s1 ,s2 ,... ] = mafonction (e1 ,e2 ,... ) Notez que la fonction doit avoir le mme nom que le chier ! s1, s1, . . . sont les variables de sortie et e1, e2, . . . sont les variables dentre ; elles peuvent tre des scalaires, vecteurs, matrices, etc. < > < > <= >= || && ou logique et logique

Graphiques

En gnral, une courbe est ache avec la fonction plot(x,y) qui trace y en fonction de x. En fait, cette commande trace les points dont les abscisses sont contenues dans x et les ordonnes dans y et les relie par des lignes. Dautres types de points, de ligne et de couleur peuvent tre spcis laide dun troisime argument (voir laide pour plus de dtails). Les fonctions title, xlabel et ylabel permettent de donner un titre au graphique et des lgendes aux abscisses et aux ordonnes. Pour reprsenter plusieurs courbes, plusieurs solutions sont possibles : linstruction hold on permet dacher plusieurs courbes superposes sur le mme graphe ; linstruction subplot(L,C,i) divise la fentre en un tableau de L lignes et C colonnes et slectionne la ie case pour y acher une courbe ; linstruction figure permet douvrir une nouvelle fentre grapique.

Simulink

Simulink est un logiciel dpendant de Matlab qui propose une interface graphique pour modliser, simuler et analyser des systmes dynamiques sous forme de schmas-bloc. Tapez simulink dans la fentre de commande de Matlab pour lancer Simulink. Les blocs sont regroups en librairies disponibles dans la fentre principale de Simulink. Il sut ensuite de connecter les blocs en traant des lignes entre eux (ou en cliquant sur les blocs en maintenant le bouton Ctrl enfonc). Les blocs les plus communs que vous aurez utiliser sont rsums la n du document. ventuellement, le bloc Subsystem de la librairie Ports & Subsystems vous permettra de crer des sous-systmes la manire dune sous-fonction dun programme Matlab. Les paramtres de chaque bloc sont accessibles en double-cliquant sur celui-ci. En particulier, pour le bloc Scope, il est conseill de cliquer sur longlet Data history et de dcocher la case limit data points to last pour acher tout le signal. Pour lancer une simulation, cliquez sur le menu Simulation puis Start. Les paramtres de simulation sont accessibles par le menu Simulation, Simulation parameters puis sur Solver dans la fentre qui sache. 15

Exemple : trac dune sinusode

On dsire tracer le signal sinusodal x(t) de priode T0 = 500 ms, damplitude A = 2 et de moyenne m = 0, 5 sur 2 secondes : x(t) = m + A sin(2f0 t) o f0 = 1 . T0

On calculera 50 points par priode soit un point toutes les 10 ms. Le trac est eectu sous Matlab puis sous Simulink. Les chiers correspondants (premierexemple.m et premierexemple.mdl) sont accessibles sur le rseau. Avec Matlab Aprs avoir cr un nouveau script, la premire chose faire est de vider les donnes en mmoire et de fermer les graphes : clear all; close all; On peut ensuite dnir les variables connues : T0 = 500e-3; f0 = 1/T0; A = 2; m = 0.5; d = 2; % % % % % priode du signal frquence du signal amplitude moyenne dure dobservation

Le vecteur t contenant les abscisses des points calculs est cr (un point toutes les 10 ms, de 0 2 secondes) : t = 0:10e-3:2; Puis les valeurs du signal sont calcules en utilisant simplement la formule de la fonction et les variables prcdentes : x = m + A*sin(2*pi*f0*t); Enn, on obtient le trac laide de la fonction plot : plot(t,x); Avec Simulink Seuls deux blocs susent :

Les paramtres de la sinusode sont : Amplitude : Frequency (rad/sec) : et ceux de la simulation sont : Type : Fixed-Type Solver : discrete Fixed step-size : 10e-3 2 2*pi/500e-3 Bias : Phase (rad) : 0.5 0

16

Fonctions principales de Matlab

Consultez laide pour avoir des informations dtailles sur ces instructions. Instructions particulires % commentaires clear all close all clc Oprations +, -, *, /, .*, ./, . 17 addition, soustraction, multiplication, division, puissance. multiplication, division, puissance lment par lment. commentaires. supprime toutes les variables. ferme toutes les fentre graphiques. eace la fentre de commande. Analyse de Fourier abs angle unwrap module. argument. corrige la phase dun vecteur en vitant les sauts suprieurs 2.

Filtrage Attention la dnition des variables utilises dans ces fonctions qui peut tre dirente de celle vue en cours ! zp2tf tf2zp freqs lp2bp ellipke calcule le numrateur et le dnominateur dun ltre partir des zros, ples et gain. calcule les zros, ples et gain partir des numrateur et dnominateur dun ltre. rponse frquentielle dun ltre analogique. transformation dun ltre passe-bas analogique en ltre passe-bande analogique. intgrale elliptique complte de premire espce : ellipke(m) = K( m) =
0 /2

Variables spciales et constantes pi i ou j Inf NaN ans . nombre complexe i. nombre inni. not a number : exprime une indtermination. dernire rponse.

1 1 m sin2 ()

d.

Oprations sur les matrices (apostrophe) linspace ones zeros size length real, imag transpose. gnre un vecteur dont les lments sont rgulirement espacs. cre une matrice remplie de 1. cre une matrice remplie de 0. taille dune matrice. longueur dun vecteur. partie relle, imaginaire.

Les fonctions suivantes correspondent au ltre elliptique (de Cauer) ; des fonctions analogues existent pour les ltres de Butterworth, Tchebyshev, etc. ellipord ordre du ltre elliptique (attention : dans le cas dun ltre analogique, il faut ajouter largument s en dernier paramtre). renvoie les zros, ples et gain dun ltre elliptique passe-bas normalis analogique.

ellipap

Graphiques figure plot, stem hold on subplot xlabel, ylabel title Programmation function if, else, elseif end for fonction Matlab. condition. n dun boucle ou dune condition. boucle (sur un nombre dtermin de fois). nouvelle fentre graphique. trace une courbe en reliant les points ou non. permet de tracer plusieurs courbes lun sur lautre. divise la fentre en plusieurs graphiques. lgende de laxe des abscisses, des ordonnes. titre du graphique.

Fonctions mathmatiques exp cos, sin, tan sinc log log10 sqrt real, imag Aide help doc lookfor aide simple (documentation en ligne). aide dtaille (documentation hypertexte). recherche dans les mots-cls de laide. exponentielle. cosinus, sinus, tangente. sinus cardinal (dni par sinc(x) = sin(x)/x). logarithme nprien (ln). logarithme en base 10 (log10 ). racine carre. partie relle, imaginaire.

Blocs principaux de Simulink


Librairie Sinks Scope To Workspace graphe achant un ou plusieurs signaux. permet dexporter le vecteur des valeurs prises par le signal vers Matlab.

18

Librairie Math Operations Gain Product Sum Librairie Sources Sine Wave Pulse Generator Constant Librairie Discrete Unit Delay Librairie Continuous Transfer Fcn fonction de transfert. retarde le signal dune valeur dnir. signal sinusodal. signal crneau. signal constant. gain. produit de plusieurs signaux. somme de plusieurs signaux.

Librairie Signal Routing Mux Switch permet de multiplexer deux signaux (pour afcher deux signaux sur le mme graphe). permet de choisir lun des deux signaux dentre laide dune condition.

Librairie Simulink Extras/Additional Sinks Power Spectral Density densit spectrale de puissance.