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

 C++ Discussion :

FFT avec le signal d'un fichier WAVE


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut FFT avec le signal d'un fichier WAVE
    bonjour ,
    j'aimerais savoir comment faire la transformée de Fourier sur les données brut d'un fichier .wav afin d'obtenir sa représentation graphique (amplitude /temps)
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par rominous41 Voir le message
    bonjour ,
    j'aimerais savoir comment faire la transformée de Fourier sur les données brut d'un fichier .wav afin d'obtenir sa représentation graphique (amplitude /temps)
    merci
    Si tu veux une représentation amplitude/temps, tu n'as pas besoin d'une FFT, car c'est comme cela que le signal est stocké, dans les fichiers wave. Chacun des canaux de ton fichier WAV contient des valeurs (généralement des nombres signés sur 16 bits) qui donnent l'amplitude en fonction du temps. Si tu en dessines la graphe, tu vas voir apparaitre des courbes qui oscillent, c'est ton graphe amplitude/temps.

    La FFT te permet d'estimer le spectre du signal, c'est à dire la répartition des fréquences. La FFT ne donne pas une courbe en fonction du temps mais de la fréquence (mais tu peux bien sur effectuer ce calcul sur un petit morceau de ton signal).

    Pour la FFT, il te faut charger les données dans un tableau (généralement de nombres complexes, comme ton signal est réel, cela veut dire que tu vas mettre les parties imaginaires de tes nombres à zéro), et appliquer à ce tableau un algorithme qui calcule la FFT. Presque tous les livres consacrés au algorithmes mathématiques contiennent du code à cette fin.

    Francois
    Dernière modification par Invité ; 25/05/2009 à 12h38.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    Pourtant d'après le site http://tuxy2885.free.fr/index.php?ca...al&id=riffwave "L'interprétation des données brutes d'un son WAVE peut être effectuée grâce à une transformation de Fourier (rapide). Cette transformation permet notamment d'obtenir une représentation graphique du son (fréquence et/ou amplitude en fonction du temps) à partir des données brutes. "

    Lorsque je met la valeur des octets de mon fichier WAVE dans un performancegraph je n'obtient pas l'amplitude en fonction de la fréquence est-ce normal ?? Qui a raison le site ,vous ou les deux et je 'ai rien compris ??
    Merci de votre réponse

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par rominous41 Voir le message
    Pourtant d'après le site http://tuxy2885.free.fr/index.php?ca...al&id=riffwave "L'interprétation des données brutes d'un son WAVE peut être effectuée grâce à une transformation de Fourier (rapide). Cette transformation permet notamment d'obtenir une représentation graphique du son (fréquence et/ou amplitude en fonction du temps) à partir des données brutes. "

    Lorsque je met la valeur des octets de mon fichier WAVE dans un performancegraph je n'obtient pas l'amplitude en fonction de la fréquence est-ce normal ?? Qui a raison le site ,vous ou les deux et je 'ai rien compris ??
    Merci de votre réponse
    Les données d'un WAV contiennent (par définition), l'amplitude en fonction du temps. Si tu les mets dans un performance graph, tu as les amplitudes du signal en fonction du temps.

    La FFT donne la répartition des fréquences (il n'est pas tout à fait correct de parler d'amplitude, là, les coefficients de la série de fréquence étant des nombres complexes, donc ayant un module et une phase). Si tu les mets dans un performance graph (par exemple le module du complexe) tu vas avoir quelque chose qui représente "le poids" de chaque fréquence dans le signal (sans indication de temps, ou plutôt pour toute la plage temporelle que tu as utilisée pour le calcul de ta FFT).

    Francois

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    ok ,donc la FFT ne me sert à rien si je veux l'amplitude en fonction du temps il me suffit juste de lire les octets !!! c'est ça ??

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Oui c'est bien ça
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  7. #7
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Tu as tout compris la FFT sert a avoir une representation fréquentiel de ton signal, ce qui est tres interressant quand on veut le traiter. Aprs si tu veux juste l'amplitude en fonction du temps comme dis plus haut tu as rien a faire... Je pense que ça c'est la bonne nouvelle pour toi.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    effectivement c'est une bonne nouvelle
    merci beaucoup
    problème résolu

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut fft d'un fichier wave
    bonjour,

    s'il vous plait est ce que quelqu'un peut m'aider à calculer la fft d'un signal wave en matlab.
    le problème que j'ai exécuté la commande suivante
    y=fft(wavred(monfichier.wav))
    j'ai trouvé que le résultat de la commande est sur un fichier énorme 400 MO!!
    comment je peux modifier mes paramètres pour obtenir un taille moindre et comment je peux modifier les paramètres de sortie(car chaque ligne comporte seulement 2 valeurs)?
    aidez moi s'il vous plait

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

Discussions similaires

  1. Utilisation FFT - Power Spectrum sur un fichier WAVE
    Par lekev62 dans le forum LabVIEW
    Réponses: 5
    Dernier message: 07/04/2014, 22h11
  2. Decoder fichier wave et FFT
    Par mat1554 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 29/04/2013, 16h05
  3. Réponses: 4
    Dernier message: 06/05/2011, 09h41
  4. Fichier Wave avec nombre de bits par échantillon=16
    Par airefrais dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2009, 23h51
  5. Réponses: 22
    Dernier message: 29/01/2005, 11h29

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