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

SABRI – Université Sultan My Slimane .4 5 6 .Traitement du signal sous MATLAB – M.2008 >>g=(a/b)*c >>h=a^2 5. • [ a b c ] est un vecteur ligne. § § § § >>v3=1:10 >>v4=1:-0.Les matrices Saisir la matrice 3x3 suivante : a=[1 2 3 .N) est le vecteur ligne à N éléments égaux à 1.pas=8. cos.b . >>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.pas=0. . exp…) >>help elfun 7.N) est le vecteur ligne nul à N éléments. il est égal à 1 automatiquement.c .5:-1 >>debut=0. 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. • 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.1. >>v5=debut:pas:fin >>debut=0.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 .fin=2*pi. • 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). log. • [a .Opérations sur les vecteurs § Il faut respecter les dimensions des vecteurs et matrices. 6.fin=256. La fonction eig donne les valeurs propres de la matrice a. si le pas n’est pas spécifié.] est un vecteur colonne. 4 où pi désigne le nombre 3. Si vous entrez la commande a(:) vous obtenez le vecteur colonne [1 4 7 2 5 8 3 6 9]’.Les matrices et les variables vectorielles Matlab est optimisé pour l’usage matriciel : Eviter les formulations non matricielles. • Ones(1.

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

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

Fonctions conseillées :abs(x). Comparer avec la fonction matlab std. 1 + j. Les paramètres d’entrée sont le vecteur fréquence f=0:fmax et le vecteur complexe H. end Qui est équivalente à : indice=debut . 1. debut=debut+pas.100) Comparer avec la fonction matlab mean.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.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 . Exemple 3 : Diagramme de bode.n. 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 . fc fc fc étant la fréquence de coupure demandée par le programme et fournie par l’utilisateur à l’exécution. 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. Utilisez la fonction spectre dans un programme indépendant myfilter. x étant un vecteur de composantes x(i) . (B) instruction. Mise en œuvre de la fonction >>moyenne(1:100.angle(x) et log10(x). i=1.2008 for indice=debut:pas:fin instruction . si debut=fin aller à B. 1 fc H1(f)= . SABRI – Université Sultan My Slimane ..Créez une fonction spectre(f.m qui donne la valeur efficace s et la puissance moyenne p d’un signal.Traitement du signal sous MATLAB – M. Exemple 2 : Créez une fonction puissance. H2 (f)= f f 1 + j.

n [ ] 7. N ) = ∑ k =0 N xk k! Réaliser : • • • Une fonction factoriel(n) qui calcule le factoriel d’un entier naturel. PARTIE THEORIQUE 1. Même question pour s(n)= ( ) n 3 5. Trouver les complexes z tels que : z N = z − N 6.m factoriel(n) somme(x. 2.m prog2.H) myfilter. Un programme prog3.m qui calcule la valeur de l’exponentiel de 2 avec une précision (incertitude relative) supérieure à 95% (incertitude inférieur à 5%).2008 s( x. ∞ 1 1 3.n).m 8 . 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.m spectre(f.n) qui calcule s(x. nα = e j. De même retrouver les expressions de cos(a+ß) et sin(a+ß).m puissance. trouver les racines cubiques de 1. Trouver les expressions de cos(na) et sin(na) pour n=2 et n=3.α . SABRI – Université Sultan My Slimane .Traitement du signal sous MATLAB – M. Calculer le produit infini 8. Calculer la somme ∑ s ( n) . Une fonction somme(x. avec s(n)= n + j n 2 3 n =1 j 4.n) prog3. En utilisant e j.

s(2Te ).Te défini par : z(k)=x*y(k)= ∑ x ( m) y( k − m + 1) .Définition Un signal numérique s(k) est une suite de N échantillons régulièrement espacés de Te secondes : s(0.01s visualisez à l’aide d’un programme Rec(k) en précisant sur la figure l’axe du temps avec l’unité de mesure.Visualisation du signal s Pour visualiser s(kTe) correctement à l’écran. 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.s).Te . • 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.s((N-1)Te) La grandeur Fe=1/Te est appelée fréquence d’échantillonnage : c’est le nombre d’échantillons par seconde.s(Te). Remarque : la commande plot(s). il faut préciser l’axe du temps t=k Te : t=0:Te:(N-1)*Te . Signal numérique 100 80 60 40 20 0 Te 2Te 3Te kTe (secondes) 4Te kTe II. SABRI – Université Sultan My Slimane .N . ce qui est rarement le cas. plot(t. Pour N=512 et Te=0. k=1…2N-1 m =1 k s(kTe) 9 . dessine s(k) en fonction de 1. Le nombre d’échantillons N est le plus souvent une puissance de 2 : N= 2 p où p est un entier naturel. la convolution de x et y est un signal z(k) de durée (2N-1).….2.2008 TP II NOTIONS DE SIGNAL NUMERIQUE _________________________________________________________________________________________________________________ I.Traitement du signal sous MATLAB – M. c’est-à-dire Te=1.….).

f 2 . On prendra N=512.N). § § § 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. SABRI – Université Sultan My Slimane . 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).k . 2.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.Traitement du signal sous MATLAB – M. 10 .2kf t) 1 k =1 1 (−1) k s2(t)= ∑ . Fe=8Khz pour s1 et f2 =1/2 Hz .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.m. Fe=100Hz pour s2. Générez et visualisez en même temps.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 . Dont la puissance est Pb = m 2 + σ 2 (Puissance de la moyenne plus celle des fluctuations autour de cette moyenne). A quel instant k. cos( 2π . Observez la forme de z(k) ainsi que sa largeur par rapport à celle de Rec(k).. La fonction b=randn(1. sin( 2π .t ) k k =1 Avec : N=1024.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. 1. Ainsi pour générer un vecteur bruit blanc de taille N. f1=50Hz. Un coefficient multiplié par randn permet d’augmenter à volonté la puissance du bruit. z(k) est-il maximal ? Quel est la valeur de ce maximum ? Interpréter. les deux signaux s1 et s2.m qui effectue la convolution de x(k)=Rec(k) avec lui-même et visualisez Rec(k) et z(k) résultant. b(k2) reste aussi imprévisible qu’avant).x) Exemple 3 : Signaux harmoniques On considère les deux signaux : s1(t)= 4 4 ∑ 2k .Réalisez un programme prog1. à l’aide d’un programme prog2. 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).

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

