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

Algorithmes et structures de données Discussion :

Supprimer le déphasage entre deux courbes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Par défaut Supprimer le déphasage entre deux courbes
    Bonjour,

    j'ai deux courbes issus de la même simulation ayant des pas différents, et j'observe un déphasage entre les deux. J'aimerais pouvoir mesurer et supprimer ce déphasage, sachant qu'il n'est pas constant. Comment pourrais-je le faire?

    Ci-joint le graphe
    Merci,
    Images attachées Images attachées  

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    euh...

    On ne voit qu'une courbe, là

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    non, elle sont de couleurs assez prochent :

    => il y en a une en bleu et l'autre en vert

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    j'ai beau regarder, je n'en vois qu'une !!!

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    j'ai beau regarder, je n'en vois qu'une !!!
    lol. je te décris donc le schéma :
    => on a une courbe bleu de type Acos(wt)+Bsin(wt) et on a une autre courbe qui est quasiment similaire mais décalé d'un tout petit déphasage (qui à l'air constant sur la figure mais apparement ce n'est pas le cas d'après l'auteur du message).

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Si ce sont deux sinusoïdes similaires, ne suffirait-il pas de faire la différence des deux ?

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    On voit un déphasage (soit un décalage en X), pas un offset continu (un décalage en X). Une différence entre les deux courbes ne donnerait pas grand chose.

    Tu as f(x) et g(x). Tu cherches le déphasage phi tel que f(x + phi) = g(x).

    Le déphasage n'est certes pas constant si on considère que le déphasage. Mais si on voit des variations dans les courbes, ce ne sont pas que des déphasages. Par exemple les extrema locaux n'ont pas la même valeur. Mesurer le déphasage à cet endroit est facile, puisque c'est l'endroit où la dérivée s'annule (et change de signe). C'est une première méthode de mesurer le déphasage.

    Sinon, tu peux prendre tout autre point, et chercher f (x + phi1) < g(x) < f(x + phi2).

    Le déphasage, tu le mesures donc sur un ou deux points caractéristiques, puis tu corriges l'ensemble de la courbe. Sinon quel intérêt ? J'imagine que le but n'est pas de faire en sorte que les deux courbes se superposent exactement, mais de comparer les courbes en dehors de tout déphasage.

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 504
    Par défaut
    Hello,

    Citation Envoyé par Jérôme_C Voir le message
    On voit un déphasage (soit un décalage en X), pas un offset continu (un décalage en X). Une différence entre les deux courbes ne donnerait pas grand chose.
    Ce n'est pas à ça que je pensais : si on fait la somme de deux sinusoïdes déphasées mais d'égales fréquence et amplitude, donc sin(ax)+sin(bx), alors on obtient une troisième sinusoïde de même fréquence, dont les crêtes sont à mi-chemin entre celles des deux autres, et donc le coefficient d'amplitude varie entre 0 (opposition de phase) et 2 (en phase) fois l'amplitude originale. Je proposais de faire la différence pour obtenir 0 lorsque les courbes sont en phases, et donc avoir un signal qui augmente avec le déphasage.

    Je propose cela bien humblement car mon niveau en mathématiques est très médiocre, mais n'est-ce pas de cette façon que fonctionnent les boucles à verrouillage de phase ?

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    Je propose cela bien humblement car mon niveau en mathématiques est très médiocre, mais n'est-ce pas de cette façon que fonctionnent les boucles à verrouillage de phase ?
    Surement, mais ta deuxième contribution est beaucoup plus claire. Je ne suis pas certain que socrate88 aurait déduit cet humble procédé de ta simple proposition de différence.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Le déphasage entre les deux courbes peut être déterminé précisément et simplement à partir de l'intercorréllation entre les deux signaux (c.f. par exemple cette page).

    Bonne continuation.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Par défaut
    Merci à tous pour vos réponses. J'avais effectivement commencé par faire la différence, mais c'est plus un décalage horizontal, alors j'ai cherchés les points où les deux signaux s'annulent et comparer le retard, mais comme il n'y a pas les mêmes nombre de points et ce n'est pas non plus pratique.

    Je pense que l'auto-corrélation correspond à ce qu'il me faut. Par contre je ne connaît pas très bien en traitement de signal. Sur Matlab j'ai utilisé xcorr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [c_ww,lags] = xcorr(Filt1,Filt2,'coeff');
    plot(lags,c_ww);
    J'ai donc la séquence d'autocorrélation. Mais ensuite comment je pourrais obtenir le déphasage à partir de cela?
    Merci,



    Citation Envoyé par Ehouarn Voir le message
    Bonjour,

    Le déphasage entre les deux courbes peut être déterminé précisément et simplement à partir de l'intercorréllation entre les deux signaux (c.f. par exemple cette page).

    Bonne continuation.
    Images attachées Images attachées  

  12. #12
    Invité
    Invité(e)
    Par défaut
    Comme le dit Ehouarn, l'intercorrélation te permet d'obtenir le déphasage : si les deux courbes sont parfaitement synchro le maximum de l'intercorr est en zéro, sinon il sera en "Tau" où Tau est ton déphasage, en échantillons.
    Tu divises par ta fréquence d'échantillonnage et tu as ton déphasage en secondes.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Par défaut
    Merci à tous

    Effectivement, j'ai fais apparaître ce "Tau" en échantillons, puis je décale mon signal de Tau échantillons et il semble que le déphasage soit supprimé.
    Voici le résultat obtenu.
    Je vais tester sur d'autres signaux pour confirmer le résultat. En attendant, je vous fais partager mon code Matlab:
    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
     
    Filt1=opvar1(2,:);
    Filt2=opvar2(2,:);
    %Auto-Correlation between the two signals
    [y,c]=xcorr(Filt1,Filt2);
    L=[y;c];
    ind=L(2,find(L(1,:)==max(y)));
     
    if ind<0
        Filt3=Filt2;
        Filt3(1:end+ind)=Filt3(-ind+1:end);
        plot(opvar(1,:),[Filt1;Filt3]);
    else
        Filt3=Filt1;
        Filt3(1:end-ind)=Filt3(ind+1:end);
        plot(opvar(1,:),[Filt3;Filt2]);
    end





    Citation Envoyé par ElGat0 Voir le message
    Comme le dit Ehouarn, l'intercorrélation te permet d'obtenir le déphasage : si les deux courbes sont parfaitement synchro le maximum de l'intercorr est en zéro, sinon il sera en "Tau" où Tau est ton déphasage, en échantillons.
    Tu divises par ta fréquence d'échantillonnage et tu as ton déphasage en secondes.
    Images attachées Images attachées  

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

Discussions similaires

  1. [Débutant] Calcul d'erreur entre deux courbes
    Par louftansa dans le forum MATLAB
    Réponses: 14
    Dernier message: 03/06/2009, 15h10
  2. Supprimer chaînes situées entre deux caractères
    Par mao-40 dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2008, 01h02
  3. Différence entre deux courbes
    Par malokox dans le forum Signal
    Réponses: 2
    Dernier message: 24/06/2008, 10h15
  4. supprimer un lien entre deux tables d deux bases différente
    Par laurent.w dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/01/2007, 11h41
  5. [VBA E]Colorier l'espace entre deux courbes
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 09h19

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