You are on page 1of 36

Traitement du signal sous MATLAB – M.

SABRI – Université Sultan My Slimane - 2008

TABLE DES MATIERES

_____________________________________________________________________________________________________

TP I

INITIATION au logiciel MATLAB
Manipulation des variables Programmation : Les scripts, les fonctions Partie théorique

03

_____________________________________________________________________________________________________

TP II

NOTIONS de SIGNAL NUMERIQUE
Convolution Signaux harmoniques Bruit : Rapport signal sur bruit Partie théorique

09

_____________________________________________________________________________________________________

TP III

TRANSFORMEE de FOURIER discrète
Echantillonnage Repliement du spectre TFD Partie théorique

13

_____________________________________________________________________________________________________

TP IV

CALCUL et ANALYSE SPECTRALE
Analyse par TFD Fenêtres d’analyse Résolution fréquentielle Analyse par autocorrélation Partie théorique

16

_____________________________________________________________________________________________________

TP V

NOTIONS de TRAITEMENTS AUDIO
Le système acoustique humain Qualité des données audio Le son sous matlab

19

_____________________________________________________________________________________________________

TP VI

MODULATIONS NUMERIQUES
Modulations analogiques (amplitude-phase) Modulations numériques (QAM-PSK) Partie théorique

24

_____________________________________________________________________________________________________

1

Traitement du signal sous MATLAB – M. SABRI – Université Sultan My Slimane - 2008
_____________________________________________________________________________________________________

TP VII

ESTIMATION et DETECTION
Estimation des deux premiers moments Détection par moyennage Détection par intercorrélation Partie théorique

27

_____________________________________________________________________________________________________

TP VIII

FILTRAGE NUMERIQUE
Analyse de filtres Synthèse de filtres Filtrage d’harmoniques Réduction de bruit Partie théorique

29

_____________________________________________________________________________________________________

TP IX

NOTIONS de TRAITEMENT d’IMAGES
Lecture et écriture d’une image Opérations sur les images Filtrage d’une image Seuillage d’une image Détection de contours

32

_____________________________________________________________________________________________________

2

Traitement du signal sous MATLAB – M. SABRI – Université Sultan My Slimane - 2008

TP I

INITIATION au logiciel MATLAB

_____________________________________________________________________________________________________

Ce TP a pour but d’apprendre à utiliser le logiciel Matlab afin de pouvoir développer des applications simples en traitement du signal. Entrer d’abord la commande diary(‘initiation’) pour garder les traces de votre travail ; à la fin de la séance entrer la commande diary() ; I- Manipulation des variables On distingue les variables scalaires et les variables vectorielles (matricielles en général). 1- Variables scalaires Dans un premier temps on génère trois variables scalaires a, b et c de la manière suivante : >> a=2 ; >> b=3; >> c=4 ; On peut consulter la valeur d’une variable en entrant son nom :

>> a
La réponse serait : a= 2 Cela signifie que les valeurs des variables sont mémorisées automatiquement avec leurs noms. 2- Taille des variables dans la mémoire La taille d’un scalaire de type « double » est 8 Bytes = 8 Octets = 64 Bits 3- Commandes de base : • who et whos : Affiche la taille mémoire et types de toutes les variables utilisées. • • • cd : Affiche le répertoire (directorie) où vous opérez en ce moment. what, dir : Affiche la liste les noms des fichiers contenus dans le répertoire actuel. help nom_fonction : Donne un descriptif de la fonction et ses arguments d’entrée sortie. 4- Opérations sur les variables >>d=a+b+c >>e=a+b*c >>f=(a+b)*c 3