b) Calculer la valeur moye nne de s(t). Cn désigne un coefficient de Fourier. d) On définit le spectre de puissance du signal s(t) par Pn=C n 2 .2008 2. c) Calculer la série de Fourier de s(t).Soit le signal périodique de période T=2 π : s(t)=0 si . 3. 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. prog3. c) Calculer la série de Fourier de s(t).Soit le signal s(t) de période T avec 0< θ <T/2 : s(t)=A.θ /2 ou T/4+ θ /2 < |t| a) Tracer s(t). b) Calculer la valeur moyenne de s(t). prog2. SABRI – Université Sultan My Slimane .sign(t) si T/4.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). c) Calculer la série de Fourier de s(t). 4. b) Calculer la valeur moyenne de s(t).Traitement du signal sous MATLAB – M.m.m 12 .m.π < t <0 s(t)=sin(t) si 0= t < π a) Tracer s(t). Calculer Pn.θ /2 < |t| < T/4+ θ /2 s(t)=0 si |t| < T/4.

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 . k=0…N-1 est définie par : S(f)=S( N −1 n . II. SABRI – Université Sultan My Slimane .Fe )= ∑ s (kTe) Exp[ − j 2πkn / N ] . § L’observation d’un signal physique se fait durant un intervalle limité [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.Traitement du signal sous MATLAB – M. on parle de FFT (Fast Fourier Transform).Transformée de Fourier Discrète : La TFD d’ordre N d’un signal numérique s(kTe ). 13 1 N / 2−1 ∑ S (nFe / N )Exp[ j 2πkn / N ] .Te )] −∞ +∞ Où : sin c (u ) = sin( πu ) .2008 TP III TRANSFORMEE de FOURIER DISCRETE (TFD) _____________________________________________________________________________________________________ I.Echantillonnage des signaux analogiques Considérons un signal analogique s(t) avec t ∈ R. c’est-à-dire prélever à une cadence Te secondes des valeurs s(k) de s(t) : s[-(N-1)Te]…s[Te]. Pour pouvoir manipuler ce signal par un logiciel tel que matlab on doit l’échantillonner. 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.s(0). 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). Ceci nous permet de limiter la bande significative du spectre et par la suite appliquer le théorème de Shannon.s[Te]…S[(N-1)Te]… Après traitement du signal échantillonné et obtention des résultats projetés.T] ce qui donne le plus souvent un spectre très étalé. πu Obstacles pratiques : § Les signaux physiques observés possèdent le plus souvent des spectres de Fourier occupant des bandes fréquentielles illimitées. k=0…N-1 N n =− N / 2 . donc F max est infini. Pour pallier ces difficultés. 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.

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

