36
TP M1205 Département R&T IUT de Nancy-Brabois Hugues Garnier Septembre 2016

TP M1205 Département R&T IUT de Nancy-Brabois

Embed Size (px)

Citation preview

Page 1: TP M1205 Département R&T IUT de Nancy-Brabois

TP M1205

Département R&TIUT de Nancy-Brabois

Hugues Garnier

Septembre 2016

Page 2: TP M1205 Département R&T IUT de Nancy-Brabois

Table des matières

Introduction 1

1 Généralités et prise en main de Matlab 21.1 Démarrer - Quitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Avant de saisir votre première commande . . . . . . . . . . . . . . . . . . . . . . 21.3 Opérations élémentaires +, −, ∗, /, ˆ . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 Calcul sans déclaration de variables . . . . . . . . . . . . . . . . . . . . . 31.3.2 Calcul avec déclaration de variables . . . . . . . . . . . . . . . . . . . . . 41.3.3 Variables prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Commandes Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.1 Commande whos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.2 Commande clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4.3 Commande clc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4.4 Commandes help et doc . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.6 Création d’un fichier-M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6.1 Chemin d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.7 Tracer un graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.7.1 Titre et labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.7.2 Sauvegarder et exporter une figure Matlab . . . . . . . . . . . . . . . . 121.7.3 Tracés multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.8.1 Exercice 1 : Tracé des fonctions carrée et cube dans deux repères différents 141.8.2 Exercice 2 : Tracé des fonctions carrée et cube dans le même repère . . . 14

2 Jeux de mots 152.1 Objets manipulés sous Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1.1 Matrice, vecteur, scalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.2 Définir une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.3 Accéder aux éléments d’une matrice . . . . . . . . . . . . . . . . . . . . . 16

2.2 Visualisation du signal enregistré . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3 Ecoute du signal enregistré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 Segmentation de la phrase enregistrée . . . . . . . . . . . . . . . . . . . . . . . . 172.5 Synthèse d’une nouvelle phrase . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Tracé de signaux usuels 193.1 Tracé de fonctions usuelles sous Matlab . . . . . . . . . . . . . . . . . . . . . . 19

3.1.1 Tracé des fonctions usuelles avec la commande plot . . . . . . . . . . . . 193.1.2 Tracé des fonctions trigonométriques avec la commande ezplot . . . . . 20

i

Page 3: TP M1205 Département R&T IUT de Nancy-Brabois

TABLE DES MATIÈRES

3.1.3 Tracé des fonctions trigonométriques réciproques avec la commande ezplot 213.2 Tracé de signaux périodiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Signal sinusoïdal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2.2 Signal créneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.3 Signal dent de scie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.4 Sinus, créneau et dent de scie sur une même figure . . . . . . . . . . . . . 223.2.5 Signal sinusoïdal amorti . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Synthèse d’une gamme musicale 234.1 Liste et tableaux sous Matlab - Rappels . . . . . . . . . . . . . . . . . . . . . 23

4.1.1 Construction d’une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1.2 Construction de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2 Synthèse d’une gamme de musique . . . . . . . . . . . . . . . . . . . . . . . . . 26

5 Sinus et sinus cardinal 285.1 Création d’une fonction sous Matlab . . . . . . . . . . . . . . . . . . . . . . . 285.2 Création d’une fonction SINUS . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.3 Tracé de signaux sinus cardinal . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.4 Tracé de signaux compressés et dilatés . . . . . . . . . . . . . . . . . . . . . . . 31

6 Sonneries & tonalités sur les lignes analogiques 326.1 Directive Orange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326.2 Simulation sous Matlab des tonalités . . . . . . . . . . . . . . . . . . . . . . . 326.3 Tonalité d’invitation à numéroter du réseau américain . . . . . . . . . . . . . . . 33

ii

Page 4: TP M1205 Département R&T IUT de Nancy-Brabois

Introduction

Matlab, c’est quoi ?Matlab, pour MATrix LABoratory, est un logiciel de calcul numérique, qui permet de traiterdes problèmes scientifiques complexes (équations différentielles, intégration numérique, résolu-tion de systèmes d’équations, ...), d’exploiter et de visualiser des données en 2D/3D, ..., dansun environnement interactif.Il est couramment utilisé par les scientifiques et les ingénieurs, pour différentes applications(télécoms, traitement du signal et des images, contrôle des systèmes, statistiques, analyse ettraitement des données, modélisation mathématiques de systèmes, ...).

Les possibilités de calcul de Matlab sont étendues par l’intégration de boîtes à outils (tool-boxes), telles que :

— Statistics Toolbox, qui offre de nombreux outils pour l’analyse de données statistiques ;— Control System Toolbox, qui offre des outils et algorithmes permettant la mise au point

de lois de commande de systèmes linéaires ;— Optimization ToolBox, qui offre des outils et algorithmes orientés vers la résolution de

problèmes d’optimisation, résolution d’équations non-linéaires ;— . . .

Langage Interprété - Langage CompiléLe logiciel Matlab utilise un langage interprété. Ainsi, dans un programme Matlab chaqueinstruction est interprétée et évaluée avant de passer à l’instruction suivante, ce mode d’exé-cution nécessite un interpréteur. Un programme écrit en langage compilé, est traduit, dans satotalité, à l’aide d’un compilateur, en instructions directement exécutables par un microproces-seur. A titre de comparaison, le langage BASIC est interprété alors que Java (ou encore le Cou C++) est un langage compilé.C’est à partir de la fenêtre principales de commandes de Matlab que sont interprétées lesinstructions simples, les scripts, les fonctions, . . .

Sur quelles plateformes Matlab fonctionne-t-il ?Matlab fonctionne sur les plateformes : Windows, Mac, UNIX et Linux.

1

Page 5: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1

Généralités et prise en main de Matlab

Objectifs 1

— Découvrir l’interface de Matlab

— Effectuer quelques opérations mathématiques de base

— Ecrire un script Matlab

— Tracer un graphique dans une figure

1.1 Démarrer - Quitter

Cliquez sur l’icône Matlab pour lancer l’application. Une fenêtre logo s’ouvre puis l’espace detravail apparaît (figure 1.1).

La fenêtre principale est la fenêtre Command au centre de l’environnement de travail. Lesymbole >> situé en haut à gauche de cette fenêtre indique que Matlab est prêt à recevoir unecommande.Pour mettre fin à la session de travail et quitter l’environnement Matlab, il suffit de taper lacommande :

>> quit

1.2 Avant de saisir votre première commande