§ § § § >>v3=1:10 >>v4=1:-0. 4 où pi désigne le nombre 3.4 5 6 . >>v5=debut:pas:fin Une liste des fonctions les plus courantes est disponible dans l’aide en ligne en tapant la commande (elfun désigne elementary functions : sin.5:-1 >>debut=0. . • t=0 :2 :15 est le vecteur [0 2 4 6 8 10 12 14] • sin(t) est le vecteur [sin(0) sin(2) …sin(14)] • zeros(1.c . >>v5=debut:pas:fin >>debut=0.Les matrices et les variables vectorielles Matlab est optimisé pour l’usage matriciel : Eviter les formulations non matricielles. si le pas n’est pas spécifié. cos. • Ones(1.14… On définit une valeur de début : début On définit une valeur de fin : fin On définit un pas de progression linéaire ou logarithmique (incrémentation) : pas .] est un vecteur colonne. La fonction eig donne les valeurs propres de la matrice a. exp…) >>help elfun 7. log.fin=2*pi. 6.N) est le vecteur ligne nul à N éléments.2008 >>g=(a/b)*c >>h=a^2 5. Génération automatique d’un vecteur V=début:pas:fin.7 8 9] Noter que deux lignes sont séparées par un point virgule.pas=0.Les matrices Saisir la matrice 3x3 suivante : a=[1 2 3 . • [ a b c ] est un vecteur ligne. SABRI – Université Sultan My Slimane . il est égal à 1 automatiquement.b . Si vous entrez la commande a(:) vous obtenez le vecteur colonne [1 4 7 2 5 8 3 6 9]’.1. • V’ est le transposé du vecteur V • u=1:5 est le vecteur [1 2 3 4 5] (de même que [1 :5] et (1 :5).pas=8.Opérations sur les vecteurs § Il faut respecter les dimensions des vecteurs et matrices.fin=256.Traitement du signal sous MATLAB – M.N) est le vecteur ligne à N éléments égaux à 1. • [a .

ylabel(‘titre des ordonnés’) affiche un titre vertical suivant y. § § Etape 1 : édition du fichier par la commande : edit essai1.à l’aide d’un programme prog1.1:2*pi. Etape 3 : Sauvegardez le fichier dans le répertoire en cours . Vous pouvez supprimer ces commentaires.grid on % dessine à l’écran x en fonction de t 5 . mais ils sont utiles lorsqu’on a plusieurs programmes.Chaque instruction doit être suivie d’un point virgule. x=sin(t). xlabel(‘titre des abscisses’) affiche un titre horizontal suivant x.Traitement du signal sous MATLAB – M. deux périodes des deux signaux x(t)=cos(t) et y(t)=sin(t) et visualisez les deux signaux sur une même figure. Il suffit alors de taper name pour que la tâche s’exécute. Mettre une légende.1 % le signal x est un vecteur de même taille que le vecteur t plot(t. il est ignoré par le logiciel.m.y.2008 zeros(N) est la matrice nulle NxN. qui génère un signal sinusoïdal x(t) de n points. II. Exemple 1 : Créez un fichier qui s’appelle essai1.m. il est préférable de grouper les commandes dans un fichier à extension . SABRI – Université Sultan My Slimane .Utilitaires graphiques § § § § Exemple 2 : Générez.’b’. grid on et grid off quadrille ou non le graphique.ROGRAMMATION 1-LES SCRIPTS Plutôt que de taper les commandes au clavier les unes après les autres pour effectuer une tâche.’r’). eye(N) est la matrice identité NxN. Remarques : 1. § § >>essai1 2. ainsi tous les programmes auront pour nom name. L’instruction title(‘titre de la courbe ou la figure’) ajoute un titre à la figure visualisée.x) . 2.m.x. ce qui vous oblige à refaire la même chose à chaque utilisation de cette tâche.Le texte débutant par % est un commentaire de votre choix.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.t.m. l’une en rouge et l’autre en bleu à l’aide de la fonction plot(t. Etape 4 : Exécutez le programme en entrant la commande suivante : % t est le vecteur temps avec un pas d’échantillonnage 0. puis visualisez le à l’aide de la commande plot(x).

2.) qui divise l’écran en quatre sous figures : (2. sin(t).. A chaque besoin on appelle le dit programme par son nom : c’est une fonction.log10(t) et exp(t) en utilisant la fonction subplot(. Saisie d’une donnée au clavier : Pour saisir une variable x à partir du clavier.1). Une fonction possède des paramètres d’entrée et des paramètres de sortie.…) Le programme matlab correspondant à la fonction doit porter le même nom que la fonction : nom_fonction.2.entrée2.1). Affichage d’un message à l’écran : Pour afficher à l’écran un message personnel suivi d’un retour à la ligne : fprintf(‘message personnel \n’) .3) et (2.2). %initialisation de la moyenne for k=1:n r=r+v(k).2008 Exemple 3 : Visualisez sur une même figure. Affichage de la valeur d’une variable : Pour afficher à l’écran la valeur d’une variable x : fprintf(‘x=’%d) .…]=nom_fonction(entrée1.2. %déclaration de la fonction r=0.plot(t.m Exemple 1 : Calcul de la moyenne arithmétique m d’un vecteur v de dimension n : m= 1 n ∑ v (i) n i=1 La fonction moyenne.(2. on utilise l’instruction : x=input(‘x=’) . >>subplot(2. III.m comportera les instructions suivantes : function resultat=moyenne(v. end resultat=r/n.2.x). On note la présence de la boucle itérative : 6 ... SABRI – Université Sultan My Slimane . il est préférable de regrouper ces instructions sous forme d’un programme indépendant.. dont la syntaxe de déclaration est la suivante : function [sortie1.LES FONCTIONS Si plusieurs de vos programmes personnels utilisent en commun une liste d’instructions .Traitement du signal sous MATLAB – M.sortie2.2.(2. les quatre signaux cos(t).4).m.n).à l’aide d’un programme prog2.

1. (B) instruction.2008 for indice=debut:pas:fin instruction . fc fc fc étant la fréquence de coupure demandée par le programme et fournie par l’utilisateur à l’exécution. Exemple 3 : Diagramme de bode.m qui donne la valeur efficace s et la puissance moyenne p d’un signal.n. Comparer avec la fonction matlab std.H) qui affiche à l’écran le spectre d’amplitude 20log|H(f)| et le spectre de phase Arg(H(f)) en fonction de f en Hertz avec indication du titre de chaque courbe . H2 (f)= f f 1 + j.m pour tracer les diagrammes de Bode des filtres passe bas et passe haut dont les fonctions de transferts sont définies par : f j. Fonctions conseillées :abs(x). Exemple 2 : Créez une fonction puissance. Mise en œuvre de la fonction >>moyenne(1:100. Les paramètres d’entrée sont le vecteur fréquence f=0:fmax et le vecteur complexe H.100) Comparer avec la fonction matlab mean. 1 fc H1(f)= . la valeur efficace de x est : s= p = 1 n 2 x (i) n∑ i =1 Testez cette fonction sur un signal sinusoïdal d’amplitude A et de période 1.angle(x) et log10(x). Exemple 4 : vitesse de convergence d’une série Considérons la série en N suivante (qui converge vers exponentiel de x) : 2- 7 . end Qui est équivalente à : indice=debut . si debut=fin aller à B. i=1. debut=debut+pas.. x étant un vecteur de composantes x(i) . SABRI – Université Sultan My Slimane . Utilisez la fonction spectre dans un programme indépendant myfilter.Traitement du signal sous MATLAB – M.Créez une fonction spectre(f. 1 + j.

N ) = ∑ k =0 N xk k! Réaliser : • • • Une fonction factoriel(n) qui calcule le factoriel d’un entier naturel. 2.n). En utilisant e j.Traitement du signal sous MATLAB – M.n) prog3. PARTIE THEORIQUE 1.m puissance. Trouver les complexes z tels que : z N = z − N 6. De même retrouver les expressions de cos(a+ß) et sin(a+ß).n) qui calcule s(x.m 8 .H) myfilter. Même question pour s(n)= ( ) n 3 5. Calculer I n = π /2 ∏e n =1 ∞ jπ / 2 n ∫ sin 0 n ( x) dx et J n = π /2 ∫ cos 0 n ( x ) dx ________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing des programmes : prog1. Trouver les expressions de cos(na) et sin(na) pour n=2 et n=3. nα = e j. n [ ] 7. trouver les racines cubiques de 1. avec s(n)= n + j n 2 3 n =1 j 4.m prog2.m qui calcule la valeur de l’exponentiel de 2 avec une précision (incertitude relative) supérieure à 95% (incertitude inférieur à 5%). Une fonction somme(x. Calculer le produit infini 8.2008 s( x. Un programme prog3. SABRI – Université Sultan My Slimane .m factoriel(n) somme(x.α . Calculer la somme ∑ s ( n) .m spectre(f. ∞ 1 1 3.

c’est-à-dire Te=1. dessine s(k) en fonction de 1. Exemple 1 : Signal rectangulaire • On considère le signal rectangulaire Rec(k) égal à l’unité pour k=1…N/4 et nul pour k=N/4+1…N.Te . k=1…2N-1 m =1 k s(kTe) 9 .….s(Te).…. Remarque : la commande plot(s).2008 TP II NOTIONS DE SIGNAL NUMERIQUE _________________________________________________________________________________________________________________ I. ce qui est rarement le cas.Visualisation du signal s Pour visualiser s(kTe) correctement à l’écran. • Visualisez deux périodes de l’onde carrée de période 2π fournie par Matlab square(t) pour plusieurs pas d’échantillonnage : t=0 :pas :4*pi Exemple 2 : convolution de deux signaux x(k) et y(k) étant deux signaux numériques de même durée N.2. plot(t. SABRI – Université Sultan My Slimane .).Définition Un signal numérique s(k) est une suite de N échantillons régulièrement espacés de Te secondes : s(0. il faut préciser l’axe du temps t=k Te : t=0:Te:(N-1)*Te .s).01s visualisez à l’aide d’un programme Rec(k) en précisant sur la figure l’axe du temps avec l’unité de mesure.Traitement du signal sous MATLAB – M. la convolution de x et y est un signal z(k) de durée (2N-1). Pour N=512 et Te=0.s((N-1)Te) La grandeur Fe=1/Te est appelée fréquence d’échantillonnage : c’est le nombre d’échantillons par seconde.Te défini par : z(k)=x*y(k)= ∑ x ( m) y( k − m + 1) .N .s(2Te ). Signal numérique 100 80 60 40 20 0 Te 2Te 3Te kTe (secondes) 4Te kTe II. Le nombre d’échantillons N est le plus souvent une puissance de 2 : N= 2 p où p est un entier naturel.

f1=50Hz.comparer z(k) et le résultat de z2=conv(x. de moyenne m et d’écart type σ la commande est : bruit= m+ σ *randn(1.k . On prendra N=512. sin( 2π ..N) permet de générer un vecteur bruit b de distribution pseudo normale (de Gauss) de taille N de moyenne nulle et d’écart type 1 . Un coefficient multiplié par randn permet d’augmenter à volonté la puissance du bruit. Générez et visualisez en même temps. L’expression générale de la convolution est un peu différente si la variable temps débute à zéro au lieu de un (ce qu’exige Matlab). SABRI – Université Sultan My Slimane . f 2 .x) Exemple 3 : Signaux harmoniques On considère les deux signaux : s1(t)= 4 4 ∑ 2k . z(k) est-il maximal ? Quel est la valeur de ce maximum ? Interpréter.t ) k k =1 Avec : N=1024.2kf t) 1 k =1 1 (−1) k s2(t)= ∑ . les deux signaux s1 et s2. Dont la puissance est Pb = m 2 + σ 2 (Puissance de la moyenne plus celle des fluctuations autour de cette moyenne). b(k2) reste aussi imprévisible qu’avant).Réalisez un programme prog1. Ainsi pour générer un vecteur bruit blanc de taille N. La fonction b=randn(1. Fe=100Hz pour s2. 10 . cos( 2π . Observez la forme de z(k) ainsi que sa largeur par rapport à celle de Rec(k).NOTION de BRUIT Le bruit b(k) est défini comme étant un signal indésirable se mêlant additivement ou autrement à un signal s(t) qui intéresse l’observateur. 2. à l’aide d’un programme prog2. A quel instant k.m.N). 1. Fe=8Khz pour s1 et f2 =1/2 Hz . Le model le plus fréquent de bruit de mesure de grandeurs physiques est le bruit blanc gaussien : c’est un bruit aléatoire b(k) dont les échantillons sont dé-corrélés (entendez par cela que même si on connaît b(k1).m qui effectue la convolution de x(k)=Rec(k) avec lui-même et visualisez Rec(k) et z(k) résultant.2008 Remarque : § § Le nombre de points de z(k) est généralement N+M-1 où N et M désignent le nombre d’échantillons respectifs de x et y.Traitement du signal sous MATLAB – M. § § § Quelles remarques pouvez vous faire sur la forme des signaux? Que constatez vous lorsque les sommations vont plus loin que 4? A quel type de signaux connus pouve z vous comparer les signaux générés (comparer à sawtooth (t) et square (t))? III.

Exécuter trois exemples donnant des SNR négatif. Génère un bruit d’amplitude quelconque. Calcule l’énergie de s(k). il ya plus de bruit que d’information. Concernant la puissance moyenne. f0=T −1 (C n)n constituent le spectre de Fourier du signal s(t) aux fréquences (harmoniques) nf0 multiples du fondamental f0.m qui effectue les tâches suivantes : § § § § § § Génère une sinusoïde s(k) de fréquence 50Hz.Traitement du signal sous MATLAB – M.^2). SNR nul : il y a autant de bruit que de signal. s(t)-C0 étant la composante oscillante ou variable. SABRI – Université Sultan My Slimane . nul et positif. log 10 Ps Pb On distingue trois cas de figure : § § § SNR positif : le signal est plus puissant que le bruit. b) Exprimer s(t) en fonction de sin(2 π nf0t) et cos(2 π nf0 t). PARTIE THEORIQUE 1. il faut diviser l’énergie par le nombre d’éléments de x(k). Exemple 1 : sinusoïde bruitée Réalisez un seul programme prog3.4ms) et de taille n=256. n=0… + ∞ . échantillonnée à 2.s(t) étant un signal défini sur [-T/2.2008 IV. Additionne le bruit à la sinusoïde Visualise les trois signaux simultanément. L’énergie d’un signal x(k) est fournie sous matlab par sum(x. a) Montrer que C 0 est la valeur moyenne du signal s(t) sur [-T/2.T/2].Rapport Signal sur Bruit (SNR ) Observons un signal y(k) bruité additivement : y(k) = s(k)+b(k) Le SNR en dB définit le rapport de la puissance du signal Ps à celle du bruit Pb : SNR=10.T/2]. c) Quelle relation lie C -n et Cn? 11 .5KHz (Te=0. SNR négatif : le signal est dégradé. d’amplitude 1. Affiche le SNR à l’écran. On l’appelle aussi la composante continue. on peut l’analyser sous la forme : s( t ) = n = −∞ +∞ ∑C n e j 2 πnf 0t Avec : Cn= 1 T T 2 ∫ s(t)e − T 2 − j 2 πnf 0t dt .

Soit le signal carré de période T défini par : s(t)=A si |t|<T/4 s(t)=0 si T/4<|t|<T/2 a) Tracer s(t).sign(t) si T/4. Pour quel rapport θ /T a-t-on P 1=A 2 ? _____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing des programmes : prog1. b) Calculer la valeur moye nne de s(t). Cn désigne un coefficient de Fourier.m.π < t <0 s(t)=sin(t) si 0= t < π a) Tracer s(t). SABRI – Université Sultan My Slimane .Soit le signal s(t) de période T avec 0< θ <T/2 : s(t)=A. d) On définit le spectre de puissance du signal s(t) par Pn=C n 2 .Soit le signal périodique de période T=2 π : s(t)=0 si . b) Calculer la valeur moyenne de s(t). c) Calculer la série de Fourier de s(t).m.Traitement du signal sous MATLAB – M.θ /2 < |t| < T/4+ θ /2 s(t)=0 si |t| < T/4. prog2.2008 2. c) Calculer la série de Fourier de s(t).m 12 . b) Calculer la valeur moyenne de s(t). prog3. 3. Calculer Pn. 4. c) Calculer la série de Fourier de s(t).θ /2 ou T/4+ θ /2 < |t| a) Tracer s(t).

