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;
MATLAB / Signaux et affichages