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 :

Extraction phase signal


Sujet :

Signal

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Extraction phase signal
    Bonjour,

    je suis en train d'essayer d'extraire la phase d'un signal pour avoir la fréquence en fonction du temps, pour simplifier mon problème je vais mettre un cas équivalent en plus simple qui donne le même résultat que je ne comprends pas :

    - J'ai un signal sinusoidal de fréquence 5MHz (que j'appelle testo),
    - Je calcule la fft de ce signal
    - j'en prends la phase avec "angle" (phaseff)
    - je fais la ifft de ça pour repasser en domaine temporel (phaseft)
    - comme la phase est l'intégrale de la fréquence, je dérive ce résultat pour trouver la fréquence (GFfilt1 )

    -> le problème : si je plot GFfilt1 je m'attends à avoir les 5MHz de mon signal et donc une droite horizontale d'ordonnée 5e6 en fonction de t, or ce n'est pas du tout le cas, j'ai juste un courbe qui varie aux alentours de 0, pourtant en regardant abs(fft) de mon signal j'ai bien un pic à 5MHz

    -> parallèlement à ça j'ai fait la transfo de Hilbert pour en extraire l'angle aussi, ça marche pas mieux.

    voici le code, quelqu'un voit le soucis ? je pense que je m'y prend mal quelque part mais je sais pas où..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    fs = 1e9;
    N = 100000;
    t = 1/fs*[1:N];
    t = t';
    testo = sin(2*pi*5e6*t);
     
    Lf = length(testo);
    NFFTf = 2^nextpow2(Lf);
    Ytest = fft(testo,NFFTf);
    f = fs/2*linspace(0,1,NFFTf/2+1);
    ampff=abs(Ytest);
    plot(ampff);
    plot(f,2*abs(Ytest(1:NFFTf/2+1)));
    phaseff = unwrap(angle(Ytest)); %phase domaine freq
     
    Xtest=ifft(phaseff,NFFTf);
    phaseft = unwrap(angle(Xtest)); %phase domaine temp
     
    Hfilt1 = hilbert(testo);
    Hphase = angle(Hfilt1);
     
    GHfilt1 = gradient(Hphase);
    GFfilt1 = gradient(phaseft);
     
     
     figure
    plot(GHfilt1);hold on;plot(GFfilt1,'r');

  2. #2
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Je ne m'y connais en rien... Cependant, tu peux regarder par là.

    Ensuite, je ne sais pas d'où tu sors que la fréquence est la dérivée de la phase, mais pour moi, c'est n'importe quoi... sauf d'un point de vue unité, ok.

    A+
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/04/2012, 13h08
  2. "Phase shift " d'un signal module en matlab
    Par mihaispr dans le forum Signal
    Réponses: 2
    Dernier message: 02/08/2009, 10h28
  3. Générer un signal à phase polinomiale
    Par elhaoud dans le forum Signal
    Réponses: 2
    Dernier message: 22/05/2008, 15h25
  4. Rétablir la phase d'un signal
    Par sango85 dans le forum Signal
    Réponses: 1
    Dernier message: 27/11/2007, 10h52
  5. Extraction d'une partie de signal de parole
    Par jena dans le forum Signal
    Réponses: 2
    Dernier message: 23/01/2007, 12h35

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