il faut noter que le spectre d’un signal physique tend vers zéro avec la fréquence (l’énergie du signal s’évanouit aux hautes fréquences). k=0…N-1 N n =− N / 2 .2008 TP III TRANSFORMEE de FOURIER DISCRETE (TFD) _____________________________________________________________________________________________________ I. k=0…N-1 est définie par : S(f)=S( N −1 n . n= -N/2…N/2-1 N k =0 La transformation inverse : s(t)=s(kTe)= Remarques : Par abus d’écriture et pour simplifier on note s(k) et S(n) le signal et sa TFD en omettant les facteurs Te et F e. SABRI – Université Sultan My Slimane . Pour pouvoir manipuler ce signal par un logiciel tel que matlab on doit l’échantillonner.Echantillonnage des signaux analogiques Considérons un signal analogique s(t) avec t ∈ R. on parle de FFT (Fast Fourier Transform).Te )] −∞ +∞ Où : sin c (u ) = sin( πu ) . πu Obstacles pratiques : § Les signaux physiques observés possèdent le plus souvent des spectres de Fourier occupant des bandes fréquentielles illimitées.Transformée de Fourier Discrète : La TFD d’ordre N d’un signal numérique s(kTe ). II. Ceci nous permet de limiter la bande significative du spectre et par la suite appliquer le théorème de Shannon.Fe )= ∑ s (kTe) Exp[ − j 2πkn / N ] . c’est-à-dire prélever à une cadence Te secondes des valeurs s(k) de s(t) : s[-(N-1)Te]…s[Te].s[Te]…S[(N-1)Te]… Après traitement du signal échantillonné et obtention des résultats projetés. 13 1 N / 2−1 ∑ S (nFe / N )Exp[ j 2πkn / N ] . § L’observation d’un signal physique se fait durant un intervalle limité [0. Ce théorème stipule que si s(t) possède une transformée de Fourier de largeur de bande 2Fmax et si la fréquence d’échantillonnage Fe est telle que : 2Fmax<Fe alors on peut retrouver s(t) à partir des échantillons s(k) de la manière suivante : s(t)= ∑ s (k ) sin c[ Fe (t − k .s(0). N est souvent une puissance de 2 et dans ce cas il ya un algorithme rapide de calcul des N coefficients de la TFD. Pour pallier ces difficultés. on doit retrouver à partir des seuls échantillons de s le signal analogique en totalité : c’est possible si on respecte le théorème de Shannon.Traitement du signal sous MATLAB – M. donc F max est infini.T] ce qui donne le plus souvent un spectre très étalé.

Visualiser la TFD de x. exprimer cette fréquence. k=0…4.t 2 + 2π .m : § § Générer et visualisez les n/8 points de la TFD d’ordre n d’une sinusoïde sin(t) ainsi que sa phase. Commenter.N). Faites de même pour une somme de sinusoïdes sin[(2k+1)t]. La fréquence instantanée de x(t) dépend de t.Observez le signal et sa TFD. Sous matlab la TFD est donnée par la fonction fft(s. La transformée inverse est donnée par ifft(s.N). Signal Chirp linéaire Générer le signal x(t)= sin( π . Observer ce spectrogramme à l’aide de la fonction specgram(x) . Augmentez la fréquence f de la sinusoïde de manière à dépasser 0 Fe/2.2008 Ainsi aux coefficients s(1)…s(N) correspondent par TFD les coefficients S(1)…S(N). prog1.t + 1) de durée une seconde avec Fe=1kHz.Traitement du signal sous MATLAB – M. Visualiser x en fonction de t. Que se passe-t-il lorsque f0=Fe/2 ? Exprimez fr en fonction de f0 et Fe. Cela implique que le théorème d’échantillonnage ne pourra jamais être respecté : aliaising inévitable.N)) Repliement de spectre (aliaising) § § § § § Générez une sinusoïde de fréquence f0 échantillonnée à Fe=100Hz avec f0<fe/2.N))) angle(fft(s. SABRI – Université Sultan My Slimane . Utiliser le zoom et « data cursor » pour lire les pics. Transformée de Fourier Discrète 40 |S(nFe/N)| 30 20 10 0 Fe/N 2Fe/N 3Fe/N nFe/N (Hertz) 4Fe/N (1-1/N)Fe On définit les spectres d’amplitude et de phase du signal s(k) par : 20*log10(abs(fft(s. En observant le spectre du signal donnez sa fréquence réelle fr. Expliquez à l’aide d’un schéma ce qui se passe en général lorsque f0 dépasse Fe/2. 14 . Matlab permet de visualiser le spectre par tranches temporelles en fonction du temps : C’est le spectrogramme.

m.cos(2 π fpt). Générer et visualisez Rec(k).Rec)) ainsi que sa TFD et sa phase (Les n/8 points uniquement). Testez plusieurs valeurs de σ 2 et de f0 .cos(2 π fpt) en fonction de S(f).2008 prog2.m § § § § § prog3. 1. 1. 2.Proposez une méthode pour extraire S(f) de sdm(t). SABRI – Université Sultan My Slimane . prog3. PARTIE THEORIQUE I.m. Déterminer la TFD du produit xy. _____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing des programmes : prog1. Déterminer la TFD de x(k-k0).Propriétés de la TFD On considère les signaux causals x(k) et y(k).Traitement du signal sous MATLAB – M.Modulation On considère un signal s(t) dont la transformée de Fourier S(f) occupe la bande de fréquences [-F max. prog2.Fmax]. Générer et visualisez la convolution z(k) de Rec(k) avec lui-même (utilisez la fonction conv(Rec. Comparez la TFD de z(k) et le carré de la TFD de Rec(k). en fonction de S(f). 4.x(k). 3. Déterminer la TFD de k. Visualisez les n/8 points des spectres d’amplitude et de phase de la TFD d’ordre n=512 en respectant les unités temporelle et fréquentielle. Générez wave(k) une onde carrée à l’aide de la fonction square( pour l’utiliser correctement tapez help square). II.m 15 .m § Générer et visualisez la TFD d’une sinusoïde bruitée de fréquence f0 en lui rajoutant un bruit blanc centré de puissance σ 2 et observez si l’on distingue le pic correspondant à la fréquence de la sinusoïde.Donner l’expression de la transformée de Fourier analogique du signal démodulé mais non filtré : sdm(t)=s m(t). Visualisez wave et sa TFD. 3. sur 2 secondes. 2.Donner l’expression de la transformée de Fourier analogique de sm(t)=s(t). Déterminer la TFD de x(k)*y(k).

Conclure sur l’utilité de ces deux fenêtres. Comparez l’effet des deux fenêtres proposées.m par chacune des deux fenêtres.2028. 128. SABRI – Université Sultan My Slimane . 256. On prendra soin de manipuler des signaux de tailles N=2 p : 2.Traitement du signal sous MATLAB – M.Analyse du spectre par TFD CALCUL et ANALYSE SPECTRALE _________________________________________________________________________________________________________________ On va procéder à une étude de l’effet de la durée M d’observation d’un signal sur sa TFD ainsi que l’effet de la fréquence d’échantillonnage Fe. Observez l’effet du fenêtrage sur le spectre.1024.32.m qui : § Génère une sinusoïde s(k) de fréquence 100Hz.16. La partie analysée est appelée fenêtre d’observation. Multiplie terme à terme la sinusoïde s(k) du prog1. 0. qui ont chacune des effets différents : Blackman. 64.8. 512 et donne à chaque fois la largeur ∆ f du lobe principal du spectre : Cette largeur est l’écart entre les fréquences où le max du spectre est divisé par deux (largeur à mi-hauteur) (utiliser la fonction find() sinon le zoom et « data cursor ».4.512. Conclure.m qui : § § § Visualise sur une même figure les deux fenêtres citées et leurs spectres d’amplitude sur [0. On va mettre en évidence le fait que la précision fréquentielle (résolution) augmente avec la taille de la fenêtre. Hanning… Sous matlab on peut utiliser les fonctions hanning(N) et blackman(N) pour le fenêtrage (ce sont deux vecteurs colonnes de taille N). Réalisez prog1.2008 TP IV I.Influence de la taille de la fenêtre d’observation (windowing).256. de taille N=512 échantillonnée à 1kHz. et visualise les spectres résultants. § Vérifiez que le produit p=M ∆ f est constant. Les analyseurs de spectre (appareils qui donnent le spectre d’un signal) proposent de nombreuses fenêtres d’analyse.Fenêtre d’analyse : Une fenêtre d’analyse est une mise en forme que l’on donne au signal avant de l’analyser par TFD : On multiplie s(k) terme à terme par une fenêtre w(k) de forme adéquate pour réduire les lobes secondaires afin que le spectre observé tende vers le résultat théorique qui est pour une sinusoïde de fréquence f0 une raie pure à la fréquence f0 . Hamming.128. Il est possible d’appliquer la TFD sur la totalité ou une partie d’un signal de taille N.4056… 1. 32.5Hz]. 16 . Réalisez prog2. 2.64. § Visualise les modules des TFD d’ordres M=16.

vérifiez le théorème de Wiener-kinchine.Déterminer la puissance moyenne Px et la dsp γ x du signal déterministe x(t)=A. En comparant R(n) et X(n). nul pour t négatif et égal à 1 ailleurs.Traitement du signal sous MATLAB – M. Réalisez prog3.x.exp(-at) avec a réel positif.Calcul du spectre par auto-corrélation : Réalisez prog4. 1. Utiliser xcorr(x. Plus ∆ f est petite plus la résolution est haute. PARTIE THEORIQUE On désigne par u(t) l’échelon unité. 17 .500Hz].m qui : § § § § § Génère un signal échantillonné à 1kHz de 1024 points.m qui : § § § Visualise la TFD X(n) d’un signal rectangulaire x(k). 2. son auto -corrélation B(n) et la TFD de B. Que vaut la taille théorique N min qui ne permet pas de séparer les deux raies ? On double simultanément la fréquence d’échantillonnage et la taille de la TFD : Est-ce qu’on obtient de meilleurs résultats ? Un procédé physique génère un signal comportant deux raies 100Hz et 105Hz présentes dans une bande [0.Résolution fréquentielle de la TFD La résolution fréquentielle ∆ f nous informe sur la capacité à séparer les valeurs du spectre pour deux fréquences très proches : On peut distinguer les spectres aux fréquences f et f+ ∆ f mais pas aux fréquences f et f+ δ où δ < ∆ f. Visualise un bruit bla nc b(k).sin(2 π f0t+ ϕ ). résultat de l’addition de deux sinusoïdes de même amplitude A et de fréquences respectives 100Hz et 105Hz. SABRI – Université Sultan My Slimane .2008 II. sa fonction d’autocorrélation R(n) et la TFD de R.Déterminer l’énergie Es et la densité spectrale de puissance γ s du signal s(t)=u(t).’biased’) . Quel serait le choix le plus économique de la longueur d’observation et de la fréquence d’échantillonnage de ce signal afin de pouvoir distinguer les deux raies ? III. Déterminez expérimentalement la durée d’observation en dessous de laquelle on ne distingue plus les lobes principaux des TFD des deux composantes. Cette résolution dans le cas de la TFD d’ordre N est déterminée par le nombre de points d’analyse N et la fréquence d’échantillonnage F e : ∆ f=Fe /N On va essayer de voir les limites de l’analyse par TFD en essayant de détecter des sinusoïdes prôches.

2008 3. uniforme sur [0. 4.2 π ].Quelle est la puissance ?P localisée dans la bande [f0. prog4. Que se passe-t-il si ∆ f tend vers zéro ? _________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing du programme : prog1. f0 + ∆ f/2] d’un signal s(t) à énergie finie. SABRI – Université Sultan My Slimane .∆ f/2. où ϕ est une v.sin(2 π f0t+ ϕ ).Traitement du signal sous MATLAB – M.Quelle est l’énergie ?E localisée dans la bande [f0. prog3. f0+ ∆ f/2] d’un signal s(t) à puissance moyenne finie.m.Déterminer la puissance moyenne Px et la dsp γ y du signal aléatoire y(t)=A.m 18 .∆ f/2. 5.a.m.m. prog2.

Ne dépend pas de la distance à la source.La puissance acoustique Watt/cm2 Décibels Exemple de son 10-16 10-14 10-12 10-10 10-7 10-5 0 dB 20 dB 40 dB 60 dB 90 dB 110 dB Son bas audible à 3kHz Son bas audible à 10kHz Son bas audible à 100Hz conversation normale Limite du bruit industriel Concert de Rock P . Le même timbre correspond à plusieurs phases relatives ou formes temporelles. L’oreille possède une sensibilité logarithmique : un facteur deux ressenti correspond à un facteur dix en puissance. Elle dépend de la direction (position relative à la source du son) • • Hauteur : la fréquence de la fondamentale en Hertz.Introduction au système acoustique humain Le système de réception du son chez l’humain (l’oreille) comporte trois parties principales : • • • Un canal externe en contact direct avec le milieu extérieur (l’air). Timbre : le contenu en harmoniques (les multiples du fondamental). SABRI – Université Sultan My Slimane . Intensité : la puissance acoustique du son en Watts par centimètre carré. log 10 L’écart de puissance minimum distinguable par l’oreille est de l’ordre de 1dB soit à peu près 11% d’écart relatif en puissance (correspond à une pression minimale de 20 micropascales). Un son audible est caractérisé par : • 1. P étant la puissance par cm2 . Une partie interne hétérogène qui détecte les hautes. La puissance est proportionnelle au carré de la pression subie par le tympan. moyennes et basses fréquences. 19 . Une membrane (le tympan) sensible aux variations de pression dans le canal externe. avec P0 P0=10-16.Traitement du signal sous MATLAB – M.2008 TP V AUDIO NOTIONS de TRAITEMENT _____________________________________________________________________________________________________ I. la puissance en dB s’écrit : PdB = 10.

un fichier . Cela exige une quantification logarithmique des échantillons sonores (Echelle de quantification compensée). A=87.X ) . Ce format est rudimentaire et non compressé.2kHz 200Hz…3.Ox56. troisième (sol4)… 3. ex.Ox41.6 ) 1 + ln( A. Echelle logarithmique la séparation minimum entre niveaux distinguables étant de 1dB.Ox45) 20 . 3f. pour coder la plage allant de 0dB à 120 dB il faudra coder la plage de puissance allant de 0 à 1012 soit sur 40 bits. 4. la donnée quantifiée Y s’écrit : Y= Y= ln( 1 + µ . Comme tout fichier formaté. ln( 1 + µ ) 0 ≤ X ≤ 1 (standard US. X étant la donnée originale. Qualité des données audio Qualité Musique HIFI Téléphone Téléphone Parole codée LPC Bande 5Hz…20kHz 200Hz…3. d’où un codage sur 8 bits uniquement. peu importe son allure temporelle. …liés respectivement aux modes fondamental (do3).au’ est le standard chez unix).Ox46. L’entête commence dès le premier octet (offset 0) et se compose des éléments suivants : 1 2 3 TAG1 SIZE1 FORMA T 4 Octets Constante « RIFF » (Ox52. 1 + ln( A) 5.La hauteur du son Le fondamental étant f. ex. suivie des données (le son proprement dit). X ) . 4f. µ =255) 1/A ≤ X ≤ 1 (standard EU.wav comporte une entête : Champs de 44 octets. les harmoniques sont 2f.2kHz Taux (kHz) 44. Le timbre Il correspond au contenu spectral du son.1 8 8 8 codage 16 bits 12 bits 8 bits 12 bits Débit 706 K 96 K 64 K 4K Commentaire Audiophile La parole La parole : courant Qualité pauvre II.Le son sous Matlab Windows propose un standard des fichiers son : Le format ‘. seuls 120 niveaux sont distinguables. second (do4).2008 2.wav’ (‘.Ox49.Ox46) 4 Octets Taille du fichier moins 8 octets 4 Octets Format= « WAVE » (Ox57. SABRI – Université Sultan My Slimane . Du fait que l’oreille ait une sensibilité logarithmique.Traitement du signal sous MATLAB – M.2kHz 200Hz…3.

fs est la fréquence d’échantillonnage en Hertz. fclose(‘fid’). Lecture d’un fichier son wavplay(‘son1.) 2 Octets Nombre de canaux : 1 pour mono et 2 pour stéréo 4 Octets Fréquence d’échantillonnage en Hertz 2 Octets Nombre d’octets par échantillon 2 Octets Nombre de bits par donnée 4 Octets Constante « data » (Ox64.wav’) .inf. y=wavread(‘son1.bits]=wavread(‘son1.N) . y est un vecteur colonne si le son est mono et une matrice à deux colonnes si le son est stéréo qui contient les données. u=wavread(‘son1. Les données sont dans la plage [-1.fs]=wavread(‘son1.…. fid=fopen(‘son1.wav’.’r’) . inf demande la lecture jusqu’à la fin du fichier.wav’. x est identique à y.wav’. fréquence d’échantillonnage en Hertz.Ox61) 4 Octets Taille du fichier moins 44 octets BYTEPERSEC 4 Octets Nombre d’octets par seconde de musique 10 NBRBYTE 11 NBBITS 12 TAG3 13 SIZE2 1.wav’) .’size’) . son_lu=fread(fid. fs est la siz=wavread(‘son1. u contient les N premières données ou échantillons. bits est le nombre de bits par échantillon.1].Ox61. pour écouter.fs. siz(1) est le nombre d’échantillons et siz(2) le nombre de canaux.Ox74. SABRI – Université Sultan My Slimane .Traitement du signal sous MATLAB – M.Ox6D.wav’. fid est le pointeur du fichier :pointe la donnée actuelle.Ox20) 4 Octets Nombre d’octets utilisés pour définir le contenu 2 Octets Format de fichier (1 : PCM. [x. Ferme le fichier.wav’) .’int16’).Ox74.fs).2008 4 5 6 7 8 9 TAG2 LGDEF FORMAT NBCANAUX FREQ 4 Octets Identifiant « fmt » (Ox66. [z. 21 . son_lu est un vecteur colonne constitué de données 16 bits . Ouvre le fichier son en tant que flot de données non spécifiés pour sa lecture.

% y contient les données son de type double prog2. z=getaudiotata(x. 22 . Ou: x=audiorecorder (fs.’son2. crée un fichier son son2. y=play(x) . Enregistrement d’un fichier son Brancher un micro à votre PC et saisir les commandes : fs=44100 .wav’) . Visualiser x et son spectre. % Parler au micro pendant D secondes play(x) . 3. stop(x) .Traitement du signal sous MATLAB – M. prog1.nbits. Ecouter x.% x est une variable objet recordblocking(x. record(x) . mode=2 . % Ecouter le son enregistré y=getaudiodata(x) .’int16’). stop(y) . %fréquence d’échantillonnage %bits par échantillon %mode stéréo %Durée de l’enregistrement en secondes x=audiorecorder(fs. Ecouter y. Visualisez sur deux systèmes d’axes différents les N=2048 premiers échantillons de chaque canal (un extrait y).nbits. Ajouter à x des sons de fréquences multiples de f0 et visualiser le résultat y et son spectre.m • • Enregistrer un son x stéréo de durée 16 secondes. D=16 .mode).D) . sin( 2πf 0 t ) . 2.mode) . Ecriture d’un fichier son wavwrite(x. Ecouter….m : sons purs • • • Générer un son pure de fréquence audible x(t)= A. nbits=16 .fs.wav dont les échantillons (compris entre -1 et 1) se trouvent dans la matrice x avec une fréquence d’échantillonnage fs. SABRI – Université Sultan My Slimane .2008 Testez ces instructions sur un fichier son et en déduire la taille de l’entête. Parler au micro….

prog3.2008 • • Visualisez les spectres de phase et d’amplitude correspondant à y. Afficher x1. y ainsi que leurs spectres d’amplitude.m 23 . SABRI – Université Sultan My Slimane . prog4.m. prog2.m • • ___________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir un listing des programmes : prog1.m. prog4.m Modifier le contenu de x. puis visualisez le son et le spectre puis écouter le résultat. en effaçant quelques passages. prog3.m. x2. Mixage : Enregistrer deux sons différents x1 et x2 et fusionner les données alternativement (un morceau de x1 suivi d’un morceau de x2…etc) dans un fichier y.Traitement du signal sous MATLAB – M.

mais translatée de fp. Fp = 10. La fréquence fp est dite la fréquence porteuse. % Modulation 24 .Fp. % deviation de phase pour la modulation de phase y = pmmod(x.m Fp = 5000. le résultat est un signal s m(t) ayant la même bande spectrale que s(t).y et z ainsi que leurs spectres d’amplitude.*y On se propose de moduler un signal audio en utilisant les fonctions Matlab ammod et pmmod.m Le programme réalise les tâches suivantes : § § § § Génère un sinus.%démodulation du signal modulé Visualiser les trois signaux x .Fe) . de fréquence porteuse 2500Hz. SABRI – Université Sultan My Slimane . p(k). phasedev = pi/2. % signal modulé z=amdemod(y. x(k). Comment restituer le signal x(k) à partir de dm(k). 2.phasedev). Génère dm(k)=m(k). Remarque : La multiplication échantillon par échantillon de deux vecteurs x et y sous matlab : x.fp+f max] très loin de la bande de base. ce qui donne m(k). Evidemment on doit avoir fmax<fp/2 pour que les deux bandes ne chevauchent pas.p(k) et affiche les spectres des trois signaux.Fp. A la réception il suffit de multiplier par la même fonction cos(2 π fpt) pour isoler la bande de s(t). de fréquence 50 Hz échantillonné à 8kHz sur 512 points. Module x(k)+2 par un cosinus .Modulation de phase x = sin(2*pi*t) + sin(4*pi*t). afin que le récepteur puisse restituer le signal original émis.Traitement du signal sous MATLAB – M.Modulation d’amplitude prog2. 1.Fs.% signal audio à moduler y = ammod(x.Fe] = wavread(‘son1. Programme à faire : prog1.wav’) . il se trouve qu’en multipliant un signal s(t) par cos(2 π fpt) à l’émission.f max] d’un émetteur vers un récepteur tout en occupant dans le milieu de transmission les séparant une bande spectrale [fp -f max. Grâce aux propriétés de la TFD.Fe). % fréquence porteuse [x.Fc.Modulations analogiques MODULATIONS NUMERIQUES _____________________________________________________________________________________________________ La modulation en général est un procédé technique permettant de transmettre des signaux occupant une certaine bande spectrale de base [-f max.2008 TP VI I.

'peakpow'.103). Soit y(t) le signal réel défini par sa transformée de Fourier : 25 . % Demodulate. SABRI – Université Sultan My Slimane . En voici deux exemples : PSK-16 M = 16. y.M). y = awgn(y. x = int16([0:M-1]). Bruit du canal et démodulation On additionne du bruit blanc gaussien à y (bruit du au canal de transmission).M). % effectue le tracage QAM-32 M = 32. % additive white Gaussian noise à y z = pmdemod ( y.Traitement du signal sous MATLAB – M.15. y = qammod(x.10. % bruit additive du canal scatterplot(ynoisy). puis on effectue la démodulation de phase. ynoisy = awgn(y.'measured'. % Scale the constellation.1. % démodulation Visualisez x. scatterplot (pskmod(x. ynoisy et z PARTIE THEORIQUE Enveloppe complexe d’un signal On considère un signal réel x(t) de transformée de Fourier X(f).'measured').1). scale = modnorm(y.Tracé des constellations Matlab permet d’effectuer le tracé des constellations des modulations les plus courantes (trace l’enveloppe complexe des symboles de l’alphabet). Fe. Visualisez les signaux x. % taille de l’alphabet x = randint(5000. II. y et z.2008 Visualiser les deux signaux x et y.Modulations numériques 1. % message aléatoire y = qammod(x.M)).M). Fp. z = qamdemod(ynoisy.Modulation QAM-16 M = 16. y = scale*y. % Le nombre de symboles de l’alphabet à transmettre x = int16([0:M-1]). % modulation Visualisez x et y. phasedev).M). 2. scatterplot(y). % Plot the scaled constellation.

pour une pulsation arbitraire ω 0 par : ~ (t ) = ~(t ). 5.Inversement. On appelle signal analytique de x(t) le signal complexe : ~(t ) = x (t ) + j . et représenter les trois signaux dans le plan complexe. 6. 4.m et prog2.ω 0 t r x On peut interpréter l’enveloppe complexe comme le résultat d’une modulation d’amplitude du signal analytique. exprimer x(t) et y(t) en fonction de a(t). En x déduire l’analogie avec la notion de phaseur en électricité.Donner l’enveloppe et la phase du signal modulé x (t ) = a (t ). f 0t + ϕ ) . cos( 2π .ϕ ( t) x Permet de définir l’enveloppe réel r (t ) et la phase instantanées ϕ (t ) d’un signal réel x(t).e − j. a(t) étant un signal réel. a(t) et b(t) s’appellent la composante en phase (IN) et en quadrature (Q) du signal réel x(t). du signal analytique ~( t ) ? Faire un schéma des T. à spectre passe bande symétrique : γ x ( f ) = 1 .quelle est la T.Exprimer les spectres de x(t). Déterminer y(t) et ~( t ) . y( t ) x 1. b(t) et les porteuses. 7. La forme polaire du signal analytique : ~(t ) = r (t ). 8. aléatoire ou non. L’enveloppe complexe d’un signal réel x(t) est définie.F. a(t) et b(t) en fonction du spectre de l’enveloppe complexe.F.Exprimer les parties réelles et imaginaires a(t) et b(t) de ~ (t ) en fonction de x(t). _____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing des programmes prog1.m 26 .On considère un signal x(t) réel. cos( 2π . pour f 1 ≤ f ≤ f 2 Et nul ailleurs.Traitement du signal sous MATLAB – M.Donner l’enveloppe et la phase du signal x (t ) = A. Faites un schéma illustratif. 3. f 0t + ϕ ) .e j.2008 Y( f ) = sign ( f ) . Faire un tracé qui illustre l’enveloppe de x(t). r y(t) et les porteuses sin( ω 0 t) et cos( ω 0 t). SABRI – Université Sultan My Slimane .Soit x (t ) = A. x 2. f 0t + ϕ ) .X ( f ) j y(t) est la transformée de Hilbert de x(t). cos( 2π .

l’erreur ε (N)=( σ 1. C/4. prog3.σ )(N) et l’erreur quadratique ε 2(N). ˆ • Visualisez σ Est ce qu’il y a convergence? • Faites de même pour le deuxième estimateur. II. C/2.µ )(k) et l’erreur quadratique ε 2(k). On estime la valeur de la constante en prenant la moyenne de s(k). III.∑ [ x( i ) − µ ( N )] N − 1 i=1 prog2.2008 TP VII I. le signal résultant observé est s(k).n.m • Générez n=1000 points d’un signal aléatoire X en additionnant 4 périodes d’une sinusoïde sin(t) et un bruit blanc de moyenne µ =5.Traitement du signal sous MATLAB – M. ˆ ˆ Est ce qu’il y a convergence? N. • Calculez l’estimateur µ (N) pour les valeurs de k = 1.m : Réaliser un programme qui estime C.Estimation de l’écart type On considère les deux estimateurs de la variance σ 2 = E ( X − µ ) 2 suivants (variances empiriques): 1 N 2 2 ˆ ˆ σ 1 ( N ) = .∑ [ x(i ) − µ ( N )] N i=1 N 1 2 2 ˆ ˆ σ 2 (N) = ..B.Estimation de la moyenne ESTIMATION et DETECTION Soit X une variable aléatoire stationnaire d’ordre un et x(1)…x(N) une série de N observations ou mesures de X décorrélées.5. ceci pour v=C/10.0). en utilisant la moyenne empirique étudiée au début du TP. ˆ • Calculez les deux estimateurs σ (N) pour les valeurs de N = 1…1000. Utiliser mean(). ˆ • Visualisez µ (k). SABRI – Université Sultan My Slimane . [ ] 27 . C.Détection d’une composante continue par moyennage On considère un signal constant C noyé dans un bruit b(k) blanc centré de variance v.∑ x(i ) µ N i =1 prog1. On se propose d’étudier le comportement de l’estimateur de la moyenne µ =E[X] suivant (moyenne empirique): 1 N ˆ ( N ) = .m • Générez 1000 échantillons décorrélés d’une variable aléatoire X stationnaire au second ordre en additionnant une sinusoïde et un bruit blanc de moyenne µ =5 et de variance σ 2 =1. l’erreur ε (k)=( µ . ˆ 1(N). : Avant chaque génération de bruit il faut initialiser le processus de génération à l’aide de la commande rand('state'.

Traitement du signal sous MATLAB – M.x(k+n)]. _____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing du programme : prog1.m 28 .Montrer que cet estimateur est non biaisé.Donner le biais et la variance de l’estimateur de la moyenne empirique : 1 N ˆ ( N ) = . sous la forme : 1 N −n ˆ ˆ R X ( n) = R X ( − n ) = . ∑ xk .Donner le biais et la variance de l’estimateur de la variance empirique : 1 N 2 2 ˆ ˆ σ 1 ( N ) = .Considérons le nouvel estimateur empirique : 1 N −n ˆ ˆ R X ( n) = R X (− n) = .m.∑ X ( i ) µ N i=1 2. On peut généraliser l’estimation empirique pour n=0…N-1. SABRI – Université Sultan My Slimane .∑ [ x(i ) − µ ( N )] N i=1 3.m. ∑ x k .…xN] extraits d’un signal stationnaire X centré d’ordre deux de fonction de corrélation inconnue RX(n)=E[x(k).2008 PARTIE THEORIQUE 1.x k + n N k =1 Calculer le biais de cette estimateur et montrer que la matrice de corrélation est définie positive.x k + n N − n k =1 a.Estimation empirique de la fonction de corrélation Soit N échantillons [x1. prog3. prog2. b.

Les fonctions filter.b M]. le choix de la phase se fait généralement en prenant tous les pôles et zéros de h(k) à l’intérieur du cercle unité (exigences de stabilité et de causalité). égale à la TFD de la RI en dB.a.d). |H(f)| § Passe haut ∆ tra ∆ ond ∆ att coupée passante| f1 fc Fe/2 f II. b et a sont les vecteurs dont les éléments sont les coefficients du numérateur et du dénominateur de la fonction de transfert du filtre : H(z)= ∑b m= 0 N n= 0 M m z −m . doit être contenue dans le gabarit pour que le filtre soit utilisable correctement . à savoir : § § § § La fréquence de coupure fc Le module de ’atténuation de |H(f)| dans la bande coupée : ∆ attdB Le module de l’ondulation de |H(f)| dans la bande passante : ∆ ond La largeur de la bande de transition. fir2. Le passage de l’analogique au numérique est tributaire de problèmes d’échantillonnage .a N] −n ∑a z n Par conséquent h=filter(b. a=[a 0. située entre la fréquence de coupure et la zone atténuée ∆ trans Remarques : § § § il peut y avoir plusieurs fréquences de coupure. I. sinon on dit que la méthode diverge :il faut chercher une autre procédure. 29 .x) permet de filtrer le signal x(kTe ). SABRI – Université Sultan My Slimane ..Analyse de filtres numériques La fonction matlab y=filter(b. la sortie du filtre étant y(kTe).Traitement du signal sous MATLAB – M. b=[b0.. faisant souvent perdre au filtre numérique conçu les propriétés du modèle analogique. où d est l’impulsion unité de Dirac. surtout de quantification des échantillons. fir1. remez…permettent la création de filtres suivant plusieurs méthodes..a. La réponse fréquentielle (RF) du filtre...Définition d’un filtre : Un filtre est défini par son gabarit qui donne les limites de tolérance pour les différents paramètres du spectre d’amplitude |H(f)| du filtre.2008 TP VIII FILTRAGE NUMERIQUE Il existe de nombreuses méthodes de synthèse de filtres numériques. Le module de H(f) étant déterminé..

5 z −1 1 − 0. 2. 1 − 0. SABRI – Université Sultan My Slimane . Ainsi le filtre z-1 a un groupe delay égal à une seconde : C’est un retard pure.(1-z −1 ).a)) le retard de groupe en fonction de la fréquence (grpdelay(h)) réponse à une sinusoïde pure de période 100. II.(1.d)) réponse fréquentielle H (TFD d’ordre N=32) (semilogy.La fréquence d’échantillonnage est égale à un par défaut.5. 0. (fonction grpdelay (h)). c'est-à-dire la durée moyenne qui sépare l’apparition du premier échantillon en sortie et l’apparition du premier échantillon à l’entrée. Il est défini par : dθ (ω ) τg = − . Quel effet a le filtre ? Mesurez sur l’allure temporelle des signaux filtrés le décalage induit par le filtre. ω Conséquence : Lorsqu’on veut comparer les données (l’entrée) et les données filtrées (la sortie). 0.5. le retard de groupe. il faut retarder l’entrée de τ g secondes (compensation). 30 . Filtrez deux sinusoïdes de fréquences respectives F2 supérieure et F1 inférieure à F c . indiquez de quel type de filtre s’agit-il (d’après la forme de la réponse en fréquences) et donner les valeurs des fréquences de coupure ainsi que les paramètres de tolérance.Synthèse de filtres numériques : prog2.m : Créez par TFD un passe-bas de caractéristiques : Fe Fc ∆ trans ∆ ond ∆ att 8kHz 1kHz 200Hz 1dB -40dB § § § § § Dessinez le gabarit théorique sur [0. Fe].m Pour chacune des fonctions de transfert H(z) suivantes : z −1 z −1 − 0.a. Comparez ce décalage à la longueur de la RI du filtre.Le retard de groupe τ g d’un filtre est le retard moyen introduit par le filtre.unwrap) zéros et pôles (zplane(b.Traitement du signal sous MATLAB – M.2008 prog1. avec θ (ω ) = angleH (ω ) dω θ (ω ) Le retard de phase est défini par : τ ϕ = − . réponse indicielle (réponse à un échelon unité) Pour chaque filtre. Visualisez la réponse impulsionnelle h de taille n=64 déduite de l’échantillonnage du gabarit (prendre pour h la partie réelle de la TFD inverse des échantillons) et vérifiez si la RF finale est bien dans le gabarit.z −2 ).5. § § § § § § § réponse impulsionnelle h (N=32) (filter(b.(1+ z −1 ). Remarques : 1.5z −5 .5z −1 Déterminez et tracez les caractéristiques suivantes du filtre associé (entre parenthèses les fonctions matlab à utiliser): 0.

Réduction du bruit : On se propose de rehausser une sinusoïde noyée dans le bruit.Traitement du signal sous MATLAB – M.m. Un bruit blanc possède un spectre étalé sur toute la bande fréquentielle. alors que celui du sinus est concentré autour de sa fréquence.m 31 .2008 § Est-il identique pour les deux fréquences F1 et F2? Quelle partie utile du signal filtré de même taille que le signal original peut on garder ? III. prog3. Visualisez le signal et son spectre. Elle consiste à ajouter des harmoniques (fréquences multiples de la fréquence fondamentale) au signal de départ. prog4. _____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir en plus de la partie théorique : Un listing des programmes prog1. Réalisez le filtre adéquat pour extraire les harmoniques 5. En numérique la convolution y(k)=x(k)*h(k) introduit un décalage de l’ordre du filtre qui correspond a u temps de réponse du filtre en analogique.Filtrage d’harmoniques : L’opération de filtrage est réalisée par convolution du signal à filtrer x(k) avec la RI du filtre h(k).m.f0 en plus du fondamental f0. La distorsion harmonique est une forme de distorsion courante en musique. Notez l’amplitude du signal filtré et interprétez sa valeur . Effectuez le filtrage par convolution. prog2. prog4. PARTIE THEORIQUE I.f0 et 11. § Quel gabarit pour atténuer le bruit ? § Réalisez le filtrage par moyenne mobile sur 5 points et comparez les spectres et allures temporelles des signaux bruité et débruité. IV.Filtre à phase linéaire On considère le filtre FIR défini par : H(z)=1+2 z − 1 +3 z −2 1) Montrer que son auto-corrélation G(z)=H(z)H( z − 1 ) est à phase linéaire. En considérant les spectres en dB. Visualisez le signal filtré ainsi que son spectre.m § § § § § Ajoutez à une sinusoïde pure (fondamental f0=100Hz) ses 5 premières harmoniques impaires de même amplitude avec Fe=8kHz et N=1024.m.m § Générez un sinus de fréquence 1kHz échantillonné à 10kHz § Ajoutez un bruit centré au sinus avec un RSB=10dB. 3) Déterminer la réponse impulsionnelle g(n) de G(z). 2) Donner le group delay. il est facile de vérifier que celui de la sortie du filtre est égal à la somme de la réponse fréquentielle du filtre et du spectre du signal d’entrée. SABRI – Université Sultan My Slimane . prog3.

pour une image couleur.j) réelle traduit le degré de luminosité de l’image au point (i. Ainsi une image telle que celle définie ci-dessus.Mémoire occupée par une image : Les images noir et blanc ou couleur occupent beaucoup d’espace mémoire. Vue la taille occupée par une image. ceci est ressenti lors de la conception d’un programme manipulant plusieurs images.144 256 1024 1.536 64 512 262. tif.64.) et le niveau de gris des pixels varie entre 0 et 255=256-1=2 8 -1. 0 correspond au noir (luminosité minimum) et 255 au blanc (luminosité maximum) .j) est appelé pixel (picture cell).1024.Codage d’une image : On parle aussi de compression d’une image.Généralement N est une puissance de 2 (32. 2. 3.…. va occuper NxNx8 bits ou encore NxN octets (un Kilo octets=1Kb=1024 octets=2 10 octets): N Mémoire en bytes Mémoire en Kby 128 16. pixel (1.Le point (i. gif.DEFINITIONS 1.1) (1. surtout en couleur et lorsque les images sont animées.1) (N . N ) ( N . epg. SABRI – Université Sultan My Slimane . il faut prévoir trois matrices qui correspondent aux niveaux du rouge. N ) II. on a inventé des méthodes qui permettent de réduire considérablement la taille mémoire d’une image après compression : On distingue les images bitmap.Traitement du signal sous MATLAB – M. vert et bleu (RVB ou RGB). Tous les niveaux sont codables sur 8 bits (octet ou byte ).j).j) : On l’appelle niveau de gris de l’image au point (i.576 1024=1Mby III.Une image à deux dimensions est définie comme une matrice I(N. jpeg…suivant la méthode de compression utilisée..384 16 256 65. 32 . Ceci pour une image noir et blanc.2008 TP IX NOTIONS de TRAITEMENT d’IMAGES _____________________________________________________________________________________________________ I.048. sa valeur I(i.N) de N ligne et N colonnes.

ce qui nous permet d’effectuer toutes les transformations possibles sur cette image et de 33 .tif dont les pixels ont les niveaux de gris figurant dans la matrice r.tif’) .tif dans une matrice i de type uint8. SABRI – Université Sultan My Slimane .tif’) crée une nouvelle image NxN nom. le nombre de lignes et de colonnes. ce qui exige pour lire l’image un programme spécifique connaissant le code de l’image. Visualisation d’une image imshow (i) %affichage de l’image On peut visualiser une matrice R de type uint8 avec la même commande.Lecture et écriture d’une image : La fonction imread (‘nom de l’image’) permet de lire une image : Si R est une matrice NxN.2008 MATLAB ‘jpg' or 'jpeg' 'tif' or 'tiff' 'gif' 'bmp' 'png' 'hdf' 'pcx' 'xwd' 'cur' 'ico' IV.’nom. le nombre d’octets par pixel. Les niveaux de gris de l’image sont disponibles maintenant dans la matrice i. Exécutez la commande whos pour voir la taille de l’image. il suffit de taper la commande i.Format d’une image : Dénomination Joint Photographic Experts Group (JPEG) Tagged Image File Format (TIFF) Graphics Interchange Format (GIF) Windows Bitmap (BMP) Portable Network Graphics (PNG) Hierarchical Data Format (HDF) Windows Paintbrush (PCX) X Window Dump (XWD) Windows Cursor resources (CUR) Windows Icon resources (ICO) Comme tout fichier formaté.Traitement du signal sous MATLAB – M. la commande imwrite (R. V. gif. mpeg… § Les données : c’est la suite des niveaux de gris de tout les pixels de l’image tenant compte de la méthode de compression. %lecture de l’image cameraman de format tif Cette instruction stock l’image cameraman. il faut la convertir uint8(R) pour la visualiser. le genre de codage utilisé pour compresser l’image… C’est justement le format induit par la méthode de compression : tif. Exemple 1 i=imread (‘cameraman. une image en mémoire est un fichier qui possède deux champs : § Une entête : c’est une suite d’octets spécifiant le nombre de lignes et de colonnes de l’image. Si R est de type double. Pour connaître les niveaux de gris de l’image.

