TP1 Traitement du signal

Telechargé par Othman Abourraby
TT
S.AHYOUD/ TP-TRAITEMENT DU SIGNAL/2020-2021
1
TP1: Traitement du signal
Génération, produit de convolution et corrélation du signal analogique
Objectif :
Ce TP a pour but d’apprendre à utiliser le logiciel Matlab afin de pouvoir développer des
applications simples en traitement du signal.
Préparation théorique
1) Générer un signal triangulaire et rectangle à l’aide des signaux (échelon et rampe).
2) Tracer les signaux suivants et déterminer s'il s'agit de signaux à énergie finie, à puissance finie
ou n'appartenant à aucune de ces deux catégories. La fonction u(t) étant la fonction de
Heaviside (échelon).
s(t) = Asin(t) pour -< t <+
s(t) = Au(t+) u(t-)] pour > 0
s(t) = tu(t)
s(t) = e-a|t| avec a > 0
3) Calculer le produit de convolution en se servant de la représentation graphique
4) Calculer la fonction d’auto corrélation d’un signal sinusoïdal s(t) = A.cos(2f0t)
Manipulation : Génération des signaux : Impulsion Unité et Echelon Unité
Deux signaux élémentaires de base sont : l’impulsion Unité et l’échelon Unité.
On considère les deux scripts suivants
Script 1
Script 2
Université Abdelmalek Essaâdi
Faculté des Sciences Tétouan
Département de physique
Année 2020-2021
Pr. S. Ahyoud
%Génération d'un vecteur de -10 0 20 de pas 1
n=-10:20;
u=[zeros(1,10) 1 zeros(1,20)]; %Utilisation de la fonction zeros.
%Tracer le signal généré
stem(n,u);
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-10 20 0 1.2]);
t = -1:0.00001:1 ;
x1 = rectpuls(t,0.05) ;
plot(t,x1) ; axis([-0.1 0.1 -0.2 1.2])
grid ;
xlabel('Temps(sec)');
ylabel('Amplitude');
TT
S.AHYOUD/ TP-TRAITEMENT DU SIGNAL/2020-2021
2
Remarque : Il faut comprendre l’intérêt de chaque instruction.
1. Exécuter les programmes suivants
2. Faire les changements nécessaires aux Scripts ci-dessus pour représenter les
impulsions suivantes
3 δ(t), 2 δ(t + 2) et δ(t-1).
s(n)= 2δ(n +2) − δ(n − 4), −5 ≤ n ≤ 5
le signal Échelon :
Exemple : Représenter graphiquement les signaux en utilisant les fonctions « zeros » et « ones » :
a) s1[n]=u[n]
b) s2[n]=u[n-2]
c) s3[n]=0.7(u[n+3]-u[n-3] ) -5<=n<=10
A prendre d’autres exemples de fonctions, par exemple en dents de scie ou encore
triangulaire ou même carrée, et faire la même chose
Génération d’une sinusoïde :
1) Ecrire un simple script Matlab qui génère:
Une sinusoïde d’amplitude 2,5 et de fréquence 1000 Hz, une autre d’amplitude 1,75 et de
fréquence 2000 Hz pendant une durée de 10 ms. Affichez-les sur la même figure en utilisant les
instructions subplot et plot.
La somme de ces trois signaux est-elle un signal périodique ? Si oui qu’elle sera la fréquence du
signal résultat. Justifiez votre réponse.
Tracez la somme des trois sinusoïdes
Corrélation et Convolution sous Matlab
Soient deux signaux f et g définis de la manière suivante
1) Calculer mathématiquement la convolution et la corrélation de ces deux signaux (Cf.cours).
2) Sous Matlab, déclarer ces deux signaux sur l'intervalle temporel [-1, 5].
3) Calculer la corrélation et la convolution de ces deux signaux à l'aide des fonctions xcorr et
conv de matlab. Afficher les deux résultats sur un même graphique. Retrouve t'on bien les résultats
théoriques ?
TT
S.AHYOUD/ TP-TRAITEMENT DU SIGNAL/2020-2021
3
Effet la somme non-infinie sur les séries de Fourier
Pour un signa s(t) définie sur [-;], on peut écrire sa composition en série de Fourier de la façon
suivante :
( équa1)
Nous allons maintenant utiliser Matlab pour obtenir les coefficients an et bn.
1. Créer un script qui va réaliser les opérations suivantes :
Définir la taille L des valeurs de n utilisé.(on prend par exemple L=20)
Créer un vecteur time 100L points régulièrement espacés entre 0 et L.
Créer un vecteur signal contenant 100L points valant tous 0.
Définir a=[0 0 0 0 0 0 ] ; et b=[0 0 0 0 0 0 ] ;
2. Les vecteurs a et b sont les 6 premières composantes de la série de Fourier.
Ajouter au script une boucle permettant de générer une série de Fourier tronquées aux 6
premiers coefficients (équation 2.1).
3. Choisir les vecteurs a et b au hasard et afficher le signal en fonction de time.
4. Essayer les vecteurs an = 0 et bn = (-1)n+1 2/n. et afficher le signal en fonction de time. Conclure.
5. Ajouter maintenant 2 termes dans a et b (toujours an = 0 et bn = (-1)n+1 2/n. et afficher le signal en
fonction de time. A-t-il changé? Pourquoi ?
6. Réaliser une boucle pour ajouter un nombre arbitraire de coefficients dans la série et faire un test
avec an = 0 et bn = (-1)n+1 2/n. A partir de combien de coefficients l'approximation d'un signal
triangulaire vous semble bonne ?
7. Trouver la décomposition de Fourier d'une fonction créneau et réaliser un script afin de voir l'effet
du nombre de coefficients sur la qualité de l'approximation.
TT
S.AHYOUD/ TP-TRAITEMENT DU SIGNAL/2020-2021
4
Annexe
Description de Matlab :
Après avoir cliqué sur l’icône Matlab dans windows, vous vous trouverez dans la fenêtre
Matlab.
Fenêtre arborescence du dossier en cours : Cette fenêtre permet de sélectionner le pertoire de
travail et de visualiser son contenu. Le répertoire dans lequel vous souhaitez travailler doit être
sélectionné.
Fenêtre Editeur de Commandes : Cette fenêtre permet de saisir des valeurs, de taper des
instructions ligne par ligne et d'exécuter directement des programmes (en tapant le nom du
programme).L'exécution des instructions et des programmes doit être validée par la touche « entrée
du clavier pour être prise en compte par MatLab.
Fenêtre Historique : Cette fenêtre contient toutes les instructions saisies dans la fenêtre de
commandes. L'ouverture du fenêtre command history permet de voir cette liste.
Quelques commandes Matlab utiles
Plot : Trace une représentation graphique.
Grid : affiche une grille.
Title : attribue un titre au graphique.
Xlabel : attribue un texte à l’axe des abscisses.
Ylabel : attribue un texte à l’axe des ordonnées.
tripuls(T,w,s) :elle génère une impulsion triangulaire de largeur w et de centre s.
rectpuls(t,w) : elle génère une signal rectangulaire de largeur w.
Conv(x,y) : elle fait la convolution de vecteur x avec le vecteur y.
Subplot : représente graphiquement dans un graphique donnée
Axis : indique les échelles des axes de coordonnées.
Clf : efface le graphique courant.
Hold on/off : permet/interdit la superposition des représentations graphiques.
N= length(x) : renvoie dans n la dimension du vecteur X.
[n,m]= size (A) : renvoie la dimension de la matrice A dans deux variables séparées m et n.
TT
S.AHYOUD/ TP-TRAITEMENT DU SIGNAL/2020-2021
5
A= zeros(n) : génère une matrice nulle de dimension nxn (n multiplie n)
Programmation
Il est souvent souhaitable, pour ne pas avoir à taper plusieurs fois une même séquence
d'instructions, de la stocker dans un fichier. Ainsi on pourra réutiliser cette séquence dans une autre
session de travail. Un tel fichier est dénommé script.
Pour sauvegarder une liste de commandes Matlab dans un fichier (qui doit porter l’extension .m), il
faut ouvrir l’éditeur de commandes de Matlab. L’ouverture et la création de fichiers .m d’effectue à
partir du menu File de la fenêtre de commandes. On appellera ces fichiers "programme Matlab".
Exemple 1 : Créez un fichier qui s’appelle Test1.m, qui génère un signal sinusoïdal s(t) de n
points, puis visualisez le à l’aide de la commande plot(s).
Etape 1 : édition du fichier par la commande : edit Test1.m
Etape 2 : taper les commandes suivantes dans la fenêtre d’édition :
%ce fichier génère et affiche une sinusoïde
t=0:0.1:2*pi; % t est le vecteur temps avec un pas 0.1
s=sin(t); % le signal x est un vecteur de même taille que le vecteur t
plot(t,s) ;grid on % dessine à l’écran x en fonction de t
Remarques :
1- Le texte débutant par % est un commentaire de votre choix, il est ignoré par le logiciel. Ils sont
utiles lorsqu’on a plusieurs programmes.
2- Chaque instruction doit être suivie d’un point virgule.
Etape 3 : Sauvegardez le fichier dans le répertoire en cours ;
Etape 4 : Exécutez le programme en entrant la commande suivante :
>>Test1
Ou Pour exécuter un programme Matlab, on peut utiliser le menu Debug, option Run, de l’éditeur
texte de Matlab
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !