Pages: [1]   Go Down
Author Topic: Filtrer des données bruitées  (Read 1905 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

je tente d'utiliser des données des accéléromètres d'un Wii nunchuck:



mais les données sont bruitées (peu de répétabilité dans les mesures, c'est à dire que 2 mesures successives vont être différentes même si l'on ne bouge pas la manette)

j'applique un filtre du type: accélération = (précédente valeur d'accélération + nouvelle) /2

mais ça ne semble pas suffisant...

Si quelqu'un a déja vu ce cas de figure et a une solution efficace, je suis preneur!

merci!
Logged

J'apprends tous les jours!

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour filtrer tes données tu peux utiliser ça (filtre passe-bas) :

Code:
float valeur_filtree;

void loop(){

valeur_filtree= lpfilter(float(valeur_lue)*.9+(valeur_filtree*.1), filterVal , valeur_filtree);
}


float lpfilter(float data, float filterVal, float filteredVal){

  if (filterVal > 1){
    filterVal = .99;
  }
  else if (filterVal <= 0){
    filterVal = 0;
  }

  filteredVal = (data * (1 - filterVal)) + (filteredVal * filterVal);

  return filteredVal;
}
« Last Edit: January 27, 2011, 03:07:08 pm by Jean-François » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok si je comprends bien cela permet de pondérer l'ancienne valeur par rapport à la nouvelle?
par contre elle est filtrée par la fonction mais aussi dans la manière d’appeler la fonction?
je ne comprends pas trop la partie:

Code:
float(nums[3])*.9+(valeur_a_filter*.1)

je viens de tester une moyenne pondérée avec un coeff 0.9 et cela semble mieux. Il y a tout un travail d'étalonnage qui m'attends  smiley-razz
merci pour cette réponse très rapide!  smiley
Logged

J'apprends tous les jours!

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai corrigé.  smiley-kiss
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: