IN41 : Compte-rendu de TP Séance 1 : Premiers contacts avec MatLab et les TF On se propose dans ce TP de découvrir les bases de MatLab ainsi que du traitement du signal.
Exercices 1 Soit la fonction
définie sur [0,0.6]. On définit le vecteur des temps de la manière
suivante : t = 0:0.001:0.6; Représenter x en fonction de t en apportant tout le soin nécessaire à la présentation du
graphique (axes, titre, etc.…). % Définition de la fonction à afficher t = 0:0.001:0.6; x = sin(2*pi*50*t) + sin(2*pi*120*t); plot(t,x); % Définition de l'affichage du graphique grid; % Affichage du titre title('Fonction sin(2*pi*50*t) + sin(2*pi*120*t)'); % Affichage des intitulés des axes xlabel('temps t'); ylabel('x(t)'); % Définition des axes axis([0,0.05,-2,2]);
1|Page
2|Page
Exercice 2 Réaliser les signaux suivants :
•
Une impulsion unité (Dirac) défini par f(n) = 1 si n = 0 et 0 sinon
•
Un échelon unité par défini par f(n) = 1 si n ≥ 0 et 0 sinon
•
La fonction signe
•
La fonction porte ou fonction rectangle
Impulsion de Dirac % Définition de la fonction à afficher t = -0.2:0.0001:0.2; % On crée le vecteur représentatif de la fonction x = zeros(1,2000); x = [x, 1]; x = [x, zeros(1,2000)]; plot(t,x); % Définition des options d'affichages grid; title('Impulsion de Dirac'); xlabel('Temps (t)'); ylabel('Imp(t)');
3|Page
Un échelon unité % Définition de la fonction à afficher t = -0.2:0.0001:0.2; % On crée le vecteur représentatif de la fonction x = zeros(1,2000); x = [x, 1]; x = [x, ones(1,2000)]; plot(t,x); % Définition des options d'affichages grid; title('Echelon Unité'); xlabel('Temps (t)'); ylabel('x(t)'); axis([-0.2, 0.2, -0.5, 1.5]);
4|Page
La fonction signe % Définition de la fonction à afficher t = -0.2:0.0001:0.2; % On crée le vecteur représentatif de la fonction x = ones(1,2000); x = x*(-1); x = [x, 0]; x = [x, ones(1,2000)]; plot(t,x); % Définition des options d'affichages grid; title('Fonction signe'); xlabel('Temps (t)'); ylabel('x(t)'); axis([-0.2,0.2, -2, 2]);
5|Page
La fonction porte % Définition de la fonction à afficher t = -0.2:0.0001:0.2; % On crée le vecteur représentatif de la fonction x = zeros(1,1000); x = [ x, ones(1,2001)]; x = [ x, zeros(1,1000)]; plot(t,x); % Définition des options d'affichages grid; title('Fonction porte'); xlabel('Temps (t)'); ylabel('x(t)'); axis([-0.2,0.2, -0.5, 1.5]);
6|Page
Exercice 3 On veut analyser les propriétés de certaines séquences élémentaires. Générer un signal sinusoïdal sur 10000 points et le visualiser sur 200 échantillons. Puis déterminer son minimum, maximum, moyenne, sa médiane et sa dispersion. % Définition de la fonction à afficher t = 0:0.0001:10; % On crée le vecteur représentatif de la fonction x = sin(t); echantillon_temps = t(:,1:201); echantillon
= x(:,1:201);
% Calcul du minimum minimum = min(echantillon) % Calcul du maximum maximum = max(echantillon) % Calcul de la moyenne moyenne = min(echantillon) % Calcul de la médiane mediane = std(echantillon) % Calcul de la dispersion dispersion = mad(echantillon)
plot(echantillon_temps,echantillon); % Définition des options d'affichages grid; title('Signal sinusoïdal'); xlabel('Temps (t)'); ylabel('x(t) = sin(t)');
7|Page
8|Page
Exercice 4
La première des trois figures représente un phaseur. Les deux autres représentent respectivement la partie réelle et la partie imaginaire de ce phaseur.
9|Page
Fréquence = 0,2
Fréquence = 0,4
10 | P a g e
Fréquence = 0,49 La fonction fonction
fft(x)
permet d’effectuer une transformée de Fourier discrète sur le vecteur x passé en paramètre. La
fftshift(x) permet
de symétriser correctement les valeurs de
fft(x).
Cela nous permet de visualiser la
transformée de Fourier de la fonction x.
Lorsque l’on augmente la fréquence, on o bserve :
Dans le cas de la transformée de Fourier de la fonction cosinus, les deux impulsions que l’on peut voir sur le
graphe s’éloigne de 0.
Dans le cas de la transformée de Fourier de la fonction cosinus au carré, les deux impulsions tendent à se rapprocher de zéros.
Pour une fréquence de f = 0.49, dans le cas de la fonction cosinus au carrée, on n’observe plus qu’une seule impulsion. Les trois impulsions sont quasiment confondues et forment une impulsion de Dirac.
11 | P a g e
Sigma = 2
Sigma = 10
12 | P a g e
Sigma = 20 La forme de la transformée de Fourier de la courbe gaussienne est également une courbe de Gauss. Plus on augmente sigma, plus la transformée de Fourier devient étroite. On peut donc dire que la transformée de Fourier d'une fonction gaussienne centrée sur l'origine est une autre fonction gaussienne, elle-même centrée sur l'origine.
13 | P a g e
Exercice 5 Soit un signal carré quelconque. Calculer la TF de rec(t) et tracer la. En déduire la TF de tout signal rectangulaire de
durée T et d’amplitude A : A.rec(t/T) .Tracer cette TF.
14 | P a g e
Exercice 6 On définit la convolution de deux signaux x(t) et y(t) par :
Définir une fonction permettant de calculer le produit de convolution et montrer que la TF de x*y(t) égale le produit des TF de x et y.
Le produit de convolution est la base de tout le traitement linéaire des signaux. Son expression pour des signaux numériques, c'est-à-dire non continu est :
y (k ) x(k ) * g (k )
x(l ) g (k l ) l
On peut donc définir une fonction convol qui permet d’effectuer le produit de convolution de deux fonctions : function y=convol(x,g) K = length(x)+length(g)-1; G = length(g); X = length(x); y(1:K)=0; x(length(x)+1:K)=0; for k=1:K for l=k-G:k-1 if l>=0 y(k)=y(k)+x(l+1)*g(k-l); end end end
15 | P a g e
Exercice 7 Convolution de deux portes. Tracer une fonction carrée, et le produit de convolution de cette fonction. Pourquoi obtient-on des triangles ?
16 | P a g e
Bonus Cette petite application permet de visualiser simplement et rapidement différents types de signaux ainsi que les
spectres bilatéraux d’amplitudes et de phases associés. On peut très facilement, choisir le type de signal que l’on veut étudier, on peut fair e varier la période du signal ainsi que le nombre d’harmoniques. L’interface de ce programme est la suivante :
17 | P a g e