Filtre passe bande butterworth matlab
Ma Ma Matlaaaaaaaaaaaaaaab
-
dfasf -
dfasf -
Bonjour,
Je dois réaliser le filtrage de données sur Matlab, pour ce j'aimerais réaliser un filtre passe bande à partir d'un filtre de type butterworth. Voici ce que j'ai réalisé mais ca ne fonctionne pas! Quelqu'un pourrait il m'aider? C'est la première fois que j'utilise matlab donc je ne suis pas sur que c'est comme cela qu'il faut proceder! Est-ce qu'il y a un moyen plus simple ?
Merci d'avance;
Nico
%FILTRE BUTTER
f_c1=0.1;
f_c2=0.1;
f_c3=0.1;
f_c4=0.1;
f_c5=0.9;
f_c6=0.9;
f_c7=0.9;
f_c8=0.9;
%fréquence de coupure
w_c1=f_c1/(fe/2);
w_c2=f_c2/(fe/2);
w_c3=f_c3/(fe/2);
w_c4=f_c4/(fe/2);
w_c5=f_c5/(fe/2);
w_c6=f_c6/(fe/2);
w_c7=f_c7/(fe/2);
w_c8=f_c8/(fe/2);
% On cherche la fréquence normalisé car c'est celle-ci qui est utilisée ds le buffer
% The cutoff frequency Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate => fcoupure/ (Fechantillonnage/2).
%%Butter
[B,A]= butter(3,w_c1,'low');
[C,D]= butter(3,w_c2,'low');
[E,F]= butter(3,w_c3,'low');
[G,H]= butter(3,w_c4,'low');
%[B,A]= butter(ordre du filtre,Wn,type);
y1=filtfilt(B,A,z(:,1))
y2=filtfilt(C,D,z(:,2));
y3=filtfilt(E,F,z(:,3));
y4=filtfilt(G,H,z(:,4));
% je filtre une première fois les données avec un filtre butterworth passe bas
[I,J]=butter(3,y1,'high');
[K,L]=butter(3,y2,'high');
[M,N]=butter(3,y3,'high');
[O,P]=butter(3,y4,'high');
y5=filtfilt(I,J,z(:,1))
y6=filtfilt(K,L,z(:,1))
y7=filtfilt(M,N,z(:,1))
y8=filtfilt(O,P,z(:,1))
% Je refiltre les données obtenues "apres filtrage passe bas" avec un butterworth passe haut!
Voici le message d'erreur qu'il affiche :
??? Error using ==> butter at 41
Wn must be a one or two element vector.
Je dois réaliser le filtrage de données sur Matlab, pour ce j'aimerais réaliser un filtre passe bande à partir d'un filtre de type butterworth. Voici ce que j'ai réalisé mais ca ne fonctionne pas! Quelqu'un pourrait il m'aider? C'est la première fois que j'utilise matlab donc je ne suis pas sur que c'est comme cela qu'il faut proceder! Est-ce qu'il y a un moyen plus simple ?
Merci d'avance;
Nico
%FILTRE BUTTER
f_c1=0.1;
f_c2=0.1;
f_c3=0.1;
f_c4=0.1;
f_c5=0.9;
f_c6=0.9;
f_c7=0.9;
f_c8=0.9;
%fréquence de coupure
w_c1=f_c1/(fe/2);
w_c2=f_c2/(fe/2);
w_c3=f_c3/(fe/2);
w_c4=f_c4/(fe/2);
w_c5=f_c5/(fe/2);
w_c6=f_c6/(fe/2);
w_c7=f_c7/(fe/2);
w_c8=f_c8/(fe/2);
% On cherche la fréquence normalisé car c'est celle-ci qui est utilisée ds le buffer
% The cutoff frequency Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate => fcoupure/ (Fechantillonnage/2).
%%Butter
[B,A]= butter(3,w_c1,'low');
[C,D]= butter(3,w_c2,'low');
[E,F]= butter(3,w_c3,'low');
[G,H]= butter(3,w_c4,'low');
%[B,A]= butter(ordre du filtre,Wn,type);
y1=filtfilt(B,A,z(:,1))
y2=filtfilt(C,D,z(:,2));
y3=filtfilt(E,F,z(:,3));
y4=filtfilt(G,H,z(:,4));
% je filtre une première fois les données avec un filtre butterworth passe bas
[I,J]=butter(3,y1,'high');
[K,L]=butter(3,y2,'high');
[M,N]=butter(3,y3,'high');
[O,P]=butter(3,y4,'high');
y5=filtfilt(I,J,z(:,1))
y6=filtfilt(K,L,z(:,1))
y7=filtfilt(M,N,z(:,1))
y8=filtfilt(O,P,z(:,1))
% Je refiltre les données obtenues "apres filtrage passe bas" avec un butterworth passe haut!
Voici le message d'erreur qu'il affiche :
??? Error using ==> butter at 41
Wn must be a one or two element vector.
A voir également:
- Filtre passe bande butterworth matlab
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide