IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

detection de pics dans un signal audio


Sujet :

Traitement du signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut detection de pics dans un signal audio
    plop,

    je voudrais réaliser un système électronique géré par microcontrolleur qui déclenche des leds dès qu'il détecte des pics dans de l'audio.

    je veux uniquement allumer les leds en fonction des grave.

    pour ce faire j'ai filtré le signal original pour ne laisser passer que les harmonique inférieure à environ 100Hz

    puis j'ai redressé le signal car le convertisseur analogique vers numérique ne supporte pas le négatif

    et enfin, j'en ai extrait la valeur moyenne où l'on voit bien apparaître les pics.

    voila mes signaux :



    1/original
    2/original filtré
    3/original filtré redressé
    4/valeur moyenne de l'original filtré redressé

    mon µC échantillonne à vitesse variable (il échantillonne les deux signaux, fait ses calcul puis recommence, les valeurs sont stockées dans un tableau qui contient les 10 dernières valeurs sur 10 bits) le signal redressé puis le signal valeur moyenne

    comment détecter ces pics? je n'ai absolument aucune idée des outils dont je pourrais me servir.

    et non je ne peux pas mettre de seuil de declenchement car le volume est variable

    je sais que le signal est plutôt faible, je compte l'amplifier afin que lorsque le son soit au maximum le signal varie entre 0-5V

    merci

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    cette question a déjà été traitée sur le forum
    Les solutions préconisées étaient à base de gradient.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut
    j'en ai vu oui, mais aucun n'a aboutie.

    de plus, je suis en deuxiemme année de BTS electronique, mes outils sont transformée de laplace, en Z, complexe, equation differentielle.

    je n'ai aucune idée de ce que sont les gradiant, j'ai bien tenter une recherche, mais je ne sais pas ce que je cherche, tous ce que je trouve ce sont des document qui traite de la detection de contour sur des images

    je precise aussi que je traite le signal en temps réel, je ne dispose pas du du signal avant sa lecture

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Contrairement à d'autres, tu nous a donné une information assez complète sur ton problème. Bravo! Comme ça, il nous sera plus facile de t'aider.

    La première chose que tu dois faire, c'est de donner une définition mathématique absolument rigoureuse et sans aucune ambiguité de ce que tu appelles un pic. Actuellement, il subsiste un doûte: en regardant attentivement lton diagramme 4 (valeur moyenne), il n'est pas possible, sans définition claire, de dire si la zone 3 correspond à 1 ou 3 pics, la zone 4 à 1 ou 2 pics.

    Jean-Marc Blanc

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par sliders_alpha Voir le message
    de plus, je suis en deuxiemme année de BTS electronique
    Et en première année on ne t'a pas dit comment écrire électronique

    Sinon, un gradient te permet d'obtenir les variations de ton signal.
    Dans les discussions sur le sujet tu trouveras un gradient de base : [-1 0 1]
    Pour savoir comment l'appliquer, renseignes toi sur tout ce qui est convolution. Tu trouveras des filtres 2D pour des images, là c'est du 1D pour un signal.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Pour ToTo13.
    je n'ai aucune idée de ce que sont les gradiant
    Beaucoup de ceux qui nous appellent à l'aide n'ont que des notions insuffisantes en mathématiques (et en autogaffe ). Alors, pour les fonctions d'une seule variable (ici, le temps), ne vaudrait-il pas mieux parler de dérivée?
    Jean-Marc Blanc

  7. #7
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut
    La première chose que tu dois faire, c'est de donner une définition mathématique absolument rigoureuse et sans aucune ambiguité de ce que tu appelles un pic. Actuellement, il subsiste un doûte: en regardant attentivement lton diagramme 4 (valeur moyenne), il n'est pas possible, sans définition claire, de dire si la zone 3 correspond à 1 ou 3 pics, la zone 4 à 1 ou 2 pics.
    en fait, chaque numero est un pic.

    pour ce qui est de les definir, ça va etre dur, on ne peut pas prendre leur aire, le volume etant variable

    ceci etant, j'ai fait le montage et regarder plusieur musique passant a l'interieur a l'oscilloscope pendant un bon bout de temps.

    et j'ai remarquer que le signal valeur moyenne (le dernier) a toujours une sorte de composante continue a l'interieure, et je me suis dis, si j'extrait cette coponsante continue, je peux ensuite definir un seuil de comparaison independament du volume.

    en image, la composante continue est le signal rouge, j'ai fait deux simulation (plus de 30 minute =_=) avec un volume different



    maintenant que j'ai ce signal rouge, je n'ai qu'a dire, declencher les leds quand le signal vert de vien X fois plus grand que le signal rouge.

    qu'en pensez vous?

    Et en première année on ne t'a pas dit comment écrire électronique

    je met tres rarement les accents =p

    pour les grandiant j'ai vu pas mal de truc, et je ne vois pas en quoi ça peut m'ettre utile, a chaque fois ça permettait d'avoir un signal lissé dans tous les exemple que j'ai vu

    ###EDIT,

    ahn, si j'avais actualisé la page j'aurais eu la solution a 17h30 au lieu de me casser la tete xD

    ta solution aurait donc été de calculer par exemple t*tension sur un certain nombre d'echantillon et comparer le t*tension instantanée au moyen

  8. #8
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    je voudrais réaliser un système électronique géré par microcontrolleur qui déclenche des leds dès qu'il détecte des pics dans de l'audio.
    En fait, ton problème est beaucoup plus simple qu'il n'y paraissait au début: si tu remplaçais ton système électronique, ton microcontrôleur et tes leds par une simple ampoule à incandescence, tu obtiendrais exactement l'effet voulu. Alors, si tu veux utiliser une technologie "moderne", programme ton microcontrôleur de manière qu'il simule une ampoule en tenant compte de l'inertie thermique du filament (ce qui revient à ajouter un filtre passe-bas sur le carré du signal).
    Jean-Marc Blanc

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par sliders_alpha Voir le message
    ta solution aurait donc été de calculer par exemple t*tension sur un certain nombre d'echantillon et comparer le t*tension instantanée au moyen
    Oui, plus ou moins. Je parlais d'énergie mais on peut aussi passer par un calcul de puissance.

    Si on approxime la puissance moyenne sur une fenetre de taille W par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                +W/2
    Pw = 1/W * Somme{ V(t)² }
               t=-W/2
    alors on peut calculer une puissance moyenne avec une grande fenetre Wm, et une puissance instantanée avec une petite fenetre Wi. L'idéal serait d'avoir Wi = largeur du du pic et Wm = largeur entre 2 ou 3 pics.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par sliders_alpha Voir le message
    maintenant que j'ai ce signal rouge, je n'ai qu'a dire, declencher les leds quand le signal vert de vien X fois plus grand que le signal rouge.
    Une mini-recherche sur ce forum (sur la première page) t'aurait amené à cette discussion : algorithme-detection-maxima-locaux-signal-serie-points/

    dont le post #5 te donne un algo trivial...

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par sliders_alpha Voir le message
    et non je ne peux pas mettre de seuil de declenchement car le volume est variable
    Heu... je suppose que tu ne veux pas mettre de seuil FIXE sur le niveau du volume, c'est ca ?

    Mais on peut quand même utiliser un seuil pour la detection ?

    Dans ce cas, une solution simple et pas chère: tu calcules l'energie moyenne de ton signal (mise à jour au fur et a mesure) et tu calcules l'energie "instantanée" sur une petite fenêtre.

    Cela te permet de créer un signal (carré) de dépassement: "1" si l'énergie instantanée est superieur à X fois (seuil) l'energie moyenne, et "0" sinon.

    Le seuil peut être une constante, ou alors calculé dynamiquement en étudiant le signal (variance, ...)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Suppression de pics dans un signal audio
    Par marina123 dans le forum Signal
    Réponses: 5
    Dernier message: 09/08/2012, 11h22
  2. Recherche de pic dans un signal
    Par matt41fr dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 08/12/2011, 11h51
  3. detecter les pics, basse, percution, dans une musique (temps reel)
    Par sliders_alpha dans le forum Traitement du signal
    Réponses: 7
    Dernier message: 12/01/2010, 22h19
  4. Detection d'un motif dans une texture audio
    Par Contact2012 dans le forum Traitement du signal
    Réponses: 4
    Dernier message: 29/01/2009, 10h52
  5. algorithme detection de pics dans une courbe
    Par bfb dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 31/03/2006, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo