Vous êtes sur la page 1sur 6

TP DEUG STPI 2me Anne

TP de traitement de signal

Travaux Pratiques De Traitement De Signal


Modalit de contrle des connaissances : Compte-rendu de manipulation. Les tudiants veilleront accorder une grande importance la clart des compte-rendus, la rigueur des schmas, ainsi qu la pertinence des commentaires.
SIGNAUX DETERMINISTES

Sur lexemples ci-dessous, on trouve des blocs qui reprsentent chacun une fonction. Le bloc sine wave par exemple est un gnrateur sinusodal que lon va pouvoir visualiser a laide du bloc scope qui simule un oscilloscope.

Sine Wave

Scope

Q1) A laide des blocs de simulink, visualiser les signaux dterministes : 1. Echelon, rampe. 2. Signaux sinusodaux : sin, cos de priode T = 10 s, 5 s. 3. Signaux alatoires tels que les bruits par exemple. Pour raliser ces signaux, utiliser les blocs qui se trouvent dans simulink / sources (pour les diffrents signaux) et le scope qui se trouve dans simulik / sinks. ( Double-cliquez sur le bloc source afin de modifier ses paramtres.) Q2) Raliser laide de simulink le signal x(t)= 2*sin(2*pi*f1*t)+sin(2*pi*f2*t), avec f1 = 0.1 Hz et f2 = 1 Hz, et visualiser le signal ainsi gnr. Pour raliser ce signal, utiliser le bloc Fcn qui se trouve dans simulink / Functions & Tables.
10 Clock Fcn

X(t)
Scope

Le bloc clock sera le temps qui est lentre du systme. Les deux blocs clock et Fcn forment le gnrateur du signal x(t).
SIGNAUX DISCRETS

Pour obtenir un signal discret, il faut faire un chantillonnage du signal correspondant. A laide dun bloc bloqueur dordre zro ( Simulink / Discrete ) on peut effectuer lchantillonnage du signal.

Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr

-1-

TP DEUG STPI 2me Anne

TP de traitement de signal

Q3) Effectuer lchantillonnage dun signal sinusodal (T = 10 s) et le visualiser. Remarque : Matlab est un logiciel de calcul numrique ( et non formel ! ), en consquence il traite les signaux de manire numrique (table de valeurs), les signaux sont "chantillonns" de manire automatique (bloqueur dordre 1) (on peut augmenter le nombre dchantillon : menu Simulation / Simulation parameters ). Q4) Vrifier cette remarque laide de MatLab en utilisant length(x) et en mettant dans simulink le bloc To WorkSpace (paramtres : Save Format : Array ).

ANALYSE SPECTRALE Le spectre du signal x(t) est constitu de raies spectrales aux frquences : n*f0. f0 est appele frquence fondamentale et les frquences n*f0 sont appeles harmoniques.

X ( f ) = ! x(t )e # j 2$ft dt
#"

"

X(f) reprsente le spectre du signal x(t). Transforme de Fourier discrte (frquence d'chantillonnage fe = 1/Te):

X(f ) =

n = "#

$ x(n.Te).e

+#

" j 2 !fnTe

avec n Z

Q4) Analyse de fourrier dun signal carr.


1. Crer un signal carr de 0 5 s, de frquence 20 Hz la priode dchantillonnage de 1000 Hz. 2. Effectuer la fft sur 5000 points . (Pour aide tapez help fft). 3. Crer une variable pour le demi-axe des frquences. 4. Tracer le module de la fft en fonction de la frquence. Tracer la phase du signal. Q5) A partir du signal de la question Q2) et en utilisant Simulink, effectuer lanalyse spectrale de ce signal (transforme de fourrier) afin de mettre en vidence les frquences du signal. Utiliser le bloc Power Spectral Density .

Q6) Retrouver les rsultats de lanalyse spectral en utilisant des fonctions Matlab ( fft ). Aidez vous du menu help de MatLab.

Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr

-2-

TP DEUG STPI 2me Anne

TP de traitement de signal

FILTRAGE ET PRODUIT DE CONVOLUTION

Le produit de convolution de signaux discrets est donn par la formule :


y (i ) = h ( n ) $ x ( n ) =
n = +" n = #"

! h(n). x(i # n)

avec n,i N

Afin dappliquer cette formule, on va sappuyer sur lexercice 2 du TD 4 : On rappel : x = [0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0]; et h = [1 0 -1]; ces deux matrices sont dfinies sous matlab de la manire suivante : >> a=zeros(1,4) a= 0 0 0 0 >> x=[a b a] x= 0 0 0 > b=ones(1,8) b= 1 1 1 1 >> h=[1 0 -1] h= 1 0 -1

Linstruction du produit de convolution est conv2(x,h,same). (voir la signification de conv2 dans laide !) >> y=conv2(x,h,same) y= 0 0 0 1 1 0 0 0 0 0 0 -1 -1 0 0 0

Q7) Appliquer la mme mthode pour trouver le signal image de 2 dimensions [16x16] y(i,j),
limage x(i,j) filtre par h(i,j) de la question 3 de lexercice 2 TD4. Noter et analyser la matrice y(i,j) rsultantes ainsi le rle du filtre h(i,j).

Q8) Dtection du contour dune image.


linstruction edge dans Matlab calcule le contour de limage. Ce type de filtrage sappelle dtection de contour. Plusieurs variantes de ce filtrage existent : sobel, prewitt, y = edge(I, 'sobel', THRESH); soit THRESH=0.001; imshow(I), pour afficher limage. On peut appliquer cet mthode sur nimporte quel image I = imread('image.tif'); pour lire limage et le mettre sous forme matricielle dans I. Puis on applique la fonction edge sur I. Appliquer cet algorithme sur une image choisie par vous. Dtecter le contour. Analyser et commenter.

Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr

-3-

TP DEUG STPI 2me Anne

TP de traitement de signal

Q9) Filtre RII (TD 5)


h(n) comme la rponse impulsionnelle du filtre numrique

x(n)

h(n)

y(n)

Lquation rcursive de la sortie est :

y( n ) = 0.1x( n ) + 1.3 y( n ! 1 ) ! 0.4 y( n ! 2 )

a) Raliser sous simulink ce filtre et analyser la sortie. (X est une impulsion de Dirac). On fera attention de paramtrer correctement les blocs (annuler lchantillonnage ralis par les blocs retard). Vrifier la valeur des points obtenues sous MatLab. Exemple pour le filtre : y (n) = 0.2 x(n) + 0.9 y (n ! 1)

