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 :

[fft] Récupérer l'amplitude et la fréquence du maximum d'un signal [Débutant]


Sujet :

Signal

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 46
    Points
    46
    Par défaut [fft] Récupérer l'amplitude et la fréquence du maximum d'un signal
    Bonjour,

    Je réalise une FFT sur un signal et je désire récupérer l'amplitude et la valeur (fréq) du Peak (le max).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    L = length(Signal);
    Y = fft(Signal);
    FT = abs(Y/L);
    DispFT = 2*FT(1:L/2+1);
    freq = Sample_Freq*(0:L/2)/L;
     
    [Amplitude, IFreq] = max(DispFT);
    Frequence = freq(IFreq);
    Ce code fonctionne (Frequency = 200Hz) mais je voudrai maintenant avoir le Peak entre 100 Hz et 500 Hz (faire abstraction des autres peak max si < à 100Hz ou > à 500Hz)

    J'ai tenté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    FTCalcul = DispFT(100:500);
    FreqCalcul = Freq(100:500);
     
    [Amplitude, IFreq] = max(FTCalcul);
    Frequency = FreqCalcul(IFreq);
    Je n'obtient pas avec ce code le même résultat qu'avant (Frequency = 186.4), alors que je test avec une sinusoïde de 200Hz (entre 100 et 500Hz) je devrai avoir le même résultat non ?

    Merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 46
    Points
    46
    Par défaut Complément
    Un petit exemple :

    Dans ce cas là (image ci-dessous), ma fonction me retourne le peak max (200Hz) mais j'aimerai maintenant qu'il me retourne le peak max entre 400Hz et 800Hz (exemple 600Hz). Je n'arrive pas à réaliser cela.

    Nom : Transformee_Fourier.png
Affichages : 2670
Taille : 8,2 Ko

    Merci d'avance.

    Chneu

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 46
    Points
    46
    Par défaut Réponse
    J'ai trouvé ma réponse, je la poste si besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    IFreqMin = find(abs(freq-400) < 0.08, 1, 'first'); % récupération de l'index pour la fréq min à 400Hz
    IFreqMax = find(abs(freq-800) < 0.08, 1, 'last'); % récupération de l'index pour la fréq max à 800Hz
     
    FTCalcul = DispFT(IFreqMin:IFreqMax);
    FreqCalcul = Freq(IFreqMin:IFreqMax);
     
    [Amplitude, IFreq] = max(FTCalcul);
    Frequency = FreqCalcul(IFreq);
    Bonne journée.

    Chneu

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/08/2015, 13h57
  2. Déterminer les fréquences d'utilisation d'un signal
    Par lecteur1001 dans le forum Traitement du signal
    Réponses: 0
    Dernier message: 22/05/2012, 10h23
  3. Récupérer l'amplitude d'un son
    Par SmOkEiSBaD dans le forum FMOD
    Réponses: 0
    Dernier message: 15/11/2010, 14h38
  4. [D6] Récupérer la fréquence de l'écran
    Par Lung dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 26/09/2008, 14h57
  5. Récupérer fréquence refraichissement écran
    Par ddams dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 30/04/2003, 08h12

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