Vous êtes sur la page 1sur 4

Correction TP1, TNS SMP6 0021

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TP1 TNS %%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SMP6-IEA %%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% 2.2 Calcul élémentaire
%%% les opérations élémentaires sont autorisés sous Matlab ( adition,
%%% soustraction etc)
%%% l'opération calculée est affectée à une variable appelé 'ans' qu'on
%%% peut utiliser par la suite.
%%% on utilise ';' pour ne pas afficher le résultat
(2*3)+(4/5)-6;
7^8;
9^(1/3+1.5);
ans-1.23456789;
%%3. Variables et fonctions prédéfinies
%%3.1. Variables
a=3; %%% la variable 'a' reçoit 3 et pas 'égale' à 3, le terme 'égale'
%%% est utilisé dans d'autres contextes et noté par '=='
b=5;
c=a*b;
%%% la bibliothèque Matlab contient des fonctions prédéfinis comme:
%%% i, j, sin, cos, tan, acos, asin, pi ...
i;
%%% 0.0000 + 1.0000i
j
%%% 0.0000 + 1.0000i
pi
%%% 3.1416
sin(pi/2)
%ans =
% 1
abs(-20)
%ans =
% 20
%% 4. Tableaux et Matrices
M=[11 12 13; 21 22 23; 31 32 33]%%% une matrice de 2 lignes et 3 colonnes
% pour passer à la ligne suivante, on utilise le ';'
% M =
% 11 12 13
% 21 22 23
% 31 32 33
U=[1 2 3] %un vecteur ligne de 3 éléments ou matrice 1 lugne 3 colonnes
% U =
% 1 2 3
V=[4;5;6] %vecteur colonne, ou une matrice de 3 ligne et une colonne
% V =
% 4
% 5
% 6
%%% 4.2. Accéder à un élément
M(1,3)
%% pour accéder à un élément, on utilise sa position dans la matrice
%% nom_matrice(ligne, colonne)
% ans =
% 1
M(1,3)=0 %% modifier un élément dans la matrice
% M =
% 11 12 0
% 21 22 23
% 31 32 33
%%% 4.3. Extraire un sous tableau
% pour extraire un sous tableau il suffit de donner les lignes de début et de
fin
%% même chose pour les colonnes
%% M(debut_ligne:fin_ligne, debut_colonne:fin_colonne)
M(2:3,1:3)
% ans =
% 21 22 23
% 31 32 33
%% 4.4. Opération sur les tableaux
M.*2
% mettre le tableau au carré revient à mettre chaque élément à la puissance
% 2
% ans =
% 22 24 0
% 42 44 46
% 62 64 66
%%% Transposer d'une matrice
M';
% ans =
% 11 21 31
% 12 22 32
% 0 23 33
%% 4.5. Génération rapide de matrices
%% Matlab nous donne la possibilité de générer des matrices prédéfinis
%% par exemple :
%% ones(N,M) : génère un matrice de N lignes et M colonnes remplis de 1
%% Zeros(N,M): génère un matrice de N lignes et M colonnes remplis de 0
%% eye(N) : matrice d'identité de dimensions N*N
ones(2,3)
% ans =
% 1 1 1
% 1 1 1
zeros(1,4)
% ans =
% 0 0 0 0
eye(2)
% ans =
% 1 0
% 0 1
%On peut aussi générer dans un vecteur une liste de valeurs équidistantes
%entre deux valeurs extrêmes.
%%%%%%%%%%% X=valeur début : pas : valeur fin
x= 0 :2*pi/100 :2*pi; %% 101 valeurs équiréparties sur l’intervalle [0,2?]
%% 5. Affichage
%% 5.1 Plot
%% la fonction 'plot' permet de tracer une suite de valeurs suivant les x et
suivant les y
x= 0 :2*pi/100 :2*pi;
plot(x,sin(x)); %% traçage du sin(x) en fonction du vecteur x
grid on %% afficher la grille sur la figure
title('titre de graphe'); %% permet d'ajouter un titre à la figure
xlabel('titre des x'); %% titre pour l'axe des x
ylabel('titre pour l axe des y'); %% titre pour l'axe des y
%% 5.2 Subplot
%% cette fonction vous permet de visualiser plusieurs graphes dans le meme
figure
%% syntaxe : subplot(Nbre de graphe sur hauteur, Nbre de graphe sur largeur,
Numéro du graphe)
%% pour créer une figure de 4 sous figures :
subplot(2,2,1); %% figure qui contient 4 sous figures (2x2)
plot(x,sin(x)); %position 1
subplot(2,2,2);
plot(x,cos(x));%position 2
subplot(2,2,3);
plot(x,tan(x));%position 3
subplot(2,2,4);
plot(x,sqrt(x));%position 4
%% 5.3. Semilogx
%% on peut aussi tracer en semi-log en utilisant la fonction semilogx
x=1:100; %% un vecteur de 100 éléments
semilogx(x,log(x));
%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% Travail demandé
%% question 1
f = 0:6*pi/99:6*pi;
%% ou bien
%% f = linspace(0,6*pi);
%% question 2, 3 et 4
x = sin(2*pi*f);
y= cos (2*(pi/3)*f);
z=x.*y; %% multiplication terme à terme
subplot(3,1,1);
plot(f,x);
title('le signal x');
xlabel('axe des x');
ylabel('axe des y');
grid on
legend('x');
subplot(3,1,2);
plot(f,y,'g');
title('le signal y');
xlabel('axe des x');
ylabel('axe des y');
grid on
legend('y');
subplot(3,1,3);
plot(f,y,'r');
hold on %% pour que la figure reste actif, afin de pouvoir retracer quelque
chose à nouveau
plot(f,z,'b');
hold off
title('le signal y et z');
xlabel('axe des x');
ylabel('axe des y');
grid on
legend('x','z');

%%%%ù exercice
% Génération d'un sinus de fréquence 500Hz
f0 = 500 ; % Fréquence du signal
Np = 2000 ; % Nombre de points dans le signal continu
temps= 10e-3; % le temps du signal 10 ms
t = linspace(0,temps,Np) ;
a = sin(2*pi*f0*t) ;
% Génération du signal échantillonné avec fe= 8000 Hz
fe = 8000 ; % Fréquence d’échantillonnage
Ne = temps*fe ; % Nombre d’échantillons
n = 1 : Ne ;
Sig_Ech = sin(2*pi*f0/fe*n) ;
% Traçage des résultats
subplot(2,1,1) ;
plot(t,a) ;
title('Le signal original') ;
subplot(2,1,2) ;
stem (n,Sig_Ech) ;
title('Le signal échantillonné ') ;
hold on
% on relie les points entre eux pour voir est-ce que le signal
% reconstitué est identique à celui du signal original
plot(n,Sig_Ech,'r') ;

%%%%%%%%%%%% Bruit blanc gaussien


% Pour génerer un bruit blanc gaussien de taille N, on utilise la formule
suivante:
% Bruit = variance * randn(1,N) + Moyenne

Vous aimerez peut-être aussi