x(i. j − 1) x (i − 1. x(i-1. v=mean(d(:)) . il serait indispensable de convertir les images sources avant leur traitement de la manière suivante : isource = fread (‘nom_image’) .) consiste à créer une nouvelle image y(. d=(i-m). sup=max(x (:)) . Ces neuf pixels forment une fenêtre locale :  x (i − 1.. x(i. x(i-1. 2 a1. 2 a2. j + 1)   On considère d’autre part « un masque » de taille 3x3 à coefficients ai. j − 1) x (i + 1. inf=min(x( :)) . j ) x (i + 1. s=sqrt(v) . SABRI – Université Sultan My Slimane .j+1)..Filtrage d’une image On considère le pixel x(i. 3  a 3.j+1). j ) x(i .j-1).j) d’une image donnée. j − 1) x (i . % donne la moyenne de tous les niveaux de gris :un scalaire % donne la moyenne de chaque colonne de l’image : un vecteur % donne la moyenne de chaque ligne de l’image : un vecteur % écart quadratique : une matrice % variance des niveaux de gris : un scalaire % écart type des niveaux de gris : un scalaire % Le niveau de gris le plus faible: un scalaire % Le niveau de gris le plus élevé: un scalaire 2. 1.calcul de la moyenne et de l’écart type prog1. mc=mean (i) . id=double (isource) ..1 a 2. x(i+1.tif ainsi que les caractéristiques suivantes : m=mean (i( :) ). x(i+1.j). et on s’intéresse à ses 8 pixels proches voisins : x(i-1. 3    a 2.. j ) x(i − 1.j-1).j+1) et x(i+1.j donnés :  a1.) en glissant le masque point par point et en effectuant une combinaison pondérée linéaire des niveaux de gris : 34 ..2008 sauver les résultats du traitement dans une autre image (il faut la convertir au type double avant de la manipuler x=double(i)).^2 .1 a 3.m : Calculer la moyenne arithmétique et l’écart type des niveaux de gris de l’image cameraman.Traitement du signal sous MATLAB – M.1 a1. ml=mean (i) . j + 1)  x (i .j). VI. j + 1)     x( i + 1. 2 a3. C’est sur id que seront appliqués les traitements.Opérations sur les images Les opérations mathématiques nécessaires s’effectuent sur des variables de type double . 3    Un filtrage linéaire de l’image x(.j-1)..

n .m qui effectue le filtrage local 3x3 et visualisez le résultat pour plusieurs images.j) 35 . a est une matrice composée de 1 et de 0. j ) = ∑∑ a m.Traitement du signal sous MATLAB – M. Choisissez plusieurs seuils.j)=Im(i.2008 m =3 n =3 m =1 n =1 y (i . SABRI – Université Sultan My Slimane . prog3.m § § § § Réalisez un programme qui effectue le seuillage d’une image. qui consiste en deux étapes : • Ranger les niveaux de gris de la fenêtre locale de x dans l’ordre croissant. Quel est l’effet du filtre ? Filtrage médian Le filtrage médian est une opération non linéaire.j)=Im(i+1. Méthode du gradient : Le calcul des pixels de C s’effectue en faisant la soustraction des pixels voisins de Im : • Horizontalement (gradient horizontal): C(i. prog4. Filtrage par la moyenne Les coefficients du masque sont tous égaux à 1/9 : Réalisez un programme prog2.N) est lui-même une image C de même taille NxN : L’image C contient les limites ou frontières ou périmètres des objets contenus dans Im. Par exemple si Im est la photo d’un disque plein alors C sera une image contenant un cercle de même centre et rayon que le disque. La détection du contour est l’opération mathématique et informatique qui permet de déduire C à partir de Im.j) le niveau de gris médian (qui se classe au cinquième rang parmi les neuf niveaux). • Affecter à y(i. Matlab permet en une seule instruction de comparer les éléments d’une matrice M à un seuil donné s : a=(M>s).Détection du contour d’une image Le contour d’une image Im(N. j + n − 2) On voit bien que y est une convolution bidimensionnelle de x et a. j+1)-Im(i. Effectuez le seuillage sur plusieurs images.j) • Verticalement (gradient vertical): C(i. VII.x (i + m − 2. y compris la moyenne de l’image. Afficher l’image originale et l’image seuillée en même temps VIII.m Réalisez le filtrage médian et expliquez son effet en le comparant au moyennage. j)-Im(i.Seuillage d’une image (Binarisation) Le seuillage d’une image consiste à choisir un nombre réel s (threshold) et de tester les pixels de l’image point par point et ligne par ligne : tout niveau de gris inférieur au seuil s est mis à zéro (noir) sinon il est mis à 255 (blanc) ou 1 : Binarisation.

Traitement du signal sous MATLAB – M.m. Réalisez un programme qui donne le contour vertical d’une image et visualisez le résultat.… end end prog5. %parcours des lignes i %parcours des colonnes j Original Saturn Image Edge Map Original Image Corrupted Image Filtered Image ____________________________________________________________________________________________________ Le compte rendu de la séance doit être rédigé sur la feuille qui vous est fournie et doit contenir : Un listing des programmes : prog1. prog4.m.m § § § § Réalisez un programme qui donne le contour horizontal d’une image et visualisez le résultat. prog5. prog3. prog2. SABRI – Université Sultan My Slimane .2008 Il faut prendre la valeur absolue des diffé rences !! Le parcours d’une image ligne par ligne (ordre lexicographique) dans un programme s’effectue de la manière suivante : for i=1 :N for j=1 :N traitement1 . traitement2 . Testez le programme sur plusieurs images. Générez et visualisez l’image moyenne des deux contours précédents.m.m 36 .m.