I Matlab est sensible à la casse, ce qui signifie qu’il y a une différence entre les majusculeset les minuscules.

I Il n’est pas nécessaire de déclarer les variables avant d’exécuter une commande ; la mé-moire nécessaire à chaque variable est automatiquement allouée.

I Appuyer sur la touche Enter après la saisie d’une commande pour l’exécuter.

1. Remerciements. Cet énoncé de TP doit beaucoup aux emprunts faits à l’énoncé de TP d’initiation àMatlab rédigé par Floriane Collin, maître de conférences à l’ESSTIN. Je remercie très sincèrement Florianepour m’avoir autorisé à faire ces emprunts.

2

Page 6: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

Figure 1.1 – Environnement de travail Matlab

1.3 Opérations élémentaires +, −, ∗, /, ˆ

1.3.1 Calcul sans déclaration de variablesTapez l’expression mathématique :

>> (1 + 2ˆ2)/(3 ∗ 4− 5)

ans =

0.7143

Remarques— Le résultat est automatiquement affectée à la variable ans (comme answer)— La variable ans apparaît dans la fenêtre Workspace— La commande apparaît dans la fenêtre Command History— En anglais et donc sous Matlab, on utilise un point et non une virgule pour un nombre

à virgules (ici 0.7143 et non 0,7143)— Le résultat est affiché avec 5 chiffres significatifs. La précision par défaut correspond au

format short. Pour plus de précision, on pourra choisir le format long.

Pour refaire la même opération en format long, tapez :

3

Page 7: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

>> format long

puis double-cliquez sur l’opération précédente dans la fenêtre Command History :

>> (1 + 2ˆ2)/(3 ∗ 4− 5)

ans =

0.714285714285714

Pour rappeler une commande déjà exécutée, on peut aussi utiliser les flèches ↑ et ↓ duclavier.

Pour la suite, repassez au format short :

>> format shortIl peut être avantageux d’utiliser un format d’affichage dit compact qui permet un affichagesans saut de ligne après chaque exécution de commande.>> format compact

1.3.2 Calcul avec déclaration de variables

Dans Matlab, il n’est pas nécessaire de préciser le type (entier, réel, complexe, . . . ) d’unevariable lors de la déclaration : il est fait automatiquement en fonction du calcul effectué.

On peut affecter une valeur à une variable :

>> a = 1a =

1

Refaites l’opération (1 + 2ˆ2)/(3 ∗ 4− 5), en déclarant 5 variables a, b, c, d, e :

>> a = 1a =

1

On peut supprimer l’affichage du résultat d’une commande en tapant un « ; » à la fin de lacommande :

>> b=2;>> c=3;>> d=4;>> e=5;

Le résultat sera affecté à la variable x :

4

Page 8: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

>> x=(a + b^2)/(c*d-e)x =

0.7143

RemarqueMatlab est sensible à la casse, donc x et X sont deux variables différentes.

1.3.3 Variables prédéfinies

Matlab possède un certain nombre de variables prédéfinies. Par exemple :

>> pians =

3.1416

ou encore, pour désigner l’imaginaire des nombres complexes (i2 = −1 ou j2 = −1) :

>> ians =

0 + 1.0000i>> jans =

0 + 1.0000i

Attention ! ! !Les variables prédéfinies ne sont pas protégées, ce qui signifie que si on leur affecteune valeur, elles perdent leur valeur par défaut !

>> pi = 12;>> pipi =

12

1.4 Commandes Matlab

1.4.1 Commande whos

La fenêtre Workspace affiche les variables en cours ainsi que leur valeur.La commande whos permet de lister les variables en cours :

5

Page 9: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

>> whosName Size Bytes Class Attributesa 1x1 8 doubleans 1x1 8 doubleb 1x1 8 doublec 1x1 8 doubled 1x1 8 doublee 1x1 8 doublepi 1x1 8 doublex 1x1 8 double

Name : le nom de la variableSize : la taille de la variableBytes : nombre d’octets (1 octet = 8 bits) alloué à la variableClass : le type de la variable ; pour une chaîne de caractères : char

1.4.2 Commande clear

La commande clear, permet de supprimer définitivement des variables de l’espace de travail.Pour supprimer une variable spécifique, par exemple la variable ans :

>> clear ans

On peut aussi supprimer plusieurs variables simultanément :

>> clear a b c

ou encore toutes les variables :

>> clear

Remarques

— En supprimant la variable pi à laquelle la valeur 12 a été affectée, pi redevient la variableprédéfinie de Matlab.

— L’appui simultané des touches ctrl et C permet d’arrêter le calcul demandé si Matlabsemble avoir planté.

1.4.3 Commande clc

La commande clc, permet d’effacer les lignes de commande et les résultats affichés dans lafenêtre de commande :

>> clc

6

Page 10: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

1.4.4 Commandes help et doc

La commande help permet d’accéder à l’aide en ligne de Matlab.>> help

Elle donne les différents thèmes abordés dans la documentation. Examinez la liste des thèmesproposés dans l’aide.

Pour obtenir de l’aide sur un thème spécifique, par exemple, sur les opérateurs :

>> help ops

ou encore sur les fonctions élémentaires :

>> help elfun

Vous pouvez également accéder à l’aide générale sous la forme d’un navigateur à partir de labarre d’icônes au dessous de la fenêtre principale.La commande doc permet d’accéder à l’aide de la fonction recherchée dans le navigateur. Elleprésente l’avantage par rapport à la commande help de contenir un ou plusieurs exemples dé-taillés d’utilisation de la fonction considérée. Essayez :

>> doc sqrt

RemarqueLes commandes help et doc sont à utiliser sans modération ! ! !

1.5 Script

Jusqu’à présent, les commandes ont été exécutées à partir de la fenêtre Command de Matlab.Lorsqu’il s’agit d’exécuter un ensemble de commandes avec éventuellement des conditions oudes boucles, il est préférable de réunir ces commandes dans un fichier script, appelé fichier-M.Ce fichier script peut être créé à partir de n’importe quel éditeur de texte, mais sauvegardéavec l’extension « .m », afin qu’il soit reconnu par Matlab. Par ailleurs, Matlab inclut unéditeur, auquel on accède soit en cliquant sur l’icône New script dans la barre d’icônes en hautà gauche, soit en déroulant le menu File.Remarques

— Attention, le nom d’un répertoire ou d’un fichier-M ne doit contenir ni carac-tères accentués, ni espace !

— Un fichier-M est sauvegardé dans le répertoire de travail en cours ouvert par défaut lorsquevous lancez Matlab ;

