Académique Documents
Professionnel Documents
Culture Documents
Connaissance Du Filtre Butterworth
Connaissance Du Filtre Butterworth
filtre butterworth
Objectifs
1. Savoir l’importance du filtre
2. Savoir tracer la fonction du transfert (FT) (Gain & Phase) d’un filtre quelconque
3. Savoir si un filtre est stable ou non (étude de l’instabilité d’un filtre quelconque)
4. Exemple du filtrage d’un signal ECG bruité
5. Limitations du filtre
6. Etc.
Programme Matlab
clear all; close all; clc;
% Génération du signal
ECG_s = ecg(n, p_wave, q_wave, qrs_wave, s_wave, t_wave, u_wave);
ECG_s=ECG_s-ecg_dc; % Suppression de la composante DC
s_b=sign(s_n);
s_diff=abs(conv(s_b,[-1 1], 'same'));
s_diff=s_diff/2;
% bords
s_diff(1)=0;
s_diff(end)=0;
%% Périodisation
ecg_p=conv(s_diff,ECG_s, 'same');
ecg_p=ecg_p+ecg_dc;
%% Filtrage de Butterworth
% Params du filtre
ts=t(2)-t(1); fs=1/ts; % Fréquence Fs
% Affichage de la FT du filtre
figure(1); freqz(b,a); % Ou bien fvtool(b,a);
%% Ajout du bruit
% Bruit
sig=0.5e-1;
b_n=sig*randn(1,N);
% Ajout du bruit
s_b_n=b_n+ecg_p;
% Filtrage
s_fil=filter(b,a,s_b_n);
%% Affichage
figure(2)
subplot(211); plot(t, ecg_p, 'linewidth',2); grid on;
xlabel('Temps(s)'); ylabel('Amplitude(V)'); legend('Original');
xlim([t(1) t(end)]);
figure(3)
subplot(311); plot(t, ecg_p, 'linewidth',2); grid on;
xlabel('Temps(s)'); ylabel('Amplitude(V)'); legend('Original');
xlim([t(1) t(end)]);
Accueil Matlab