b) Ecrire un programme sous MatLab qui ralise ce filtrage (on utilisera le signal x(n) dfini par simulink). Vrifier les valeurs obtenues. c) Calculer la FFT du filtre (linclure dans le programme). d) Appliquer ce filtre au spectre (a calculer) du signal de la question Q2). Exemple pour le filtre : y (n) = 0.2 x(n) + 0.9 y (n ! 1) y(1)=0.2*x(1); y(2)=0.2*x(2)+0.9*y(1); for i=3:N, y(i)=0.2*x(i)+0.9*y(i-1); end y yf=fft(y,1000); n_yf=abs(yf); f=1000*(0:499)/1000; figure; plot(f :n_yf(1:500) zf=fft(z,1000); n_zf=abs(zf); f1=1000*(0:499)/1000; figure; plot(f1,n_zf(1:500)) r=n_zf.*n_yf '; figure; plot(f,r(1:500)) Cration du filtre Calcule de la sortie Y partir de X et h. X est un signal de dirac. ( le premier lment de la matrice X est X(1)) Spectre du filtre

Spectre du signal

Filtrage

Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr

-4-

TP DEUG STPI 2me Anne

TP de traitement de signal

Dcouverte de Sptool
Manipulations - Sous la fentre de commande Matlab, tapez sptool pour lancer sptool. - De la fentre de dialogue de Sptool vous allez pouvoir importer et/ou exporter des donnes depuis/vers des fichiers ou la fentre de commande de matlab. - Avec Sptool, vous allez pouvoir interactivement crer des filtres numriques, visualiser leurs diffrentes rponses et visualisez des signaux et des spectres. On se base sur la synthse d'un filtre (RII) passe-bas avec une bande attnue 40 dB partir de 5Hz et une frquence d'chantillonnage 40 Hz. Prise en main de SPTOOL : Synthse de filtres Dans la fentre SPTool, Cliquez sur 'new design'. Une fentre Filter Designer s'ouvre. Saisissez le type de filtre Butterworth, puis le gabarit (Dcocher la case minimum Order) (Fs,Rs,Sampling Frequency) et cliquez sur 'apply'. Puis cliquez sur 'File / Close'. Votre filtre synthtis apparat avec le nom filt1, donnez lui un nom par 'Edit / Name'. Crer de la mme manire les deux filtre de Chebyshev (avec les mme caractristiques). S1) Visualisation des caractristiques du filtres Dans la fentre SPTool, choisissez un filtre, puis cliquez sur 'View'. Une fentre Filter Viewer s'ouvre. Dans la fentre Filter Viewer, slectionnez les rponses que vous voulez observer (zros/ples, module, phase, retard de groupe, impulsionnelle, indicielle ...) et les chelles utiliser. Zoomez, explorez. Basculez dans la fentre SPTool et slectionnez les trois filtres crs (maintenir enfonc la touche ctrl). Comparer les trois filtres. Visualisation des signaux Dans la fentre de commande de matlab : Crer un vecteur t de 0 4pi sur 1024 points. Crer un vecteur y=2*sin(2*pi*f1*t)+sin(2*pi*f2*t) avec f1 = 1 Hz et f2 = 10 Hz. Charger avec la fonction wavread le fichier 'son.wav' qui se trouve sur le bureau. (spcifier le chemin dans la barre de menu de MatLab) (ATTENTION : aprs ne plus taper dinstruction dans la fentre Commande Window). Dans la fentre SPTool, importez ces diffrents signaux avec 'File / Import'. (ans correspond la dernire rponse donn par MatLab, donc au signal son.wav sous forme matricielle) Choisissez en un ou plusieurs, cliquez sur 'View' et explorez la nouvelle fentre Signal Browser.

S3) Filtrage Dans la fentre SPTool, slectionnez le signal y ainsi que le filtre de Butterworth, puis cliquez sur 'Apply'. Renommer le signal ainsi filtr. Avec le Signal Browser, observez le signal avant et aprs filtrage.
Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr -5-

TP DEUG STPI 2me Anne


TP de traitement de signal

Modifier les caractristiques du filtre (frquence de coupure,), et observer. Faire des essais avec les autres filtres.

S4) Analyse spectrale d'un signal Dans la fentre SPTool, slectionnez un signal, puis dans la colonne Spectra, cliquez sur 'Create'. Dans la fentre Spectrum Viewer qui vient d'apparatre choississez une mthode d'analyse spectrale, puis 'Apply'. Cela vous donne le spectre du signal. S5) Export Vous pouvez renvoyer sous la fentre de commande de matlab ce que vous avez cr sous la fentre SPTool avec 'File / Export'. Cette commande cre dans la fentre de commande une variable du nom de l'objet export. Cette variable est une structure. Tapez son nom suivi de 'enter', vous verrez la liste des champs de la structure apparatre. Par exemple pour un filtre appel B. En tapant B.tf.num, vous accdez au numrateur de la fonction de transfert en Z, B.tf.den et c'est le dnominateur ...

Hassan EL MAKSSOUD makssoud@lirmm.fr Raphal MORET moret@lirmm.fr

-6-