Vous êtes sur la page 1sur 7

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE


SCIENTIFIQUE

FACULTÉ DES SCIENCE ET DE LA TECHNOLOGIE


DÉPARTEMENT : GÉNIE ÉLECTRIQUE
UNIVERSITÉ LARBI TEBESSI-TEBESSA

Compte-rendu TP 02 et 03
Transformée de Fourier et Filtrage RII
(Filtre a réponse impulsionnelle Infinie)

Enseignant :
FERROUDJI. K

Préparé par l’étudiant :


ABIDAT Mohammed

Année universitaire : 2022 – 2023


But de TP : l’objectif de ce TP es l’analyse des signaux par la Transformée de
Fourier et l’application du filtrage.
Exercice :
1-générer un vecteur t en secondes des échantillons d’un signal de durée 1 sec et
échantillonné a 1khz ?
2-créer deux signaux sinusoïdaux S1 et S2 de fréquence 30HZ et 130 HZ, et amplitude
2 et 1,9 respectivement ?
3-afficher les signaux S1 et S2 et Sm (Sm=S1+S2) en fonction de temps en utilisant la
commande subplot (5…) ?
4-ajouter du bruit au signal Sm, et tracer le signal obtenue (Sb) dans la même courbe
précédente(subplot)
5-calculer la transformé de fourrier des signaux Sm et Sb utilisant la commande fft.
Qu’est-ce que vous remarquez ?
6-créer un filtrage Butterworth passe-bande de troisième ordre :
-Filtrer le signal Sb autour de la fréquence 30 HZ et 130 HZ.
-tracer les signaux obtenus, et leurs transformée de fourrier, qu’est-ce que vous
remarquez ?
7-Ecrire une fonction MATLAB qui permet de calculer er tracer la transforme de fourrier
d’un signal ?
8-Ecrire une fonction MATLAB qui permet de filtrer un signal autour d’une fréquence
donnée ?

Solution :
5- j’ai remarqué que les signaux (fft Sb) et (fft Sm) ont deux pics principaux de fréquence
30HZ et 130 HZ, et la déférence entre la courbe de (fft Sb) et (fft Sm) est causé par le
bruit dans le courbe de (fft Sb).

6-j’ai remarqué qu’il y a une atténuation dans le débit et la fin de signal filtré. Parce que
le filtre n’est pas idéal

Programme MATLAB:
clc
clear all, close all
% 1-générer un vecteur t en secondes des échantillons d’un signal de durée 1 sec et
échantillonné a 1khz %
Fe=1000;
Te=1/Fe;
t=0:Te:1;
L=length(t);
% 2-créer deux signaux sinusoïdaux S1 et S2 DE fréquence 30HZ et 130 HZ, et
amplitude 2 et 1,9 respectivement %
s1=2*sin(2*pi*30*t);
s2=1.9*sin (2*pi*130*t);
% 3-afficher les signaux S1 et S2 et Sm (Sm=S1+S2) en fonction de temps en utilisant
la commande subplot(5…) %
sm=s1+s2;
subplot(511),plot(t(1:200),s1(1:200))
ylabel('s1');
subplot(512),plot(t(1:200),s2(1:200))
ylabel('s2');
subplot(513),plot(t(1:200),sm(1:200))
ylabel('sm');
% 4-ajouter du bruit au signal Sm, et tracer le signal obtenue (Sb) dans la même courbe
précédente(subplot) %
bruit_b=randn(size(t));
sb=sm+bruit_b;
subplot(514),plot(t(1:200),bruit_b(1:200))
ylabel('bruit');
subplot(515),plot(t(1:200),sb(1:200))
xlabel('temps(s)');
ylabel('avec bruit');

% 5-calculer la transformé de fourrier des signaux Sm et Sb utilisant la commande fft %.


L=length(t);
NFFT=2^nextpow2(L);
Yb= fft(sb,NFFT);
f =linspace(0, Fe/2,NFFT/2+1);
Figure
plot(f,abs(Yb(1:NFFT/2+1)))
Yb1= fft(sm,NFFT);
f =linspace(0, Fe/2,NFFT/2+1);
figure
plot(f,abs(Yb1(1:NFFT/2+1)))

% 6-créer un filtrages Butterworth passe-bande de troisième ordre %


fb=25;
fh=35;
N=3;
[B,A]= butter (N,[fb fh]/(Fe/2));
yf=filtfilt(B,A,sb);
YF=fft(yf,NFFT);
figure
plot(f,abs(YF(1:NFFT/2+1)))
figure
plot(f,abs(YF(1:NFFT/2+1)))
subplot(211), plot (t,s1) , legend ('s1')
subplot(212), plot (t,yf,'r') , legend ('signal filtré ')
axis([0 1 -2 2]
fb=125;
fh=135;
N=3;
[B,A]= butter (N,[fb fh]/(Fe/2));
yf1=filtfilt(B,A,sb);
YF=fft(yf1,NFFT);
figure
plot(f,abs(YF(1:NFFT/2+1)))
figure
plot(f,abs(YF(1:NFFT/2+1))),
subplot(211), plot (t,s2) , legend ('s2')
subplot(212) , plot (t,yf1,'r') , legend ('signal filtré ')
axis([0 1 -2 2])
% 7-Ecrire une fonction MATLAB qui permet de calculer er tracer la transforme de
fourrier d’un signal %

function fourrier_tp(t,sb,Fe)
L=length(t);
NFFT=2^nextpow2(L);
Yb= fft(sb,NFFT);
f =linspace(0, Fe/2,NFFT/2+1);
figure
plot(f,abs(Yb(1:NFFT/2+1)))

% 8-Ecrire une fonction MATLAB qui permet de filtrer un signal autour d’une fréquence
donnée%

function filtrage_tp(N,fb,fh,Fe,sb,NFFT,f)
[B,A]= butter (N,[fb fh]/(Fe/2));
yf=filtfilt(B,A,sb);
YF=fft(yf,NFFT);

Vous aimerez peut-être aussi