sur 2 secondes. Générer et visualisez la convolution z(k) de Rec(k) avec lui-même (utilisez la fonction conv(Rec.Propriétés de la TFD On considère les signaux causals x(k) et y(k). II. Générer et visualisez Rec(k).Donner l’expression de la transformée de Fourier analogique du signal démodulé mais non filtré : sdm(t)=s m(t). 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.cos(2 π fpt) en fonction de S(f).Rec)) ainsi que sa TFD et sa phase (Les n/8 points uniquement). 1.m.x(k). Comparez la TFD de z(k) et le carré de la TFD de Rec(k). Déterminer la TFD de k.Donner l’expression de la transformée de Fourier analogique de sm(t)=s(t). 3.2008 prog2. Déterminer la TFD de x(k-k0). SABRI – Université Sultan My Slimane .cos(2 π fpt). en fonction de S(f).m § § § § § prog3. 4. 2. 1.Traitement du signal sous MATLAB – M. PARTIE THEORIQUE I. prog2. Visualisez wave et sa TFD.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. Testez plusieurs valeurs de σ 2 et de f0 . prog3.Fmax]. Générez wave(k) une onde carrée à l’aide de la fonction square( pour l’utiliser correctement tapez help square). 2. Déterminer la TFD du produit xy. Déterminer la TFD de x(k)*y(k).Proposez une méthode pour extraire S(f) de sdm(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 § 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. 3.m 15 .

m qui : § § § Visualise sur une même figure les deux fenêtres citées et leurs spectres d’amplitude sur [0.m par chacune des deux fenêtres. Hamming. Réalisez prog2. Conclure.128. Comparez l’effet des deux fenêtres proposées.1024. qui ont chacune des effets différents : Blackman.5Hz]. 64. Les analyseurs de spectre (appareils qui donnent le spectre d’un signal) proposent de nombreuses fenêtres d’analyse.64.Traitement du signal sous MATLAB – M. 32.512.32.8.4.2008 TP IV I. Observez l’effet du fenêtrage sur le spectre. 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 ».Influence de la taille de la fenêtre d’observation (windowing). Il est possible d’appliquer la TFD sur la totalité ou une partie d’un signal de taille N. § Vérifiez que le produit p=M ∆ f est constant.2028. 0. Multiplie terme à terme la sinusoïde s(k) du prog1. de taille N=512 échantillonnée à 1kHz.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 . SABRI – Université Sultan My Slimane . § Visualise les modules des TFD d’ordres M=16.4056… 1. 16 . 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). La partie analysée est appelée fenêtre d’observation. Réalisez prog1. Conclure sur l’utilité de ces deux fenêtres. On prendra soin de manipuler des signaux de tailles N=2 p : 2. 256.m qui : § Génère une sinusoïde s(k) de fréquence 100Hz. 128. et visualise les spectres résultants.16.256. 2.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. On va mettre en évidence le fait que la précision fréquentielle (résolution) augmente avec la taille de la fenêtre.