— A chaque séance de TP, vous devez travailler dans votre propre répertoire de travail pourles TP_M1205 ou sur votre clé USB afin de pouvoir accéder d’une séance à l’autre à vosfichiers Matlab.

7

Page 11: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

1.6 Création d’un fichier-M

Ouvrez l’éditeur et créez un fichier pour réaliser l’opération (1+2ˆ2)/(3∗4−5), avec déclarationde variables.

% Fichier test.m% Votre nom% Date du jour

% On commence par déclarer et initialiser les variables.% L’emploi du point virgule ( ; ) permet de ne pas afficher le résultat% d’une commande

% La commande suivante efface toutes les variables existantesclear;clc

a = 1;b = 2;c = 3;d = 4;e = 5;

% Calculx = (a+b^2)/(c*d-e)

Enregistrez le fichier : test.m

RemarqueAttention à ne pas nommer votre fichier-M avec le nom d’un fichier pré-existantdans Matlab, comme par exemple sqrt.m, sin.m, abs.m etc.Exécutez le fichier en tapant test dans la fenêtre command ou en cliquant sur le l’icône RUNdans la barre d’icônes de l’éditeur de Matlab :>> testx =

0.7143

Remarques

— Puisque Matlab est un langage interprété, les commandes d’un fichier-M sont lues etexécutées ligne par ligne. Lorsque Matlab rencontre une erreur, il s’arrête et un messaged’erreur s’affiche dans la fenêtre Command, avec indication de la ligne concernée. Insérezune ligne z=t à la fin de votre fichier test.m et exécutez-le à nouveau. Observez commentMatlab vous indique une erreur dans votre programme.

— Corrigez l’erreur en supprimant la ligne et exécutez votre programme une nouvelle fois.

— Les commentaires doivent être précédés d’un « % » et sont ignorés par Matlab .

— Dans la suite, tous vos scripts commenceront obligatoirement par :

8

Page 12: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

% Nom du fichier .m% Votre nom% Date du jourclearclcclose all

1.6.1 Chemin d’accès

Pour que Matlab puisse exécuter les commandes se trouvant dans le fichier test.m, il faut quece fichier soit dans le répertoire courant (current folder) ou bien dans un des répertoires de laliste PATH obtenue avec la commande path. Si la réponse de Matlab est :>> Undefined function or variable ’test’.

Cela signifie que Matlab ne trouve pas le fichier test.m.Comme le fichier existe, c’est que le répertoire courant de Matlab ne correspond pas au ré-pertoire qui contient le fichier. Il suffit alors de changer de répertoire courant. Une fois cetteopération réalisée, vous devez voir si le nom du fichier test.m doit apparaître dans la fenêtrecurrent folder).Il est aussi possible d’ajouter le répertoire qui contient le fichier à la liste de chemin d’accès encliquant sur l’icône Set Path. On préfèrera la première solution ici.

1.7 Tracer un graphique

Pour tracer un graphique 2D en Matlab, la fonction plot (help plot) est utilisée. Sa syntaxeest :

plot(vecteurAbscisse,vecteurOrdonnee,options)

La troisième entrée options permet de spécifier la couleur du tracé ou encore le type de trait(continu, pointillé, etc) reliant les points ou encore le type de marqueur pour chaque point(cercle, croix, etc). Considérons à titre d’exemple la fonction carrée définie par :

f(x) = x2 (1.1)

Matlab utilise un type d’opérations particulières sur les tableaux. Ces opérations concernent lamultiplication ∗ et la puissance ∧. Lorsqu’un de ces opérateurs est précédé d’un point, l’opéra-tion est effectuée sur chaque élément du tableau. Essayez :» [1:10].∧2

Ces opérateurs sont très utiles pour tracer des graphiques.

Ouvrez l’éditeur Matlab. Saisissez les lignes suivantes :

9

Page 13: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

clearclcx=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2];y=x.∧2plot(x,y,’-o’)

