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')
Nom : untitled.jpg
Affichages : 138
Taille : 90,0 Ko


Merci de votre aide, sinon autre question : peut-on filtrer en fonction de la distance au lieu du temps ?