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

Signal Discussion :

Determiner la frequence d'un son (fft)


Sujet :

Signal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 16
    Points
    16
    Par défaut Determiner la frequence d'un son (fft)
    Bonsoir,

    Je cherche à trouver de façon très précise la fréquence d'un signal sonore que j'ai en .wav (ce signal est une sinusoide pure)
    Il me faudrait cette fréquence soit determinée au centième de Hz près.

    Le problème est que le fichier est cours (il y a trois periodes de sinusoides)

    J'ai voulu faire un test en créant moi même une sinusoide par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    t=0:1/8000:99/8000;
    z=sin(2*pi*401.21*t);
    cependant, avec la fft et en visualisant avec un grand nombre de points (10000000) j'obtiens une frequence de 399.85 ce qui est donc assez eloigné de 401.21 quand on veut une précision à 0.01 Hz près.

    Savez vous comment gagner en précision ?
    J'ai entendu parler de fenêtrage mais en faisant des recherches je ne trouve pas comment on pourrait les utiliser (les fenêtres pour gagner en precision)

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    La transformée de Fourier n'est pas un estimateur de fréquence précis. Procédez plutôt par comptage (d'une horloge de référence entre passages par zéro) ou inspirez-vous du récepteur FM différentiel, ou encore dérivez la phase instantanée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    t=0:1/8000:99/8000;
    z=sin(2*pi*401.21*t);
     
    h = hilbert (z);
    phase = unwrap(angle(h));
    omega = diff(phase);
     
    omega = omega(40:60);
     
    freq = 8000 * mean(omega)/(2*pi)
    Résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    octave:4> frequence
    freq =  401.21
    J'ai froidement coupé les extrêmités pour éviter les effets de bord (omega(40:60)). Il faudrait faire ça de façon plus élégante mais le résultat est là.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    merci !

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut La FFT est fiable et adaptée à condition de bien l'utiliser ! ;-)
    Bonsoir,

    Tout d'abord la FFT est fiable et fournit toujours le bon résultat avec la précision que vous voulez à condition de respecter les critères d'utilisation. Nul besoin de recourir à des méthodes compliquées ou de prendre des millions de points !

    Il faut toujours se rappeler que la résolution fréquentielle est l'inverse du support temporel (df = 1/support) et que la TFD est par nature périodique de période égale à la fréquence d'échantillonnage. Il convient donc d'échantillonner votre sinusoïde convenablement de sorte que sa période soit un multiple de la période d'échantillonnage.

    Ainsi avec 100 points sur une période de sinusoïde, on arrive largement au résultat voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    n=100;
    fr=401.21;
    T=1./fr;                      % période de la sinusoïde
    dt=T/(n-1) ;                % période d'échantillonnage
    t=0:dt:T;
    z=sin(2*pi*fr*t);
    Avec 100 points sur 3 périodes de sinusoïdes on y arrive également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    n=100;
    fr=401.21;
    T=3./fr;                      % 3 périodes de la sinusoïde
    dt=T/(n-1) ;                % période d'échantillonnage
    t=0:dt:T;
    z=sin(2*pi*fr*t);
    Le problème que vous aviez était que votre intervalle de temps n'était pas un multiple de la période de votre sinusoïde.

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

Discussions similaires

  1. Frequence d'un son a partir d'une variable
    Par nomadsoul68 dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/05/2011, 11h14
  2. Son wav à frequence > 20khz
    Par fabien335 dans le forum Signal
    Réponses: 1
    Dernier message: 14/02/2010, 15h32
  3. Hautes et Basses frequences FFT
    Par johnkhm dans le forum Calcul scientifique
    Réponses: 20
    Dernier message: 25/04/2008, 12h00
  4. FFT : son rôle ?
    Par teckto dans le forum Traitement du signal
    Réponses: 11
    Dernier message: 19/02/2008, 08h39
  5. ifft-fft temps-fréquence
    Par qtype dans le forum Signal
    Réponses: 3
    Dernier message: 18/08/2006, 19h29

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