Académique Documents
Professionnel Documents
Culture Documents
TP de traitement de signal
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.
-1-
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
Q6) Retrouver les rsultats de lanalyse spectral en utilisant des fonctions Matlab ( fft ). Aidez vous du menu help de MatLab.
-2-
TP de traitement de signal
! 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).
-3-
TP de traitement de signal
x(n)
h(n)
y(n)
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
-4-
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 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 ...
-6-