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 :

Lecture fréquence du son


Sujet :

Traitement du signal

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut Lecture fréquence du son
    Bonjour

    Ayant regardé ici à fréquence, wav, mp3 ... et ne trouvant pas la réponse, je vous pose la question.

    Je recherche à "analyser" la fréquence d'un signal audio WAV qui a une variation faible.

    Par exemple
    de 0 à 1 sec : 20 hertz
    de 1 à 2 sec : 30 hertz
    de 2 à 3 sec : 35 hertz
    ...

    Mon but est de récuprer un tableau à 2 colonnes me donnant
    1 - 20
    2 - 30
    3 - 35
    ...

    le soucis est :
    - que je ne sais pas du tout si cela est faisable
    - quel language serait le plus adapé (je préfére le pascal et C++, que je connais un peu)

    fonctionnement sous windows

    donc ma question est de savoir si cela est réalisable et si oui, sous quel forme ?

    nb : si vous avez des exemples approchant d'une telle réalisation, je vous en remercie d'avance.

    merci

  2. #2
    Blue_Strike
    Invité(e)
    Par défaut
    bonjour,

    ben c'est réalisable si tu cherches à extraire les fréquences d'un signal vocal, autrement dit : le spectre fréquentiel..

    La transformée de fourrier FFT peut le faire, elle existe une fonction "fft" tout prête sous MatLab

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut
    Je te remercie et je vais regarder cela.

    Sinon, j'ai aussi trouvé ca : http://www.developpez.net/forums/sho...&highlight=fft, il faut que je regarde de plus pret car me parrait interessant.

  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 : 85
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut Lecture fréquence du son
    Salut.

    La FFT est vraiment un sujet à la mode, mais sait-on que Fourier ne s'est jamais occupé de traitement de signal. Il a inventé les séries qui portent son nom en cherchant à simuler l'évolution de la température dans un "pavé" froid trempé brusquement dans un liquide chaud!

    Je vais peut-être te surprendre en te proposant une approche totalement différente. Sais-tu ce qu'est un fréquencemètre à lames vibrantes? C'est un appareil que l'on trouve dans les vieilles centrales électriques. Il est constitué d'une série de lames accordées sur des fréquences telles que ... 48,5 49,0 49,5 50,0 50,5 51,0 51,5 ... Hz. Lorsque la fréquence est 50,0 Hz, on voit vibrer seulement la lame accordée sur 50,0 Hz. Lorsque la fréquence est de 49,8 Hz, les lames 49,5 et 50,0 vibrent, mais plus faiblement.

    Il n'est pas difficile de simuler une série de filtres (quadripoles) qui se comportent comme des lames vibrantes, d'appliquer ton signal sur toutes les entrées en parallèle et de chercher à la sortie de quel filtre le signal filtré a la plus grande valeur efficace. C'est à toi de choisir le nombre et la fréquence de résonance des filtres en fonction de la résolution que tu désires.

    Bonne chance
    Jean-Marc Blanc

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pour un signal dont la fréquence varie, une FFT n'est pas trop conseillée. Une SFFT est meilleure, il s'agit de plusieurs FFT sur des tranches de signal.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut
    je vais regarder tout cela.

    mais en realité et comme je viens de penser, je n'ai besoin que d'un fréquencemetre sur une WAV qui exporterait les données.

    Mon signal est de forme carré, à fréquence constante sur 1 sec

    Je ne suis pas certain qu'il faille une FFT ou SFFT pour ca, non ?

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Une FFT sur tout le signal d'un coup ne t'apportera rien. Tu as besoin de savoir quelle est la fréquence fondamentale à un instant T donné. Pour cela, on utilise une FFT sur des tranches de signal, aussi appelée SFFT.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 453
    Par défaut
    Salut !

    Une mesure de la période du signal, de période en période, est-elle envisageable ici ?

    A plus !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut
    Bonjour,

    cela est tout a fait faisable, surtout vu la forme de mon signal, mais est facilement réalisable sur un signal WAV ?

  10. #10
    Blue_Strike
    Invité(e)
    Par défaut
    jette un oeil sur cette discussion, sous MatLab ya la fonction "wavread" qui parait intéressante.

    A+

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut
    Matlab n'est pas gratuit ?

    Et je dois pouvoir installer le programme sur un autre PC sans probléme, par la, je me demande si un langage gratuit , comme le C ou delphi ne serait pas mieux adapté à mes besoins.

    J'entends par la, installer juste le fichier executable, pas tout le logiciel de programmation, de conception.

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Matlab est un logiciel propriétaire, comme il existe des compilateurs payants pour le C ou Delphi (d'ailleurs, pas sûr qu'il existe beaucoup de compilateurs gratuits pour Delphi).
    Tu peux essayer à la place Octave et Scilab ou carrément Python.

  13. #13
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 453
    Par défaut
    Salut !

    Si on suppose un signal periodique pas trop complexe et relativement régulier dans sa forme, genre sinus, carré, triangle, dent de scie, il existe deux transitions sur les quelles s'appuyer pour détecter sa période, mais une seule pourrait suffire.
    Il devient donc possible de compter les échantillons qui sont directement liés au temps (1 / Frequence échantillonnage), et ce, d'une transition à l'autre, d'une période à l'autre !

    Soient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    te = 1 / F_ech (durée d'un échantillon... en µs)
    c=0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Tant qu'il existe des échantillons (au moins deux):
    si (échantillon <= 0) et (échantillon suivant > 0)
        si c != 0 alors on peut évaluer la fréquence Hz =  1 / (c * te)
        c=0 prêt pour la période suivante
     
    sinon c+1 on compte les échantillons
    Ceci dit, il faut que la forme de l'onde s'y prète !

    A plus !

  14. #14
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Miles
    Tu peux essayer à la place Octave et Scilab ou carrément Python.
    Et comme on est pas vache dans la rubrique MATLAB, on a même mis les alternatives dans la FAQ : Existe-t-il des alternatives à MATLAB ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 29
    Par défaut
    dans chaque logiciel cité, est-il possible de créer un excécutable qui soit transportable, sans le logiciel qui l'a conçu, vers un autre ordi ? (ou des dizaines d'autres)

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    C'est faisable avec Python+numpy+scipy, mais il faut un exécutable par plateforme. Sous Window,s on peut faire un seul fichier, sous Linux, c'est préférable d'installer chaque paquet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA/Excel: lecture d'un son a l'ouverture d'une boite de dialogue
    Par Raph.c dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/05/2008, 03h04
  2. Lecture de plusieurs sons simultanément
    Par Chen norris dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/11/2007, 18h47
  3. lecture d'un son en flash
    Par hedi_wazo2001 dans le forum Flash
    Réponses: 1
    Dernier message: 12/03/2007, 14h20
  4. Réponses: 3
    Dernier message: 09/11/2006, 18h05
  5. Réponses: 7
    Dernier message: 02/03/2005, 15h45

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