Sommaire
Retour Matlab
Créer des signaux
Il est alors possible de créer des signaux numériques par cette méthode. L’exemple suivant permet de créer un vecteur, nommé fa, contenant les valeurs d’un sinus de fréquence f1 et d’amplitude A.
f1 = 12; A = 25; ta = linspace(0,1,1001); fa = A * sin(2*pi*f1*ta);
Afficher une courbe y=f(x)
Matlab possède un ensemble de fonction permettant de créer des graphiques (un peu comme la librairie matplotlib sous python).
Graphique y=f(x) / axes linéaires
f1 = 12; A = 25; ta = linspace(0,1,1001); fa = A * sin(2*pi*f1*ta); figure; plot(ta, fa);
Les lignes précédentes permettent d’obtenir la figure suivante :
On peut remarquer sur cette figure qu’aucun axe n’est renseigné ainsi qu’aucun titre ou légende.
Titres, légendes et axes
Pour ajouter des éléments sur ce graphique, on peut utiliser les lignes de commandes suivantes :
legend('fonction sinus à 12Hz') xlabel('temps (s)') ylabel('signal (V)') title('Sinus en fonction du temps')
La fonction legend permet d’ajouter une légende pour chaque signal affiché sur le graphique.
Les fonctions xlabel et ylabel permettent d’ajouter des titres aux axes des abscisses et des ordonnées.
La fonction title permet d’ajouter un titre au graphique.
L’option grid permet également d’ajouter le quadrillage du graphique.
grid on;
Graphique y=f(x) / abscisse logarithmique
On peut également vouloir tracer certaines courbes selon des axes à évolution logarithmique.
w = logspace(1,6,101); % vecteur des pulsations R = 1e4; C = 1e-7; % definition des valeurs de R et C num = 1; den = 1 + j * R * C .* w; TF = num ./den; % calcul de la fonction de transfert gaindb = 20*log10(abs(TF)); % calcul du gain phase = angle(TF); % calcul de la phase figure(1) % création d'une figure subplot(2,1,1); % sous-figure 1 semilogx(w, gaindb); % affichage du gain grid on; xlabel('Pulsation (rd/s)'); ylabel('Gain (dB)'); subplot(2,1,2); % sous-figure 2 semilogx(w, phase); % affichage de la phase grid on; xlabel('Pulsation (rd/s)'); ylabel('Phase (rad)');
Cet exemple permet d’obtenir la figure suivante :
Plusieurs courbes sur un graphique
Il est possible de mettre autant de courbes que l’on souhaite sur le même graphique.
Pour cela, il suffit de demander l’affichage de plusieurs signaux à la fonction plot.
f1 = 12; f2 = 18; amp = 25; ta = linspace(0,1,1001); fa = amp * sin(2*pi*f1*ta); fb = amp/2 * sin(2*pi*f2*ta); figure; plot(ta, fa, ta, fb); legend('sinus à 12Hz','sinus à 18Hz') xlabel('temps (s)') ylabel('signal (V)') title('Sinus en fonction du temps')
Il existe également une seconde possibilité pour afficher plusieurs courbes avec une légende.
figure; plot(ta, fa, 'b', 'DisplayName', 'sinus à 12Hz') hold on; plot(ta, fb, 'g', 'DisplayName', 'sinus à 18Hz') grid on; xlabel('temps (s)') ylabel('signal (V)') title('Sinus en fonction du temps') legend;