Bonjour
je cherche une methode pour lisser une courbe.
Vous trouvez si joint l'allure de ma courbe.
Merci
Bonjour
je cherche une methode pour lisser une courbe.
Vous trouvez si joint l'allure de ma courbe.
Merci
salut
tu as oublié la piece jointe
sinon les fonctions spline ou interp1 te seront probablement utile
voir polyfit si tu veux un lissage polynomiale
Fabien
j'ai essayé avec spline mais j'ai obtenu des erreurs
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 I0=power(10,(-12)); n=1.2; t=1:1:300; i=I0*power(t,(-n)); i=i+I0/10*sin(2*3.14*100*t); M=[t',i']; save data0.txt M -ASCII; PP = spline(i,t); plot(t,i,'r',t,pp,'b');
Attention il y a une erreur dans ton code :
Si c'est juste une étourderie au moment de recopier le code, montre nous le message d'erreur renvoyé par MATLAB, nous n'allons pas le deviner tout seul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part pp = spline(i,t);
Sinon, vu l'allure de ta courbe, je me demande bien à quoi devrait ressembler le résultat lissé ?
voici le message d'erreur
Undefined function or variable 'pp'. Error in spl (line 9) plot(t,i,'r',t,pp,'b');
En effet mon but est d’éliminer les oscillations et que la courbe devienne linéaire
comme la courbe en pièce jointe
j'ai essayé avec spline et interp1 mais j'ai pas obtenu le resultat que je cherche
salut
spline ou interp1 font de l'interpolation (éventuellement "lissée")
et necessitent donc un 3ème paramètres qui est dans ton cas un nouveau vecteur i plus précis
cependant, comme il s'agit d'interpolation, les points existant seront toujours les même (on calcul des points manquants) et donc le bruit sera toujours là
pour enlever le bruit :
- tu peux filtrer ton signal (fonction filter ou à la main)
- tu peux faire un lissage polynomial si ton signal a une tête polynomial ou du curve fitting de manière général si tu connais la tête de ton signal
Partager