Bonjour,
Je veux filtrer un signal "s" à 0.7 Hz, passe-haut, avec un filtre butterworth d'ordre 3. La fréq d'échantillonnage est 300Hz. Je le fais une fois avec filtfilt, une fois avec filter.
[b,a]=butter(3,0.7/150,'high');
s1=filtfilt(b,a,s-mean(s));
s2=filter(b,a,s-mean(s));
Mais avec filter le signal s2 est non seulement retardé (ça, c'est normal) mais il est retourné! (la tête en bas, en quelque sorte). Et ça je ne comprends pas à quoi c'est dû. Ça c'est ma 1ère question.
2e question subsidiaire: j'ai un transitoire énorme (en amplitude) en filtrant avec s2. J'imagine que c'est parce que filter prolonge avec des zéros mon signal au début, alors que mon signal n'est pas du tout à 0, même si j'en soustrais la moyenne comme je l'ai fait, car son coeff DC varie beaucoup. Que faire? Le prolonger artificiellement avec la première valeur de mon signal, c'est à dire s(1), au début et à la fin ? Je sais pas si ma question est clair.
Merci d'avance. Je sais que vous avez pas que ca à faire mais si je pouvais déjà avoir des éléments de réponse ce soir ce serait génial.
-----