Utiliser xcorr(x.m qui : § § § § § Génère un signal échantillonné à 1kHz de 1024 points. 17 .’biased’) . Plus ∆ f est petite plus la résolution est haute.Calcul du spectre par auto-corrélation : Réalisez prog4.x.Traitement du signal sous MATLAB – M. 2.Déterminer l’énergie Es et la densité spectrale de puissance γ s du signal s(t)=u(t). 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. Visualise un bruit bla nc b(k). 1.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. SABRI – Université Sultan My Slimane . 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.sin(2 π f0t+ ϕ ). vérifiez le théorème de Wiener-kinchine. En comparant R(n) et X(n).m qui : § § § Visualise la TFD X(n) d’un signal rectangulaire x(k). PARTIE THEORIQUE On désigne par u(t) l’échelon unité.exp(-at) avec a réel positif.Déterminer la puissance moyenne Px et la dsp γ x du signal déterministe x(t)=A. sa fonction d’autocorrélation R(n) et la TFD de R. résultat de l’addition de deux sinusoïdes de même amplitude A et de fréquences respectives 100Hz et 105Hz. son auto -corrélation B(n) et la TFD de B. 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. Réalisez prog3.2008 II.500Hz]. 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. nul pour t négatif et égal à 1 ailleurs.

a. 5.m.m.Quelle est la puissance ?P localisée dans la bande [f0. prog2.∆ f/2. prog3.2008 3.Déterminer la puissance moyenne Px et la dsp γ y du signal aléatoire y(t)=A.sin(2 π f0t+ ϕ ). 4. f0 + ∆ f/2] d’un signal s(t) à énergie finie.∆ f/2. uniforme sur [0. SABRI – Université Sultan My Slimane .2 π ].Traitement du signal sous MATLAB – M. 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) à puissance moyenne finie.Quelle est l’énergie ?E localisée dans la bande [f0. où ϕ est une v.m.m 18 . prog4.

avec P0 P0=10-16. 19 . L’oreille possède une sensibilité logarithmique : un facteur deux ressenti correspond à un facteur dix en puissance.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 . Une membrane (le tympan) sensible aux variations de pression dans le canal externe. la puissance en dB s’écrit : PdB = 10. Un son audible est caractérisé par : • 1.Traitement du signal sous MATLAB – M. Le même timbre correspond à plusieurs phases relatives ou formes temporelles. 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). Intensité : la puissance acoustique du son en Watts par centimètre carré. Elle dépend de la direction (position relative à la source du son) • • Hauteur : la fréquence de la fondamentale en Hertz. Ne dépend pas de la distance à la source. moyennes et basses fréquences. Une partie interne hétérogène qui détecte les hautes. Timbre : le contenu en harmoniques (les multiples du fondamental). La puissance est proportionnelle au carré de la pression subie par le tympan. SABRI – Université Sultan My Slimane .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).2008 TP V AUDIO NOTIONS de TRAITEMENT _____________________________________________________________________________________________________ I. P étant la puissance par cm2 .

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

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

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

puis visualisez le son et le spectre puis écouter le résultat. x2.2008 • • Visualisez les spectres de phase et d’amplitude correspondant à y. Afficher x1.Traitement du signal sous MATLAB – M. prog3. 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.m Modifier le contenu de x.m 23 . en effaçant quelques passages. y ainsi que leurs spectres d’amplitude.m.m. prog4. prog2. SABRI – Université Sultan My Slimane . prog4.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. prog3.m.

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

1. y = qammod(x. % message aléatoire y = qammod(x. 2.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). % effectue le tracage QAM-32 M = 32. % modulation Visualisez x et y. % additive white Gaussian noise à y z = pmdemod ( y.M). scale = modnorm(y. phasedev). Fe.15. % Plot the scaled constellation. En voici deux exemples : PSK-16 M = 16.2008 Visualiser les deux signaux x et y.M).'measured'. y. y = scale*y.M). ynoisy = awgn(y. Soit y(t) le signal réel défini par sa transformée de Fourier : 25 . II. y et z. scatterplot(y). Fp.Traitement du signal sous MATLAB – M.M)). % taille de l’alphabet x = randint(5000. Bruit du canal et démodulation On additionne du bruit blanc gaussien à y (bruit du au canal de transmission). SABRI – Université Sultan My Slimane . % Scale the constellation.'peakpow'.10. 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). y = awgn(y. puis on effectue la démodulation de phase. % démodulation Visualisez x.'measured').1).103).M).Modulations numériques 1. z = qamdemod(ynoisy. scatterplot (pskmod(x. Visualisez les signaux x. x = int16([0:M-1]).Modulation QAM-16 M = 16. % bruit additive du canal scatterplot(ynoisy). % Le nombre de symboles de l’alphabet à transmettre x = int16([0:M-1]). % Demodulate.

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

ˆ ˆ Est ce qu’il y a convergence? N.B.∑ [ x( i ) − µ ( N )] N − 1 i=1 prog2. l’erreur ε (N)=( σ 1. C/2. prog3. ˆ • Calculez les deux estimateurs σ (N) pour les valeurs de N = 1…1000. en utilisant la moyenne empirique étudiée au début du TP. l’erreur ε (k)=( µ .Traitement du signal sous MATLAB – M.m : Réaliser un programme qui estime C. III.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. SABRI – Université Sultan My Slimane .σ )(N) et l’erreur quadratique ε 2(N). ˆ 1(N).2008 TP VII I.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. On se propose d’étudier le comportement de l’estimateur de la moyenne µ =E[X] suivant (moyenne empirique): 1 N ˆ ( N ) = . ˆ • Visualisez σ Est ce qu’il y a convergence? • Faites de même pour le deuxième estimateur. [ ] 27 . On estime la valeur de la constante en prenant la moyenne de s(k).. ceci pour v=C/10. le signal résultant observé est s(k). II.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 )] N i=1 N 1 2 2 ˆ ˆ σ 2 (N) = . ˆ • Visualisez µ (k). Utiliser mean().5. • Calculez l’estimateur µ (N) pour les valeurs de k = 1. C/4.0).∑ x(i ) µ N i =1 prog1.µ )(k) et l’erreur quadratique ε 2(k). 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 ) = .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.n. : Avant chaque génération de bruit il faut initialiser le processus de génération à l’aide de la commande rand('state'.

SABRI – Université Sultan My Slimane .Montrer que cet estimateur est non biaisé.Donner le biais et la variance de l’estimateur de la variance empirique : 1 N 2 2 ˆ ˆ σ 1 ( N ) = .2008 PARTIE THEORIQUE 1.Considérons le nouvel estimateur empirique : 1 N −n ˆ ˆ R X ( n) = R X (− n) = .∑ X ( i ) µ N i=1 2. prog3.Donner le biais et la variance de l’estimateur de la moyenne empirique : 1 N ˆ ( N ) = .Estimation empirique de la fonction de corrélation Soit N échantillons [x1.Traitement du signal sous MATLAB – M.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(i ) − µ ( N )] N i=1 3.x(k+n)].m 28 . On peut généraliser l’estimation empirique pour n=0…N-1.m. sous la forme : 1 N −n ˆ ˆ R X ( n) = R X ( − n ) = . ∑ x k . prog2. _____________________________________________________________________________________________________ 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. ∑ xk .x k + n N − n k =1 a.…xN] extraits d’un signal stationnaire X centré d’ordre deux de fonction de corrélation inconnue RX(n)=E[x(k).m. b.

la sortie du filtre étant y(kTe). 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 . Les fonctions filter... Le module de H(f) étant déterminé. faisant souvent perdre au filtre numérique conçu les propriétés du modèle analogique. 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. 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. |H(f)| § Passe haut ∆ tra ∆ ond ∆ att coupée passante| f1 fc Fe/2 f II. I. b=[b0.a N] −n ∑a z n Par conséquent h=filter(b. à 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. où d est l’impulsion unité de Dirac. Le passage de l’analogique au numérique est tributaire de problèmes d’échantillonnage . 29 . fir2.Traitement du signal sous MATLAB – M.. remez…permettent la création de filtres suivant plusieurs méthodes. doit être contenue dans le gabarit pour que le filtre soit utilisable correctement . SABRI – Université Sultan My Slimane .Analyse de filtres numériques La fonction matlab y=filter(b.b M].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.x) permet de filtrer le signal x(kTe ). sinon on dit que la méthode diverge :il faut chercher une autre procédure..a. fir1.a.. surtout de quantification des échantillons.d). La réponse fréquentielle (RF) du filtre. a=[a 0.

Il est défini par : dθ (ω ) τg = − . (fonction grpdelay (h)).Synthèse de filtres numériques : prog2. avec θ (ω ) = angleH (ω ) dω θ (ω ) Le retard de phase est défini par : τ ϕ = − .(1. réponse indicielle (réponse à un échelon unité) Pour chaque filtre.(1-z −1 ). 0.a)) le retard de groupe en fonction de la fréquence (grpdelay(h)) réponse à une sinusoïde pure de période 100.5. Fe]. 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. ω Conséquence : Lorsqu’on veut comparer les données (l’entrée) et les données filtrées (la sortie). Ainsi le filtre z-1 a un groupe delay égal à une seconde : C’est un retard pure.Le retard de groupe τ g d’un filtre est le retard moyen introduit par le filtre.unwrap) zéros et pôles (zplane(b.z −2 ). II.(1+ z −1 ).d)) réponse fréquentielle H (TFD d’ordre N=32) (semilogy. § § § § § § § réponse impulsionnelle h (N=32) (filter(b. Comparez ce décalage à la longueur de la RI du filtre.5 z −1 1 − 0. Remarques : 1.Traitement du signal sous MATLAB – M.5z −1 Déterminez et tracez les caractéristiques suivantes du filtre associé (entre parenthèses les fonctions matlab à utiliser): 0. 2.5z −5 .2008 prog1.a. 30 . SABRI – Université Sultan My Slimane . le retard de groupe. il faut retarder l’entrée de τ g secondes (compensation).5.5. Filtrez deux sinusoïdes de fréquences respectives F2 supérieure et F1 inférieure à F c .m Pour chacune des fonctions de transfert H(z) suivantes : z −1 z −1 − 0.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. 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. 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.La fréquence d’échantillonnage est égale à un par défaut. 1 − 0. 0. Quel effet a le filtre ? Mesurez sur l’allure temporelle des signaux filtrés le décalage induit par le filtre.

m. prog2. SABRI – Université Sultan My Slimane . prog4.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 et 11. Réalisez le filtre adéquat pour extraire les harmoniques 5.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.m. La distorsion harmonique est une forme de distorsion courante en musique. alors que celui du sinus est concentré autour de sa fréquence. _____________________________________________________________________________________________________ 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 § § § § § 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 31 . Elle consiste à ajouter des harmoniques (fréquences multiples de la fréquence fondamentale) au signal de départ.m § Générez un sinus de fréquence 1kHz échantillonné à 10kHz § Ajoutez un bruit centré au sinus avec un RSB=10dB. Visualisez le signal et son spectre. 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. prog4. prog3. En considérant les spectres en dB. PARTIE THEORIQUE I. 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. IV. § 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é. 3) Déterminer la réponse impulsionnelle g(n) de G(z). Visualisez le signal filtré ainsi que son spectre.Réduction du bruit : On se propose de rehausser une sinusoïde noyée dans le bruit. 2) Donner le group delay. prog3. Effectuez le filtrage par convolution. Un bruit blanc possède un spectre étalé sur toute la bande fréquentielle. Notez l’amplitude du signal filtré et interprétez sa valeur .Traitement du signal sous MATLAB – M.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.f0 en plus du fondamental f0.

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

le nombre de lignes et de colonnes.tif dans une matrice i de type uint8. %lecture de l’image cameraman de format tif Cette instruction stock l’image cameraman.tif’) crée une nouvelle image NxN nom. il suffit de taper la commande i.’nom. V. Pour connaître les niveaux de gris 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. il faut la convertir uint8(R) pour la visualiser.tif dont les pixels ont les niveaux de gris figurant dans la matrice r. Exécutez la commande whos pour voir la taille de l’image. SABRI – Université Sultan My Slimane . le genre de codage utilisé pour compresser l’image… C’est justement le format induit par la méthode de compression : tif.Traitement du signal sous MATLAB – M.2008 MATLAB ‘jpg' or 'jpeg' 'tif' or 'tiff' 'gif' 'bmp' 'png' 'hdf' 'pcx' 'xwd' 'cur' 'ico' IV. 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. gif. le nombre d’octets par pixel. ce qui nous permet d’effectuer toutes les transformations possibles sur cette image et de 33 .tif’) .Lecture et écriture d’une image : La fonction imread (‘nom de l’image’) permet de lire une image : Si R est une matrice NxN. Si R est de type double.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é. la commande imwrite (R. ce qui exige pour lire l’image un programme spécifique connaissant le code de l’image. Les niveaux de gris de l’image sont disponibles maintenant dans la matrice i. 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. Exemple 1 i=imread (‘cameraman.

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

