Vous êtes sur la page 1sur 10

TP2 : FILTRAGE DE SIGNAUX

Ralis par SALHI Imane et ROCHDI Hala

Objectif du TP :
Ce TP a pour objectif de mettre en pratique la notion de filtrage en extrayant une composante dun signal sinusodal dans le cas bruit et non bruit.

Partie 1 : Filtrage dun signal non bruit


1-Reprsentation temporelle de s(t) :
On dsire gnrer la somme de deux signaux sinusodaux damplitudes respectives 2 et 3. Pour cela, on gnre dabord chacun des deux signaux. Puis on fait la somme quon reprsente en fonction du temps. Fe = 8192 ; N = 512; t = (0 :N-1)/Fe; f = (0 :N-1)/N*Fe ; F1 = 256; F2 = 512; x1 = 2*sin(2*pi*F1*t); x2 = 3*sin(2*pi*F2*t); s = x1+x2; plot(t,s); xlabel('temps t'), ylabel('s(t)') ;

2- Transforme de Fourier
On souhaite avoir le spectre du signal s(t)=x1(t)+x2(t). Pour cela, on applique la transforme de Fourier sur le signal s(t). Le spectre S(f) obtenu est reprsent en fonction de la frquence. Fe = 8192 ; N = 512; t = (0 :N-1)/Fe; f = (0 :N-1)/N*Fe ; F1 = 256; F2 = 512; x1 = 2*sin(2*pi*F1*t); x2 = 3*sin(2*pi*F2*t); s = x1+x2; subplot(3,2,1); plot(t,s); xlabel('temps t'), ylabel('s(t)') ; subplot(3,2,2); S = fft(s); plot(f,abs(S)); xlabel('frequence f'), ylabel('S(t)') ;

3- Conclusion :
La reprsentation temporelle de la somme des deux signaux reprsente la somme des reprsentations de chacun des deux signaux. Lamplitude maximale est la somme des deux amplitudes. La reprsentation frquentielle de la somme des deux signaux reprsente la somme des reprsentations de chacun des deux signaux. Et cela sexplique par la linarit de la transforme de Fourier.

4- Explication du script porte :


delta =2 ; porte=zeros(1,N) ; porte(round(F1*N/Fe)-delta :round(F1*N/Fe)+delta)=1 ; porte(N-round(F1*N/Fe)-delta :N-round(F1*N/Fe)+delta)=1 ;

On dsire garder le pic correspondant la reprsentation frquentielle du premier signal (F1=256HZ). Pour cela, on calcule dabord le canal o va apparatre ce spectre : F1*N/Fe = 256*512/8192 = canal 16. Le symtrique de ce pic apparaitra au canal : N-16. Il nous faut donc crer une fonction porte qui sera gale 1 au canal 16 et au canal N-16 et qui sannule partout ailleurs. porte=zeros(1,N) ; %On cre un vecteur nul de taille N. porte(round(F1*N/Fe)-delta :round(F1*N/Fe)+delta)=1 ; %On met 1 le canal du pic quon veut garder. Lintervalle choisi sera (canal 16 2 ; canal 16 + 2) pour englober le pic du premier signal. Porte(N-round(F1*N/Fe)-delta :N-round(F1*N/Fe)+delta)=1 ; %De mme, on met 1 le canal N-16 pour garder le pic symtrique celui qui se trouve au canal 16. De la mme manire, on choisi lintervalle (canal (N-16) 2, canal (N+16) + 2). Le choix de delta = 2 est bien tudi car, dans la prsence dun bruit, plus lintervalle est large, plus on extrait le bruit proximit en plus du signal quon veut obtenir.

5- Le signal porte et sa transforme inverse :


En utilisant le script expliqu ci-dessus, on gnre la fonction porte quon reprsente en fonction de la frquence. Ensuite, en utilisant la fonction ifft, on trace la reprsentation temporelle de la transforme de Fourier inverse de porte . delta =2 ; porte=zeros(1,N) ; porte(round(F1*N/Fe)-delta :round(F1*N/Fe)+delta)=1 ; porte(N-round(F1*N/Fe)-delta :N-round(F1*N/Fe)+delta)=1 ; subplot(3,2,3) ; plot(f,porte) ; subplot(3,2,4) ; iporte = real(ifft(porte)) ; plot(t,iporte) ;

Schma 1 : Reprsentation frquentielle de la fonction porte Schma 2 : Reprsentation temporelle de la transforme inverse de la fonction porte

Ce filtre est un filtre coupe-bande. Il permet de supprimer des parties du signal tout en gardant celles que lon veut.