Le crochet [ est obtenu en appuyant simultanément sur alt, shift et (.Le .∧ permet de mettre au carré chaque valeur contenue dans le tableau x.

Sauvegardez votre programme dans le fichier trace.m puis exécutez votre script.Une fenêtre graphique s’ouvre alors et le tracé de la fonction carrée y = f(x) est affichée (voirfigure 1.2). La fonction est tracée en trait continu et les points pour lesquels la fonction a étécalculée, sont matérialisés par un petit cercle. Pour tracer la fonction à partir des points (petitscercles), Matlab joint les points par une droite (interpolation linéaire), ce qui explique le tracésous la forme de segments de droite et non pas de parabole attendue.

Figure 1.2 – Tracé imprécis de la fonction carrée

D’autres options sont possibles pour matérialiser les points calculés au niveau du tracé. Parexemple, ’x’, +, d, ...La couleur du trait peut aussi être modifiée. Voir l’aide de la fonction plot.Modifiez dans votre programme la ligne définissant les valeurs du vecteur x :x=[-2 0 2] ;

Exécutez à nouveau votre programme et observez le tracé obtenu. Expliquez.

Pour tracer plus précisément la fonction carrée, il est possible de définir un vecteur x de valeurinitiale x0, de valeur finale xf, avec un pas donné :

10

Page 14: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

x = [x0 :pas :xf] ;

Modifiez votre programme pour tracer précisément la fonction carrée en bleu sans matéria-lisation des points calculés sur l’intervalle [-2 ; 2] comme celle représentée sur la figure 1.3.

Figure 1.3 – Tracé de la fonction carrée

1.7.1 Titre et labels

Pour ajouter un titre au graphique, on utilise la commande title et le texte doit être obliga-toirement placé entre apostrophes « ’ » :

plot(x,y)title(’Fonction carrée’)

Pour ajouter un label à l’axe des abscisses, on utilise la commande xlabel et pour ajouter unlabel à l’axe des ordonnées, on utilise ylabel. Le texte doit être obligatoirement placé entreapostrophes « ’ » :

plot(x,y)title(’Fonction carrée’)xlabel(’x’)ylabel(’y’)

11

Page 15: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

1.7.2 Sauvegarder et exporter une figure Matlab

SauvegardePour sauvegarder une figure Matlab, il suffit d’aller dans le menu de la figure File, puis SaveAs .... Les figures Matlab portent l’extension .fig.Sauvegardez la figure précédente, puis fermez la. Pour rouvrir cette figure, il suffit de taper lacommande figure dans la console Matlab. Une figure vide apparaît. Dans le menu de cettefigure, File, Open, sélectionnez votre figure.

ExportIl peut être très utile d’exporter une figure au format jpg, pdf, png,..., pour la placer dans unrapport. Pour cela, dans le menu de la figure File puis Save As ... et sélectionnez le formatsouhaité. Par défaut, Matlab propose l’extension .fig.

1.7.3 Tracés multiples

On souhaite représenter dans le même repère, les fonctions f(x) et −f(x) afin de les comparer.Pour cela, la commande plot peut être utilisée de la manière suivante.

plot(x,y1,options,x,y2,options)

où y1 et y2 contiennent les valeurs des fonctions f(x) et −f(x).Pour distinguer les deux tracés, on peut ajouter une légende à l’aide de la commande legend,help legend), ,legend(’fonction f(x)’,’fonction -f(x)’)

Dans le cas de l’exemple considéré, les commandes permettant de tracer f(x) et −f(x) sont lessuivantes :plot(x,y,x,-y)title(’tracé des fonctions y=f(x) et y=-f(x)’)legend(’fonction f(x)’,’fonction -f(x)’)xlabel(’x’)ylabel(’y’)

Commande subplotOn peut aussi représenter, dans la même fenêtre graphique, plusieurs tracés, à l’aide de la com-mande subplot(m,n,p) (help subplot).Cette commande divise la figure graphique en un tableau de m lignes et n colonnes et permetde représenter m× n tracés sur la même figure. p indique l’emplacement du tracé sélectionné :

12

Page 16: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

subplot(2,1,1)plot(x,y)xlabel(’x’)ylabel(’y’)title(’Fonction y=x∧2’)subplot(2,1,2)plot(x,-y)xlabel(’x’)ylabel(’y’)title(’Fonction y=-x∧2’)

Figure 1.4 – Tracé de la fonction carrée et son opposée à l’aide de la commande subplot

La commande shg, abréviation de SHow Graphic permet de mettre eu premier plan la fenêtregraphique pour visualiser le tracé obtenu.La commande grid permet d’afficher un quadrillage au niveau de la fenêtre graphique.

13

Page 17: TP M1205 Département R&T IUT de Nancy-Brabois

TP 1 – Généralités et prise en main de Matlab

1.8 Exercices

1.8.1 Exercice 1 : Tracé des fonctions carrée et cube dans deux repèresdifférents

Créez un script Matlab qui permet de tracer les fonctions carrée (en trait continu rouge) etcube (en trait pointillé vert) sur l’intervalle [-3 ;3], l’une en dessous de l’autre dans la fenêtregraphique 1. Indiquez les labels sur les axes, précisez le titre de chaque tracé et ajoutez unquadrillage dans les repères à l’aide de la commande grid.

Votre script sera sauvegardé dans le fichier tp3.m qui débutera ainsi :

% Fichier tp1.m% Votre prénom nom% Date du jour

clearclcclose all

..., etc

1.8.2 Exercice 2 : Tracé des fonctions carrée et cube dans le mêmerepère

Pour ne pas écraser une fenêtre graphique, on peut indiquer à Matlab que le prochain tracédoit être effectué dans une nouvelle fenêtre graphique par la commande figure.

Créez un nouveau script Matlab qui permet de tracer les fonctions carrée (en trait continurouge) et cube (en trait pointillé vert) sur l’intervalle [-3 ;3], dans un même repère de la fenêtregraphique 2. Indiquez les labels sur les axes et ajoutez un quadrillage et une légende (commandelegend) permettant d’identifier chaque fonction.

Faire valider par l’enseignant.

14

Page 18: TP M1205 Département R&T IUT de Nancy-Brabois

TP 2

Jeux de mots

Objectifs

— Maîtriser les objets manipulés sous Matlab— Segmenter/séparer les mots d’une phrase enregistrée— Réorganiser les mots pour générer une autre phrase

2.1 Objets manipulés sous Matlab

2.1.1 Matrice, vecteur, scalaireSous Matlab, on travaille essentiellement avec un seul type d’objet : une matrice. En Matlabune matrice est un tableau rectangulaire avec des valeurs entières, réelles ou complexes. Unematrice 1 × 1 est interprétée comme un scalaire, celle ayant une seule ligne ou une seule colonnecomme un vecteur. Essayez :

>> scal = pi, vec_lig = ones(1,3), vec_col = zeros(3,1), mat = eye(2)

2.1.2 Définir une matricePour définir une matrice il suffit d’ouvrir un crochet [ en appuyant simultanément sur alt-shift-(, saisir les éléments ligne par ligne, puis fermer le crochet ]. Sur une même ligne les élémentssont séparés par un espace ou une virgule, alors que deux lignes successives sont séparées parun point virgule ou un retour chariot. Par exemple, l’instruction :

>> A = [ 1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

crée une matrice 4 × 4 appelée A. La réponse de Matlab est :

A=1 2 3 45 6 7 89 10 11 1213 14 15 16

On peut aussi créer la même matrice A avec l’instruction suivante :

>> A = [1:4; 5:8; 9:12; 13:16]

Nous avons utilisé ici l’opérateur deux-points. Cet opérateur est très important, on l’utilise trèssouvent. Il permet de discrétiser un intervalle donné avec un pas constant. L’instruction :

15

Page 19: TP M1205 Département R&T IUT de Nancy-Brabois

TP 2 – Jeux de mots

>> u = 0:9

crée un vecteur u contenant les entiers de 0 à 9. Par défaut le pas est égal à 1, mais on peutspécifier une autre longueur de pas. Essayez :

>> 0:2:9, 9:-3:0, 0:pi/3:2*pi

Notez que dans la ligne ci-dessus, une virgule a été utilisée pour séparer deux instructions surune même ligne. On voit donc que virgule et point-virgule permettent de séparer des élémentsd’une matrice et que ce sont aussi des séparateurs d’instructions.

2.1.3 Accéder aux éléments d’une matricePour accéder à l’élément d’une matrice se trouvant à la ligne i et la colonne j, il suffit de saisir :A(i,j)Dans l’exemple précédent, l’instruction

>> A(2,3)

retourne la valeur 7.Seul un entier positif non nul est accepté comme indice de matrice ou de vecteur. On peutextraire plusieurs éléments simultanément, par exemple :

>> A([1,3],2), A([1,3],[2,1,4])

On utilise l’opérateur deux-points pour extraire une ligne, une colonne ou une sous-matrice.L’instruction A(2, :) extrait la deuxième ligne, A( :,1) la première colonne et A(2 :4,1 :3)retourne le bloc

ans =5 6 79 10 1113 14 15

On peut donc former une nouvelle matrice à partir d’une matrice initiale. L’instruction [A(1,1 :4)A(2,1 :4)] met par exemple bout à bout les deux premières colonnes de la matrice A. Essayez :

>> B=[A(1:4,1) A(1:4,2)]

2.2 Visualisation du signal enregistréLe fichier RienNeSertDeCourir.mat est disponible sur le site web du module M1205. Il a été crééavec le fichier Enregistre_trace_ta_voix.m, également disponible sur le site web du module.N’hésitez pas à enregistrer votre propre voix, . . .Chargez la phrase dans Matlab en saisissant la commande

>>load RienNeSertDeCourir;

Dans ce fichier se trouvent les tableaux (vecteur colonne) x et t contenant les échantillons devoix et les instants d’enregistrement.

Tracez le signal enregistré en fonction du temps.

>>plot(t,x),shg

16

Page 20: TP M1205 Département R&T IUT de Nancy-Brabois

TP 2 – Jeux de mots

2.3 Ecoute du signal enregistréEcoutez la phrase enregistrée en saisissant la commande :

>>sound(x, 22050)

Cette commande permet d’écouter la phrase à sa fréquence d’échantillonnage d’origine fe=22050Hz.Ecoutez la phrase en modifiant la fréquence d’échantillonnage à 15000 Hz et 45000 Hz pour mefaire parler comme comme « Terminator » ou « Donald Duck ».Modifier la fréquence d’échantillonnage revient à appliquer un changement d’échelle y(t) = x(at)au signal initial.Déterminer pour les deux nouvelles fréquences d’échantillonnage la valeur du facteur d’échellea.

2.4 Segmentation de la phrase enregistréeTracez le signal en fonction des indices de tableau

>>plot(x),shg

Essayez de repérer les indices de début et de fin de chaque mot de la phrase.Pour segmenter le premier mot, il faut par exemple créer un tableau « rien » contenant les16000 premières valeurs du signal enregistré x.

>>rien = x(1:16000,1);

N’oubliez pas de mettre un « ; » à la fin de la ligne ci-dessus pour exécuter la commande sansafficher le résultat dans la fenêtre commande de Matlab.Pour écouter le mot segmenté :

>>sound(rien, 22050);

Segmentez tous les mots de la phrase initiale en sauvegardant chaque mot dans des variablesséparées. Certains mots peuvent être plus difficiles que d’autres à segmenter . . .Sauvegardez l’ensemble de vos commandes dans un programme dénommé tp2.m qui débuteraainsi :% Fichier tp2.m% Votre prénom nom% Date du jour

clearclcclose all

load RienNeSertDeCourir;rien = x(1:16000,1) ;ne = x(16001:...,1) ;etc

17

Page 21: TP M1205 Département R&T IUT de Nancy-Brabois

TP 2 – Jeux de mots

2.5 Synthèse d’une nouvelle phraseRéorganisez les mots pour générer une autre phrase.Essayez par exemple : « Rien ne sert de partir à point, il faut courir ! »Notez que le signal initial de parole est un tableau colonne de 110 250 valeurs.Pour produire un signal réarrangé, vous devez construire un autre tableau colonne.Pour écouter «il faut courir», il faut mettre bout à bout les 3 tableaux verticaux contenant les3 mots par la commande :

>>sound([il ; faut ; courir], 22050);

Faites valider votre programme tp2.m et la nouvelle phrase synthétisée par l’enseignant.

18

Page 22: TP M1205 Département R&T IUT de Nancy-Brabois

TP 3

Tracé de signaux usuels

Objectifs

— Tracer avec Matlab les fonctions et signaux usuels : sinusoïdal, exponentielle créneau,dent de scie, . . .

Les différents fonctions ou signaux seront tracés dans des figures différentes qui seront à fairevalider par l’enseignant en fin de séance de TP.Sauvegardez l’ensemble de vos commandes dans un programme dénommé tp3.m qui débuteraainsi :

% Fichier tp3.m% Votre prénom nom% Date du jour

clearclcclose all

% Tracé des fonctions usuelles avec la commande plotx=[-2:0.1:2];..., etc

3.1 Tracé de fonctions usuelles sous Matlab

3.1.1 Tracé des fonctions usuelles avec la commande plot

La commande principale qui permet de tracer un signal ou une fonction est la fonction plot(revoir TP 1).

Tracez sur une même figure à l’aide de la fonction plot sur l’intervalle x = [−2; 2] avec un pas

19

Page 23: TP M1205 Département R&T IUT de Nancy-Brabois

TP 3 – Tracé de signaux usuels

de 0.1, les signaux suivants :

y = x;

y = −2x+ 1;

y = x2;

y = |x|;y = ex;

y = e−x

Précisez l’intitulé de l’axe des abscisses (voir fonction xlabel) et ajoutez un quadrillage à l’aidede la fonction grid.

Rappels :— la fonction valeur absolue sous Matlab est abs et la fonction exponentielle est exp.— La fonction legend permet d’indiquer une légende dans le cas de tracés multiples sur une

même figure.Tracez dans une nouvelle figure à l’aide de la fonction plot sur l’intervalle [0.0001; 2] avec unpas de 0.01, les signaux suivants :

y =√x;

y = ln(x)

Rappels :— La commande figure permet d’ouvrir une autre fenêtre graphique (à placer avant une

commande plot)— La fonction racine carrée sous Matlab est sqrt et la fonction logarithme népérien est log.

3.1.2 Tracé des fonctions trigonométriques avec la commande ezplot

Tracez dans une même figure les unes en dessous des autres à l’aide de la fonction ezplot(pour easy plot) sur l’intervalle [−2π; 2π] (exemple : »ezplot(’sin(x)’), voir aussi l’aide dela fonction ezplot), les fonctions trigonométriques :

y = sin(x);

y = cos(x);

y = tan(x);

Précisez l’intitulé de l’axe des abscisses et ajoutez un quadrillage.Rappels :

— la fonction Matlab subplot permet de tracer plusieurs fonctions les unes en dessous desautres. Cette fonction permet de tracer plusieurs signaux dans la même fenêtre grâce à lacommande subplot(m,n,p) où m indique le nombre de graphiques par lignes, n le nombrede graphiques par colonnes et p la position du graphique dans la fenêtre.

— Exemple : tracé de deux graphiques dans une fenêtre :subplot(2,1,1)ezplot(’sin(x)’)subplot(2,1,2)ezplot(’cos(x)’)

20

Page 24: TP M1205 Département R&T IUT de Nancy-Brabois

TP 3 – Tracé de signaux usuels

3.1.3 Tracé des fonctions trigonométriques réciproques avec la com-mande ezplot

Fonction réciproqueSoit f une fonction strictement monotone d’un intervalle I sur J, où J est un intervalle de R.On appelle fonction réciproque de f l’application notée f−1 définie sur J par :

f−1(y) = x

où x est l’unique élément de I tel que f(x) = y.Attention, le −1 en exposant n’a rien à voir avec une puissance.Exemple :La réciproque de f(x) = y = x+ 1 est tout simplement égale à f−1(x) = x− 1On vérifie en effet que :

f−1(y) = (x+ 1)− 1

f−1(y) = x

Graphiquement, la fonction réciproque est la symétrique de la fonction considérée par rapportà la première bissectrice (y = x).

Prenons quelques cas simples :— la réciproque d’une fonction affine f(x) = ax+ b est une fonction affine f−1(x) = (x−b)

a;

— la réciproque de la fonction carrée est la racine carrée ;— la réciproque de la fonction exponentielle est la fonction logarithme népérien ;— la réciproque de la fonction sinus est la fonction arc-sinus ;— la réciproque de la fonction cosinus est la fonction arc-cosinus ;— la réciproque de la fonction tangente est la fonction arc-tangente ;

Attention, la réciproque d’une fonction n’existe pas toujours et les ensembles de définition d’unefonction et de sa réciproque sont rarement les mêmes.Par exemple, la réciproque de la fonction carrée n’existe que si x est positif (la racine carréed’un nombre réel négatif n’existe pas). Seule une fonction bijective (i. e. strictement monotone)admet une réciproque.Tracez dans une même figure les unes en dessous des autres à l’aide de la fonction ezplot surl’intervalle [−2π; 2π], les réciproques des fonctions trigonométriques :

y = arcsin(x);

y = arccos(x);

y = arctan(x);

Sous Matlab, les fonctions réciproques sont notées : acos, asin et atan.

3.2 Tracé de signaux périodiques

3.2.1 Signal sinusoïdalTracez dans une figure le signal sinusoïdal de période To = 0.1s et d’amplitude 5 sur 2 périodes.Rappels

21

Page 25: TP M1205 Département R&T IUT de Nancy-Brabois

TP 3 – Tracé de signaux usuels

— Un signal sinusoïdal non retardé est défini par :

s(t) = A sin

(2π

Tot

)Il faudra choisir avec attention le pas dans la définition du vecteur temps t.Vous pourrez vous inspirer des commandes ci-dessous :To=0.1 ;pas=To/100;t=0 :pas :2*To ;s=sin(2*pi/To*t);Tracez sur la figure précédente les signaux sinusoïdaux s

(t− To

4

)et s

(t+ To

4

).

Ajoutez une légende permettant d’identifier chaque signal.

3.2.2 Signal créneauTracez l’évolution temporelle sur 2 périodes d’un signal créneau de période 0.1s et d’amplitude2 en utilisant la fonction square. Elle s’utilise de la même manière que les fonctions sin et cos.

3.2.3 Signal dent de scieTracez l’évolution temporelle sur 2 périodes d’un signal en dent de scie de période 0.1s enutilisant la fonction sawtooth. Elle s’utilise également de la même manière que les fonctionssin et cos.

3.2.4 Sinus, créneau et dent de scie sur une même figureSuperposez sur une même figure les tracés du signal sinusoïdal, créneau et en dent de scie.

3.2.5 Signal sinusoïdal amortiTracez l’évolution temporelle sur [0 ;30s] du signal sinusoïdal amorti par :

s(t) = sin

(2

3t

)e−0.1t

Précisez l’expression des enveloppes du signal s(t).Superposez sur une même figure les tracés du signal s(t) et ses enveloppes.

Rappel :— la multiplication un à un des éléments de 2 tableaux se fait à l’aide de l’opérateur .*

(point-étoile).Faites valider votre fichier tp3.m et l’ensemble de vos figures par l’enseignant.

22

Page 26: TP M1205 Département R&T IUT de Nancy-Brabois

TP 4

Synthèse d’une gamme musicale

Objectifs

— Revisiter la définition et l’exploitation de listes et de tableaux sous Matlab ;— Synthétiser une gamme musicale « do ré mi fa sol la si do » ;— Exploiter les fonctions de Matlab pour écouter la gamme synthétisée.

Vous sauvegarderez l’ensemble de vos commandes dans un programme dénommé tp4.m quidébutera ainsi :

% Fichier tp4.m% Votre prénom nom% Date du jour

clearclcclose all

..., etc

4.1 Liste et tableaux sous Matlab - RappelsComme on l’a vu, Matlab utilise principalement les listes (appelées vecteurs en maths) outableaux (appelés matrices en maths) pour le calcul. Nous rappelons ici comment manipulerces objets.Pour Matlab, une variable (a, x,. . .) contenant un ou plusieurs nombres est définie dans untableau ou matrice. On peut retenir que dans matlab tout est matrice (une matrice est untableau). Saisissez les différents exemples proposés dans la suite pour bien comprendre la ma-nipulation des listes et tableaux sous Matlab.

4.1.1 Construction d’une listeOn peut définir une liste de nombres en donnant à la suite ses éléments séparés par des espacesou des virgules. La liste est délimitée par des crochets.Exemple

23

Page 27: TP M1205 Département R&T IUT de Nancy-Brabois

TP 4 – Synthèse d’une gamme musicale

» a=[2,4,6,8]ou bien»a=[2 4 6 8]a =2 4 6 8a est considéré comme un tableau comportant une ligne et quatre colonnes : 2 4 6 8

Accès aux éléments d’une listeOn peut isoler des éléments d’une liste. On accède à l’élément d’indice i de la liste a avec a(i).Exemple :» a(1)ans =2On accède au premier élément de la liste a.Important : Il faut bien noter que les indices d’un liste/tableau commence à 1 sous Matlab etnon 0.» a(0)??? Subscript indices must either be real positive integers or logicals.La demande d’accès à un élément d’indice nul ou négatif conduira donc toujours à une erreur !» a(1:3)ans =2 4 6On récupère les trois premiers éléments de a.» a(1:2:4)ans =2 6On récupère les deux premiers éléments aux indices impairs 1 et 3.Rappels :

— L’expression x=x0 :pas :xf crée une liste dont les éléments vont de x0 à xf avec unincrément de pas ;

— Lorsqu’on ne donne pas le pas, la valeur du pas est par défaut 1.

Esxemple :»a(1:4)a =2 4 6 8

4.1.2 Construction de tableaux

On peut créer des tableaux de nombres avec plusieurs lignes en donnant chaque ligne séparéepar un point-virgule " ;" .Exemple :» X=[1 2 3 4;5 6 7 8]X =

24

Page 28: TP M1205 Département R&T IUT de Nancy-Brabois

TP 4 – Synthèse d’une gamme musicale

1 2 3 45 6 7 8

Accès aux éléments d’un tableauDe même, on peut extraire des parties d’un tableau. Le premier nombre désigne la ligne et ledeuxième nombre la colonne où se trouve l’élément :Exemple :

>> X(1,2)ans =2 (élément à la ligne 1 et à la colonne 2)>> X(2,1)ans =5 (Elément à la ligne 2 et à la colonne 1)

>>X(:,1)ans =15 (Tous les éléments de la colonne 1)

>> X(1,:)ans =1 2 3 4 (Tous les éléments de la ligne 1)

>> X(1,2:4)ans =2 3 4

Concaténation de tableauxOn peut mettre bout à bout plusieurs tableaux. Il faut vérifier que le tableau ajouté a le mêmenombre de lignes pour une concaténation en colonnes, où le même nombre de colonnes pourune concaténation en ligne.Exemple :

>> b=[10 12 14 16] ;>>c=[a b]ans =2 4 6 8 10 12 14 16 (Mise bout à bout sur la même ligne des 2 listes)

>>Y=[9 10 11 12]>>[X ; Y]ans =1 2 3 45 6 7 89 10 11 12 (Mise l’une en dessous de l’autre des 2 listes)

25

Page 29: TP M1205 Département R&T IUT de Nancy-Brabois

TP 4 – Synthèse d’une gamme musicale

Dimension d’une liste ou d’un tableauPour accéder au nombre d’éléments contenus dans un vecteur et donc à sa longueur, on utilisela commande length. Pour accéder au nombre de lignes et de colonnes d’un tableau, on utilisela commande size. Exemple :

>>length(a)ans =4 (nombre d’éléments de a)>> size(X)ans =2 4>> size(X,1)ans =2 (nombre de lignes de X)>> size(X,2)ans =4 (nombre de colonnes de X)

Opération sur les tableauxToutes les opérations usuelles sur les matrices sont disponibles (addition, multiplication, trans-position etc.). Matlab permet aussi d’appliquer les principaux opérateurs éléments par éléments,il faut alors faire précéder l’opérateur voulu par un point « . ».Créez deux vecteurs :x=[1 2 3];y=[4 5 6];Observez ce que donne les opérations suivantes :» x-y» x*y» x.*y» x∧2» x.∧2» x/y» x./y

Modifier à présent x=[0 1 2 3].x et y n’ont alors plus la même taille. Que se passe-t-il au niveau des opérations ci-dessous ?Conclusion ?

4.2 Synthèse d’une gamme de musiqueLes notes de musique produites par un piano peuvent être synthétisées approximativement nu-mériquement. En effet, chaque note peut être considérée comme étant un son pur produit parun signal sinusoïdal (revoir paragraphe 3.2.1 du TP 3). La fréquence de la note La est parexemple de 440 Hz.Créez un programme tp4.m qui permet de jouer une gamme de musique. La fréquence de chaquenote est précisée dans le tableau ci-dessous.

26

Page 30: TP M1205 Département R&T IUT de Nancy-Brabois

TP 4 – Synthèse d’une gamme musicale

Do1 Ré Mi Fa Sol La Si Do2262 Hz 294 Hz 330 Hz 349 Hz 392 Hz 440 Hz 494 Hz 523 Hz

Chaque note aura une durée de 1s. La durée de la gamme sera donc de 8s.La fréquence d’échantillonnage fe sera fixée à 8192 Hz.Le pas pour la définition du temps sera donc égal à 1/fe.Rappel : la mise bout à bout de tableaux en ligne X, Y, Z s’effectue à l’aide de la commande :[X Y Z] ;

Sauvegardez dans une variable G la gamme synthétisée.A l’aide la fonction sound(G,fe), écoutez la gamme générée.

Trouvez sur Internet une partition d’une mélodie connue et générez le début du morceau demusique.

Faites valider votre programme tp4.m par l’enseignant.

27

Page 31: TP M1205 Département R&T IUT de Nancy-Brabois

TP 5

Sinus et sinus cardinal

Objectifs

— d’écrire une fonction permettant de tracer un signal sinusoïdal de fréquence donnée surune durée donnée ;

— de tracer l’évolution temporelle d’un signal sinus cardinal ;— d’appliquer et de visualiser l’effet d’un changement d’échelle.

Vous sauvegarderez l’ensemble de vos commandes dans un programme dénommé tp5.m quidébutera ainsi :

% Fichier tp5.m% Votre prénom nom% Date du jour

clearclcclose all

% Test de la fonction affine y=3x+1x=1:4;f(x)

% Test de la fonction sinus(f0,duree)sinus(2,1);

% Tracé de signaux sinus cardinaux...

5.1 Création d’une fonction sous Matlab

En plus des scripts, il est souvent utile de pouvoir créer des fonctions. Une fonction est un scriptparticulier qui possède une ou plusieurs entrées et qui fournit après exécution un ou plusieursrésultats. Matlab en possède de nombreuses (par exemple la fonction permettant de calculerle sinus d’un nombre (sin(pi)) ou d’une liste de nombres. Cependant on peut avoir des besoinsspécifiques et créer ses propres fonctions.On peut par exemple, vouloir créer une fonction qui calcule le résultat de f(x) = 3x + 5 pour

28

Page 32: TP M1205 Département R&T IUT de Nancy-Brabois

TP 5 – Sinus et sinus cardinal

x = 10.

Comment construire la fonction f afin que Matlab connaisse la fonction, et qu’on puisse l’appelerpar son nom (ici, f), afin de calculer f(10) ?Pour créer la fonction, il faut suivre la procédure suivante :

1. Sélectionnez « New-Script » ;

2. Ecrivez en haut du fichier :function y=f(x) ;% y est le résultat% f est le nom de la fonction% x est une variable d’entrée

3. Ecrivez le calcul à effectuer sur la variable d’entrée x et sauvegardez le résultat dans lavariable y :y=3*x+5 ;

4. Sauvegardez votre fonction dans le fichier f.m. Il est fondamental que le nom de la fonctionapparaissant après le mot function à la première ligne du script et le nom du fichier .msoient le même ;

5. Vérifiez que le fichier contenant votre fonction est sauvegardé dans le répertoire courant.Positionnez-vous alors dans la fenêtre Command de Matlab puis entrer f(10). Vérifiezle résultat obtenu.

6. Dans la fenêtre Command de Matlab, observez ce que l’on obtient pour :»x=1:5 ;»f(x)

Il faut bien noter qu’une fonction a besoin que l’utilisateur spécifie les valeurs de la variabled’entrée. Il faut toujours préciser la valeur pour laquelle on veut calculer le sinus par exemple :»sin(pi)mais»sintout seul conduit à une erreur.On ne peut donc pas exploiter une fonction en cliquant sur l’icône Run dans l’éditeur de fichier !

Tapez »help fQuelles lignes du script f.m apparaissent à l’écran ?

5.2 Création d’une fonction SINUS

Vous souhaitez faire découvrir le potentiel de Matlab à votre meilleur ami sans pour autantl’effrayer par les aspects de programmation compliquée. Vous décidez de lui montrer qu’il esttrès simple de tracer un signal sinusoïdal d’une fréquence donnée sur une durée donnée (revoirparagraphe 3.2.1 du TP 3).Pour cela vous décidez de créer une fonction appelée sinus qui sera utilisée par votre ami pourtracer son signal sinusoïdal. Pour tracer un signal sinusoïdal de fréquence 1 Hz sur 2 secondes,il pourra utiliser votre fonction en saisissant dans la fenêtre Command de Matlab :»sinus(1,2) ;

29

Page 33: TP M1205 Département R&T IUT de Nancy-Brabois

TP 5 – Sinus et sinus cardinal

Créez la fonction sinus qui facilitera la vie de votre ami sur Matlab. Cette fonction permetdonc de générer et de tracer un signal sinusoïdal de fréquence donnée sur une durée spécifiéeen paramètres d’entrée. Cette fonction aura donc le format (aussi appelé prototype) suivant :[y,t]=sinus(f0,duree);avec comme variables de sortie de la fonction

— y : les valeurs du signal sinusoïdal aux différents instants

— t : les instants pour lesquels l’amplitude du signal sinusoïdal a été calculée

et comme variables d’entrées (spécifiées par l’utilisateur de la fonction)

— f0 : la fréquence du signal sinusoïdal.

— duree : durée d’observation du signal que l’on désire obtenir.

Sauvegardez cette fonction Matlab dans un programme appelé sinus.m.

Votre fonction devra obligatoirement commencer par les lignes suivantes :

function [y,t]=sinus(f0,duree);% fonction qui permet donc de tracer un signal sinusoïdal% de fréquence donnée sur une durée spécifiée% Variables de sortie% y : valeurs du signal sinusoïdal aux différents instants% t : instants pour lesquels l’amplitude du signal sinusoïdal est calculé% Variables d’entrée% f0 : fréquence du signal sinusoïdal.% duree : durée d’observation du signal que l’on désire obtenir.% Le nom de la fonction et du fichier .m doivent être identiques

T0=1/f0 ; % Période du signalpas=T0/50 ; % On choisit ici de calculer 50 valeurs du signal par période T0t= ... ; % A complétery=...; % A compléterplot... % A compléter

Vérifiez le bon fonctionnement de votre fonction et demandez à votre ami de l’utiliser pour tracerl’évolution d’un signal sinusoïdal de fréquence 1Hz pendant 2s, puis d’un signal sinusoïdal defréquence 10Hz pendant 0.2s.Pour pouvoir utiliser votre fonction sauvegardée dans le fichier sinus.m, votre ami devra sepositionner dans le répertoire dans lequel se trouve cette fonction et saisir dans la fenêtreCommand de Matlab la ligne ci-dessous :»sinus(1,2);

5.3 Tracé de signaux sinus cardinal

Matlab possède une fonction sinc définie par :

sinc(t) =sin(πt)

πt

30

Page 34: TP M1205 Département R&T IUT de Nancy-Brabois

TP 5 – Sinus et sinus cardinal

Utilisez la fonction sinc disponible dans Matlab pour tracer dans la même figure pour l’intervalle[-4 ; 4] les signaux suivants :

x(t) = sinc(t);

y(t) = |sinc(t)|;z(t) = sinc2(t);

5.4 Tracé de signaux compressés et dilatésTracez dans la même figure sur l’intervalle [-4 ; 4] les signaux suivants :

x(t) = sinc(t);

u(t) = sinc(2t);

v(t) = sinc(0.5t);

Observez l’effet des changements d’échelle.

Reprenez la phrase « Rien ne sert de ...» exploitée dans le TP2 et expliquez pourquoi le faitde l’écouter avec une fréquence d’échantillonnage plus petite (15000 Hz par exemple) ou plusgrande (45000 Hz par exemple) revient à appliquer une dilatation ou une compression sur lesignal original.

Faites valider votre programmes tp5.m et vos deux fonctions f.m et sinus.m par l’enseignant.

31

Page 35: TP M1205 Département R&T IUT de Nancy-Brabois

TP 6

Sonneries & tonalités sur les lignesanalogiques

Objectifs

— d’écrire un script Matlab permettant de générer les sonneries et tonalités entendues surles lignes analogiques

Vous sauvegarderez l’ensemble de vos commandes dans un programme dénommé tp6.m quidébutera ainsi :

% Fichier tp6.m% Votre prénom nom% Date du jour

clearclcclose all

..., etc

6.1 Directive OrangeOuvrez la directive Orange qui répertorie les fréquences des sonneries, des tonalités et les si-gnaux de numérotation implémentés dans le réseau d’Orange sur le site suivant :www.orange.com/fr/content/download/3635/33162/version/1/file/STI03-ed4_0505.pdf

Parcourez la directive et déterminer les caractéristiques (fréquence, durée du silence éventuel, ...)

— la tonalité standard d’invitation à numéroter

— la tonalité d’occupation

— la tonalité de retour d’appel

6.2 Simulation sous Matlab des tonalitésGénérez les 3 tonalités étudiées sous Matlab.Ecoutez les 3 tonalités générées pour vérifier leur bon fonctionnement.

32

Page 36: TP M1205 Département R&T IUT de Nancy-Brabois

TP 6 – Sonneries & tonalités sur les lignes analogiques

6.3 Tonalité d’invitation à numéroter du réseau américainLa tonalité standard d’invitation à numéroter sur un téléphone aux Etats-Unis est composée de lasomme de deux fonctions sinusoïdales, l’une de fréquence 350 Hz, l’autre de 440Hz.

Générez et écoutez la tonalité d’invitation à numéroter que l’on entend lorsqu’on décroche le téléphoned’une ligne fixe aux Etats-Unis.

Faites valider votre programme tp6.m par l’enseignant.

33