Bonjour à tous,
D'avance je vous remercie pour votre aide.
Je veux raliser un filtre avec Butterworth sur un signal du niveau d ela mer (marée) mais, matlab me donne un message d'erreuret me dit que votre cuttof doit être compris entre (0 , 1).
Voici mon filtre pour le signal enregistré avec un pas de mesure de 60 s (0.016 Hz) est (niv.dat est le nom du fichier ayant deux colonnes x: élévation de la mer et t: temps (pas de 60 s) 0, 60 , 120, ...
Je veux filtrer ce signal entre 0.00002 et 0.008
load niv.dat;
fe=0.016;
x=niv(:,1);
t=niv(:,2);
plot(t,x)
grid
Fc1=0.00002;
Fc2=0.008;
[b,a]=butter(2,[Fc1 Fc2]/(fe/2));
f=filter(b,a,x);
hold on
plot(t,f,'r')
En revanche, j'ai un autre signal de vagues, cette fois-ci, mesurées à un pas de fréquence de 2Hz (toutes les 0.5 s) et le filtre marche bien avec ce signal (vagues.dat c'est le nom du fichier). j'ai extrait les signaux compris entre 0.003 et 0.03 Hz et ca marche!
load vagues.dat;
fe=2;
x=vagues(:,1);
t=vagues(:,2);
plot(t,x)
grid
Fc1=0.003;
Fc2=0.03;
[b,a]=butter(2,[Fc1 Fc2]/(fe/2));
f=filter(b,a,x);
hold on
plot(t,f,'r')
Je ne comprnds pas comment avec le même code matlab ca marche pour les vagues et quand je l'applique sur la marée il me dit que votre cuttof doit être compris entre 0 et 1 alors dans mon code il est entre Fc1=0.00002;
Fc2=0.008;
Merci d'avance de votre aide
Bien à vous
Maps
-----