Salut,
Qu'est ce qui t'intéresse dans ce signal ?
La fréquence des pics ?
L'amplitude des pics ?
Comment as tu échantillonné ?
Une boucle dans le soft ?
Interruption du Timer ?
Si tu l'as fait par interruption du Timer alors tu sais exactement le temps 't' qui sépare 2 éléments de ton tableau de données.
Pour connaître la fréquence, on détecte souvent le passage par 0 du signal 1 fois sur 2 et comme tu n'as plus de composante continue, ça tombe bien puisque tu passes par 0 et si tu as des problème de bruit autour de celui-ci alors tu peux aussi faire une détection de passage par un seuil un peu plus haut que 0. Etant donnée que tu sais exactement le temps entre les éléments de ton tableau alors le calcul de la fréquence devient assez simple.
Dans l'exemple ci dessous et si ton Timer débode toutes les 50ms (20Hz) alors il se passe :
soit 1.17Hz
Pour la détection suivante :
soit 1.33Hz
Ensuite :
soit 1.11Hz
En moyennant tout ça et en prenant en compte ce qui est en bleu sur le schéma, c'est a dire l'autre détection du passage par 0, alors tu peux avoir une bonne interpolation.
Pour connaître l'amplitude mais surtout pour détecter des pics, personnellement, je ferai une dérivée sur mon tableau d'échantillon ou plutôt le calcul du coefficient directeur.
Si tu passes par le Timer alors Echantillon2 - Echantillon1 est connu puisque c'est 50ms (intervalle entre 2 échantillons). En regardant la valeur de D' tu sais si le signal monte ou descend (plus ou moins fort) et je pense que tu peux détecter une montée significative suivie d'une descente significative = pic !
L'électronique que tu as mis en oeuvre + le réglage de l'ADC du Arduino auront un effet important sur le soft. Exemple ici http://www.developpez.net/forums/d16...ure-d-tension/ ou une personne tente d'acquérir des centaines de mV avec un ADC 10bits référencé a +5V (autrement dit les bits de poids forts ne serviront jamais)
Partager