Vous êtes sur la page 1sur 3

U.H.2.C - F.S.T.M. - Dpt. Génie Electrique Prof : A.

SAHEL
F.I. : GET – TDS Analogique Travaux Pratiques

TP n°2 : Systèmes Linéaires Continus


Filtrage Analogique

Objectif du TP:
L’objectif de ce travail pratique est de mettre en application les connaissances acquises sur la Transformée
de Fourier et le filtrage. Nous verrons, grâce à Matlab, les différences existantes entre le filtrage idéal
(Partie1) utilisé en théorie et le filtrage réel (Partie 2) appliqué dans divers domaines tels que la
télécommunication, l’électronique, l’automatique…

Partie I : Convolution, transformée de Fourier et filtrage passe bas idéal.


Dans cette partie, on étudie le filtrage idéal d’un signal porte rectangulaire :
 T T
1 pour   t 
x(t )  rectT (t )   2 2

0 ailleurs
On considère un filtre H(f) passe-bas idéal de fréquence de coupure fc=2/T :

 2 2
1 pour   f 
H( f )   T T
0 ailleurs

Dans Matlab, il faudra représenter chaque fonction dans le domaine temporel sur un nombre fini de valeurs
de t, t =[-20, 20] avec un pas Te .

1/ Quel pas doit on choisir Pour générer un vecteur temps t de 4000 points ?

2/ Définir et tracer le signal x(t )  rectT (t ) pour une ouverture T=5s. (Modifier le script 1 afin de tracer
cette porte rectangulaire).

3/ Calculer le spectre X(f) du signal x(t) dans l’intervalle de fréquence f=[-2, 2] Hz en utilisant les fonctions
fftshift et fft.
Dans le but de pouvoir passer du domaine temporel au domaine fréquentiel il faudra que la longueur des
deux vecteurs temporel et fréquentiel soit la même. On pourra utiliser :
f=linspace(-Fe/2,Fe/2, length(t));
Comment peut-on vérifier que le spectre est correct ?

4/ Définir le domaine fréquentiel et tracer la fonction de transfert H(f) du filtre passe-bas idéal dont la
fréquence de coupure fc=2/T

On désire filtrer le signal x(t) par le filtre passe-bas idéal H(f) de fréquence de coupure Fc = 1/T.
On rappelle que le filtrage par FFT consiste non pas à convoluer le signal temporel par la réponse
impulsionnelle du filtre, mais à multiplier la FFT du signal par la FFT de la réponse impulsionnelle du filtre
puis à appliquer une FFT inverse.

1/2
U.H.2.C - F.S.T.M. - Dpt. Génie Electrique Prof : A. SAHEL
F.I. : GET – TDS Analogique Travaux Pratiques

5/ Soit Y(f) le spectre du signal de sortie du filtre fréquentiel H(f), Exprimer Y(f) en fonction de X(f) et de
H(f). Tracer Y(f).

6/ Calculer l’expression de y(t). Tracer y(t).en utilisant la Transformée de Fourier Inverse (commande ifft de
Matlab). Le signal de sortie est-il équivalent au signal d’entrée ? Expliquer

Les 5 tracés sont à mettre sur la même figure et pour cela il faut utiliser subplot(l c n) en veillant à ce qu’il y
ait une colonne pour les signaux et une colonne pour les spectres.

7/ On cherche à observer l’effet de la valeur de la fréquence de coupure fc sur le signal de sortie du filtre.
Pour cela on tracera y(t) pour des valeurs croissantes de la fréquence de coupure : 2/T, 1Hz,5Hz, 15Hz,
50Hz. Pour vous aider le script 2 répond à cette requête sauf que l’on a laissé glisser une erreur. Corriger ce
programme et tracer à chaque fois Yi(f) et yi(t).
Expliquer et interpréter les résultats.

Partie II - Filtrage réel

Soit x( t )  sin( 2f1t )  sin( 2f 2t )  sin( 2f 3t ) avec f1 = 5 Hz, f2 = 20 Hz, f3 = 35 Hz.

x(t) est défini sur un nombre fini de valeurs de t, t = [0, 1], (Fe=512). De même, nous représenterons les
fréquences f entre -Fe/2 et Fe/2. (Fonction linspace).

8/ Quelle est la période d’échantillonnage du signal x(t) ?

9/ Tracer la courbe x(t) avec des légendes adéquates.

Nous allons construire un filtre de Chebyshef analogique de type I avec les caractéristiques suivantes :
- ordre 8
- filtre centré sur la fréquence Fc=20 Hz
- largeur de bande 20 Hz.
10/ Quel est le type de ce filtre (passe-bas, passe-bande, passe-haut, …) ?
Matlab fournit la fonction de transfert du filtre sous la forme de vecteurs de coefficients a et b. Grâce à la
fonction freqs **, on peut calculer la réponse du filtre dans une gamme de fréquences [f1 f 2].

11/ Construire le filtre et tracer sa fonction de transfert H(f). Pour une meilleure visualisation, on se limitera
entre 0 et 40 Hz.

12/ Calculer et tracer la courbe y(t) avec des légendes adéquates. On se limitera à un intervalle de temps
[0,0.2].

Attention aux problèmes de décalage et d’échelle avec les fonctions fft et ifft.
13/ Pour vérifier les effets du filtre, tracer sur un même schéma la transformée de Fourier de x(t) et celle de
y(t). On se limitera entre 0 et 40 Hz.

14/ Modifier le programme Matlab pour tracer les courbes temporelles et fréquentielles dans deux figures
distinctes.
Commenter les résultats obtenus.

2/2
U.H.2.C - F.S.T.M. - Dpt. Génie Electrique Prof : A. SAHEL
F.I. : GET – TDS Analogique Travaux Pratiques

Script1
% Représentation temporelle de la fonction porte avec T=5
T= ?
Te= ?
t=-N:Te:N;
% Création de la fonction porte
x=(((-T/2)<=t)&(t<=(T/2)));
% Représentation temporelle de la fonction porte avec T= ?
figure(1)
plot(t, x,'r' )
grid
axis([-5 5 -0.05 1.05]) ;
title('Représentation temporelle de la fonction Porte avec T = 5') ;
xlabel('Temps t') ;
ylabel('Amplitude du signal') ;

Script 2
fc=[2/T,1,5,15,50]; %La fréquence de coupure prendra respectivement les valeurs 2/T, 1Hz,5Hz, 15Hz, 50Hz
figure(6)
for k=1:5 %Boucle nous permettant de calculer et tracer y(t) en fonction de fc
Hf=((-fc(k)<=f)&(f<=fc(k)));
Yf=Hf.*Xf ;
subplot(5,1,k) ; plot(t,yt); %|
grid %|=> On trace dans une sous-fenêtre graphique y(t) pour
axis([-10 10 -0.05 1.5]) %| les différentes valeurs de la fréquence de coupure
if (k==1)
title('Représentation du signal d''entrée x(t) après un filtrage passe-bas idéal h(t) : y(t) =h(t) * x(t)')
end
xlabel('Temps t') %|
ylabel('Amplitude') %|=> définition des axes
switch k %|
case 1, legend('fc = 2/T Hz') %|
case 2, legend('fc = 1 Hz') %|
case 3, legend('fc = 5 Hz') %|=> Affichage de la légende en fonction de k (... et donc
case 4, legend('fc = 15 Hz') %| en fonction de fc)
case 5, legend('fc = 50 Hz') %|
end %|
end

Script3
n=?
wn=?
Fe=?
[b,a]=cheby1(n,wn,’ftype’);
Freqz(b,a);
|
|

y=filter(b,a,x);

3/2

Vous aimerez peut-être aussi