6- Filtrage du signal et sa reprsentation temporelle et frquentielle :


On souhaite filtrer le signal en extrayant le signal sinusodal damplitude 2. On fait la reprsentation temporelle et frquentielle du signal filtr.

Fe = 8192 ; N = 512; t = (0 :N-1)/Fe; f = (0 :N-1)/N*Fe ; F1 = 256; F2 = 512; x1 = 2*sin(2*pi*F1*t); x2 = 3*sin(2*pi*F2*t); s = x1+x2; %subplot(3,2,1); %plot(t,s); xlabel('temps t'), ylabel('s(t)') ; %subplot(3,2,2); S = fft(s); %plot(f,abs(S)); xlabel('frequence f'), ylabel('S(t)') ; delta =2 ; porte=zeros(1,N) ; porte(round(F1*N/Fe)-delta :round(F1*N/Fe)+delta)=1 ; porte(N-round(F1*N/Fe)-delta :N-round(F1*N/Fe)+delta)=1 ; subplot(2,1,1); plot(f,porte); subplot(2,1,2); iporte = real(ifft(porte)); plot(t,iporte);

Schma 1 : reprsentation frquentielle du signal filtr Schma 2 : reprsentation temporelle du signal filtr

Grce la fonction porte, nous avons pu liminer les pics correspondant la reprsentation frquentielle du deuxime signal. Ainsi, on navait plus que la reprsentation frquentielle du premier signal. En appliquant la transforme de Fourier inverse la fonction porte.*S (qui correspond la multiplication lment par lment de la porte par le spectre du signal filtrer. Ainsi, nous avons obtenu le premier signal sinusodal damplitude 2 (x1=2*sin(2*pi*F1*t).

Partie 2 : Filtrage dun signal bruit


Afin de se rapprocher de la ralit, on ajoute un bruit au signal tudi dans la partie prcdente. Ce bruit correspond un signal alatoire gaussien quon cre grce la fonction randn.

7- Gnration du signal S additionn dun bruit :


On effectue les mmes tapes que dans la partie prcdente mais on ajoute au signal s un bruit modlis par la fonction randn(1, N) : c'est--dire un signal alatoire sous forme dun vecteur de taille N.
Fe = 8192 ; N = 512; t = (0 :N-1)/Fe; f = (0 :N-1)/N*Fe ; F1 = 256; F2 = 512; x1 = 2*sin(2*pi*F1*t); x2 = 3*sin(2*pi*F2*t); s = x1+x2+randn(1, N); subplot(2,1,1); plot(t,s); xlabel('temps t'), ylabel('s(t)') ; subplot(2,1,2); S = fft(s); plot(f,abs(S)); xlabel('frequence f'), ylabel('S(t)') ;

8- Ltude se fait de la mme manire que dans la partie prcdente.


Dabord, on gnre la fonction porte de faon garder que les pics correspondant la reprsentation frquentielle du signal 1. On applique la transforme de Fourier inverse la fonction porte.*S et on obtient le signal filtr.
Fe = 8192 ; N = 512; t = (0 :N-1)/Fe; f = (0 :N-1)/N*Fe ; F1 = 256; F2 = 512; x1 = 2*sin(2*pi*F1*t); x2 = 3*sin(2*pi*F2*t); s = x1+x2+randn(1, N); subplot(3,2,1); plot(t,s); xlabel('temps t'), ylabel('s(t)') ; subplot(3,2,2); S = fft(s); plot(f,abs(S)); xlabel('frequence f'), ylabel('S(t)') ; delta =2 ; porte=zeros(1,N) ; porte(round(F1*N/Fe)-delta :round(F1*N/Fe)+delta)=1 ; porte(N-round(F1*N/Fe)-delta :N-round(F1*N/Fe)+delta)=1 ;

subplot(3,2,3); plot(f,porte); subplot(3,2,4); iporte = real(ifft(porte)); plot(t,iporte); subplot(3,2,5); res=porte.*S; plot(f,abs(res)); subplot(3,2,6); res2=ifft(res); plot(t,real(res2));

9- Conclusion :
En appliquant le signal porte au spectre du signal s, on extrait, en plus, des pics quon dsire obtenir, du bruit. En passant la reprsentation temporelle (ifft(porte.*S)), ce bruit perturbe le signal filtr. Ainsi, on obtient un signal qui ne ressemble pas parfaitement au signal sinusodal x1=2*sin(2*pi*F1*t).

Vous aimerez peut-être aussi