j)=Im(i. • Affecter à y(i.2008 m =3 n =3 m =1 n =1 y (i . prog3. 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.m qui effectue le filtrage local 3x3 et visualisez le résultat pour plusieurs images. Matlab permet en une seule instruction de comparer les éléments d’une matrice M à un seuil donné s : a=(M>s).j) • Verticalement (gradient vertical): C(i.x (i + m − 2.Détection du contour d’une image Le contour d’une image Im(N. j+1)-Im(i. Quel est l’effet du filtre ? Filtrage médian Le filtrage médian est une opération non linéaire. Filtrage par la moyenne Les coefficients du masque sont tous égaux à 1/9 : Réalisez un programme prog2. La détection du contour est l’opération mathématique et informatique qui permet de déduire C à partir de Im.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. j + n − 2) On voit bien que y est une convolution bidimensionnelle de x et a. Afficher l’image originale et l’image seuillée en même temps VIII. j)-Im(i. Effectuez le seuillage sur plusieurs images.m Réalisez le filtrage médian et expliquez son effet en le comparant au moyennage.j) 35 . n . j ) = ∑∑ a m. 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. VII. qui consiste en deux étapes : • Ranger les niveaux de gris de la fenêtre locale de x dans l’ordre croissant. a est une matrice composée de 1 et de 0.Traitement du signal sous MATLAB – M.j)=Im(i+1. SABRI – Université Sultan My Slimane . y compris la moyenne de l’image. Choisissez plusieurs seuils.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. prog4.m § § § § Réalisez un programme qui effectue le seuillage d’une image.j) le niveau de gris médian (qui se classe au cinquième rang parmi les neuf niveaux).

prog2. prog4.m. traitement2 .m.Traitement du signal sous MATLAB – M.m § § § § Réalisez un programme qui donne le contour horizontal d’une image et visualisez le résultat. Générez et visualisez l’image moyenne des deux contours précédents. prog3.m 36 . Réalisez un programme qui donne le contour vertical d’une image et visualisez le résultat.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 .… end end prog5. prog5. Testez le programme sur plusieurs images.m. SABRI – Université Sultan My Slimane . %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.m.

Sign up to vote on this title
UsefulNot useful