Bonjour
Je ne sait pas trop où poster ce message, donc libre aux modérateurs de le déplacer.
Je suis en train d'élaborer un programme (pour mon TIPE) qui doit retrouver les fondamentales et les harmoniques d'un son (par exemple un accord de guitare). Pour ca, je lis un fichier Wave (donc déja échantilloné), je lui applique la transformée de fourier, je l'affiche sous forme de diagramme. Jusque la pas de problèmes: on distingue parfaitement les pics. Maintenant, j'aimerais analyser les données pour extraire touts les pics, et ensuite déterminer les qui est fondamentale/harmonique. Pour cela, j'ai commencé par éliminer les valeurs en dessous d'un certain seuil, puis récupéré les maximums locaux: par exemple pour le tableau:
[5,8,3,6,15,20,50,25,3,6,12,15, 9,2], on prend un seuil de 10, ce qui donne les tableaux [15,20,50,25] et [12,15], puis je trouve les maximums en parcourant les deux tableaux: 50 et 15.
Cela marche relativement bien, mais malheureusement les valeurs sont souvent plus irrégulières: un exemple:
[5,8,3,15,20,9,25,12,3,2,12,15, 9,16,3]: la mon algo donne comme sous tableaux: [15,20] [25,12] [12,15] [16], mais le problème, c'est que 25 et 20 sont très proches, et correspondent donc au même pic, donc je ne voudrais que 25 comme maximum...
J'ai bien quelques idées, mais peu efficaces (il y a quand même autours de 65000 valeurs...), et pour mon TIPE, j'aimerais quelque chose de plus "éléguant", par exemple, il n'y aurait pas un algorithme de "lissage" des données, qui me donnerait des pics bien définis.
Si vous avez des idées, ca m'aiderais beaucoup!
Eric (n'hésitez pas à me demander des détails, je n'ai surement pas été très clair...)
-----