TRAVAUX PRATIQUES
T.N.S
SMP6-IEA-2023
1
TP5: Filtrage Numérique
Apprendre à:
• Calculer les paramètres d’un
filtre.
• Créer des filtres numériques.
• Filtrer un signal avec un filtre
numérique.
2
TP5: Filtrage Numérique
Commandes:
Taper help :
filter
fvtool
filtfilt
freqs
freqz
3
TP5: Filtrage Numérique
Filtre RIF : Réponse Impulsionnelle est de durée Finie
Taper help fir1
Taper le script suivant :
n 40; %ordre du filtre
fn 0.5; % fréquence de coupure normalisée
[b, a ] fir1(n, fn,' low ');
freqz (b, a );
4
TP5: Filtrage Numérique
Filtre RII : Réponse Impulsionnelle Infinie
Filtre de Butterworth :
Taper help butter
Filtres deTchebychev :
Taper help :
cheby1
cheby 2
5
TP5: Filtrage Numérique
Exemples
Filtres: butter , cheby1 et cheby 2
Taper le script suivant :
début du script :
n = 14;
f = 200;
fe= 1e3; suite du script :
fn=2*f/fe; subplot(222)
subplot(221) [b2,a2]=cheby1(n,2,fn,'high');
[b1,a1] = butter(n,fn,'high'); [h2,w2]=freqz(b2,a2);
[h1,w1]=freqz(b1,a1); plot(w2*fe/(2*pi),abs(h2))
plot(w1*fe/(2*pi),abs(h1)) grid
grid xlabel('Fréquence (Hz)')
xlabel('Fréquence (Hz)') ylabel('Attenuation')
ylabel('Attenuation') title('Filtre Chebychev type 1 passe haut')
title('Filtre Butterworth passe haut')
6
TP5: Filtrage Numérique
suite :
subplot(223)
[b3,a3]=cheby2(n,15,fn,'high');
[h3,w3]=freqz(b3,a3);
plot(w3*fe/(2*pi),abs(h3))
grid
xlabel('Fréquence (Hz)')
subplot(224)
ylabel('Attenuation')
hold on
title('Filtre Chebychev type 2 passe haut')
plot(w1*fe/(2*pi),abs(h1))
plot(w2*fe/(2*pi),abs(h2),'r')
plot(w3*fe/(2*pi),abs(h3),'g')
grid
xlabel('Fréquence (Hz)')
ylabel('Attenuation')
title('Les trois filtres RII')
legend('Butter','Cheby1','Cheby2')
7
TP5: Filtrage Numérique
Exercice
1- Exécuter les lignes de commande suivantes : Fe = 8e3;
N = 512;
t = (0:N-1)/Fe;
x = square(2*pi*Fe*t/50);
2- Commenter chaque ligne.
3- Créer le spectre du signal x.
4- Tracer la partie positive du spectre de x ainsi que le signal originel x dans la
même figure.
5- Créer un filtre RIF, passe-haut de fréquence de coupure f 1000Hz et d’ordre 39
c
6- Afficher la réponse fréquentiel du filtre créé dans une nouvelle figure.
7- Filtrer le signal x avec le filtre créé.
8- Tracer la réponse du filtre ainsi que son spectre dans la même figure.
9- Essayer de créer d’autre filtre (passe-bande, passe-bas, coupe-bande).
10- Filtrer le signal x avec les nouveaux filtres.
8
TP5: Filtrage Numérique
Système linéaire invariant
x ( n) ( SDLI ) y ( n)
h(t )
y (n) x(k ) h(n k ) x(n) * h( n)
k
Lissage
h( n) 1 1 1 1 1 1 1 1 1
Un filtre de réponse impulsionnelle: 8
rand (50,1)
Générer une séquence x(n) aléatoire:
filter
Filtrer le signal x(n): y(n)= signal x(n) filtré.
• Représenter les deux signaux: plot
9
TP5: Filtrage Numérique
>> h=1/8*ones(8,1);
>> x=rand(50,1);
>> y=filter(h,1,x);
>> plot([y,x]);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15 20 25 30 35 40 45 50
10