Bonjour,
J'ai un soucis avec mon filtrage et j’espère que vous pourriez le résoudre.
J'ai des données d'altitudes et de distances. j'ai tracé l'altitude en fonction de la distance parcouru.
Ensuite je calcule la pente avec la formule : pente=dénivelé/distance
Puis je trace la pente en fonction du temps.
Puis je remarque que le signal de mon altitude et de ma pente sont trop bruité et donc j'utilise un filtre passe-bas sur l'altitude en utilisant butter et par conséquent filtre ma pente.
Si le filtre marche bien sur mon altitude, je trouve n'importe quoi sur ma pente.
Voici le programme que j'ai fais et les courbes obtenus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 fe=length(temps)/(temps(end)-temps(1)); fc=0.1; [a,b]=butter(1,fc/(fe/2),'low'); altitude_filtre = filtfilt(a,b,altitude); pente_pourcentage=(diff(altitude)./diff(distance))*100; pente_pourcentage_filtre=(diff(altitude_filtre)./diff(distance))*100; subplot(2,1,1) hold on plot(distance,altitude)' plot(distance,altitude_filtre,'r') title('altitude en fonction de la distance') hold off subplot(2,1,2); hold on plot(temps,pente_pourcentage) plot(temps,pente_pourcentage_filtre,'r') hold off title('pente en pourcentage')
Merci de votre aide, sinon autre question : peut-on filtrer en fonction de la distance au lieu du temps ?
Partager