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 :

[Signal] FFT audio : comment ca marche ?


Sujet :

Traitement du signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut [Signal] FFT audio : comment ca marche ?
    Bonjour à tous,
    je vous écris car je dois dans mon application développer un Vumetre qui permet de visualiser une fréquence spécifique extraite d'un son en cours de lecture.

    j'utilise DirectSound pour lire le son et je possède un buffer circulaire qui simule le comportement du buffer circulaire DirectSound me permettant d'obtenir chaque octet en cours de lecture.

    j'ai donc à l'heure actuelle un vumetre qui permet de visualiser le signal global de mon son en cours de lecture. J'ai cherché du côté de Fourier avec la FFT rapide de Fourier mais je ne comprend pas comment l'appliquer à mon cas!

    Pourriez-vous m'aider ? J'ai trouvé l'algorithme FFT mais je ne vois pas comment on l'utilise. Par où fournis-t-on les octets et par où fournis-t-on la fréquence à isoler désirée ? Puis-je directement utiliser les octets en entrée?

    Merci de votre aide, je ne trouve pas grand chose en documentation. Merci

  2. #2
    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
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut
    Merci c'est très gentil, mais ca ne m'aide pas trop trop;
    J'ai trouvé cela : http://www.unilim.fr/pages_perso/jea...t.htm#section2

    Mais c'est pareil, c'est l'utilisation que je ne sais pas faire.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Qia,
    Citation Envoyé par mbsofts
    Pourriez-vous m'aider ? J'ai trouvé l'algorithme FFT mais je ne vois pas comment on l'utilise. Par où fournis-t-on les octets et par où fournis-t-on la fréquence à isoler désirée ? Puis-je directement utiliser les octets en entrée?
    On ne "fournit" pas des octets à un algorithme, mais à son implémentation.

    Pas besoin de chercher bien longtemps pour trouver une fft implémentée dans n'importe quel langage que tu désires, en général avec un petit mode d'emploi, même si parfois c'est très bref.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut
    oui bien sûr j'en trouve, mais en C avec plein d'autres fonctions comme l'équalisation. Il m'est donc difficile d'isoler cki correspond à l'équaliser et au vumetre. C'est là que je demande votre aide : c'est très théorique et je ne sais pas comment m'y prendre:

    Fourier sert à décomposer une signal complexe en sinusoides d'après ce que j'ai compris : 1 sinusoide = 1 fréquence !(?) Ca voudrais donc dire que mon vumetre pour une certaine fréquence aura des évolutions de hauteur linéaires ! ou faudra-t-il faire la moyenne des quelques fréquences avant et aprés la fréquence voulue? Vous voyez ce que je veux dire?

  6. #6
    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 mbsofts
    Fourier sert à décomposer une signal complexe en sinusoides d'après ce que j'ai compris
    En fait, ca fait un changement de repère: Volume(temps) -> Puissance(frequence).

    Après la FFT, tu as un tableau S[f] qui te donne l' "importance" de chaque frequence "f".

    1 sinusoide = 1 fréquence !(?)
    Oui.

    Ca voudrais donc dire que mon vumetre pour une certaine fréquence aura des évolutions de hauteur linéaires ! ou faudra-t-il faire la moyenne des quelques fréquences avant et aprés la fréquence voulue? Vous voyez ce que je veux dire?
    oui, il faudra comptabiliser aussi les frequences voisines dans ton vuemetre.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut
    merci c'est déjà plus clair.
    En gros après la "magique" fftw je récupère un tableau de fréquences à partir de mon octet fourni !

    C'est assez simple comme cela, il faudra juste ensuite que je récupère les valeurs proches de ma valeur de fréquence désirée; que j'en fasse la moyenne, j'obtiendrai ainsi une puissance; laquelle varie pour un 8 bits de -127 à +128 ou de 0 à 255 en non signé.. et que je fasse ca à chaque octet de mon son en temps réel (ou groupe d'octets).

    Ma dernière question (après je pense pouvoir me débrouiller) :quelle unité FFTW dois-je prendre pour Delphi 2006 ? J'en ai trouvé plusieurs versions sur le web.

    Et enfin, pourquoi une notion de nombre complexes pour du son? Comment je fais pr prendre mon octet et aboutir à mon tableau de puissances en fonction de la fréquence ?

    (je ne vous demande pas la solution précodée, juste des pistes; j'ai passé cette semaine sur cela, j'avoue avoir tout vu sans avoir trop avancé.. )

    Merci à ceux qui m'ont déjà aidé et aux prochains !

  8. #8
    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 mbsofts
    merci c'est déjà plus clair.
    En gros après la "magique" fftw je récupère un tableau de fréquences à partir de mon octet fourni !
    Non, pas a partir d'un seul octet. Tu dois lui passer ton buffer de valeurs. Plus il y a d'octet, meilleur sera ton estimation des frequences.

    Citation Envoyé par mbsofts
    Ma dernière question (après je pense pouvoir me débrouiller) :quelle unité FFTW dois-je prendre pour Delphi 2006 ? J'en ai trouvé plusieurs versions sur le web.
    aucune idée.

    Citation Envoyé par mbsofts
    Et enfin, pourquoi une notion de nombre complexes pour du son? Comment je fais pr prendre mon octet et aboutir à mon tableau de puissances en fonction de la fréquence ?
    Ah... toujours la bonne vieille meme question. En fait, l'algo de la FFT est un calcul de DFT complexe.

    Et c'est plus simple/rapide de faire une FFT (donc réel+complexe) puis virer la partie complexe que de calculer seulement une DFT réelle.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. [Audio] JAVA SOUND comment ca marche?
    Par billynirvana dans le forum Multimédia
    Réponses: 3
    Dernier message: 04/11/2008, 13h03
  2. FFT IJ.plugin.FFTMath Comment ça marche ?
    Par philippe13 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 20/06/2007, 19h11
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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