Traitement du signal numérique
TP3
MP1, EEA M.S. KAROUI
Filtres numériques
Objectifs :
L’objectif de ce TP est l’étude des caractéristiques des filtres numériques de type RIF et RII.
Travail pratique :
I. On considère Un filtre est défini par la fonction de transfert suivante :
H(z) = 0.25 + 0.05z⁻¹ + z⁻² + 0.05z⁻³ + 0.25z⁻⁴
1) S’agit-il d’un filtre FIR ou IIR ?
2) Dessiner la réponse en fréquence.
% Coefficients du filtre H(z)
b = [0.25 0.05 1 0.05 0.25]; % Numérateur
a = 1; % Dénominateur (FIR => pas de feedback)
% Tracé de la réponse en fréquence
[H, w] = freqz(b, a, 1024); % 1024 points de fréquence
% Module
figure;
plot(w/pi, abs(H), 'LineWidth', 2);
title('Module de la réponse en fréquence |H(e^{j\omega})|');
xlabel('\omega / \pi');
ylabel('|H(e^{j\omega})|');
grid on;
% Phase
figure;
plot(w/pi, angle(H), 'LineWidth', 2);
title('Phase de la réponse en fréquence \angle H(e^{j\omega})');
xlabel('\omega / \pi');
ylabel('Phase (radians)');
grid on;
AU : 2024-2025 Page 1 sur 3
II. On souhaite étudier et concevoir des filtres RIF et RII :
a) Conception d’un filtre passe-bas RIF :
• Écrire le programme suivant sous Matlab :
Fs = 1000; % Fréquence d’échantillonnage (Hz)
Fc = 200; % Fréquence de coupure (Hz)
N = 50; % Ordre du filtre
h = fir1(N, Fc/(Fs/2)); % Conception du filtre
fvtool(h, 1) % Analyse fréquentielle du filtre
• Tester le programme et expliquer à quoi servent les différentes fonctions.
b) Application du filtre RIF sur un signal :
• Écrire le programme suivant sous Matlab :
t = 0:1/Fs:1-1/Fs;
x = sin(2*pi*100*t) + sin(2*pi*300*t); % Signal à deux fréquences
y = filter(h, 1, x); % Filtrage
plot(t, x, t, y)
legend('Signal original', 'Signal filtré')
title('Filtrage par RIF')
• Tester le programme et expliquer à quoi servent les différentes fonctions.
c) Conception d’un filtre passe-bas RII (Butterworth):
• Écrire le programme suivant sous Matlab :
N = 4; % Ordre du filtre
Fc = 200; % Fréquence de coupure
[b, a] = butter(N, Fc/(Fs/2)); % Conception Butterworth
fvtool(b, a) % Analyse fréquentielle
• Tester le programme et expliquer à quoi servent les différentes fonctions.
d) Application du filtre RII sur le même signal
• Écrire le programme suivant sous Matlab :
y2 = filter(b, a, x); % Filtrage
plot(t, x, t, y2)
legend('Signal original', 'Signal filtré (RII)')
title('Filtrage par RII')
• Tester le programme et expliquer à quoi servent les différentes fonctions.
AU : 2024-2025 Page 2 sur 3
e) Comparaison entre les deux filtres :
• Écrire le programme suivant sous Matlab (Utiliser fvtool pour afficher plusieurs filtres):
fvtool(h,1,b,a) % Comparaison FIR vs IIR
• Tester le programme et expliquer à quoi servent les différentes fonctions.
AU : 2024-2025 Page 3 sur 3